Internet DRAFT - draft-fairhurst-ipdvb-s2-gule
draft-fairhurst-ipdvb-s2-gule
Internet Engineering Task Force Gorry Fairhurst
Internet Draft University of Aberdeen
Document: draft-fairhurst-ipdvb-s2-gule-04.txt
Category: Draft January 2006
An Encapsulation for Transmission of
IP Datagrams over a DVB-S2 Generic Stream (GULE)
Status of this Draft
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts. Internet-Drafts are draft documents valid for a maximum of
six months and may be updated, replaced, or obsoleted by other
documents at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress".
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Abstract
This document describes a Generic stream Unidirectional Lightweight
Encapsulation (GULE) mechanism for the transport of IPv4 and IPv6
Datagrams and other network protocol packets directly over the DVB
S2 Generic Stream. This specifies a base encapsulation format and
supports an extension format that allows it to carry additional
header information to assist in network/Receiver processing.
Internet-Drafts can be and are used to describe technical issues and
protocols that are of interest to the Internet community but that
are not finally standardised within the IETF. This is such a
document. It is intended for open discussion, but there is no
current plan to publish this as an Internet RFC.
Expires June 2006 [page 1]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
Table of Contents
1. Introduction
1.1 SNDU and PDU Processing
1.2 Fragmentation Considerations
2. Conventions used in this document
3. Description of method
3.1 GULE Encapsulation Overhead
3.2 Placement of the Encapsulation Header within the BBHeader
3.3 BB Encapsulation Header within the BBFrame Payload
4. SNDU Format
4.1 Destination Address Absent (D) Field
4.2 Length Field
4.3 End Indicator
4.4 Type Field
4.4.1 Type 1: Next-Header Type Fields
4.4.2 Type 2: EtherType Compatible Type Fields
4.5 SNDU Destination Address Field
4.6 SNDU Trailer CRC
4.7 Description of SNDU Formats
4.7.1 End Indicator
4.7.2 IPv4 SNDU Encapsulation
4.7.3 IPv6 SNDU Encapsulation
5. Extension Headers
5.1 Test SNDU
5.2 Bridged Frame SNDU Encapsulation
5.3 Extension-Padding Optional Extension Header
5.4 MPEG-2 TS Extension
5.5 SNDU-Resume Extension
5.5.1 SNDU-Resume Extension fragment processing
5.5.2 SNDU-Resume Extension reassembly
5.6 SNDU-Suspend.
5.7 SNDU-Concat Extension
6.Processing at the Encapsulator
6.1 SNDU Encapsulation
6.2 Procedure for Padding and Packing
7. Receiver Processing
7.1 Idle State
7.1.1 Idle State Payload Pointer Checking
7.2 Processing of a Received SNDU
7.2.1 Reassembly Payload Pointer Checking
7.3 Other Error Conditions
8. Summary
9. IANA Considerations
Expires June 2006 [page 2]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
10. Acknowledgments
11. Security Considerations
12. References
12.1 Normative References
12.2 Informative References
13. Authors' Addresses
14. IPR Notices
14.1 Intellectual Property Statement
14.2 Disclaimer of Validity
15. Copyright Statement
15.1 Intellectual Property Statement
15.2 Disclaimer of Validity
Appendix A: Scenarios for Fragmentation
Appendix B
Expires June 2006 [page 3]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
1. Introduction
This document describes an encapsulation for transport of IP
datagrams, or other network layer packets, over a link using the
physical layer specified by DVB-S2 [ETSI-S2] in the Generic Mode
(also known as the Generic Stream (GS)). Protocol requirements are
defined in [S2-REQ], [S2-REQ-RCS], and [ID-S2-REQ]. Some recommended
evaluation criteria are defined in [S2-REQ] and [S2-EVAL].
The method also allows TS-Packets [ISO-MPEG] to be sent within GULE
SNDUs. This may be used to provide control information and/or
Program Specific Information (PSI) for a Multiplex.
Note: Internet-Drafts can be and are used to describe technical
issues and protocols that are of interest to the Internet community
but that are not finally standardised within the IETF. This is such
a document and is intended for open discussion.
1.1 SNDU and PDU Processing
Protocol Data Units, PDUs, (Ethernet Frames, IP datagrams or other
network layer packets) for transmission are passed to an
Encapsulator. This formats each PDU into a SubNetwork Data Unit
(SNDU) by adding an encapsulation header and an integrity check
trailer [RFC4259]. The SNDU may be fragmented into a series of
fragments sent in one or more BaseBand (BB) frames that are sent
over the DVB S2 link.
Although this document defines a different framing method to ULE
[RFC4236], it maintains the same design philosophy as ULE for
construction of the SNDUs. The important characteristics of this
encapsulation are described in this subsection. This will allow
subsequent additions to ULE to also be supported within GULE. The
key features are that each SNDU has:
(i) D-bit
This permits both addressed and unaddressed SNDUs. The D=1 mode may
be used as an enhancement to link efficiency (e.g. where IP-based
address filtering is in use).
(ii) SNDU Length
This may be utilised in the SNDU framing, to skip unwanted SNDUs and
to validate wanted SNDUs.
(iii) SNDU Type/Extension field
The Type field uses an extension processing in place of flag-parsing
for options, providing a method for efficient option support. This
field also permits the use of any IEEE format frame, including those
that control L2 infrastructure (QoS, VLAN, Network Management, ST,
etc), bridging, and IETF-defined methods such as IPv4, IPv6, MPLS,
arp, etc. The final use of this field is as a discriminator for
IETF-defined encapsulation extensions. Currently envisaged
Expires June 2006 [page 4]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
extensions are (a) Security extensions providing functions such as:
encryption, identity hiding, and authentication methods; (b) Header
compression methods for various formats of payloads.
An important consideration is that the Length and Type fields
replicate information that may also be extracted from the network-
layer protocol information. There are various reasons for this
design:
(i) It is envisaged that SNDU parsing could be implemented in
hardware/firmware or could use specialised logic to assist in
parsing the SNDUs. In this case, access to the information may
be required at a low-level to assure rapid filtering or
unwanted packets and correct queuing of wanted packets.
Omitting the information requires additional processing for all
PDUs, irrespective of whether specific PDUs are forwarded to
the specific Receiver, incurring significant additional
computational cost.
(ii) Not all network-layer PDUs contain Type/Length information
(e.g. DIX-format packets). When present, the fields are located
at an offset from the start of each PDU (e.g. IPv4/IPv6). In
some cases, this also requires computation (e.g. header
skipping in IEEE/LLC).
(ii) Omitting the Type and Length field places a reliance of
the SNDU framing on the PDU formats that are supported. This
dependency will hinder evolution of the encapsulation for new
applications.
If transmission efficiency is an important consideration, the
duplicate protocol fields should be compressed at the PDU-level not
the SNDU-level. This approach ensures protocol-independent framing
of SNDUs; enable protocol-dependent compression (allowing the
context of a particular protocol associations to provide
sophisticated compression where needed); requires decompression only
of those PDUs to be forwarded; and finally allows the decompression
function to be off-loaded from the SNDU framing function (e.g. a
design that does this as part of the Internet driver interface,
rather than the device driver). The recommended approach is
therefore to define well-founded and robust methods that may be used
with both ULE and GULE.
1.2 Fragmentation Considerations
Three forms of fragmentation are provided in this encapsulation
method:
(i) The simplest (default) provides efficient fragmentation and
reassembly for consecutive fragmentation (adjacent BBFrames)
[S2-REQ]. This follows a procedure that resembles that used by
ULE [RFC4236], and common to other MPEG-2 TS formats [ISO-
Expires June 2006 [page 5]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
MPEG]. This mode requires each Receiver to maintain one buffer
for reassembly of the Current SNDU [ULE-RFC]. A constraint is
that a BBFrame may contain only the fragment of a single new
SNDU, which must be aligned to the end of the BBFrame.
(ii) The SNDU-Resume Extension Header defined in this document
provides a method for non-consecutive fragmentation with
multiplexing [S2-REQ] (i.e. where intervening BBFrames may be
sent using an arbitrary ModCod value). When used in the latter
way, an arbitrary large number of fragments may be resumed in
the same BBFrame (i.e. multiple fragment support [S2-REQ]). A
constraint is that a BBFrame may contain only the fragment of a
single new SNDU, which must be aligned to the end of the
BBFrame.
This method requires an additional protocol overhead within
each resumed fragment. To utilise this method, Receivers need
to maintain several buffers, up to one buffer for each MAC/NPA
address that they expect to receive, plus one for the case of
no specified MAC/NPA address (D=1). Receivers that allocate
fewer buffers, may not be able to buffer all fragmented SNDUs,
potentially resulting in some packet loss (depending on the
fragmentation policy of the Gateway). This document defines a
method to recover buffers that are occupied by incomplete
fragments after a specified interval.
(iii) The SNDU-Suspend Extension Header defined in this
document provides a method for non-consecutive fragmentation
with multiplexing [S2-REQ] that also supports an arbitrary
fragmentation of the first fragment of a new SNDU. This method
must be used in combination with the SNDU-Resume method and has
the same buffer management requirements as for the SNDU-Resume
method. Using this method, a BBFrame may contain any number of
fragments that start a new SNDU. New fragmented SNDUs do not
need to be aligned to the end of the BBFrame.
To utilise this method, a Receiver needs to be able to accept
an arbitrary large number of new fragmented new SNDUs within a
BBFrame. This may add complexity to the Receiver design, but
permits more flexibility in fragmentation by the Gateway.
These methods provide backwards compatibility: All Receivers MUST
implement method (i). If a Receiver does not also implement methods
(ii) and (iii), this Receiver will silently discard all PDUs sent
using the SNDU-Resume or SNDU-Suspend method. A Receiver that
implements the SNDU-Resume method may use method (i) and/or (ii),
but will silently discard all PDUs sent using the SNDU-Suspend
method (iii). A Receiver that implements the SNDU-Resume or SNDU-
Suspend method is able to receive and forward PDU encapsulated using
any/all of the three methods.
Expires June 2006 [page 6]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
2. Conventions used in this document
The capitalized key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
"SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
[RFC2119].
ACM: Adaptive Coding and Modulation (see ModCod).
b: bit. For example, one byte consists of 8b.
B: Byte. Groups of bytes are represented in Internet byte order.
BB: Baseband.
BBFrame payload [ETSI-S2]: The data field part of a Baseband frame
that may be used for the communication of data. Typical BBFrames
range in size from 3072 to 58192 bits according to the choice of
modulation format and FEC in use.
BBH, Baseband Header [ETSI-S2]: A fixed format 10 byte header that
starts each BBFrame.
Counter: An encapsulation protocol field located at a fixed position
in all BBFrames utilising the GULE encapsulation. The value is
incremented modulo 255 in each BBFrame sent with a specific ISI. It
is used to monitor in-sequence reception of BBFrames within a
Stream, and may be utilised for monitoring functions as a part of
link-layer Operations and Management (OAM). In addition, the value
is used to verify that BBFrames are consecutive within a Stream when
the PP value is used to reassemble frames.
DF: Data Field [ETSI-S2]. The BBFrame payload. Note this
abbreviation is also used for a different function at the IP layer.
DFL: Data Field Length [ETSI-S2]. The size of the BBFrame payload
measured in bits. A set of DFL values have been specified by S.2,
corresponding to the set of specified ModCod formats.
DVB: Digital Video Broadcast [ETSI-DVB]. A framework and set of
associated standards published by the European Telecommunications
Standards Institute (ETSI) for the transmission of video, audio, and
data.
Encapsulator: A network device that receives PDUs and formats these
into Payload Units (known here as SNDUs) for output in the Generic
Mode of DVB-S2.
End Indicator [RFC4236]: A value that indicates to the Receiver that
there are no further SNDUs present within the current BBFrame.
Encapsulation Header: The logical group of fields that carry the
protocol control information for the encapsulation protocol.
Expires June 2006 [page 7]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
GULE: Generic Stream ULE. The protocol defined in this document.
GS: Generic Stream.
ISI: Input Stream Identifier, the second byte of the header of a
BBFrame. This value uniquely identifies a specific logical channel
within a DVB-S2 multiplex.
MAC: Medium Access Control [IEEE-802.3]. A link layer protocol
defined by the IEEE 802.3 standard (or by Ethernet v2 [DIX]).
ModCod: Modulation/Coding. A combination of Modulation and FEC
Coding that together determine the size of a BBFrame.
MPEG-2: A set of standards specified by the Motion Picture Experts
Group (MPEG), and standardized by the International Standards
Organisation (ISO/IEC 113818-1) [ISO-MPEG], and ITU-T (in H.220).
Next-Header: A Type value indicating an Extension Header [RFC4236].
NPA: Network Point of Attachment [RFC4236]. In this document, refers
to a destination address (resembling an IEEE MAC address) within the
DVB-S2 transmission network that is used to identify individual
Receivers or groups of Receivers.
OAM: Operations and Management.
Packing Threshold: In GULE, this is a period of time an Encapsulator
is willing to defer transmission of a partially filled BBFrame to
accumulate more SNDUs, rather than use Padding. After the Packet
Threshold period, the Encapsulator uses Padding to send the
partially filled BBFrame.
Padding: A sequence of bytes with the value 0xFF that are used after
an End Indicator to occupy the unused portion of a BBFrame payload.
The DFL field may also be used in place of Padding.
PDU: Protocol Data Unit [RFC4259]. Examples of a PDU include
Ethernet frames, IPv4 or IPv6 datagrams, and other network packets.
PP, Payload Pointer: In GULE, the PP is a 13-bit pointer located at
a fixed position in the encapsulation header of all BBFrames
utilising the GULE encapsulation. If the BBFrame contains the start
of a GULE SNDU, the PP value SHALL be set to the position of the
first byte of the first SNDU within the BBFrame. If the BBFrame
contains neither the start of a SNDU (or an End Indicator), the
value SHALL be assigned 0xFFFF.
PSI: Programme Specific Information [ISO-MPEG].
SI Table: Service Information Table [ISO-MPEG]. In this document,
this term describes a table that is been defined by another
Expires June 2006 [page 8]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
standards body to convey information about the services carried in a
SNDU: Subnetwork Data Unit [RFC4259]. In this document this is an
encapsulated PDU sent using GULE.
Stream: A logical flow from an Encapsulator to a set of Receivers.
The addresses at the MAC/NPA level and IP level need to be unique
within a specific stream (i.e. denoted by a common S.2 ISI value).
SYNCD: Synchronisation Distance [ETSI-S2]. This is specified for a
DVB-S2 packetized stream, where the distance in bits from the start
of the DataField to the first start of packet contained in this
DataField. This use resembles the MPEG-2 Payload Pointer, as
defined in ULE. The use of SYNCD is not specified for continuous
Generic Streams.
TS: Transport Stream [ISO-MPEG], a method of transmission at the
MPEG-2 level using TS Packets; it represents layer 2 of the ISO/OSI
reference model.
ULE: Unidirectional Lightweight Encapsulation (ULE) [RFC4236]. A
scheme that encapsulates PDUs, into SNDUs that are sent in a series
of TS Packets using a single TS Logical Channel. The encapsulation
format defined by this document shares the same extension format,
and basic processing rules and uses a common IANA Registry.
Expires June 2006 [page 9]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
3. Description of the Method
PDUs (IP packets, Ethernet frames or packets from other network
protocols) are encapsulated to form a Subnetwork Data Unit (SNDU)
[RFC4236] associated with a specific Stream at the link layer. The
SNDU is transmitted over an DVB-S2 link by placing it either in a
single BBFrame, or if required, an SNDU may be fragmented into a
series of BBFrames. A mode also permits an SNDU to be suspended and
resumed in a later BBFrame, while preserving the original order of
each SNDU sent to a specific MAC/NPA address over a Stream. Where
there is sufficient space, the method permits a BBFrame to carry
more than one SNDU (or part there of), sometimes known as Packing.
All parts comprising an SNDU MUST be assigned to the same Stream.
If a SNDU finishes before the end of a BBFrame, but it is not
intended to start another SNDU, a stuffing procedure fills the
remainder of the BBFrame payload with bytes with a value 0xFF, known
as Padding.
A Receiver that receives a value of 0xFF in place of the start of a
SNDU, interprets this as Padding/Stuffing and silently discards the
remainder of the BBFrame payload. The payload of the next BBFrame
for the same stream will begin with a Payload Pointer of value
0x0000, indicating that the next SNDU immediately follows the
encapsulation header. The ULE protocol [RFC4236] resembles this, but
differs in the procedure that binds it to the MPEG-2 TS physical
layer.
3.1 GULE Encapsulation Overhead
Each BBFrame includes a logical encapsulation header. This overhead
comprises a set of fixed format fields defined by GULE, shown in the
figure below.
< ------------------- BBFrame ------------------------------- >
+---------------------------- ----+---------------------------+
|Ver| Resv | Counter | Resv | PP | CRC-8 | BBFrame payload |
+---------------------------------+---------------------------+
< ----Encapsulation Overhead---- >
Figure 1: BBFrame Logical Encapsulation Overhead
The BBFrame encapsulation is identified by the 4-bit version field.
There are also a BBFrame counter (size to be determined), a 13-bit
Payload Pointer (aligned to an 8 byte boundary) and an 8-bit CRC-8.
All unused fields are reserved for future use. The BBFrame payload
is also known as the User Payload [ETSI-S2].
A CRC-8 provides an integrity check for the encapsulation overhead.
It also guards against framing misalignment that may otherwise
result following corruption of the PP value. The polynomial for
computation of the CRC-8 will be defined in this document.
Expires June 2006 [page 10]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
Field Size of Field Notes
----- ----------------------------- -----
- - Identifies the GULE format.
ver (4 bits + 4 reserved bits) *1
Counter(8 bits) For use in OAM *2
PP (13 bits) Measured in bytes.
(3 bits) Reserved for future use.
CRC CRC-8 Overhead integrity check.
Notes:
*1 Usage to be confirmed.
*2 Also used to verify that BBFrames are consecutive within a Stream
when the PP value is used to reassemble SNDUs.
Table 1: Encapsulation Overhead Protocol Fields
The specification described by this document does not define a
transmission format for the logical encapsulation header. The
approach recommended in this document is to include this
encapsulation overhead within the BBFrame Header itself (Section
3.2). An alternative is to prefix as a fixed-sized protocol header
within the BBFrame payload, placed following the BBFrame header
defined by DVB-S2 (Section 3.3).
3.2 Placement of the Encapsulation Header within the BBHeader
This section describes the physical placement of the extension
overhead fields within the header of a BBFrame [ID-S2-REQ], known as
the BaseBand Header (BBH) [ETSI-S2]. These fields are placed into
positions that are currently unused within the DVB S.2 BBH when
sending in the Generic Mode. This placement eliminates the need for
a separate Encapsulation header.
Field Corresponding BB Header Field Notes
----- ----------------------------- -----
MATYPE (2B) Identifies the GULE format.
ISI (1B subfield) Identifies the stream.
0000 User Payload Length, UPL (2B)*1 Identifies the GULE format.
Data Field Length, DFL (2B)*2 As used in S.2 TS.
ver Sync Pattern SYNCD (1B)*1
Counter For use in OAM.
PP Sync Distance SYNCD (2B)*1 Equivalent function.
CRC CRC-8 *2 Function already provided.
Notes:
*1 The usage of this BBH field is not specified in the DVB-S2
Specification for the Generic Mode [ID-S2-REQ].
*2 This BBH field is specified in the S.2 Specification and use in
the Generic Mode [ID-S2-REQ] is identical to use for Transport
Streams [ISO-MPEG].
Table 2: BBFrame Header Structure
Expires June 2006 [page 11]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
Usage of these fields (as in Table 2) within the BB header is
subject to clarification of acceptable usage for the Generic Mode
within the DVB-S2 Standard [ETSI-S2].
3.3 BB Encapsulation Header within the BBFrame Payload
This section describes an alternative method for communicating the
encapsulation protocol overhead, in the case where the fields in the
BBFrame header are not accessible to the GULE Gateway/Receiver.
The payload of each BBFrame starts with an encapsulation header
defined by GULE. The GULE encapsulation header is sent as the first
bytes of every BBFrame transmitetd by an encapsulation Gateway.
The BBFrame encapsulation header is of a fixed format. This
comprises an 8-bit BBFrame counter, a 16-bit Payload Pointer field
and an 8-bit CRC-8.
XXX Future revisions of this document may define additional fields
within this header to accelerate processing of the GULE Receiver.
XXX
The CRC-8 provides an integrity check for the entire GULE
encapsulation header, and guards against framing mis-alignment that
may otherwise result following corruption of the PP value. The
polynomial for computation of the CRC-8 is identical to that
specified for the BBHeader in [DVB-S2].
Expires June 2006 [page 12]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
4. SNDU Format
This section is Informative, the formats described in this section
are defined by ULE [RFC4236].
PDUs are encapsulated using ULE to form an SNDU. The encapsulation
format to be used for PDUs is illustrated below:
< ----------------------------- SNDU ----------------------------- >
+-+-----------------------------------------------------+----------+
|D| Length | Type | Dest Address* | PDU | CRC-32** |
+-+-----------------------------------------------------+----------+
Figure 2: SNDU Encapsulation (* optional Destination Address)
(** CRC-32 is optional for some formats of SNDU)
This format is identical that defined for ULE [RFC4236]. All multi-
byte values (including the Length/End Indicator (4.2,4.3), Type
(4.4), Destination Address (4.5), and Extension Headers (5)) are
transmitted in network byte order (most significant byte first). The
most significant bit of each byte is placed in the left-most
position of the 8-bit field.
4.1 Destination Address Absent (D) Field
The most significant bit of the Length Field carries the value of
the Destination Address Absent Field, the D-bit. A value of 0
indicates the presence of the Destination Address Field (see section
4.5). A value of 1 indicates that a Destination Address Field is not
present.
An End Indicator (4.3) MUST be sent with a D-bit value of 1. Other
SNDUs SHOULD be sent with a D-bit value of 0 (see 4.5).
4.2 Length Field
A 15-bit value that indicates the length, in bytes, of the SNDU
counted from the byte following the Type field, up to and including
the CRC (when present). Note the special case described in 4.3.
4.3 End Indicator
When the first two bytes of an SNDU have the value 0xFFFF, this
denotes an End Indicator (i.e., all ones length combined with a
D-bit value of 1). This indicates to the Receiver that there are no
further SNDUs present within the current BBFrame (see section 6),
and that no Destination Address Field is present.
Expires June 2006 [page 13]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
4.4 Type Field
The 16-bit Type field indicates the type of payload carried in an
SNDU, or the presence of a Next-Header. The set of values that may
be assigned to this field is divided into two parts, similar to the
allocations for Ethernet.
The first set of ULE Type field values comprise the set of values
less than 1536 in decimal. These Type field values are IANA
assigned (see 4.4.1), and indicate the Next-Header.
The second set of ULE Type field values comprise the set of values
greater than or equal to 1536 in decimal. In ULE, this value is
identical to the corresponding type codes specified by the IEEE/DIX
type assignments for Ethernet and recorded in the IANA EtherType
registry.
4.4.1 Type 1: Next-Header Type Fields
The first part of the Type space corresponds to the 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. The format is defined by
ULE and the ULE registry maintained by the IANA.
4.4.2 Type 2: EtherType Compatible Type Fields
The second part 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 MUST use the
values defined for IANA EtherType, the following two Type values are
used as examples (taken from the IANA EtherTypes registry):
0x0800: IPv4 Payload (see 4.7.2)
0x86DD: IPv6 Payload (see 4.7.3)
4.5 SNDU Destination Address Field
The SNDU Destination Address Field is optional (see 4.1). This field
MUST be carried (i.e. D=0) for IP unicast packets destined to
routers that are sent using shared links (i.e., where the same link
connects multiple Receivers). A sender MAY omit this field (D=1) for
an IP unicast packet and/or multicast packets delivered to Receivers
that are able to utilise a discriminator field (e.g. the IPv4/IPv6
destination address, or a bridged MAC destination address), which in
combination with the PID value, could be interpreted as a Link-Level
address.
Expires June 2006 [page 14]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
When the SNDU header indicates the presence of an SNDU Destination
Address field (i.e. D=0), a Network Point of Attachment, NPA, field
directly follows the fourth byte of the SNDU header. NPA destination
addresses are 6 Byte numbers, normally expressed in hexadecimal,
used to identify the Receiver(s) in a DVB-S2 transmission network
that should process a received SNDU. The value 0x00:00:00:00:00:00,
MUST NOT be used as a destination address in an SNDU. The least
significant bit of the first byte of the address is set to 1 for
multicast frames, and the remaining bytes specify the link layer
multicast address. The specific value 0xFF:FF:FF:FF:FF:FF is the
link broadcast address, indicating this SNDU is to be delivered to
all Receivers.
IPv4 packets carrying an IPv4 subnetwork broadcast address need to
be delivered to all systems with the same network prefix. When a
SNDU Destination Address is present (D=0) the value MUST be set to
the NPA link broadcast address (0xFF:FF:FF:FF:FF:FF).
When the PDU is an IP multicast packet and an SNDU Destination
Address is present (D=0), the IP group destination address of the
multicast packet MUST be mapped to the multicast SNDU Destination
Address (following the method used to generate a destination MAC
address in Ethernet). The method for mapping IPv4 multicast
addresses is specified in [RFC1112]. The method for mapping IPv6
multicast addresses is specified in [RFC2464].
4.6 SNDU Trailer CRC
A SNDU may carry a 32-bit CRC field in the last four bytes of the
SNDU. This position eases CRC computation by hardware. The CRC-32
polynomial is to be used. Examples where this polynomial is also
employed include Ethernet, DSM-CC section syntax [ISO-DSMCC] and
AAL5 [ITU-3563]. This is a 32 bit value calculated according to the
generator polynomial represented 0x104C11DB7 in hexadecimal:
x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+x^0.
The Encapsulator initialises the CRC-32 accumulator register to the
value 0xFFFF FFFF. It then accumulates a transmit value for the
CRC32 that includes all bytes from the start of the SNDU header to
the end of the SNDU (excluding the 32-bit trailer holding the CRC-
32), and places this in the CRC Field. In ULE, the bytes are
processed in order of increasing position within the SNDU, the order
of processing bits is NOT reversed. This use resembles, but is
different to that in SCTP [RFC3309].
When present, the Receiver performs an integrity check by
independently calculating the same CRC value and comparing this with
the transmitted value in the SNDU trailer. SNDUs that do not have a
valid CRC, are discarded.
Expires June 2006 [page 15]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
This description may be suited for hardware implementation, but this
document does not imply any specific implementation. Software-based
table-lookup or hardware-assisted software-based implementations are
also possible. Annexe B provides an example of an Encapsulated PDU
that includes the computed CRC-32 value.
The purpose of this CRC is to protect the SNDU (header, and payload)
from undetected reassembly errors and errors introduced by
unexpected software / hardware operation while the SNDU is in
transit across the DVB-S2 subnetwork and during processing at the
encapsulation gateway and/or the Receiver. It serves to verify the
delineation (framing) of PDUs and may also detect the presence of
uncorrected errors from the physical link (however, these may also
be detected by other means, e.g. section 7.3). When a MAC?NPA
address is present, it binds the SNDU to the specified address.
The presence of a CRC field is determined by the format of the SNDU
(specified in the Type field of the Header). Formats by default
SHOULD include a CRC, exceptions include amn End Indicator, the
SNDU-Suspend and SNDU-Resume fragments.
4.7 Description of SNDU Formats
The format of an SNDU is determined by the combination of the
Destination Address Absent bit (D) and the SNDU Type Field. The
simplest encapsulation places a PDU directly into an SNDU payload.
Some Type 1 encapsulations may require additional header fields.
These are inserted in the SNDU following the NPA/MAC destination
address and directly preceding the PDU.
Formats may be defined through relevant assignments in the IEEE and
IANA registries.
4.7.1 End Indicator
The format of the End Indicator is defined by ULE [ULERFC]. It is
shown in figure 2. This format MUST carry a D-bit value of 1.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1| 0x7FFF |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
= A sequence of zero or more bytes with a value 0xFF filling =
| the remainder of BB frame payload |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: Format for a ULE End Indicator.
Expires June 2006 [page 16]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
4.7.2 IPv4 SNDU
IPv4 datagrams are directly transported using one of the two
standard SNDU structures, in which the PDU is placed directly in the
SNDU payload. The formats are defined by ULE [ULERFC]. The two
encapsulations are shown in figures 4 and 5. (Note that in this, and
the following figures, the IP datagram payload is of variable size,
and is directly followed by the CRC-32).
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Length (15b) | Type = 0x0800 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receiver Destination NPA Address (6B) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
| |
= IPv4 datagram =
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (CRC-32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: SNDU Format for an IPv4 Datagram using L2 filtering (D=0).
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1| Length (15b) | Type = 0x0800 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
= IPv4 datagram =
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (CRC-32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: SNDU Format for an IPv4 Datagram using L3 filtering (D=1).
4.7.3 IPv6 SNDU Encapsulation
IPv6 datagrams are directly transported using one of the two
standard SNDU structures, in which the PDU is placed directly in the
SNDU payload, as defined by ULE [ULERFC]. The two encapsulations
are shown in figures 6 and 7.
Expires June 2006 [page 17]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Length (15b) | Type = 0x86DD |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receiver Destination NPA Address (6B) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
| |
= IPv6 datagram =
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (CRC-32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: SNDU Format for an IPv6 Datagram using L2 filtering (D=0).
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1| Length (15b) | Type = 0x86DD |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
= IPv6 datagram =
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (CRC-32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: SNDU Format for an IPv6 Datagram using L3 filtering (D=1)
Expires June 2006 [page 18]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
5. Extension Headers
This section describes an extension format for the ULE
encapsulation. In ULE, a Type field value less than 1536 Decimal
indicates an Extension Header. These values are assigned from a
separate IANA registry defined for ULE [ELE-RFC].
The use of a single Type/Next-Header field simplifies processing and
eliminates the need to maintain multiple IANA registries. The cost
is that each Extension Header requires at least 2 bytes. This is
justified, on the basis of simplified processing and maintaining a
simple lightweight header for the common case when no extensions are
present.
A ULE Extension Header is identified by a 16-bit value in the Type
field. This field is organised as a 5-bit zero prefix, a 3-bit H-LEN
field and an 8-bit H-Type field, as follows:
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0|H-LEN| H-Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 8: Structure of ULE Next-Header Field [RFC4236].
The H-LEN value indicates the total number of bytes in an Optional
Extension Header (including the 2B Type field) [RFC4236].
An H-LEN value of zero indicates a Mandatory Extension Header. Each
Mandatory Extension Header has a pre-defined length that is not
communicated in the H-LEN field. No additional limit is placed on
the maximum length of a Mandatory Extension Header. A Mandatory
Extension Header MAY modify the format or encoding of the enclosed
PDU (e.g. to perform encryption and/or compression).
The H-Type is a one byte field that is either one of 256 Mandatory
Header Extensions or one of 256 Optional Header Extensions. This is
defined by ULE [RFC4236].
The general format for an SNDU with Extension Headers is:
< -------------------------- SNDU ------------------------- >
+---+--------------------------------------------------+--------+
|D=0| Length | T1 | NPA Address | H1 | T2 | PDU | CRC-32 |
+---+--------------------------------------------------+--------+
< ULE base header > < ext 1 >
Figure 9: SNDU Encapsulation with one Extension Header (for D=0).
Where:
D is the ULE D_bit (in this example D=0, however NPA addresses may
Expires June 2006 [page 19]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
also be omitted when using Extension Headers).
T1 is the base header Type field. In this case, specifying a
Next-Header value.
H1 is a set of fields defined for header type T1. There may be 0
or more bytes of information for a specific ULE Extension Header.
T2 is the Type field of the next header, or an EtherType > 1535 B
indicating the type of the PDU being carried.
< -------------------------- SNDU ------------------------- >
+---+---------------------------------------------------+--------+
|D=1| Length | T1 | H1 | T2 | H2 | T3 | PDU | CRC-32 |
+---+---------------------------------------------------+--------+
< ULE base header >< ext 1 >< ext 2 >
Figure 9: SNDU Encapsulation with two Extension Headers (D=1).
Using this method, several Extension Headers MAY be chained in
series [RFC4236]. Although an SNDU may contain an arbitrary number
of consecutive Extension Headers, it is not expected that SNDUs will
generally carry a large number of extensions.
5.1 Test SNDU
A Test SNDU is a Mandatory Extension Header of Type 1, specified by
ULE [RFC4236].
5.2 Bridge Frame SNDU Encapsulation
A bridged SNDU is a Mandatory Extension Header of Type 1 specified
by ULE [RFC4236].
5.3 Extension-Padding Optional Extension Header
The Extension-Padding Optional Extension Header is s specified by
ULE [RFC4236].
Expires June 2006 [page 20]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
5.4 MPEG-2 TS Extension
The MPEG-2 TS Extension Header is specified by an IANA assigned H-
Type value of <tbd>. This is a Mandatory Extension. The extension
is used to communicate 1 or more MPEG-2 TS Packets over the DVB-S2
link when utilising the Generic Mode. The number of TS Packets
carried in a specific SNDU is determined from the size specified by
the remainder of the Payload following the MPEG-2 TS Extension. A
Receiver MUST silently discard any data, if present, between the
last complete encapsulated MPEG-2 TS Packet and the size denoted in
the Length field of the SNDU fragment base header.
A value of D=1 indicates there is no NPA/MAC address in use. A value
D=0 is also permitted, as defined in ULE.
The extension may be used to communicate one or more MPEG-2 TS
Packets of arbitrary content, interpreted according to [ISO-MPEG].
One expected use is for the transmission of MPEG-2 SI/PSI signalling
and clock references.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1| Length (15b) | Type = 0xtbd |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TS-Packet 1 |
= =
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TS-Packet 2 (if Length > 2*188) |
= =
| etc. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (CRC-32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 10: SNDU Format for a TS-Packet Payload (D=1)
5.5 SNDU-Resume Extension
The SNDU-Resume Extension is specified by an IANA assigned H-Type
value of <tbd>. This is a Mandatory Extension. The extension is
used to send the remainder of a suspended SNDU. It MAY be used at
any time by Gateway which has already sent the first part of a SNDU.
The payload of an SNDU-Resume Extension contains a Fragment of a
SNDU payload. The final fragment includes the SNDU CRC value
calculated over the entire (reassembled) SNDU. This CRC is used to
verify the integrity and reassembly of the complete PDU. It also
binds this to the MAC address for the case D=0.
Expires June 2006 [page 21]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
The Length field in an SNDU-Resume Extension fragment specifies the
size of the SNDU-Resume payload.
A Receiver that receives an SNDU-Resume fragment that it will not
process/forward MUST silently discard all bytes from the fragment,
it MUST NOT check the CRC value of the fragment, and proceeds with
processing of the next in-sequence SNDU.
An SNDU that carries an SNDU-Resume Extension fragment that contains
the final Fragment of a suspended SNDU carries the 4 byte CRC of the
complete SNDU (that would have been sent at the end of the of the
original SNDU, had the SNDU not been suspended). This CRC is follows
the SNDU payload and is included in the calculated Length of the
SNDU that carries this final Fragment (figure 11).
It is allowed to have a SNDU-Resume fragment with a Length less than
the total remaining bytes (see Appendix for an example), however
these fragments do NOT contain a CRC field.
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1| Length (15b) | Type = 0xtbd |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
= Continuation of a previous SNDU Payload =
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CRC of Complete reassembled SNDU * |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* If the SNDU-Resume fragment contains the final byte of a SNDU, the
CRC-32 of the original SNDU (prior to fragmentation) is appended to
the SNDU-Resume fragment to form the CRC field (and included in the
Length calculation). This is not the CRC of the fragment, but in
this case the CRC of the complete reassembled SNDU. If further SNDU-
Resume fragments would be required to complete the SNDU, the CRC
field is omitted.
Figure 11: SNDU Format for a SNDU-Resume Payload (D=1).
If the number of bytes to be sent in an SNDU-Resume Extension
fragment exceeds the unfilled space in the BBFrame payload, then the
Encapsulator SHOULD by default continue transmission in the next
BBFrame for the same stream. However, it MAY instead choose (e.g.
utilising a local policy with ACM coding to optimise overall
efficiency) to suspend the partially sent frame.
Expires June 2006 [page 22]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
5.5.1 SNDU-Resume Extension fragment processing
A receiver may receive a BBFrame containing zero or more SNDUs that
carry the SNDU-Resume Extension.
The Receiver SHOULD provisionally accept all SNDUs with a Length
that is greater than the number of bytes remaining in the BBFrame,
these are called Fragments. A Receiver MAY silently discard such
SNDUs to recover the space in previously allocated reassembly
buffers, or to limit processing, e.g. if it believes it is under a
DoS attack, the resources consumed exceed some threshold, or other
information indicates the frame has been corrupted by physical layer
errors. A receiver MUST also configure a Fragment-timeout. Fragments
that have been buffered for more than this predetermined period MUST
be discarded (this procedure MUST be invoked when an encapsulation
Gateway is restarted, and MAY be invoked via the control interface).
To reassemble the Fragments of a fragmented SNDU, a Receiver should
buffer up to one full-sized SNDU for each NPA/MAC filter for which
it expects to receive SNDUs. Reassembly is performed independently
for each Stream that the Receiver is configured to receive. A
Receiver may be configured to receive an arbitrary large number of
multicast NPA/MAC addresses over a single Stream. This is in
contrast to normal reassembly, where a Receiver needs to buffer at
most one SNDU per Stream.
The Receiver detects the presence of a Fragment, when the SNDU
Length is greater than the number of bytes remaining in a BBFrame,
and the next BBFrame for the same Stream had a PP value of zero.
The processing of fragments uses the following rules:
1) Under-sized SNDU
The Receiver receives a subsequent SNDU-Resume Extension
fragment with the same NPA/MAC address of a fragment that is
pending reassembly for the Stream, and which contains less than
the expected number of bytes required to complete the SNDU
payload (SNDU Length of original base header). The Fragments
SHOULD be added to the set of Fragments to be later
reassembled.
2) Correct-sized SNDU
The Receiver receives a subsequent SNDU-Resume Extension
fragment with a NPA/MAC address that matches a Fragment pending
reassembly for the Stream, and which contains the expected
number of bytes required to complete the SNDU payload. The
Fragments are then reassembled and the CRC-32 is validated. An
invalid CRC-32 MUST result in SNDU discard. The Receiver
continues processing the next SNDU in the BBFrame.
3) Over-Sized SNDU
The Receiver receives a subsequent SNDU-Resume Extension
Fragment that matches the NPA/MAC address of a Fragment pending
Expires June 2006 [page 23]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
reassembly for the Stream, and which contains more than the
expected number of bytes required to complete the SNDU payload.
This is a framing error. All Fragments for this combination of
Stream and NPA/MAC address MUST be discarded. The Receiver
continues processing the next SNDU in the BBFrame.
4) Unexpected Fragment
The Receiver receives a SNDU that is an SNDU-Resume Extension
Fragment, but for which it has no Fragments pending reassembly
with the same NPA/MAC address for the Stream. This is not a
framing error. All Fragments for this combination of Stream and
NPA/MAC address MUST be discarded and the Receiver will
continue processing of the next received SNDU.
5) Unexpected SNDU
The Receiver receives a SNDU that is not an SNDU-Resume
Extension fragment, but has the same NPA/MAC address of a
Fragment that is pending reassembly for the Stream. This is a
framing error. All Fragments for this combination of Stream and
NPA/MAC address MUST be discarded. The Receiver then continues
processing the next received SNDU.
6) Invalid Length
The Receiver receives a SNDU with an invalid Length of a
Fragment. The SNDU MUST be discarded, and the Receiver enters
the Idle state (see section 7).
7) Time-out
Within the period specified by the specified Fragment-timeout
(see section 7), the Receiver does not receive an SNDU with a
subsequent SNDU-Resume Extension for a NPA/MAC address for
which it has Fragments outstanding. This is a framing error.
All Fragments for this combination of Stream and NPA/MAC
address MUST be discarded. The Receiver continues processing
the next received SNDU.
8) Abort
The Receiver decides by other means that it will abort the
reassembly processing. This is a not framing error. All
Fragments for this combination of Stream and NPA/MAC address
will be discarded. The Receiver continues processing the next
received SNDU.
Expires June 2006 [page 24]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
5.5.1 SNDU-Resume Extension reassembly
No specific algorithm for reassembly processing is mandated in this
specification. Implementers may choose to reassemble SNDU Fragments
as they are received, or only when all fragments are received.
When a Receiver has accumulated a set of Fragments with the Length
specified in the SNDU in the base header of the first suspended
Fragment, it must validate the reassembly. The total accumulated
size of all SNDU fragments (including the SNDU CRC in the final
fragment) MUST exactly match this Length. SNDUs with an inconsistent
length MUST be discarded (a framing error may be recorded).
The Receiver MUST verify the SNDU CRC value carried in the final 4
bytes of the final fragment of a SNDU that it has reassembled. This
value is used to verify the integrity of the reassembled SNDU.
A Receiver MUST ignore the SNDU CRC value of an SNDU-Resume fragment
that is incomplete or has not been reassembled.
A successfully reassembled SNDU payload is processed according to
the Type field specified in the base header of the first suspended
Fragment (i.e. the start of the SNDU).
5.6 SNDU-Suspend Extension
The normal (continuous) method of transmission of a SNDU requires
that a SNDU can only be fragmented if it is positioned at the end of
a BBFrame. The sender can therefore only start one fragmented SNDU
in each BBFrame, while this bounds processing costs per BBFrame, it
can impose scheduler limitations.
Use of the method described in this section allows more scheduler
flexibility. A Gateway using this method MUST use the SNDU-Resume
method to transmit the remainder of the SNDU payload.
The SNDU-Suspend Extension is specified by an IANA assigned H-Type
value of <tbd>. This is a Mandatory Extension. It enables a sender
to start a SNDU at an arbitrary position within a BBFrame, and to
then suspend processing to allow the SNDU to be completed in a
subsequent BBFrame (or aborted). It MAY be used at any time by
Gateway that wishes to start a new SNDU.
The extension header specifies the number of bytes sent in the
current fragment (always less than the SNDU Length). The normal use
of this extension is to allow a Gateway to start more than one
different fragmented SNDU in the same BBFrame, in this case the
Suspended-Length will be less than the number of bytes remaining
within a BBFrame.
A value of D=1 indicates there is no NPA/MAC address in use. A value
D=0 is also permitted, as defined in ULE, and in this case a MAC/NPA
address is attached to the SNDU base header.
Expires June 2006 [page 25]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1| Length (15b) | Type = 0xtbd-Suspend |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R| Suspended-Length (15b) | Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
= Start of a PDU =
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (CRC-32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 12: SNDU Format for a SNDU-Suspend Payload (D=1)
5.7 SNDU-Concat Extension
The SNDU-Concat Extension is specified by an IANA assigned H-Type
value of <tbd>. This is a Mandatory Extension. It enables a
sequence of (usually short) PDUs to be sent within a single SNDU
payload. Each PDU is prefixed by its length in bytes. The Receiver
processes this type of SNDU by extracting each SNDU in turn. The
Receiver first verifies the Length and CRC of the SNDU. A Receiver
MUST silently discard any data, if present, after the last complete
encapsulated PDU.
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1| Length (15b) | Type = 0xtbd-concat |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| EtherType |0| Length (15b) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
= PDU-1 =
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Length (15b) | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
= PDU-2 =
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (CRC-32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 13: SNDU Format for a SNDU-Concat Payload (D=1)
A value of D=1 indicates there is no NPA/MAC address in use. A value
D=0 is also permitted, as defined in ULE, and in this case a MAC/NPA
address is attached to the SNDU base header. When D=1, the Receiver
MUST associate the specified MAC/NPA address with all PDUs within
Expires June 2006 [page 26]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
the SNDU Payload. This MAC/NPA address MUST also be forwarded with
each PDU, if required by the forwarding interface.
6. Processing at the Encapsulator
The Encapsulator forms the PDUs queued for transmission into SNDUs
by adding a header and trailer to each PDU (section 4). It then
segments the SNDU into a series of BBFrame payloads (figure 9).
These are transmitted using a single DVB-S2 Logical Channel (denoted
by a specific ISI). Each BBFrame carries a Counter value, that is
incremented modulo 255 after transmission of the BBFrame.
+------+------------------------------+------+
|ULE | Protocol Data Unit |ULE |
|Header| |CRC-32|
+------+------------------------------+------+
/ /\ \
/ / \ \
/ / \ \
+-------+-----------------------+ +-------+-------------------+
|Encaps | | |Encaps | |
|Header | | |Header | |
+-------+-----------------------+ +-------+-------------------+
Figure 14: Encapsulation of an SNDU into a series of BBFrames
6.1 SNDU Encapsulation
When an Encapsulator has not previously sent a SNDU for a specific
Stream, or after an Idle period, it starts to send an SNDU in the
first available BBFrame. This BBFrame MUST carry a Payload Pointer
value of zero indicating the SNDU starts in the first available byte
of the BBFrame payload.
The Encapsulation MUST ensure that all BBFrames incremented by one
(e.g. modulo 256 for an 8-bit value) the Counter carried in the
Encapsulation header.
An Encapsulator MAY decide not to immediately send another SNDU,
even if space is available in a partially filled BBFrame payload.
This procedure is known as Padding (figure 11). The End Indicator
informs the Receiver that there are no more SNDUs in this BBFrame
payload. The End Indicator is followed by zero or more unused bytes
until the end of the BBFrame payload. All unused bytes MUST be set
to the value of 0xFF. The Padding procedure trades decreased
efficiency against improved latency.
Expires June 2006 [page 27]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
+-/------------+
| SubNetwork |
| DU 3 |
+-/------------+
\ \
\ \
\ \
+--------+--------+--------+----------+
| Encaps | End of | 0xFFFF | Unused |
| Header | SNDU 3 | | Bytes |
+--------+--------+--------+----------+
ULE
End
Indicator
Figure 15: A BBFrame carrying the end of SNDU 3, followed by an End
Indicator.
Alternatively, when more packets are waiting at an Encapsulator, and
the BBFrame has sufficient space remaining in the payload, the
Encapsulator can follow a previously encapsulated SNDU with another
SNDU using the next available byte of the BBFrame payload (see 6.2).
This is called Packing (figure 16).
+-/----------------+ +----------------/-+
| Subnetwork | | Subnetwork |
| DU 1 | | DU 2 |
+-/----------------+ +----------------/-+
\ \ / /\
\ \ / / \
\ \ / / \. . .
+--------+--------+--------+----------+
| Encaps | Payload| end of | start of |
| Header | Pointer| SNDU 1 | SNDU 2 |
+--------+--------+--------+----------+
| ^
| |
+--------------+
Figure 16: A BBFrame with the end of SNDU 1, followed by SNDU 2.
6.2 Procedure for Padding and Packing
Use of the Packing method by an Encapsulator is optional, and may be
determined on a per-session, per-packet, or per-SNDU basis.
6.3 Suspend/Resume processing
An encapsulation gateway MAY also decide to suspend a SNDU at the
end of BBFrame. In this case, it may continue transmission by
Expires June 2006 [page 28]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
sending SNDUs to other MAC addresses within the same Stream. It
MUST however preserve FIFO delivery of packets with the same MAC
address by either sending a subsequent SNDU-Resume fragment (see
section 5) or by aborting the suspended SNDU (by starting a new SNDU
with the same MAC address).
Expires June 2006 [page 29]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
7. Receiver Processing
A Receiver tunes to a specific S2 Multiplex and sets a receive
filter to accept all Packets from a specific Stream. A single
Receiver may be able to receive multiple Streams. In each case,
reassembly MUST be performed independently for each Stream. To
perform reassembly, the Receiver may use a buffer to hold the
partially assembled SNDUs (when the SNDU-Resume extension is used,
the buffers are managed separately for each active MAC/NPA address).
The buffer is referred to here as the Current SNDU buffer. Other
implementations may choose to use other data structures, but MUST
provide equivalent operations.
Receipt of a BBFrame with a PP value not equal to 0xFFFF indicates
that the BBFrame contains the start of a new SNDU. The value of the
Payload Pointer indicates the number of bytes to the start of the
first SNDU in the BBFrame. It is illegal to receive a Payload
Pointer value greater than the size of the BBFrame payload, and this
MUST cause the SNDU reassembly to be aborted and the Receiver to
enter the Idle State. This event SHOULD be recorded as a payload
pointer error.
A Receiver MUST support the use of both the Packing and Padding
method for any received SNDU, and MUST support reception of SNDUs
with or without a Destination Address Field (i.e. D=0 and D=1).
In GULE, the buffers that hold partially reassembled PDUs destined
for each NPA/MAC address MAY be released at any time, and SHOULD be
released after holding a buffer pending completion for a maximum of
256 BBFrames (with the same ISI). A simple way to implement this, is
to mark each partially reassembled frame with the BBFrame Counter
value of the BBFrame in which the SNDU started, and to abort (i.e.
discard the memory buffer) when the BBFrame Counter of a later
BBFrame increments to the stored value. This mechanism imposes a
maximum fragment lifetime within the DVB-S.2 link, ensuring that
badly formed fragments are purged from the Receiver. The value 255
was chosen as a balance between memory usage, and the need for
flexible fragmentation of
large PDUs.
7.1 Idle State
After initialisation, errors, or on receipt of an End Indicator, the
Receiver enters the Idle State. In this state, the Receiver discards
all BBFrames until it discovers the start of a new SNDU (using the
PP value), when it then enters the Reassembly State.
The Idle State does NOT normally result in the discard of any
buffered SNDU Fragments. The space in buffers occupied by Fragments
that are no longer required is recovered by other means (section 7).
Figure 17 outlines these state transitions:
Expires June 2006 [page 30]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
+-------+
| START |
+---+---+
|
\/
+----------+
\| Idle |/
+-------/| State |\-------+
Insufficient | +----+-----+ |
unused space | | PP valid | Physical Error
or | \/ | or
End Indicator| +----------+ | SNDU Error
| |Reassembly| |
+--------| State |--------+
+----------+
Figure 17: Receiver state transitions
7.1.1 Idle State Payload Pointer Checking
A Receiver in the Idle State MUST check the PP value in the BBFrame
header of all received BBFrames. Following a loss of
synchronisation, the Receiver MUST discard the number of bytes
indicated by the Payload Pointer (counted from the first byte of the
BBFrame payload field), before leaving the Idle State. It then
enters the Reassembly State, and starts reassembly of a new SNDU at
this point.
7.2 Processing of a Received SNDU
When in the Reassembly State, the Receiver reads a 2 byte SNDU
Length Field from the BBFrame payload. If the value is less than or
equal to 4, or equal to 0xFFFF, the Receiver discards the Current
SNDU and the remaining SNDU payload (and any Fragments pending
reassembly, see section 5) and returns to the Idle State. Receipt of
an invalid Length Field is an error event and SHOULD be recorded as
an SNDU length error.
If the Length of the Current SNDU is greater than 4, the Receiver
accepts bytes from the BBFrame payload to the Current SNDU buffer
until either Length bytes in total are received, or the end of the
BBFrame payload is reached (see also 7.2.1). When Current SNDU
length equals the value of the Length Field, the Receiver MUST
calculate and verify the CRC value (see 4.6). SNDUs that contain an
invalid CRC value MUST be discarded. Mismatch of the CRC is an error
event and SHOULD be recorded as a CRC error.
Expires June 2006 [page 31]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
When the Destination Address is present (D=0), the Receiver accepts
SNDUs that match one of a set of addresses specified by the Receiver
(this includes the NPA address of the Receiver, the NPA broadcast
address and any required multicast NPA addresses). The Receiver MUST
silently discard an SNDU with an unmatched address.
After receiving a valid SNDU, the Receiver MUST check the Type Field
(and process any Type 1 Extension Headers). The SNDU payload is then
passed to the next protocol layer specified. An SNDU with an unknown
Type value < 1536 MUST be discarded. This error event SHOULD be
recorded as an SNDU type error.
The Receiver then starts reassembly of the next SNDU. This MAY
directly follow the previously reassembled SNDU within the BBFrame
payload.
(i) If the Current SNDU finishes at the end of a BBFrame, the
Receiver MUST enter the Idle State.
(ii) If only one byte remains unprocessed in the BBFrame
payload after completion of the Current SNDU, the Receiver MUST
discard this final byte of BBFrame payload. It then enters the
Idle State. It MUST NOT record an error when the value of the
remaining byte is identical to 0xFF.
(iii) If two or more bytes of BBFrame payload data remain after
completion of the Current SNDU, the Receiver accepts the next 2
bytes and examines if this is an End Indicator. When an End
Indicator is received, a Receiver MUST silently discard the
remainder of the BBFrame payload and transition to the Idle
State. Otherwise this is the start of the next Packed SNDU and
the Receiver continues by processing this SNDU (provided that
the BBFrame has a PP value of less than 0xFFFF, see 7.2.1,
otherwise the Receiver has detected a delimiting error and MUST
discard all remaining bytes in the BBFrame payload and
transitions to the Idle State).
7.2.1 Reassembly Payload Pointer Checking
A Receiver that has partially received an SNDU (in the Current SNDU
buffer) MUST check the PP value in the header of the next
consecutive BBFrames for the same Stream (consecutive frames are
identified by verifying the Counter value associated with the
BBFrame). If the Payload Pointer does NOT equal the number of bytes
remaining to complete the Current SNDU, i.e., the difference between
the SNDU Length field and the number of reassembled bytes, or the
Counter value is not one larger, modulo 255, than in the previous
BBFrame for the same Stream) the Receiver has detected a delimiting
error, or a suspended frame. The receiver follows the procedure
described in section 5.
Expires June 2006 [page 32]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
7.3 Other Error Conditions
The Receiver MUST check the BBFrame header and physical layer for
information that indicates a BBFrame has been corrupted. If
detected, a transmission error event SHOULD be recorded, and the
entire BBFrame MUST be discarded.
The Receiver MUST check the BBFrame Counter of the Encapsulation. If
the received value does NOT increment by one for successive BBFrames
within a stream (modulo 255), the Receiver has detected a continuity
error. A BBFrame counter error event SHOULD be recorded. A loss of
continuity implies a Receiver has missed one or more SNDUs (e.g.
because they was sent using a ModCod that the Receiver was unable to
decode). The missed SNDUs do not necessarily have a NPA/MAC that the
Receiver will forward. The Receiver MUST enter the Idle State, and
use the PP value in the new BBFrame to recover framing alignment.
In Generic Mode, continuity errors may occur because an
Encapsulation Gateway uses a ModCod [ETSI-S2, S2-REQ] that does not
provide sufficient protection for the receive conditions experienced
by a Receiver or a ModCod that is not implemented by a specific the
Receiver.
Expires June 2006 [page 33]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
8. Summary
This document defines an Generic Unidirectional Lightweight
Encapsulation (GULE) to perform efficient and flexible support for
IPv4 and IPv6 network services over networks built upon the DVB S2
physical layer specification operating in the Generic Mode. The
encapsulation is also suited to transport of other protocol packets
and bridged Ethernet frames.
GULE utilises Extension Header format defined by the Uni-directional
Lihtweight Encapsulation (ULE) defined by RFC4236 and shares the
associated IANA registry for support of both mandatory and optional
SNDU headers.
9. IANA Considerations
This document will require IANA involvement for the assignment of
two new ULE option headers. These options are defined for specific
use cases envisaged by GULE, but are compatible with ULE.
10. Acknowledgments
This draft is based on the ULE protocol specification developed by
the IETF ipdvb WG. The author gratefully acknowledges the inputs,
comments and assistance offered by the members of the DVB-GBS ad hoc
group on S2 encapsulation, and the inputs provided by the DVB-RCS WG
in identifying appropriate protocol requirements. The author also
wishes to thank Bernhard Collini-Nocker for his constructive email
and to others who have patiently tried to explain DVB-S2. The author
particularly wishes to thank Juan Cantillo & Jerome Lacan for their
constant attention to detail and their contributions to the
definition of the requirements for this protocol spec. The Suspend
and Concat modes, and various other improvements followed
discussions with Rita Ronaldo and Ulrik de Be.
11. Security Considerations
The security considerations for GULE resemble those of ULE, and
security mechanisms developed as ULE extensions are expected to be
appropriate also to the use of GULE.
Expires June 2006 [page 34]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
12. References
12.1 Normative References
[RFC2119] Bradner, S., "Key Words for Use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, 1997.
[RFC1112] Deering, S., "Host extensions for IP multicasting", STD 5,
RFC 1112, August 1989.
[RFC2464] Crawford, M., "Transmission of IPv6 Packets over Ethernet
Networks", RFC 2464, December 1998.
[RFC4236] Fairhurst, G. and B. Collini-Nocker, "Unidirectional
Lightweight Encapsulation (ULE) for transmission of IP
datagrams over an MPEG-2 Transport Stream", Formerly <draft-ipdvb-
arch-xx.txt, RFC 4236, December 2006.
[ETSI-S2] EN 302 307, "Digital Video Broadcasting (DVB); Second
generation framing structure, channel coding and modulation systems
for Broadcasting, Interactive Services, News Gathering and other
broadband satellite applications", European Telecommunication
Standards Institute (ETSI).
12.2 Informative References
[ETSI-DAT] EN 301 192, "Specifications for Data Broadcasting",
European Telecommunications Standards Institute (ETSI).
[ID-S2-REQ] "Requirements for transmission of IP datagrams over DVB-
S2", Internet Draft <draft-cantillo-ipdvb-s2encaps-01.rxr>, Work in
Progress.
[ISO-MPEG] ISO/IEC DIS 13818-1:2000, "Information Technology;
Generic Coding of Moving Pictures and Associated Audio Information
Systems", International Standards Organisation (ISO).
[RFC4259 Montpetit, M.-J., Fairhurst, G., Clausen, H., Collini-
Nocker, B., and H. Linder, "A Framework for Transmission of IP
Datagrams over MPEG-2 Networks", RFC 4259, November 2006.
[S2-Eval] "Procedure for Comparative Evaluation of IP/DVB-S2
Encapsulation Protocol over Generic Streams", Technical Note, Work
in Progress, DVB TM-GBS.
[S2-REQ] GBS0339, "Functional and performance requirements for
IP/S2", DVB-TM GBS WG.
[S2-REQ-RCS] "Requirements for S2", Document 529r1, DVB TM RCS WG.
Expires June 2006 [page 35]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
13. Authors' Addresses
Godred Fairhurst
Department of Engineering
University of Aberdeen
Aberdeen, AB24 3UE
UK
Email: gorry@erg.abdn.ac.uk
Web: http://www.erg.abdn.ac.uk/users/Gorry
14. IPR Notices
14.1 Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed
to pertain to the implementation or use of the technology described
in this document or the extent to which any license under such
rights might or might not be available; nor does it represent that
it has made any independent effort to identify any such rights.
Information on the procedures with respect to rights in RFC
documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use
of such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository
at http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at ietf-
ipr@ietf.org.
14.2 Disclaimer of Validity
This document and the information contained herein are provided on
an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
15. Copyright Statement
Copyright (C) The Internet Society (2006). This document is
subject to the rights, licenses and restrictions contained in
BCP 78, and except as set forth therein, the authors retain all
their rights.
Expires June 2006 [page 36]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
Appendix A: Scenarios for Fragmentation
This appendix provides a set of informative examples of the usage of
this encapsulation.
A.1 CONSECUTIVE Fragmentation
This is the normal mode for fragmentation, where there is no
additional header overhead resulting from SNDU fragmentation. SNDU
fragments sent to the same NPA/MAC address follow in the next
consecutive BBFrame sent to the same stream. These may be
interleaved with other BBFrames associated with different streams.
In the following figure, there are no additional overhead bytes
consumed by Fragmentation of F2.
+--------------+ +-------------+
| F1 | F2a | | F2b |F3 |
|* c|* | | c|* c|
+--------------+ +-------------+
BBFrame 1 2
PP F2a F3
* = SNDU base header
c = SNDU payload CRC-32
Figure A.1.1 Fragments will follow in the next consecutive BBFrame
In the figure below, a large SNDU is fragmented across 3 consecutive
frames, each sent using the same stream.
+--------------+ +-------------+ +--------------+
| F1 | F2a | | F2b | | F2c | F3 |
|* c|* | | | | c|* c|
+--------------+ +-------------+ +--------------+
BBFrame 1 2 3
PP F2a 0xFFFF F3
* = SNDU base header
c = SNDU payload CRC-32
Figure A.1.2 Figure A.1.2 Fragments will follow in the next
consecutive BBFrame
There is no additional overhead bytes consumed by Fragmentation of
F2 in the case of fragmentation across an arbitrary number of
BBFrames.
Expires June 2006 [page 37]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
A.2 GAP Fragmentation
In the case of a "gap" fragmentation, the Encapsulation sends a
BBFrame after starting a fragment, that is not completed in the next
adjacent BBFrame. Instead, one or more BBFrames are sent which are
not directed at the same intended recipient (i.e. NPA/MAC address).
It may be, for instance be that the Receiver can not decode the
ModCod used for these intervening frames. In the figures in this
section, it is assumed that all the BBFrames are directed to the
same common stream.
In this encapsulation, this requires a fragment header in the
resumed segment (F2b shown in the figure below).
+--------------+ +-------------+ +--------------+
| F1 | F2a | |XXXXXXXXXXXXX| | F2b | |
|* c|* | | | |+ c| |
+--------------+ +-------------+ +--------------+
* = SNDU base header
+ = SNDU-Resume Fragment
c = SNDU payload CRC-32
Figure A.2.1 BBFrames are not consecutive in the SNDU flow.
The additional overhead resulting from the fragmentation of F2 = 1
base header+CRC in F2b.
+--------------+ +-------------+ +-------------+ +--------------+
| F1 | F2a | |XXXXXXXXXXXX | | F2b | | F2c | |
|* c|* | | | | |+ | | c| |
+--------------+ +-------------+ +-------------+ +--------------+
* = SNDU base header
+ = SNDU-Resume Fragment
c = SNDU payload CRC-32
Figure A.2.2 BBFrames are not consecutive in the SNDU flow.
The additional overhead resulting from the fragmentation of the SNDU
into three BBFrames is the same as that for the frame depicted in
Figure A.2.2. Since the fragment F2c is consecutive with that of
F2c (i.e. it is the next in-sequence BBFrame that was sent with the
same stream identifier), there is no additional fragmentation
header.
In some cases the Encapsulation Gateway may choose a transmission
ordering that eliminates the need for a gap transmission (in this
case, scheduling the 2nd burst in figure A.2.2 before the start of
the first). Where this is possible, it eliminates the need for the
additional overhead associated with suspending and resuming a SNDU.
Expires June 2006 [page 38]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
It is also permitted to suspend and later resume a SNDU on more than
one occasion, should the Encapsulation Gateway wish to send a frame
using space available in several BBFrames.
+--------------+ +--------------+ +--------------+
| F1 | F2a | |F3 | F2b | | F4 | F2c |
|* c|* | |* c|+ | |* c|+ c|
+--------------+ +--------------+ +--------------+
* = SNDU base header
+ = SNDU-Resume Fragment
c = SNDU payload CRC-32
Figure A.2.3 BBFrames that send F2 utilising the remaining space in
3 BBFrames.
In the above example, SNDUs F3 and F4 carry a unicast address that
is not the same as that used for F2. In this encapsulation, this
requires two fragment headers (and CRCs) in each of the resumed
segments (F2b,F2c shown in the figure below). The extra flexibility
may be justified, for example, in cases where the three BBFrames are
sent using ModCod values that provide higher protection than
required for transmission of F2, but where there is no higher
priority traffic pending transmission in these frames. In this case,
there will be a higher physical-layer cost, and the additional
overhead only adds to this transmission cost.
A.3 Abort Fragmentation
These examples show the cases where the encapsulation process is
terminated, resulting in discard of the partially received fragment.
All the examples refer to a sequence of BBFrames associated with the
same stream.
+--------------+ +-------------+
| F1 | F2a | | F3 |
|* c|* | |* c|
+--------------+ +-------------+
BBFrame 1 2
PP F2a 0 (First byte of F3)
* = SNDU base header
+ = SNDU-Resume Fragment
c = SNDU payload CRC-32
Figure A.3.1 Aborted Frame by start of a new complete SNDU (F3) to
same NPA/MAC address
In the above example, F2a is a partially complete fragment, followed
by a BBFrame that contains the start of a different SNDU that is has
Expires June 2006 [page 39]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
the same Receiver NPA/MAC address. Receipt of the SNDU F3 results in
F2a being aborted.
+--------------+ +-------------+ +--------------+
| F1 | F2a | |XXXXXXXXXXXX | | F3 | F4 |
|* c|* | | | | |* c|* c|
+--------------+ +-------------+ +--------------+
Figure A.3.2 Aborted Frame by start of a new complete fragment to
same MAC address
In the above example, F2a is a partially complete fragment, followed
by a BBFrame that is not decoded by the Receiver and F3 is a
complete SNDU sent to a different Receiver NPA/MAC address. F4 is
sent to the same MAC address as F2a, and results in F2a being
aborted.
A.4 Informative examples of usage of SNDU-Resume
These examples illustrate use of the SNDU-Resume extension. All the
examples refer to a sequence of BBFrames associated with the same
Stream.
In the following example, SNDU 2 is fragmented into three parts
(F2a,F2b,F2c). The first part of the SNDU, F2a contains the SNDU
base header, followed by a sequence of bytes until the end of the
1st BBFrame. Fragment F2b follows in a later BBFrame as a SNDU-
Resume fragment F2b, allowing transmission of F3 also within the
second BBFrame. The final part of the SNDU is also sent in an SNDU-
Resume fragment, F2c.
+--------------+ +--------------+ +--------------+
| F1 | F2a | |F2b | F3 | | F4 | F2c |
|* c|* | |+ d|* c| |* c|+ c|
+--------------+ +--------------+ +--------------+
BBFrame 1 2 3
PP 0 0 0
* = SNDU base header
+ = SNDU-Resume header
c = CRC-32 used to validate integrity of SNDU.
d = CRC-32 used only to validate framing.
Figure A.4.1 Example use of SNDU-Resume
In the example above, a decision was made by the Gateway to send
fragment F2c as a SNDU-Resume fragment. If the Fragment F2b had been
sent at the end of the second BBFrame, the Length field of the SNDU-
Resume fragment could have been set to the total number of remaining
bytes, allowing F2c to be sent as a continuation fragment,
eliminating the need for a SNDU-header for
Expires June 2006 [page 40]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
F2c (and hence improving efficiency).
+--------------+ +--------------+ +--------------+
| F1 | F2a | |F3 | F2b | | F2c | F4 |
|* c|* | |* c|+ | | c|* c|
+--------------+ +--------------+ +--------------+
BBFrame 1 2 3
PP 0 0 (1st byte of F4)
* = SNDU base header
+ = SNDU-Resume header
c = CRC-32 used to validate integrity of SNDU.
Figure A.4.2 Example use of SNDU-Resume (optimised placement)
Expires June 2006 [page 41]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
Appendix B: Alternative design options.
This section identifies a set of issued that will require further
consideration.
B.1 Expanded D-Field
00 No MAC
01 Mac 3B * **
10 Mac 6B
11 Currently Unused
* Note: Subject to a satisfactory use-case being defined.
** Note: The short-form NPA/MAC address may also be represented in
long-form by prefixing this with a well-known/reserved IEEE OUI
field. The mapping of multicast IP addresses to the short-form OUI
is to be specified. This mode is also outlined in [S2-REQ].
B.2 Reduction of CRC Field
The size of the CRC field may be reduced in future revisions of this
document, subject to alternative methods being found that provide
equivalent protection. A CRC-16 could be used in combination with
appropriate and reliable feedback from the BBFrame processing layer.
A method could be defined that does not employ a CRC for complete
(unfragmented) SNDUs.
Selection of the appropriate method requires inputs from experts
with knowledge of the DVB-S.2 channel.
B.3 Encapsulation Header Field
Two methods of adding encapsulation overhead are defined. Selection
of the appropriate method requires inputs from experts with
knowledge of the DVB-S.2 BBHeader format.
Expires June 2006 [page 42]
INTERNET DRAFT Encapsulation for IP over DVB-S2/GS Jan 2006
[RFC EDITOR NOTE:
This section must be deleted prior to publication]
DOCUMENT HISTORY
Draft 00
This draft is intended as a study item for proposed future work by
the DVB-GBS in this area. Comments relating to this document will
be gratefully received by the author(s) and may also be sent to ip-
dvb mailing list at: ip-dvb@erg.abdn.ac.uk
Draft 01
This draft was updated to include recommended placement of the
encapsulation overhead within the BBFrame header, improved
readability, correction of the counter field use (this does not
trigger realignment, and is only for OAM), improved fragmentation
text.
Draft 02
The author wishes to acknowdledge the detailed review by Juan
Cantillo & Jerome Lacan, and their comments and contributions. Many
references to MPEG-2 TS were corrected, and other minor mistakes
were also corrected.
Draft 03
This draft was updated following discussion at the DVB S.2 GS Study
Group.
The additions include:
SNDU-Resume - addition of payload format and informative examples
SNDU-Suspend - new extension
SNDU-Concat - new extension
The Idle state does not result in discard of the Currenmt SNDU (as
in GULE).
Section 1 now includes implementation notes/constraints.
It also includes a number of editorial corrections.
Draft 04
This rev of the Spec does not use the CRC for validating frame
alignment (i.e.delineating SNDU boundaries), and also therefore the
SNDU Suspend option has no CRC-32. The SNDU-Resume option only
carries a CRC when this is the final fragment of a SNDU. This
modification came from comments from Axel J. and Rita R.
Text was also updated on the Counter – to clarify use in combination
with the PP value (U.de.B).
--------------------------------------------------------------------
[END of RFC EDITOR NOTE]
Expires June 2006 [page 43]