Updated  https://code.wireshark.org/review/#/c/37711/  which is now merged,
and also created  https://code.wireshark.org/review/#/c/37733/ (where more
extension/next headers are filled in from IANA registry).

On Sun, Jul 5, 2020 at 9:28 PM Guy Harris <ghar...@sonic.net> wrote:

>
>
> > On Jul 5, 2020, at 9:09 AM, Martin Mathieson via Wireshark-dev <
> wireshark-dev@wireshark.org> wrote:
> >
> > I added  https://code.wireshark.org/review/#/c/37711/ for the DVB-S2-BB
> one.  It is a range_string, where arguably a value_string would be clearer,
> but the linked-to documentation is currently unavailable.
>
> If you're referring to the document whose URL is listed in the initial
> comment in packet-dvb-s2-bb.c, it is available on the Wayback Machine:
>
>
> https://web.archive.org/web/20170226064346/http://satlabs.org/pdf/sl_561_Mode_Adaptation_Input_and_Output_Interfaces_for_DVB-S2_Equipment_v1.3.pdf
>
> Unfortunately, it doesn't document that field, however.
>
> The header being parsed is a Generic Stream Encapsulation header, as
> described in ETSI TS 102 606-1:
>
>
> https://www.etsi.org/deliver/etsi_ts/102600_102699/10260601/01.02.01_60/ts_10260601v010201p.pdf
>
> That specification says, in section 4.1.2 "Network Protocol
> Identification":
>
>         The GSE Header includes a 2 byte Protocol Type/Extension field
> that indicates the type of protocol carried by the PDU. The Protocol Type
> field is given in the GSE Header for each complete PDU or the first
> fragment of an encapsulated PDU and uses the method defined in the
> Unidirectional Lightweight Encapsulation (ULE) protocol [5]. Extension
> headers may therefore be defined as in ULE. This approach allows efficient
> support for a number of PDU formats, including IPv4, IPv6, Ethernet, MPLS,
> arp, 802.1pQ, etc. and permits inclusion of new protocol types. Moreover,
> it provides a format for Layer 2 security mechanisms, providing functions
> such as encryption, identity hiding, and authentication methods, without
> modification of the GSE Header structure.
>
> and, in section 4.2 "GSE Packet Format", subsection 4.2.1 "Specification":
>
>         Protocol_Type: This 16-bit field indicates the type of payload
> carried in the PDU, or the presence of a Next-Header. The set of values
> that may be assigned to this field is divided into two ranges, similar to
> the allocation of Ethernet and shall follow the rules described in [5]. The
> two ranges are:
>
>              Type 1: Next-Header Type field
>
>              The first range of the Type space corresponds to the range of
> values 0 to 1535 decimal. These values may be used to identify
> link-specific protocols and/or to indicate the presence of Extension
> Headers that carry additional optional protocol fields (e.g. a bridging
> encapsulation). The range is sub-divided into values less than 256 and
> greater than 256, depending on the type of extension. The use of these
> values is co-ordinated by an IANA registry [5].
>
>              Type 2: EtherType compatible Type Fields
>
>              The second range of the Type space corresponds to the values
> between 0x600 (1536 decimal) and 0xFFFF. This set of type assignments
> follow DIX/IEEE assignments (but exclude use of this field as a frame
> length indicator). All assignments in this space shall use the values
> defined for EtherType, the following two Type values are used as examples
> (taken from the IEEE EtherTypes registry):
>
>         EXAMPLE: 0x0800: IPv4 payload
>                  0x86DD: IPv6 payload
>
> So the answer to the question "should this be a range_string or a
> value_string" appears to be...
>
> ..."no".
>
> Instead, there should be *two* fields used.
>
> If the value is < 1536, it's a next-header type; the reference for that
> is, to quote the ETSI spec:
>
>         IETF RFC 4326: "Unidirectional Lightweight Encapsulation (ULE) for
> Transmission of IP Datagrams over an MPEG-2 Transport Stream (TS)".
>
> That says, again, that values >= 1536 are Ethertypes, and lists 3 values
> for the Next Header range:
>
>         0x0000: Test SNDU (see section 5.1)
>         0x0001: Bridged Frame (see section 5.2)
>         0x0100: Extension-Padding (see section 5.3)
>
> to quote the RFC.  RFC 4326 speaks of two ranges, 0-255 and 256-511, for
> those values, and the two registries appear to be "Mandatory Extension
> Headers (or link-dependent type fields) for ULE (Range 0-255 decimal)":
>
>
> https://www.iana.org/assignments/ule-next-headers/ule-next-headers.xhtml#ule-next-headers-1
>
> and "Optional Extension Headers for ULE (Range 256-511 decimal)":
>
>
> https://www.iana.org/assignments/ule-next-headers/ule-next-headers.xhtml#ule-next-headers-2
>
> If, however, the value is >= 1536, it should be treated as an Ethertype.
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to