Wireshark-bugs: [Wireshark-bugs] [Bug 3176] New: Radius dissector enhancement to support WiMAX v
Date: Tue, 6 Jan 2009 01:53:25 -0800 (PST)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3176

           Summary: Radius dissector enhancement to support WiMAX vendor
                    specific attributes
           Product: Wireshark
           Version: SVN
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Enhancement
          Priority: Medium
         Component: Wireshark
        AssignedTo: wireshark-bugs@xxxxxxxxxxxxx
        ReportedBy: piyomaru3141@xxxxxxxxx


Build Information:
Version 1.1.2 (SVN Rev 27156)

Copyright 1998-2008 Gerald Combs <gerald@xxxxxxxxxxxxx> and contributors.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiled with GTK+ 2.12.9, with GLib 2.16.6, with libpcap 0.9.8, with libz
1.2.3.3, without POSIX capabilities, with libpcre 7.4, without SMI, without
c-ares, without ADNS, without Lua, with GnuTLS 2.0.4, with Gcrypt 1.2.4, with
MIT Kerberos, without GeoIP, without PortAudio, without AirPcap.

Running on Linux 2.6.24-22-generic, with libpcap version 0.9.8.

Built using gcc 4.2.4 (Ubuntu 4.2.4-1ubuntu3).

Wireshark is Open Source Software released under the GNU General Public
License.

Check the man page and http://www.wireshark.org for more information.
--
I made some changes to the radius dissector codes to support WiMAX VSAs (Vendor
Specific Attribute).
This modification enables wireshark to read freeradius' WiMAX dictionary file.
(I used "dictionary.wimax" that comes with freeradius-server-2.1.1.)

Specific changes are:
* Support new radius data types: byte, short, signed, combo-ip, tlv

* Support format statements attached to VSA definitions
(This enables dissection of VSA's type field and length field which have
lengthes 
other than 1 octet, like USR VSA and Starent VSA.)

* Support WiMAX VSA's Continuation flag.
(Ability to reassemble fragmented VSA is also added.)


Following quotations may be useful:

----- Quote from "dictionary.wimax" that comes with freeradius-server-2.1.1.
-----
#       WiMAX Forum
#
#       Updated from NWG_R1_V1.2.1-Stage-3.pdf
#
#       NWG_R1_V1.2-Stage-3.pdf
#       RADIUS discussion is on pp. 432-498
#       WiMAX VSA's are on p. 450 and following.
#
#       DHCP && MIP keys are on p.48 and following.
#
#       WiMAX VSA's have a non-standard format:
#
#               type            1 octet
#               length          1 octet
#               continuation    1 octet      0bcrrrrrrr
#               value           1+ octets
#
#       If the high bit of the "continuation" field is set, then
#       the next attribute of the same WiMAX type should have it's
#       value concatenated to this one.
#
#       The C bit MUST be zero for all small types.  e.g.  integer,
#       ipaddr, ipv6addr, etc.  It MAY be set for "string" and "octet"
#       types.  The maximum attribute length for "string" and "octet"
#       types is still 253 bytes, even with continuations.  The WiMAX
#       specifications do not specify a maximum length, so we have chosen
#       to keep the traditional RADIUS maximum length here.
#
#       The C bit MAY be 1 for TLV types.  There is no restriction on
#       TLV length other than maximum packet size (a bit less than 4K).
#
#       The rest of the bits in the "continuation" octet are reserved,
#       and MUST be zero.
#
#       Each WiMAX VSA is packed into one Vendor-Specific attribute
#       with Vendor-Id of WiMAX.  Multiple WiMAX sub-TLV's ARE packed
#       into one VSA with an encapsulating TLV.
#
#       The WiMAX forum adds the following (non-standard) data types:
#
#       byte     - one-octet unsigned integer
#       short    - two-octet unsigned integer in network byte order
#       signed   - 4-octet signed integer in network byte order.
#       combo-ip - if length 4, is the same as the "ipaddr" type.
#                  if length 16, is the same as "ipv6addr" type.
#       tlv      - encapsulated sub-attributes
#                  i.e. Vendor-Specific -> WiMAX TLV -> WiMAX sub-tlv.
#
######################################################################

----- Quote from dictionary(5) man page that comes with
freeradius-server-2.1.1. -----
       VENDOR vendor-name number [format=t,l]
            Define a Vendor Specific Attribute encapsulation  for  vendor-name
            to   number.   For  a  list  of  vendor  names  and  numbers,  see
            http://www.iana.org/enterprise-numbers.txt.

       The "format=t,l" statement tells the server how many octets to  use  to
       encode/decode  the vendor "type" and "length" fields in the attributes.
       The default is "format=1,1", which does not have to be specified.   For
       USR  VSA's,  the  format  is  "format=4,0", for Lucent VSA's it's "for-
       mat=2,1", and for Starent VSA's it's "format=2,2".

       The supported values for the number of  type  octets  (i.e.  the  first
       digit)  are  1,  2, and 4.  The support values for the number of length
       octets (i.e. the second digit) are 0, 1, and  2.   Any  combination  of
       those values will work.


-- 
Configure bugmail: https://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.