teto / mptcpanalyzer Goto Github PK
View Code? Open in Web Editor NEWSoftware suite to analyze/control Multipath TCP (MPTCP) behavior
Software suite to analyze/control Multipath TCP (MPTCP) behavior
to reach feature parity with mptcpanalyzer:
We had to fork optparse-applicative to provide live completion (vs the currently static bash/zsh generated ones) at https://github.com/teto/optparse-applicative/
This is quite annoying from a distribution perspective so let's try upstreaming those changes.
cold build are excessively long (~10 minutes).
I had a good experience with https://github.com/codedownio/time-ghc-modules showing that the Template Haskell code is the worrying bit. It would be worth investigating deeper to have better results.
I've spent some time investigating the use of sharkd (see https://teto.github.io/posts/2021-12-02-sharkd-introduction.html) to avoid some computation in mptcpanalyzer but the protocol is particularly brittle see
https://ask.wireshark.org/question/25581/invalid-json-request-to-tshark/
https://gitlab.com/wireshark/wireshark/-/issues/17824
An occasion to test rust ? :)
depends on
it is possible to create new subflows with the fork, but it is harder to do on upstream for now see
multipath-tcp/mptcp_net-next#186
doc for https://hackage.haskell.org/package/mptcp-pm was not generated because of a cabal issue (check the build log at the bottom left).
Let's make sure we can build the project both via cabal and nix (or maybe hackage doesn't use/see the cabal.project ? to check).
mptcpanalyzer is capable of computing stats on the fly and display them in CLI but would be nice to plot some statistics in realtime. Looks possible with the current backend:
timbod7/haskell-chart#226
to enable caching, we need to:
be able to generate a hash from a CacheEntry
When writing to cache we have:
Nothing | Nothing | Just 0 | Just 4093186044
we need special write instances so that we can use the same loading procedure from csv etc
completePath could accept a filter so that autocompletion only shows pcapng/pcap or csv when loading from csv.
Hello,
I'm very interested to try this out. Is there a guide for installation for this mptcpanalyzer? And also which kernel version or OS you are using to make it work properly?
Any guidance would be greatly appreciated!
there should be a better error than
�[m�[91mexamples/client_2_filtered.pcapng> �[39mmap-tcp examples/client_2_filtered.pcapng examples/server_2_filtered 0
...
�[m�[32m[debug]�[39m [M.Loader#82] cache miss: "Not implemented yet"
�[m�[32m[debug]�[39m [M.Loader#83] Calling tshark
�[mExporting fields ["frame.time_epoch","frame.interface_name","_ws.col.ipdst","ip.dst_host","_ws.col.ipsrc","ip.src_host","mptcp.ack","tcp.options.mptcp.datafin.flag","mptcp.dsn","mptcp.expected_token","tcp.options.mptcp.recvkey","tcp.options.mptcp.recvtok","tcp.options.mptcp.sendkey","mptcp.stream","tcp.options.mptcp.ve
�[mrsion","frame.number","mptcp.reinjection_of","mptcp.reinjection_of","frame.time_relative","mptcp.related_mapping","tcp.window_size","tcp.ack","tcp.dstport","tcp.flags","tcp.len","tcp.option_kind","tcp.seq","tcp.srcport","tcp.stream","tcp.options.timestamp.tsecr","tcp.options.timestamp.tsval"]
�[mCommand run: RawCommand "tshark" ["-E","separator=|","-r","examples/server_2_filtered","-o","mptcp.analyze_mptcp:true","-o","mptcp.intersubflows_retransmission:true","-o","mptcp.relative_sequence_numbers:true","-o","mptcp.analyze_mappings:true","-o","tcp.analyze_sequence_numbers:true","-o","gui.column.format:Time,%At,i
�[mpsrc,%s,ipdst,%d","-2","-R","mptcp or tcp and not icmp","-T","fields","-e","frame.time_epoch","-e","frame.interface_name","-e","_ws.col.ipdst","-e","ip.dst_host","-e","_ws.col.ipsrc","-e","ip.src_host","-e","mptcp.ack","-e","tcp.options.mptcp.datafin.flag","-e","mptcp.dsn","-e","mptcp.expected_token","-e","tcp.options.
�[mmptcp.recvkey","-e","tcp.options.mptcp.recvtok","-e","tcp.options.mptcp.sendkey","-e","mptcp.stream","-e","tcp.options.mptcp.version","-e","frame.number","-e","mptcp.reinjection_of","-e","mptcp.reinjection_of","-e","frame.time_relative","-e","mptcp.related_mapping","-e","tcp.window_size","-e","tcp.ack","-e","tcp.dstpor
�[mt","-e","tcp.flags","-e","tcp.len","-e","tcp.option_kind","-e","tcp.seq","-e","tcp.srcport","-e","tcp.stream","-e","tcp.options.timestamp.tsecr","-e","tcp.options.timestamp.tsval"]
�[m�[34m[info] �[39m [M.Loader#102] Error happened: ExitFailure 2
�[mmptcpanalyzer: fd:6: hGetContents: illegal operation (delayed read on closed handle)
when a file does not exist
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.