FEC Framework Z. Zou Internet-Draft Huawei Technologies Co., Ltd. Intended status: Standards Track May 3, 2009 Expires: November 03, 2009 Source FEC Payload Mapping Information for Sequence Flow draft-zixuan-fecframe-source-mi-00 Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and 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/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html This Internet-Draft will expire on November 3, 2009. Copyright Notice Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Abstract Per FEC framework, FEC source packet carries source FEC payload ID for FEC protection of arbitrary packet flow. This document specifies a FEC Zou, et al. Expires November 3, 2009 [Page 1] Internet-Draft source FEC payload MI May 2009 payload header and a source FEC payload mapping information unit (MIU) to enable carrying source FEC payload ID(s) in separate packet flow for FEC protection of sequence flow over unreliable transport. The FEC payload MIU consists of flexible source FEC payload ID(s) to be compatible with different FEC schemes. Table of Contents 1. Introduction ................................................. 2 2. Conventions used in this document ............................ 3 3. Transport payload format Specification ....................... 3 3.1. Packet format for Source FEC payload MIU ................ 3 3.2. Packet format for repair packet ......................... 4 3.3. FEC payload header format ............................... 5 3.4. The source FEC payload MIU format ....................... 5 3.5. The repair packet format ................................ 7 4. RTP header usage ............................................. 7 5. Security Considerations ...................................... 8 6. Normative References ......................................... 8 Authors' Addresses .............................................. 9 1. Introduction FEC Framework defines packet format for FEC source packet and FEC repair packet. Per FEC framework, FEC source packet carries generic explicit FEC payload ID for FEC protection of arbitrary packet flow. A FEC-Framework-incompatible client would fail to understand the source packet with FEC payload ID included. FEC Framework describe an non-FEC Framework-compatible case where FEC payload is not included in source packet, because FEC payload ID can be derived from other information (e.g. sequence number of some kind used by application protocol) from source packet. This case is applied to the FEC schemes that require for source packet of identical length for FEC operation. For those FEC schemes (e.g. Raptor code) free of this packet length requirement during protection for sequence packet flow, FEC payload ID is still needed. In addition, the generic FEC payload ID defined in [I-D.ietf-fecframe-framework] is 2 bytes, which is incompatible with the relevant definition of some FEC schemes, for example, Compact No-Code FEC Scheme in [RFC5445] and Raptor scheme in [RFC5053]. This document specifies a FEC payload header and a source FEC payload mapping information unit (MIU). The FEC payload header is used to enable transmit source FEC payload ID in separate flow and also to Zou, et al. Expires November 3, 2009 [Page 2] Internet-Draft source FEC payload MI May 2009 carry FEC repair flow for the purpose of sequence packet flow protection over unreliable transport such as UDP, RTP. Transmitting source FEC payload ID in separate packet flow rather than in FEC source packet brings backward-compatibility to FEC-Framework- incompatible clients. The FEC payload MIU consists of flexible source FEC payload ID(s) to accommodate different FEC schemes. 2. Conventions used in this document The 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 [RFC-2119]. 3. Transport payload format Specification This section describes FEC transport payload format for sequence packet flow protection. 3.1. Packet format for Source FEC payload MIU The packet format for source FEC payload MIU is shown in Figure 1. The transport payload consists of Application Protocol header, FEC payload header and source FEC payload MIU(s). Zou, et al. Expires November 3, 2009 [Page 3] Internet-Draft source FEC payload MI May 2009 +------------------------------------+ | IP header | +------------------------------------+ | Transport header | +------------------------------------+ | Application Protocol header | +------------------------------------+ | FEC payload header | +------------------------------------+ | Source FEC payload MIU 1 | +------------------------------------+ | Source FEC payload MIU 2 | +------------------------------------+ | ......... | +------------------------------------+ | Source FEC payload MIU N | +------------------------------------+ Figure 1 Packet format for source FEC payload MIU 3.2. Packet format for repair packet The packet format for FEC repair packet is shown in Figure 2. The transport payload consists of Application Protocol header, FEC payload header and FEC repair packet. +------------------------------------+ | IP header | +------------------------------------+ | Transport header | +------------------------------------+ | Application Protocol header | +------------------------------------+ | FEC payload header | +------------------------------------+ | Repair FEC payload ID | +------------------------------------+ | FEC repair symbols | +------------------------------------+ Figure 2 Packet Format for FEC repair packet Zou, et al. Expires November 3, 2009 [Page 4] Internet-Draft source FEC payload MI May 2009 3.3. FEC payload header format The FEC payload header format is shown in Figure 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_id | PT | reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3 FEC payload header format o fec_id (8 bits): This field identifies the FEC scheme used for FEC protection. The FEC scheme identified by this field determines the content of source FEC payload ID and FEC repair packet carried by FEC payload. o PT (8 bits): PT (Payload Type) field indicates the FEC payload type. If PT is set to 1, it indicates that the FEC payload is source FEC payload ID. If PT is set to 2, it indicates that FEC payload is repair packet. o reserved (16 bits): reserved for future use. 3.4. The source FEC payload MIU format The source FEC payload MIU format is shown in Figure 4. Zou, et al. Expires November 3, 2009 [Page 5] Internet-Draft source FEC payload MI May 2009 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |flow_id| length | initial_seq_number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Source_FEC_Payload_ID 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Source_FEC_Payload_ID 2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | ......... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Source_FEC_Payload_ID N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4 The source FEC payload MIU format o flow_id (4 bits): This field identifies the source packet flow to which FEC protection is applied. o length (12 bits): This field indicates the number of source FEC payload ID involved in a source FEC payload MIU. o Initial_seq_number (16 bits): This field indicates the sequence number of the starting source packet with respect to flow_id of a source block. The starting source packet belongs to the source packet flow identified by flow_id field. o Source_FEC_Payload_ID (Variable Length): A source FEC Payload Identificaiton specifically for use with source packets. The field size is dependent upon the FEC scheme identified by fec_id field in FEC payload header. This field in conjunction with initial_seq_number determines which source block a FEC source packet belongs to and the position of a FEC source packet in the FEC source block. MIU Example: A MIU example is shown in Figure 5, where compact no-code FEC scheme is used to protect two flows. The flow_id (fid) of protected flows are 96 and 97 respectively. Zou, et al. Expires November 3, 2009 [Page 6] Internet-Draft source FEC payload MI May 2009 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fec_id=0 | PT=1 | reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fid=96| length=4 | ISN=14567 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sbn=0 | esi=0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | esi=6 | esi=10 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fid=97| length=3 | ISN=5734 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sbn=0 | esi=15 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | esi=19 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 5 MIU Example for compact no-code FEC scheme 3.5. The repair packet format The repair packet format shall be in accordance with [I-D.ietf- fecframe-framework]. 4. RTP header usage The packet format for FEC repair packets over RTP is shown in Figure 6. +------------------------------------+ | IP header | +------------------------------------+ | Transport header | +------------------------------------+ | RTP header | +------------------------------------+ | FEC payload header | +------------------------------------+ | Repair FEC payload ID | +------------------------------------+ | FEC repair symbols | +------------------------------------+ Figure 6 packet format for FEC repair packets over RTP Zou, et al. Expires November 3, 2009 [Page 7] Internet-Draft source FEC payload MI May 2009 The packet format for source FEC payload MIU over RTP is shown in Figure 7. +------------------------------------+ | IP header | +------------------------------------+ | Transport header | +------------------------------------+ | RTP header | +------------------------------------+ | FEC payload header | +------------------------------------+ | Source FEC Payload MIUs | | ... | +------------------------------------+ Figure 7 packet format for source FEC payload MIU packet over RTP The following rule is to be followed for transmit source FEC payload MIU as RTP payload: o Marker bit (M): This bit shall be set to 1 for the very last RTP packet carrying source FEC payload ID for each source block and otherwise set to 0. The following rule is to be followed for transmit repair packet as RTP payload: o Market bit (M): This bit shall be set to 1 for the very last repair RTP packet sent for each source block and otherwise set to 0. 5. Security Considerations TBD. 6. Normative References [rfc3550] H. Schulzrinne, S. Casner, R. Frederick and V. Jacobson, " RTP: A Transport Protocol for Real-Time Applications", RFC3550, July 2003. [RFC4585] J. Ott, S. Wenger, N. Sato, C. Burmeister and J. Rey," Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/AVPF), RFC4585, July 2006 Zou, et al. Expires November 3, 2009 [Page 8] Internet-Draft source FEC payload MI May 2009 [RFC4588] J. Rey, D. Leon, A. Miyazaki, V. Varsa and R. Hakenberg, "RTP Retransmission Payload Format", RFC 4588, July 2006 [RFC5053] M. Luby, A. Shokrollahi, M. Watson and T. StockhammerRaptor "Forward Error Correction Scheme for Object Delivery", RFC5053, September 2007 [RFC5445] M. Watson, "Basic Forward Error Correction (FEC) Schemes", RFC5445, March 2009 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [I-D.ietf-fecframe-framework] M. Watson, "Forward Error Correction (FEC) Framework", draft-ietf-fecframe-framework-03 (work in progress), October 24, 2008. Authors' Addresses ZiXuan Zou Huawei Technologies Co., Ltd. Bantian, longgang Industrial Base, B1 Email:tendyntu@huawei.com Zou, et al. Expires November 3, 2009 [Page 9]