draft-ietf-rmt-bb-fec-02.txt   draft-ietf-rmt-bb-fec-03.txt 
Internet Engineering Task Force RMT WG Internet Engineering Task Force RMT WG
INTERNET-DRAFT M.Luby/Digital Fountain INTERNET-DRAFT M.Luby/Digital Fountain
draft-ietf-rmt-bb-fec-02.txt L.Vicisano/Cisco draft-ietf-rmt-bb-fec-03.txt L.Vicisano/Cisco
J.Gemmell/Microsoft J.Gemmell/Microsoft
L.Rizzo/ACIRI and Univ. Pisa L.Rizzo/ACIRI and Univ. Pisa
M.Handley/ACIRI M.Handley/ACIRI
J. Crowcroft/UCL J. Crowcroft/UCL
17 November 2000 19 July 2001
Expires: May 2001 Expires: January 2002
RMT BB Forward Error Correction Codes RMT BB Forward Error Correction Codes
This document is an Internet-Draft and is in full conformance with all This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026. provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Task Internet-Drafts are working documents of the Internet Engineering Task
Force (IETF), its areas, and its working groups. Note that other groups Force (IETF), its areas, and its working groups. Note that other groups
may also distribute working documents as Internet-Drafts. may also distribute working documents as Internet-Drafts.
skipping to change at page 2, line 19 skipping to change at page 2, line 19
This section specifies the information that protocol packets must carry This section specifies the information that protocol packets must carry
to implement the various forms of FEC-based reliability. A session is to implement the various forms of FEC-based reliability. A session is
defined to be all the information associated with a transmission of data defined to be all the information associated with a transmission of data
about a particular object by a single sender. There are three classes about a particular object by a single sender. There are three classes
of packets that may contain FEC information within a session: data of packets that may contain FEC information within a session: data
packets, session-control packets and feedback packets. They generally packets, session-control packets and feedback packets. They generally
contain different kinds of FEC information. Note that some protocols do contain different kinds of FEC information. Note that some protocols do
not use feedback packets. not use feedback packets.
Data packets MAY sometime serve as session-control packets as well; both Data packets may sometime serve as session-control packets as well; both
data and session-control packets generally travel downstream (from the data and session-control packets generally travel downstream (from the
sender towards receivers) and are addressed to a multicast IP address sender towards receivers) and are addressed to a multicast IP address
(sometime the might be addressed to the unicast address of a specific (sometime they might be addressed to the unicast address of a specific
receiver). In the following, for simplicity we will refer to both data receiver). In the following, for simplicity we will refer to both data
and session control packets as downstream-traveling packets, or simply and session control packets as downstream-traveling packets, or simply
downstream packets. downstream packets.
As a general rule, feedback packets travel upstream (from receivers to As a general rule, feedback packets travel upstream (from receivers to
the sender) and are addressed to the unicast address of the sender. the sender) and are addressed to the unicast address of the sender.
Sometimes, however, they might be addressed to a multicast IP address or Sometimes, however, they might be addressed to a multicast IP address or
to the unicast address of a receiver or also the the unicast address of to the unicast address of a receiver or also the the unicast address of
some different node (intermediate node that provides recovery services some different node (an intermediate node that provides recovery
or neighboring router). services or a neighboring router).
The FEC-related information that can be present in downstream packets The FEC-related information that can be present in downstream packets
can be classified as follows: can be classified as follows:
1) FEC Encoding Identifier 1) FEC Encoding Identifier
Identifies the FEC encoding being used and has the purpose of Identifies the FEC encoding being used and has the purpose of
allowing receivers to select the appropriate FEC decoder. As a allowing receivers to select the appropriate FEC decoder. As a
general rule, the "FEC Encoding Identifier" MUST be the same for a general rule, the "FEC Encoding Identifier" MUST be the same for a
given session, i.e., for all transmission of data related to a given session, i.e., for all transmission of data related to a
particular object, but MAY vary across different transmissions of particular object, but MAY vary across different transmissions of
data about different objects in different sessions, even if data about different objects in different sessions, even if
transmitted using the same set of multicast groups. transmitted using the same set of multicast groups and/or using a
single upper-layer session.
2) FEC payload ID 2) FEC payload ID
Identifies the symbol(s) in the payload of the packet. The content Identifies the symbol(s) in the payload of the packet. The content
of this piece of information depends on the encoder being used of this piece of information depends on the encoder being used
(e.g. in Block FEC codes this may be the combination of block
^L ^L
index and symbol index; in expandable FEC codes this may be just a (e.g. in Block FEC codes this may be the combination of block
flat symbol identifier). index and encoding symbol identifier; in ideal expandable FEC
codes this may be just a flat encoding symbol identifier).
3) FEC Object Transmission Information 3) FEC Object Transmission Information
This is information regarding the encoding of a specific object This is information regarding the encoding of a specific object
needed by the FEC decoder (e.g. for Block FEC codes this may be needed by the FEC decoder (e.g. for Block FEC codes this may be
the combination of block length and object length). This might the combination of block length and object length). This might
also include general parameters of the FEC encoder. also include general parameters of the FEC encoder. Note that, in
strict terms, the "FEC Encoding Identifier" belongs to this class
of information, however, for practical purposes, we will consider
it separately.
All the classes of information above, except 2), can either be All the classes of information above, except 2), can either be
transmitted within the transport session (using protocol packet-header transmitted within the transport session (using protocol packet-header
fields) or out of band. The information described in 2) MUST be fields) or out of band. The information described in 2) MUST be
transmitted in data-packet header fields, as it provides a description transmitted in data-packet header fields, as it provides a description
of the data contained in the packet. In the following we specify the of the data contained in the packet. In the following we will specify
content of 1), 2) and 3) independent of whether these pieces of the content of 1), 2) and 3) regardless of whether these pieces of
information are transmitted in protocol packets or out of band. This information are transmitted in protocol packets or out of band. This
document does not specify out of band methods to transport the document neither specifies out-of-band methods to transport the
information. information nor does it specify the way out-of-band information is
associated with packet payloads. This last task is devolved to an upper-
layer protocol.
Within the context of FEC repair schemes, feedback packets are Within the context of FEC repair schemes, feedback packets are
(optionally) used to request FEC retransmission. The FEC-related (optionally) used to request FEC retransmission. The FEC-related
information present in feedback packets can be classified as follows: information present in feedback packets usually contains an FEC Block
Identifier, that defines the block that is being repaired, and the
1) FEC Block Identifier number of Repair Symbols requested. Although this is the most common
case, variants are possible in which the receivers provide more specific
This is the identifier of the FEC block for which retransmission information about the Repair Symbols requested (e.g. an index range or a
is requested. This information does not apply to some type of list of symbols accepted). It is also possible to include multiple of
decoders. these request in a single feedback packet.
2) Number of Repair Symbols
This is the number of repair symbols requested, needed to recover This document does not provide any detail about the format of FEC
the object. This is used when there are still an ample supply of information in feedback packets.
previously unsent symbols that can be sent, and this specifies the
number of such additional symbols that should be sent. This type
of request is most applicable to both small and large block FEC
codes and to expandable FEC codes.
2) Range of Repair Symbols 1.1. FEC Encoding Identifier
This is a range of the symbol indices that are being requested as This is a numeric index that identifies a specific FEC scheme OR a class
repair symbols. This is used when there is a specified set of of encoding schemes that share the same format of "FEC Payload ID" and
repair symbols that will be most useful to reconstruct input "FEC Object Transmission Information".
symbols, and in general the requested symbols will be symbols not
yet received by the requestor. This type of request is most
applicable to both small and large block FEC codes, and less
^L ^L
applicable to expandable FEC codes.
2) List of Repair Symbols The FEC Encoding Identifier identifies a specific FEC scheme when the
encoding scheme is formally and fully specified, in a way that
This is a list of the symbol indices that are being requested as
repair symbols. This is used when there is a specified set of
repair symbols that will be most useful to reconstruct input
symbols, and in general the requested symbols will be symbols not
yet received by the requestor. This type of request is most
applicable to both small and large block FEC codes, and less
applicable to expandable FEC codes.
1.1. FEC Encoding Identifier
This is a numeric index that identifies a specific FEC encoding scheme
OR a class of encoding schemes that share the same format of "FEC
Payload ID" and "FEC Object Transmission Information".
The FEC Encoding Identifier identifies a specific FEC encoding scheme
when the encoding scheme is formally and fully specified, in a way that
independent implementors can implement both encoder and decoder from the independent implementors can implement both encoder and decoder from the
specification. Companion documents of this specification may specify specification. Companion documents of this specification may specify
such FEC encoding schemes and associate them with "FEC Encoding such FEC schemes and associate them with "FEC Encoding Identifier"
Identifier" values. These documents MUST also specify a correspondent values. These documents MUST also specify a correspondent format for the
format for the "FEC Payload ID" and "FEC Object Transmission "FEC Payload ID" and "FEC Object Transmission Information". Currently
Information". Currently FEC Encoding Identifiers in the range 0-127 are FEC Encoding Identifiers in the range 0-127 are reserved for this class
reserved for this class of encoding schemes. of encoding schemes (fully-specified schemes).
It is possible that a FEC encoding scheme cannot be completely specified It is possible that a FEC scheme cannot be completely specified or that
or that such a specification is simply not available or also that a such a specification is simply not available or also that a party exists
party exists that owns the encoding scheme and it is not willing to that owns the encoding scheme and it is not willing to disclose its
disclose its algorithm. We refer to these encoding schemes as "Under- algorithm. We refer to these encoding schemes as "Under-Specified"
Specified" schemes. Under-specified schemes can still be identified as schemes. Under-specified schemes can still be identified as follows:
follows:
o A format of the fields "FEC Payload ID" and "FEC Object Transmission o A format of the fields "FEC Payload ID" and "FEC Object Transmission
Information" MUST be defined for the encoding scheme. Information" MUST be defined for the encoding scheme.
o A value of "FEC Encoding Identifier" MUST be reserved and associated o A value of "FEC Encoding Identifier" MUST be reserved and associated
to the format definitions above. An already reserved "FEC Encoding to the format definitions above. An already reserved "FEC Encoding
Identifier" MUST be reused if it is associated to the same format Identifier" MUST be reused if it is associated to the same format
of "FEC Payload ID" and "FEC Object Transmission Information" as the of "FEC Payload ID" and "FEC Object Transmission Information" as the
ones needed for the new under-specified FEC encoding scheme. ones needed for the new under-specified FEC scheme.
o A value of "FEC Encoding Name" must be reserved (see below). o A value of "FEC Encoding Name" must be reserved (see below).
^L
An Under-specified FEC scheme is completely identified by the tuple (FEC An Under-specified FEC scheme is completely identified by the tuple (FEC
Encoding Identifier, FEC Encoding Name). The party that owns this tuple Encoding Identifier, FEC Encoding Name). The tuple MUST identify a
MUST be able to provide an FEC encoder and decoder that implement the single scheme that has at least one implementation. The party that owns
under-specified FEC encoding scheme identified by the tuple. this tuple MUST be able to provide information on how to obtain the
under-specified FEC scheme identified by the tuple (e.g. a pointer to a
publicly available reference-implementation or the name and contacts of
a company that sells it, either separately or embedded in another
product).
"FEC Encoding Names" are numeric identifiers scoped by a FEC Encoding "FEC Encoding Names" are numeric identifiers scoped by a FEC Encoding
Identifier. Identifier.
The FEC Encoding Name MUST be part of the "FEC Object Transmission The FEC Encoding Name MUST be part of the "FEC Object Transmission
Information" and must be communicated to receivers together with the FEC Information" and must be communicated to receivers together with the FEC
Encoding Identifier. Encoding Identifier.
An FEC Encoding Identifier MAY also define a format for the (abstract) Different FEC schemes that share the same FEC Encoding Identifier -- but
feedback packet fields "FEC Block Identifier", "Number of Repair have different FEC Encoding Names -- also share the same format of FEC
Symbols", "Range of Repair Symbols" and "List of Repair Symbols". Payload ID and FEC Object Transmission Information.
^L
This specification reserves the range 0-127 of FEC Encoding Identifiers
for fully-specified encoding schemes and the range 128-255 for under-
specified encoding schemes.
1.2. FEC Payload ID and FEC Object Transmission Information 1.2. FEC Payload ID and FEC Object Transmission Information
A document that specifies an encoding scheme and reserves a value A document that specifies an encoding scheme and reserves a value
of FEC Encoding Identifier MUST define a packet-field format for FEC of FEC Encoding Identifier MUST define a packet-field format for FEC
Payload ID and FEC Object Transmission Information according to the need Payload ID and FEC Object Transmission Information according to the need
of the encoding scheme. This also applies to documents that reserves of the encoding scheme. This also applies to documents that reserves
values of FEC Encoding Identifiers for under-specified encoding schemes. values of FEC Encoding Identifiers for under-specified encoding schemes.
In this case the FEC Object Transmission Information must also include a In this case the FEC Object Transmission Information must also include a
field to contain the "FEC Encoding Name". field to contain the "FEC Encoding Name".
A packet field definition of FEC Object Transmission Information MUST be A packet field definition of FEC Object Transmission Information MUST be
provided despite the fact that protocol instantiation may decide to provided despite the fact that a protocol instantiation may decide to
communicate this information out of band. communicate this information out of band.
The packet field format of "FEC Block Identifier" and "Number of Repair All packet field definitions (FEC Payload ID and FEC Object Transmission
Symbols" SHOULD be specified for each FEC encoding scheme, even the Information) MUST be fully specified at the level of bit-fields and they
scheme is mainly intended for feedback-less protocols. FEC Block must have a length that is a multiple of a 4-byte word (this is to
Identifier may not apply to some encoding schemes. facilitate the alignment of packet fields in protocol instantiations).
All packet field definition (FEC Payload ID, FEC Object Transmission Note that the specification of FEC Payload ID MUST allow an
Information, FEC Block Identifier and Number of Repair Symbols) MUST be implementation-independent identification of the packet payload even in
fully specified at level of bit-fields and they must have a length that the case of Under-Specified encoding schemes.
is a multiple of a 4-byte word (this is to facilitate the alignment of
packet fields in protocol instantiations).
2. Predefined FEC encoders 2. Preassigned FEC Encoding Identifiers
This section specifies the FEC Encoding Identifier and the relative This section specifies the FEC Encoding Identifier and the relative
packets field for a number of known schemes that follow under the class packets field for a number of known schemes that follow under the class
of under-specified FEC schemes. Others may be specified in companion
^L documents.
of under-specified FEC encoding schemes. Others may be specified in
companion documents.
2.1. Small Block, Large Block and Expandable FEC Codes 2.1. Small Block, Large Block and Expandable FEC Codes
This section reserves a FEC Encoding Identifier for the family of codes This section reserves a FEC Encoding Identifier for the families of
described in Section 2.2, 2.3 and 2.4 and specifies the relative packet codes described in [1], and specifies the relative packet fields.
fields. Under-specified FEC encoding schemes that belong to this class Under-specified FEC schemes that belong to this class MUST use this
MUST use this identifier and packet field definitions. identifier and packet field definitions.
The FEC Encoding Identifier assigned to Small Block, Large Block, and The FEC Encoding Identifier for under specified codes assigned to Small
Expandable FEC Codes is 128. Block, Large Block, and Expandable FEC Codes is 128.
The FEC Payload ID is composed of an encoding symbol index and an ^L
The FEC Payload ID is composed of an encoding symbol identifier and an
encoding block number structured as follows: encoding block number structured as follows:
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| encoding block number | | encoding block number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| encoding symbol ID | | encoding symbol ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
In addition, a one bit FEC Encoding Flag SHOULD be included, and this In addition, a one bit FEC Encoding Flag MAY be included, and this flag
flag indicates whether the encoding symbol(s) in the payload of the indicates whether the encoding symbol(s) in the payload of the packet
packet are source symbol(s) or redundant symbol(s). The FEC Object are source symbol(s) or redundant symbol(s).
Transmission Information has the following structure:
The FEC Object Transmission Information has the following structure:
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FEC Encoding Name | Object Length (MSB) | | FEC Encoding Name | Object Length (MSB) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Object Length (LSB) | | Object Length (LSB) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Block Length | | Source Block Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Note that this structure limits the range of possible FEC Encoding Names Note that this structure limits the range of possible FEC Encoding Names
to 0-:-65536, despite the FEC Object Transmission Information can also to 0-:-65536, despite the fact that the FEC Object Transmission
be transmitted out of band. Information can also be transmitted out of band.
^L
The Object Length, composed of a Most Significant Bytes portion (MSB) The Object Length, composed of a Most Significant Bytes portion (MSB)
and a Least Significant Bytes portion (LSB), is expressed in bytes. and a Least Significant Bytes portion (LSB), is expressed in bytes.
There are three different types of feedback packets: number type, range 2.2. Small Block Systematic FEC Codes
type, and list type. The type of feedback packets used by the
application MUST be specified either out of band or within each feedback
packet. Feedback packets MUST contain both an FEC Block Identifier and
one of the following, depending on the type:
o number type: The number of repair symbols requested. The following definitions apply to systematic codes of small length
(total block length < 2^16).
o range type: The range of symbol indices of the repair symbols The FEC Encoding Identifier for under specified codes assigned to Small
requested. Block Systematic FEC Codes is 129.
o list type: The list of symbol indices of the repair symbols Although these codes can generally be accommodated by the FEC Encoding
requested.
The structure of feedback packets is the following: ^L
0 1 2 3 Identifier described in Section 2.1, a specific Encoding-ID is defined
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 for systematic codes to allow better flexibility and to retain header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ compactness. The small source block length and small exapansion factor
| FEC Block Identifier | that often characterize systematic codes may require that the data
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ source changes frequently the source block length. To allow the dynamic
variation of the source block length and to communicate it to the
receivers with low overhead, the block length is included in the FEC
Payload ID.
Number type: The FEC Payload ID is composed of the encoding block number, the
encoding symbol identifier and the block length:
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of Repair Symbols | | encoding block number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source block length | encoding symbol ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
^L The FEC Object Transmission Information, when used, has the following
structure:
Range type:
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Start Symbol Index of Repair Symbols | | FEC Encoding Name | Number of redundant symbols |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| End Symbol Index of Repair Symbols |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
List type: When variable block-length is used, the number of redundant symbols is
to be interpreted as a maximum value (upper bound). This field is
provided as an indication to allow receives to preallocate a decoder
suitable for all the object blocks.
0 1 2 3 Note that this structure limits the range of possible FEC Encoding Names
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 to 0-:-65536, despite the FEC Object Transmission Information can also
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ be transmitted out of band.
| N = Number of Symbols in the List |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Repair Symbol Index 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Repair Symbol Index 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Repair Symbol Index N-1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3. IANA Considerations 3. IANA Considerations
Values of FEC Encoding Identifiers and FEC Encoding Names are subject to Values of FEC Encoding Identifiers and FEC Encoding Names are subject to
IANA registration. FEC Encoding Identifiers and FEC Encoding Names are IANA registration. FEC Encoding Identifiers and FEC Encoding Names are
hierarchical: FEC Encoding Identifiers (at the top level) scope ranges hierarchical: FEC Encoding Identifiers (at the top level) scope ranges
^L
of FEC Encoding Names. Not all FEC Encoding Identifiers have a of FEC Encoding Names. Not all FEC Encoding Identifiers have a
corresponding FEC Encoding Name scope (see below). corresponding FEC Encoding Name scope (see below).
A FEC Encoding Identifier is a numeric non-negative index. Value from 0 A FEC Encoding Identifier is a numeric non-negative index. Value from 0
to 127 are reserved for FEC encoders that are fully specified, as to 127 are reserved for FEC encoders that are fully specified, as
described in section 3.1. The assignment of a FEC Encoding Identifier in described in section 3.1. The assignment of a FEC Encoding Identifier in
this range can only be granted if the requestor can provide such a this range can only be granted if the requestor can provide such a
specification published as an IETF RFC. Value grater than 127 can be specification published as an IETF RFC. Values greater than 127 can be
assigned to under-specified encoding schemes. assigned to under-specified encoding schemes. Note: this specification
already assigns the values 128 and 129.
In any case values of FEC Encoding Identifiers can only be assigned if In any case values of FEC Encoding Identifiers can only be assigned if
the required FEC packet fields corresponding to it (see section 3.1) are the required FEC packet fields corresponding to it (see section 1.2) are
^L
specified in a RFC. specified in a RFC.
Each FEC Encoding Identifier assigned to an under-specified encoding Each FEC Encoding Identifier assigned to an under-specified encoding
scheme scopes a range of FEC Encoding Names. An FEC Encoding Name is a scheme scopes an independent range of FEC Encoding Names (i.e. the same
numeric non-negative index. The document that reserves a FEC Encoding value of FEC Encoding Name can be reused for different FEC Encoding
Identifier MAY also specify a range for the subordinate FEC Encoding Identifiers). An FEC Encoding Name is a numeric non-negative index. The
Names. document that reserves a FEC Encoding Identifier MAY also specify a
range for the subordinate FEC Encoding Names.
Under the scope of a FEC Encoding Identifier, FEC Encoding Names are Under the scope of a FEC Encoding Identifier, FEC Encoding Names are
assigned on a First Come First Served base to requestors that are able assigned on a First Come First Served base to requestors that are able
to provide point of contact information and a pointer to publicly to provide point of contact information and a pointer to publicly
accessible documentation describing the FEC encoder and a ways to obtain accessible documentation describing the FEC scheme and ways to obtain it
it. The requestor is responsible for keeping this information up to (e.g. a pointer to a publicly available reference-implementation or the
date. name and contacts of a company that sells it, either separately or
embedded in another product). The requestor is responsible for keeping
this information up to date.
4. References 4. Acknowledgments
[1] Luby, M., Vicisano, L., Rizzo, L., Handley, M., Gemmell, J., Brian Adamson contributed to this document by shaping Section 2.2 and
providing general feedback. We also wish to thank Vincent Roca for his
comments.
5. References
[1] Luby, M., Vicisano, Gemmell, J., L., Rizzo, L., Handley, M.,
Crowcroft, J., "The use of Forward Error Correction in Reliable Crowcroft, J., "The use of Forward Error Correction in Reliable
Multicast", draft-ietf-rmt-info-fec-00 submited to the IETF RMT working Multicast", Internet draft draft-ietf-rmt-info-fec-00.txt, November
group, November 2000. 2000.
5. Authors' Addresses ^L
6. Authors' Addresses
Michael Luby Michael Luby
luby@digitalfountain.com luby@digitalfountain.com
Digital Fountain Digital Fountain, Inc.
600 Alabama Street 39141 Civic Center Drive
San Francisco, CA, USA, 94110 Suite 300
Fremont, CA 94538
Lorenzo Vicisano Lorenzo Vicisano
lorenzo@cisco.com lorenzo@cisco.com
cisco Systems, Inc. cisco Systems, Inc.
170 West Tasman Dr., 170 West Tasman Dr.,
San Jose, CA, USA, 95134 San Jose, CA, USA, 95134
Jim Gemmell Jim Gemmell
jgemmell@microsoft.com jgemmell@microsoft.com
Microsoft Research Microsoft Research
301 Howard St., #830 301 Howard St., #830
San Francisco, CA, USA, 94105 San Francisco, CA, USA, 94105
Luigi Rizzo Luigi Rizzo
luigi@iet.unipi.it luigi@iet.unipi.it
ACIRI, 1947 Center St., Berkeley CA 94704 ACIRI, 1947 Center St., Berkeley CA 94704
^L
and and
Dip. di Ing. dell'Informazione Dip. di Ing. dell'Informazione
Universita` di Pisa Universita` di Pisa
via Diotisalvi 2, 56126 Pisa, Italy via Diotisalvi 2, 56126 Pisa, Italy
Mark Handley Mark Handley
mjh@aciri.org mjh@aciri.org
ACIRI ACIRI
1947 Center St. 1947 Center St.
Berkeley CA, USA, 94704 Berkeley CA, USA, 94704
Jon Crowcroft Jon Crowcroft
J.Crowcroft@cs.ucl.ac.uk J.Crowcroft@cs.ucl.ac.uk
Department of Computer Science Department of Computer Science
University College London University College London
Gower Street, Gower Street,
London WC1E 6BT, UK London WC1E 6BT, UK
^L ^L
6. Full Copyright Statement 7. Full Copyright Statement
Copyright (C) The Internet Society (2000). All Rights Reserved. Copyright (C) The Internet Society (2000). All Rights Reserved.
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it or others, and derivative works that comment on or otherwise explain it or
assist in its implementation may be prepared, copied, published and assist in its implementation may be prepared, copied, published and
distributed, in whole or in part, without restriction of any kind, distributed, in whole or in part, without restriction of any kind,
provided that the above copyright notice and this paragraph are included provided that the above copyright notice and this paragraph are included
on all such copies and derivative works. However, this document itself on all such copies and derivative works. However, this document itself
may not be modified in any way, such as by removing the copyright notice may not be modified in any way, such as by removing the copyright notice
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/