Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: Re: [Wireshark-dev] [PATCH] draft-ietf-behave-rfc3489bis-05

From: Marc Petit-Huguenin <marc@xxxxxxxxxxxxxxxxxx>
Date: Wed, 06 Dec 2006 08:03:56 -0800
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jeff Morriss wrote:
> 
> Marc Petit-Huguenin wrote:
>> Hi,
>>
>> This is a new dissector for STUN v2, that is currently in WGLC at the IETF.
>>
>> The packet-stun.c file must be copied into packet-stun2.c before
>> applying this patch.
>>
>> I also attached a capture file that contains various STUN and STUN v2
>> packets.
> 
> 
> Any reason not to implement both versions in one dissector?  In my 
> (somewhat limited) experience, that's the way it is typically done.

I initially tried to implement the new STUN (STUNv2) in the same
dissector, but at the end it was very messy.  A little bit of history
can help to understand the situation:

The initial STUN was RFC 3489, and it contained two usages: Binding
Discovery and NAT Behavior Discovery.  After this a new version of STUN
was developed in parallel with the development of TURN.  This new drafts
were compatible with RFC 3489 up to draft-ietf-behave-rfc3489bis-02 and
draft-rosenberg-midcom-turn-08.  The support for this two drafts (and a
third one about IPv4-IPv6) was added to the dissector.  There is
existing deployment that use this two drafts.  Let's call it STUN+.

After this, STUN and TURN were completely rewritten and this is what I
call STUNv2.  Unfortunately some of the attributes in STUNv2 does not
match the attributes in the STUN+, NONCE and REALM for example.  Also
the NAT Behavior Discovery usage was removed, and other usages were
added.  As the two protocols (STUN+ and STUNv2) are not completely
compatible, a cookie was added in STUNv2.

So my proposal is to:

- - Keep packet-stun.c for the RFC 3498 protocol, plus the STUN and TURN
drafts up to draft-ietf-behave-rfc3489bis-02 and
draft-rosenberg-midcom-turn-08, as there is some huge deployments using
this.  There will be no modification to this dissectors in the future,
excepted perhaps to add support for retransmission or things like this.

- - Add a new dissector packet-stun2.c for the new STUN (currently in
WGLC), the STUN relay-usage (formerly known as TURN) and the other
usages that will be added in the future (IPv6, NAT Behavior, etc...).

- --
Marc Petit-Huguenin           [                                 ]
Home: marc@xxxxxxxxxxxxxxxxxx [ RFC1855-compliant space for rent]
Work: marc@xxxxxxx            [                                 ]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFduns9RoMZyVa61cRAsyUAJ48rGKRZy4fRRjjPBIfqDVBkAUMyACdHvGL
OtDU9NdMB+6Yevdc0Be5Vfg=
=h0uX
-----END PGP SIGNATURE-----