draft-ietf-fecframe-simple-rs-03.txt   draft-ietf-fecframe-simple-rs-04.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: September 9, 2012 NICTA Expires: April 6, 2013 INSA-Lyon/INRIA
J. Lacan J. Lacan
A. Bouabdallah A. Bouabdallah
ISAE/LAAS-CNRS ISAE, Univ. of Toulouse
K. Matsuzono K. Matsuzono
Keio University Keio University
March 8, 2012 October 3, 2012
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-03 draft-ietf-fecframe-simple-rs-04
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. Reed-Solomon codes belong to the class of
Maximum Distance Separable (MDS) codes which means they offer optimal Maximum Distance Separable (MDS) codes which means they offer optimal
protection against packet erasures. They are also systematic codes, protection against packet erasures. They are also systematic codes,
which means that the source symbols are part of the encoding symbols. which means that the source symbols are part of the encoding symbols.
skipping to change at page 1, line 45 skipping to change at page 1, line 45
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 September 9, 2012. This Internet-Draft will expire on April 6, 2013.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2012 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
skipping to change at page 6, line 36 skipping to change at page 6, line 36
symbols over which FEC encoding will be performed. symbols over which FEC encoding will be performed.
ADU Information (ADUI): a unit of data constituted by the ADU and ADU Information (ADUI): a unit of data constituted by the ADU and
the associated Flow ID, Length and Padding fields (Section 4.3). the associated Flow ID, Length and Padding fields (Section 4.3).
This is the unit of data that is used as source symbol. This is the unit of data that is used as source symbol.
FEC Framework Configuration Information: Information which controls FEC Framework Configuration Information: Information which controls
the operation of the FEC Framework. The FFCI enables the the operation of the FEC Framework. The FFCI enables the
synchronization of the FECFRAME sender and receiver instances. synchronization of the FECFRAME sender and receiver instances.
FEC Source Packet: At a sender (respectively, at a receiver) a FEC Source Packet: At a sender (respectively, at a receiver) a
payload submitted to (respectively, received from) the transport payload submitted to (respectively, received from) the transport
protocol containing an ADU along with an Explicit Source FEC protocol containing an ADU along with an Explicit Source FEC
Payload ID (that MUST be present in the FEC scheme defined by the Payload ID (that must be present in the FEC scheme defined by the
present document, see Section 5.1.2). present document, see Section 5.1.2).
FEC Repair Packet: At a sender (respectively, at a receiver) a FEC Repair Packet: At a sender (respectively, at a receiver) a
payload submitted to (respectively, received from) the transport payload submitted to (respectively, received from) the transport
protocol containing one repair symbol along with a Repair FEC protocol containing one repair symbol along with a Repair FEC
Payload ID and possibly an RTP header. Payload ID and possibly an RTP header.
The above terminology is illustrated in Figure 1 (sender's point of The above terminology is illustrated in Figure 1 (sender's point of
view): view):
+----------------------+ +----------------------+
skipping to change at page 8, line 16 skipping to change at page 8, line 16
a^^b denotes a raised to the power b. a^^b denotes a raised to the power b.
Some of them are FECFRAME framework specific: Some of them are FECFRAME framework specific:
B denotes the number of ADUs per ADU block. B denotes the number of ADUs per ADU block.
max_B denotes the maximum number of ADUs for any ADU block. max_B denotes the maximum number of ADUs for any ADU block.
3.3. Abbreviations 3.3. Abbreviations
This document uses the following abbreviations: This document uses the following abbreviations:
ADU stands for Application Data Unit. ADU stands for Application Data Unit.
ADUI stands for Application Data Unit Information.
ESI stands for Encoding Symbol ID. ESI stands for Encoding Symbol ID.
FEC stands for Forward Error (or Erasure) Correction code. FEC stands for Forward Error (or Erasure) Correction code.
FFCI stands for FEC Framework Configuration Information. FFCI stands for FEC Framework Configuration Information.
FSSI stands for FEC Scheme Specific Information. FSSI stands for FEC Scheme Specific Information.
MDS stands for Maximum Distance Separable code. MDS stands for Maximum Distance Separable code.
SBN stands for Source Block Number.
SDP stands for Session Description Protocol. SDP stands for Session Description Protocol.
4. Common Procedures Related to the ADU Block and Source Block Creation 4. Common Procedures Related to the ADU Block and Source Block Creation
This section introduces the procedures that are used during the ADU This section introduces the procedures that are used during the ADU
block and the related source block creation, for the FEC scheme block and the related source block creation, for the FEC scheme
considered. considered.
4.1. Restrictions 4.1. Restrictions
This specification has the following restrictions: This specification has the following restrictions:
o there MUST be exactly one source symbol per ADUI, and therefore o there MUST be exactly one source symbol per ADUI, and therefore
per ADU; per ADU;
o there MUST be exactly one repair symbol per FEC Repair Packet; o there MUST be exactly one repair symbol per FEC Repair Packet;
o there MUST be exactly one source block per ADU block; o there MUST be exactly one source block per ADU block;
4.2. ADU Block Creation 4.2. ADU Block Creation
Two kinds of limitations MUST be considered, that impact the ADU Two kinds of limitations exist that impact the ADU block creation:
block creation:
o at the FEC Scheme level: the finite field size (m parameter) o at the FEC Scheme level: the finite field size (m parameter)
directly impacts the maximum source block size and the maximum directly impacts the maximum source block size and the maximum
number of encoding symbols; number of encoding symbols;
o at the FECFRAME instance level: the target use-case MAY have real- o at the FECFRAME instance level: the target use-case can have real-
time constraints that MAY define a maximum ADU block size; time constraints that can/will define a maximum ADU block size;
Note that terminology "maximum source block size" and "maximum ADU Note that terminology "maximum source block size" and "maximum ADU
block size" depends on the point of view that is adopted (FEC Scheme block size" depends on the point of view that is adopted (FEC Scheme
versus FECFRAME instance). However, in this document, both refer to versus FECFRAME instance). However, in this document, both refer to
the same value since Section 4.1 requires there is exactly one source the same value since Section 4.1 requires there is exactly one source
symbol per ADU. We now detail each of these aspects. symbol per ADU. We now detail each of these aspects.
The finite field size parameter, m, defines the number of non zero The finite field size parameter, m, defines the number of non zero
elements in this field which is equal to: q - 1 = 2^^m - 1. This q - elements in this field which is equal to: q - 1 = 2^^m - 1. This q -
1 value is also the theoretical maximum number of encoding symbols 1 value is also the theoretical maximum number of encoding symbols
that can be produced for a source block. For instance, when m = 8 that can be produced for a source block. For instance, when m = 8
skipping to change at page 12, line 44 skipping to change at page 12, line 44
and the receiver(s) (Reed-Solomon decoder). and the receiver(s) (Reed-Solomon decoder).
When SDP is used to communicate the FFCI, this FEC scheme-specific When SDP is used to communicate the FFCI, this FEC scheme-specific
information is carried in the 'fssi' parameter in textual information is carried in the 'fssi' parameter in textual
representation as specified in [RFC6364]. For instance: representation as specified in [RFC6364]. For instance:
fssi=E:1400,S:0,m:8 fssi=E:1400,S:0,m:8
If another mechanism requires the FSSI to be carried as an opaque If another mechanism requires the FSSI to be carried as an opaque
octet string (for instance after a Base64 encoding), the encoding octet string (for instance after a Base64 encoding), the encoding
format consists of the following 3 octets: format consists of the following 3 octets of Figure 3:
o Encoding symbol length (E): 16 bit field. o Encoding symbol length (E): 16 bit field.
o Strict (S) flag: 1 bit field. o Strict (S) flag: 1 bit field.
o m parameter (m): 7 bit field. o m parameter (m): 7 bit field.
0 1 2 0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Encoding Symbol Length (E) |S| m | | Encoding Symbol Length (E) |S| m |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 15, line 42 skipping to change at page 15, line 42
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 9: Repair FEC Payload ID encoding format for m = 16. Figure 9: Repair FEC Payload ID encoding format for m = 16.
The format of the Repair FEC Payload ID for m = 8 and m = 16 are The format of the Repair FEC Payload ID for m = 8 and m = 16 are
illustrated in Figure 8 and Figure 9 respectively. illustrated in Figure 8 and Figure 9 respectively.
5.2. Procedures 5.2. Procedures
The following procedures apply: The following procedures apply:
o The source block creation procedures are specified in Section 4.3. o The source block creation MUST follow the procedures specified in
o The SBN value is incremented for each new source block, starting Section 4.3.
at 0 for the first block of the ADU flow. Wrapping to zero will o The SBN value MUST start with value 0 for the first block of the
happen for long sessions, after value 2^^(32-m) - 1. ADU flow and MUST be incremented by 1 for each new source block.
o The ESI of encoding symbols is managed sequentially, starting at 0 Wrapping to zero will happen for long sessions, after value
for the first symbol. The first k values (0 <= ESI <= k - 1) 2^^(32-m) - 1.
identify source symbols, whereas the last n-k values (k <= ESI <= o The ESI of encoding symbols MUST start with value 0 for the first
n - 1) identify repair symbols. symbol and MUST be managed sequentially. The first k values (0 <=
ESI <= k - 1) identify source symbols whereas the last n-k values
(k <= ESI <= n - 1) identify repair symbols.
o The FEC repair packet creation procedures are specified in o The FEC repair packet creation MUST follow the procedures
Section 5.1.3. specified in Section 5.1.3.
5.3. FEC Code Specification 5.3. FEC Code Specification
The present document inherits from [RFC5510] the specification of the The present document inherits from [RFC5510] the specification of the
core Reed-Solomon codes based on Vandermonde matrices for a packet core Reed-Solomon codes based on Vandermonde matrices for a packet
transmission channel. transmission channel.
6. Security Considerations 6. Security Considerations
The FEC Framework document [RFC6363] provides a comprehensive The FEC Framework document [RFC6363] provides a comprehensive
skipping to change at page 18, line 46 skipping to change at page 18, line 46
field are 4 bits long, so if two elements are accessed at a time, field are 4 bits long, so if two elements are accessed at a time,
read/write memory operations are aligned on bytes during encoding and read/write memory operations are aligned on bytes during encoding and
decoding. decoding.
An alternative when very large source blocks are needed is m=16 An alternative when very large source blocks are needed is m=16
(i.e., k < n <= 65535). However this choice has significant impacts (i.e., k < n <= 65535). However this choice has significant impacts
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 [Matsuzono10]. is an issue and the source block length is large enough
[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 SHOULD be
supported and used. supported and used.
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
skipping to change at page 19, line 47 skipping to change at page 19, line 48
[RFC6363] Watson, M., Begen, A., and V. Roca, "Forward Error [RFC6363] Watson, M., Begen, A., and V. Roca, "Forward Error
Correction (FEC) Framework", RFC 6363, September 2011. Correction (FEC) Framework", RFC 6363, September 2011.
[RFC6364] Begen, A., "Session Description Protocol Elements for the [RFC6364] Begen, A., "Session Description Protocol Elements for the
Forward Error Correction (FEC) Framework", RFC 6364, Forward Error Correction (FEC) Framework", RFC 6364,
October 2011. October 2011.
10.2. Informative References 10.2. Informative References
[RS-codec] [RS-codec]
Rizzo, L., "Reed-Solomon FEC codec (revised version of Rizzo, L., "Reed-Solomon FEC codec (C language)", original
July 2nd, 1998), available at codec: http://info.iet.unipi.it/~luigi/vdm98/
http://info.iet.unipi.it/~luigi/vdm98/vdm980702.tgz, vdm980702.tgz, improved codec: http://openfec.org/,
mirrored at http://planete-bcast.inrialpes.fr/ and July 1998.
http://openfec.org/", July 1998.
[Rizzo97] Rizzo, L., "Effective Erasure Codes for Reliable Computer [Rizzo97] Rizzo, L., "Effective Erasure Codes for Reliable Computer
Communication Protocols", ACM SIGCOMM Computer Communication Protocols", ACM SIGCOMM Computer
Communication Review Vol.27, No.2, pp.24-36, April 1997. Communication Review Vol.27, No.2, pp.24-36, April 1997.
[Matsuzono10] [Matsuzono10]
Matsuzono, K., Detchart, J., Cunche, M., Roca, V., and H. Matsuzono, K., Detchart, J., Cunche, M., Roca, V., and H.
Asaeda, "Performance Analysis of a High-Performance Real- Asaeda, "Performance Analysis of a High-Performance Real-
Time Application with Several AL-FEC Schemes", 35th Annual Time Application with Several AL-FEC Schemes", 35th Annual
IEEE Conference on Local Computer Networks (LCN 2010), IEEE Conference on Local Computer Networks (LCN 2010),
skipping to change at page 21, line 5 skipping to change at page 21, line 5
Vincent Roca Vincent Roca
INRIA INRIA
655, av. de l'Europe 655, av. de l'Europe
Inovallee; Montbonnot Inovallee; Montbonnot
ST ISMIER cedex 38334 ST ISMIER cedex 38334
France France
Email: vincent.roca@inria.fr Email: vincent.roca@inria.fr
URI: http://planete.inrialpes.fr/people/roca/ URI: http://planete.inrialpes.fr/people/roca/
Mathieu Cunche Mathieu Cunche
NICTA INSA-Lyon/INRIA
Australia Laboratoire CITI
6 av. des Arts
Villeurbanne cedex 69621
France
Email: mathieu.cunche@nicta.com.au Email: mathieu.cunche@inria.fr
URI: http://mathieu.cunche.free.fr/ URI: http://mathieu.cunche.free.fr/
Jerome Lacan Jerome Lacan
ISAE/LAAS-CNRS ISAE, Univ. of Toulouse
1, place Emile Blouin 10 av. Edouard Belin; BP 54032
Toulouse 31056 Toulouse cedex 4 31055
France France
Email: jerome.lacan@isae.fr Email: jerome.lacan@isae.fr
URI: http://dmi.ensica.fr/auteur.php3?id_auteur=5 URI: http://personnel.isae.fr/jerome-lacan/
Amine Bouabdallah Amine Bouabdallah
ISAE/LAAS-CNRS ISAE, Univ. of Toulouse
1, place Emile Blouin 10 av. Edouard Belin; BP 54032
Toulouse 31056 Toulouse cedex 4 31055
France France
Email: Amine.Bouabdallah@isae.fr Email: amine.bouabdallah@gmail.com
URI: http://dmi.ensica.fr/
Kazuhisa Matsuzono Kazuhisa Matsuzono
Keio University Keio University
Graduate School of Media and Governance Graduate School of Media and Governance
5322 Endo 5322 Endo
Fujisawa, Kanagawa 252-8520 Fujisawa, Kanagawa 252-8520
Japan Japan
Email: kazuhisa@sfc.wide.ad.jp Email: kazuhisa@sfc.wide.ad.jp
 End of changes. 21 change blocks. 
40 lines changed or deleted 45 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/