On Sat, Dec 20, 2014 at 1:24 AM, Matt <matta...@gmail.com> wrote:

> Hi,
>
> Upstream wireshark can display Multipath TCP (MPTCP) options. I work
> on MPTCP for my studies and I have improved MPTCP support in my
> wireshark branch in various ways. I am looking for some feedback on
> the overall direction to follow for converting this *prototype* code
> (relatively untested yet) towards sthg potentially upstreamable.
>
> Here is a list of the improvements made compared to upstream (easier
> to understand if you know MPTCP [2]):
> -the code can compute Initial Data Sequence Number (IDSN) and token
> during MPTCP 3 Way HandShake (3WHS). Both are generated from the MPTCP
> cryptographic key.
> -thus it allows to map TCP subflows to their respective MPTCP
> connection (ie wireshark can tell "tcp.stream 0,4,5 belong to the same
> MPTCP connection, e.g. mptcp.stream == 0").
> -MPTCP follows the same sequence number/ack scheme as TCP, except
> MPTCP sequence numbers/acks are passed as TCP options (and are 64bits
> instead of 32). If wireshark saw the initial 3WHS, then it is able to
> display relative MPTCP sequence numbers.
> -MPTCP analysis can be disabled via the options (maybe it should be
> the default behavior as MPTCP  analysis can be quite demanding).
> -wireshark can map TCP seq numbers to MPTCP sequence numbers and tell
> from which packet it got the mapping
>
> Here are a few thoughts:
> - outsourcing MPTCP identifiers (token/key) in a new linked list could
> speed up MPTCP connection search
> - I moved tcp.options.mptcp.* to mptcp.* because it's faster to type.
> I can revert this but MPTCP can be considered as a protocol by itself.
> - I could not find any global "debug utility". I use macros (to be
> able to quickly disable printf so that I can test tshark with my dev
> version) but it's a bit annoying.
> - I wonder if some of the code should go to a new file
> tcp-packet-mptcp.c else tcp-packet.c will be get too big ? or be moved
> to a tap-mptcp.c ? I am not that familiar with taps, I see them more
> like "to generate statistics".
>
> I believe wireshark may need to implement some data structures/GUIs
> helping with upcoming multipath protocols such as TRILL, SCTP, LISP,
> MPTCP... it could be a structure that would map "flows" to a "node".
> For instance SCTP and MPTCP support multihoming so we may see multiple
> "conversations" that belong to a same endhost. For instance with MPTCP
> you can tell TCP connections belong to a same MPTCP connection , in
> SCTP you can associate secondary paths to a primary path, in LISP you
> can map IPs to the encapsulating routers etc...
>
> Code is available here [0].
>
> And for those who just want a quick look, you can find 2 screenshots
> in [1] (and an MPTCP pcap for test + a diff of the code between my
> branch and an old master branch):
>
> Again, this is work in progress, just looking for some advice here
> with in mind possible upstreaming.
>
> Feel to ask any question related to MPTCP or the code.
>
> Best regards
>
> Matt
>
Hi Matt,

Patches are always welcome :-)

I think it is better to kept mptcp stuff in packet-tcp.c
there is no global debut, but you can use proto_tree_add_debug.. with #if
MPTCP_DEBUG define for example.

About your patches, after a quick look, need some (big) cleanup (comment,
indent...) to be integrated
Also i think, it will better to propose 2 patches, one with change for
packet-tcp and a other with change for (Qt) GUI

Regards,

>
> [0] https://github.com/teto/wireshark/tree/mptcp_assoc
> [1] http://downloads.tuxfamily.org/bluecosmos/wireshark/
> [2] http://www.rfc-editor.org/rfc/rfc6182.txt
> ___________________________________________________________________________
> Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
> Archives:    http://www.wireshark.org/lists/wireshark-dev
> Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
>              mailto:wireshark-dev-requ...@wireshark.org
> ?subject=unsubscribe
>
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to