draft-ietf-fecframe-simple-rs-05.txt   draft-ietf-fecframe-simple-rs-06.txt 
FecFrame V. Roca FecFrame V. Roca
Internet-Draft INRIA Internet-Draft INRIA
Intended status: Standards Track M. Cunche Intended status: Standards Track M. Cunche
Expires: May 10, 2013 INSA-Lyon/INRIA Expires: July 12, 2013 INSA-Lyon/INRIA
J. Lacan J. Lacan
ISAE, Univ. of Toulouse ISAE, Univ. of Toulouse
A. Bouabdallah A. Bouabdallah
CDTA CDTA
K. Matsuzono K. Matsuzono
Keio University Keio University
November 6, 2012 January 8, 2013
Simple Reed-Solomon Forward Error Correction (FEC) Scheme for FECFRAME Simple Reed-Solomon Forward Error Correction (FEC) Scheme for FECFRAME
draft-ietf-fecframe-simple-rs-05 draft-ietf-fecframe-simple-rs-06
Abstract Abstract
This document describes a fully-specified simple FEC scheme for Reed- This document describes a fully-specified simple FEC scheme for Reed-
Solomon codes over GF(2^^m), with 2 <= m <= 16, that can be used to Solomon codes over GF(2^^m), with 2 <= m <= 16, that can be used to
protect arbitrary media streams along the lines defined by the protect arbitrary media streams along the lines defined by the
FECFRAME framework. Reed-Solomon codes belong to the class of FECFRAME framework. The Reed-Solomon codes considered have
Maximum Distance Separable (MDS) codes which means they offer optimal attractive properties, since they offer optimal protection against
protection against packet erasures. They are also systematic codes, packet erasures and the source symbols are part of the encoding
which means that the source symbols are part of the encoding symbols. symbols which can greatly simplify decoding. However, the price to
The price to pay is a limit on the maximum source block size, on the pay is a limit on the maximum source block size, on the maximum
maximum number of encoding symbols, and a computational complexity number of encoding symbols, and a computational complexity higher
higher than that of LDPC codes for instance. than that of LDPC codes for instance.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 10, 2013. This Internet-Draft will expire on July 12, 2013.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 4, line 34 skipping to change at page 4, line 34
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
3. Definitions Notations and Abbreviations 3. Definitions Notations and Abbreviations
3.1. Definitions 3.1. Definitions
This document uses the following terms and definitions. Some of them This document uses the following terms and definitions. Some of
are FEC scheme specific and are in line with [RFC5052]: these terms and definitions are FEC scheme specific and are in line
with [RFC5052]:
Source symbol: unit of data used during the encoding process. In Source symbol: unit of data used during the encoding process. In
this specification, there is always one source symbol per ADU. this specification, there is always one source symbol per ADU.
Encoding symbol: unit of data generated by the encoding process. Encoding symbol: unit of data generated by the encoding process.
With systematic codes, source symbols are part of the encoding With systematic codes, source symbols are part of the encoding
symbols. symbols.
Repair symbol: encoding symbol that is not a source symbol. Repair symbol: encoding symbol that is not a source symbol.
skipping to change at page 5, line 18 skipping to change at page 5, line 18
Source block: a block of k source symbols that are considered Source block: a block of k source symbols that are considered
together for the encoding. together for the encoding.
Packet Erasure Channel: a communication path where packets are Packet Erasure Channel: a communication path where packets are
either dropped (e.g., by a congested router, or because the number either dropped (e.g., by a congested router, or because the number
of transmission errors exceeds the correction capabilities of the of transmission errors exceeds the correction capabilities of the
physical layer codes) or received. When a packet is received, it physical layer codes) or received. When a packet is received, it
is assumed that this packet is not corrupted. is assumed that this packet is not corrupted.
Some of them are FECFRAME framework specific and are in line with Some of these terms and definitions are FECFRAME framework specific
[RFC6363]: and are in line with [RFC6363]:
Application Data Unit (ADU): The unit of source data provided as Application Data Unit (ADU): The unit of source data provided as
payload to the transport layer. Depending on the use-case, an ADU payload to the transport layer. Depending on the use-case, an ADU
may use an RTP encapsulation. may use an RTP encapsulation.
(Source) ADU Flow: A sequence of ADUs associated with a transport- (Source) ADU Flow: A sequence of ADUs associated with a transport-
layer flow identifier (such as the standard 5-tuple {Source IP layer flow identifier (such as the standard 5-tuple {Source IP
address, source port, destination IP address, destination port, address, source port, destination IP address, destination port,
transport protocol}). Depending on the use-case, several ADU transport protocol}). Depending on the use-case, several ADU
flows may be protected together by the FECFRAME framework. flows may be protected together by the FECFRAME framework.
skipping to change at page 11, line 6 skipping to change at page 11, line 6
the ADU itself and does not include the F[i], L[i], or Pad[i] the ADU itself and does not include the F[i], L[i], or Pad[i]
fields. fields.
Then zero padding is added to ADU i (if needed) in field Pad[i], for Then zero padding is added to ADU i (if needed) in field Pad[i], for
alignment purposes up to a size of exactly E bytes. The data unit alignment purposes up to a size of exactly E bytes. The data unit
resulting from the ADU i and the F[i], L[i] and Pad[i] fields, is resulting from the ADU i and the F[i], L[i] and Pad[i] fields, is
called ADU Information (or ADUI). Each ADUI contributes to exactly called ADU Information (or ADUI). Each ADUI contributes to exactly
one source symbol of the source block. one source symbol of the source block.
Encoding Symbol Length (E) Encoding Symbol Length (E)
< -------------------------------------------------------------- > < ----------------------------------------------------------------- >
+----+----+-----------------------+------------------------------+ +----+--------+-----------------------+-----------------------------+
|F[0]|L[0]| ADU[0] | Pad[0] | |F[0]| L[0] | ADU[0] | Pad[0] |
+----+----+----------+------------+------------------------------+ +----+--------+----------+------------+-----------------------------+
|F[1]|L[1]| ADU[1] | Pad[1] | |F[1]| L[1] | ADU[1] | Pad[1] |
+----+----+----------+-------------------------------------------+ +----+--------+----------+------------------------------------------+
|F[2]|L[2]| ADU[2] | |F[2]| L[2] | ADU[2] |
+----+----+------+-----------------------------------------------+ +----+--------+------+----------------------------------------------+
|F[3]|L[3]|ADU[3]| Pad[3] | |F[3]| L[3] |ADU[3]| Pad[3] |
+----+----+------+-----------------------------------------------+ +----+--------+------+----------------------------------------------+
\_______________________________ _______________________________/ \_________________________________ ________________________________/
\/ \/
simple FEC encoding simple FEC encoding
+----------------------------------------------------------------+ +-------------------------------------------------------------------+
| Repair 4 | | Repair 4 |
+----------------------------------------------------------------+ +-------------------------------------------------------------------+
. . . .
. . . .
+----------------------------------------------------------------+ +-------------------------------------------------------------------+
| Repair 7 | | Repair 7 |
+----------------------------------------------------------------+ +-------------------------------------------------------------------+
Figure 2: Source block creation, for code rate 1/2 (equal number of Figure 2: Source block creation, for code rate 1/2 (equal number of
source and repair symbols, 4 in this example), and S = 0. source and repair symbols, 4 in this example), and S = 0.
Note that neither the initial 3 bytes nor the optional padding are Note that neither the initial 3 bytes nor the optional padding are
sent over the network. However, they are considered during FEC sent over the network. However, they are considered during FEC
encoding. It means that a receiver who lost a certain FEC source encoding. It means that a receiver who lost a certain FEC source
packet (e.g., the UDP datagram containing this FEC source packet) packet (e.g., the UDP datagram containing this FEC source packet)
will be able to recover the ADUI if FEC decoding succeeds. Thanks to will be able to recover the ADUI if FEC decoding succeeds. Thanks to
the initial 3 bytes, this receiver will get rid of the padding (if the initial 3 bytes, this receiver will get rid of the padding (if
skipping to change at page 12, line 22 skipping to change at page 12, line 22
When SDP is used to communicate the FFCI, this FEC Encoding ID MUST When SDP is used to communicate the FFCI, this FEC Encoding ID MUST
be carried in the 'encoding-id' parameter of the 'fec-repair-flow' be carried in the 'encoding-id' parameter of the 'fec-repair-flow'
attribute specified in RFC 6364 [RFC6364]. attribute specified in RFC 6364 [RFC6364].
5.1.1.2. FEC Scheme-Specific Information 5.1.1.2. FEC Scheme-Specific Information
The FEC Scheme Specific Information (FSSI) includes elements that are The FEC Scheme Specific Information (FSSI) includes elements that are
specific to the present FEC scheme. More precisely: specific to the present FEC scheme. More precisely:
o Encoding symbol length (E): a non-negative integer that indicates o Encoding Symbol Length (E): a non-negative integer, inferior to
either the length of each encoding symbol in bytes ("strict" mode, 2^16, that indicates either the length of each encoding symbol in
i.e., if S = 1), or the maximum length of any encoding symbol bytes ("strict" mode, i.e., if S = 1), or the maximum length of
(i.e., if S = 0). any encoding symbol (i.e., if S = 0).
o Strict (S) flag: when set to 1 this flag indicates that the E o Strict (S) flag: when set to 1 this flag indicates that the E
parameter is the actual encoding symbol length value for each parameter is the actual encoding symbol length value for each
block of the session (unless otherwise notified by an updated FFCI block of the session (unless otherwise notified by an updated FFCI
if this possibility is considered by the use-case or CDP). When if this possibility is considered by the use-case or CDP). When
set to 0 this flag indicates that the E parameter is the maximum set to 0 this flag indicates that the E parameter is the maximum
encoding symbol length value for each block of the session (unless encoding symbol length value for each block of the session (unless
otherwise notified by an updated FFCI if this possibility is otherwise notified by an updated FFCI if this possibility is
considered by the use-case or CDP). considered by the use-case or CDP).
skipping to change at page 19, line 13 skipping to change at page 19, line 13
on the processing load. For instance using pre-calculated tables to on the processing load. For instance using pre-calculated tables to
speedup operations over the finite field (as done with smaller finite speedup operations over the finite field (as done with smaller finite
fields) may require a prohibitive amount of memory to be used on fields) may require a prohibitive amount of memory to be used on
embedded platforms. Alternative lightweight solutions (e.g., embedded platforms. Alternative lightweight solutions (e.g.,
[RFC5170]) may be preferred in situations where the processing load [RFC5170]) may be preferred in situations where the processing load
is an issue and the source block length is large enough is an issue and the source block length is large enough
[Matsuzono10]. [Matsuzono10].
Since several values for the m parameter are possible, the use-case Since several values for the m parameter are possible, the use-case
SHOULD define which value(s) need(s) to be supported. In situations SHOULD define which value(s) need(s) to be supported. In situations
where this is not specified, the default m=8 value SHOULD be where this is not specified, the default m=8 value MUST be used.
supported and used.
In any case, any compliant implementation MUST support at least the
default m=8 value.
8. IANA Considerations 8. IANA Considerations
Values of FEC Encoding IDs are subject to IANA registration. Values of FEC Encoding IDs are subject to IANA registration.
[RFC6363] defines general guidelines on IANA considerations. In [RFC6363] defines general guidelines on IANA considerations. In
particular it defines the "FEC Framework (FECFRAME) FEC Encoding IDs" particular it defines the "FEC Framework (FECFRAME) FEC Encoding IDs"
subregistry of the "Reliable Multicast Transport (RMT) FEC Encoding subregistry of the "Reliable Multicast Transport (RMT) FEC Encoding
IDs and FEC Instance IDs" registry, whose values are granted on an IDs and FEC Instance IDs" registry, whose values are granted on an
IETF Consensus basis. IETF Consensus basis.
 End of changes. 12 change blocks. 
43 lines changed or deleted 46 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/