MMUSIC Working Group                                             Adam Li
INTERNET-DRAFT                                                HyerVision
Expires: December 25, 2006                                 June 25, 2006





                Forward Error Correction Grouping Semantics
                      in Session Description Protocol
                  <draft-ietf-mmusic-fec-grouping-05.txt>


Status of this memo

   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

   This document is an individual submission to the IETF. Comments
   should be directed to the authors.

Abstract

   This document defines the semantics that allows for grouping of
   forward error correction (FEC) streams with the protected payload
   streams in Session Description Protocol (SDP). The semantics defined
   in this document is to be used with Grouping of Media Lines in the
   Session Description Protocol (RFC 3388) to group together "m" lines
   in the same session.







Adam Li                                                         [Page 1]


INTERNET-DRAFT        FEC Grouping Semantics in SDP        June 25, 2006


Table of Contents

  1. Introduction.....................................................2
  2. Terminology......................................................2
  3. Forward Error Correction (FEC)...................................2
  4. FEC Grouping.....................................................3
     4.1. FEC Group...................................................3
     4.2. Offer / Answer Consideration................................3
     4.3. Example of FEC Grouping.....................................4
  5. Security Consideration...........................................4
  6. IANA Considerations..............................................5
  7. Acknowledgments..................................................5
  8. Author's Address.................................................5
  9. References.......................................................5
     9.1. Normative References........................................5
     9.2. Informative References......................................5


1. Introduction

   The media lines in an SDP [3] session may be associated with each
   other in various ways. SDP itself does not provide methods to convey
   the relationships between the media lines. Such relationships are
   indicated the extension to SDP as defined in Grouping of Media Lines
   in the Session Description Protocol (RFC 3388) [2]. RFC 3388 defines
   two types of semantics: Lip Synchronization, and Flow Identification.

   Forward Error Correction (FEC) is a common technique to achieve
   robust communication in error-prone environments. In this document,
   we define the semantics that allows for grouping of FEC streams with
   the protected payload streams in SDP by further extending RFC 3388.


2. Terminology

   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 [1].


3. Forward Error Correction (FEC)

   Forward Error Correction (FEC) is a common technique to achieve
   robust communication in error-prone environments. In FEC,
   communication uses a bandwidth that is more than payload to send
   redundantly coded payload information. The receivers can readily
   recover the original payload even when some communication is lost in
   the transmission. Compare to other error correction technique (such
   as re-transmission), FEC can achieve much lower transmission delay,
   and does not have the problem of implosion from retransmission
   requests in various multicast scenarios.



Adam Li                                                         [Page 2]


INTERNET-DRAFT        FEC Grouping Semantics in SDP        June 25, 2006



   In general, the FEC data can be sent in two different ways: (1)
   multiplexed together with the original payload stream, or (2) as a
   separate stream. It is thus necessary to define mechanisms to
   indicate the association relationship between the FEC data and the
   payload data they protect.

   When FEC data are multiplexed with the original payload stream, the
   association relationship is indicated as specified in RTP Payload for
   Redundant Audio Data (RFC 2198) [4]. As an example, such relationship
   can be indicated as in the generic RFC payload format for FEC [5].

   When FEC data are sent as a separate stream from the payload data,
   the association relationship can be indicated in various ways. This
   document on the FEC media line grouping specifies a mechanism for
   indicating such relationships.


4. FEC Grouping

4.1. FEC Group

   Each "a=group" line is used to indicate an association relationship
   between the FEC streams and the payload stream. The streams included
   in one "a=group" line are called a "FEC Group".

   Each FEC group MAY have one or more than one FEC streams, and one or
   more than one payload streams. For example, it is possible to have
   one payload streams protected by more than one FEC streams, or
   multiple payload streams sharing one FEC stream.

   Grouping streams in a FEC group only indicates the association
   relationship between streams. The detailed FEC protection
   scheme/parameters are conveyed through the mechanism of the
   particular FEC algorithm used. For example, the FEC grouping is used
   for generic RTP payload for FEC (RFC YYYY) [5] to indicate the
   association relationship between the FEC stream and the payload
   stream. The detailed protection level and length information for the
   ULP algorithm is communicated in band within the FEC stream.

4.2. Offer / Answer Consideration

   The backward compatibility in offer / answer is generally handled as
   specified in RFC 3388 [2].

   Depending on the implementation, a node that does not understand FEC
   grouping (either does not understand line grouping at all, or just
   does not understand the FEC semantics) SHOULD respond to an offer
   containing FEC grouping either (1) with an answer which ignores the
   grouping attribute, or (2) with a refusal to the request (e.g., 488
   Not acceptable here or 606 Not Acceptable in SIP).



Adam Li                                                         [Page 3]


INTERNET-DRAFT        FEC Grouping Semantics in SDP        June 25, 2006



   In the first case, the original sender of the offer MUST establish
   the connection without FEC. In the second case, if the sender of the
   offer still wishes to establish the session, it SHOULD re-try the
   request with an offer without FEC.

4.3. Example of FEC Grouping

   The following example shows a session description of a multicast
   conference. The first media stream (mid:1) contains the audio stream.
   The second media stream (mid:2) contains the Generic FEC [5]
   protection for the audio stream. These two streams form an FEC Group.
   The relationship between the two streams is indicated by the
   "a=group:FEC 1 2" line. The FEC stream is sent to the same multicast
   group and has the same TTL as the audio, but on a port number two
   higher. Likewise, the video stream (mid:3) and its Generic FEC
   protection stream (mid:4) forms another FEC group. The relationship
   between the two streams is indicated by the "a=group:FEC 3 4" line.
   The FEC stream is sent to a different multicast address, but has the
   same port number (30004) as the payload video stream.


       v=0
       o=adam 289083124 289083124 IN IP4 host.example.com
       s=ULP FEC Seminar
       t=0 0
       c=IN IP4 224.2.17.12/127
       a=group:FEC 1 2
       a=group:FEC 3 4
       m=audio 30000 RTP/AVP 0
       a=mid:1
       m=audio 30002 RTP/AVP 100
       a=rtpmap:100 ulpfec/8000
       a=mid:2
       m=video 30004 RTP/AVP 31
       a=mid:3
       m=video 30004 RTP/AVP 101
       c=IN IP4 224.2.17.13/127
       a=rtpmap:101 ulpfec/8000
       a=mid:4


5. Security Consideration

   There is a weak threat for the receiver that the FEC grouping can be
   modified to indicate FEC relationships that do not exist. Such
   attacks may result in failure of FEC protect, and/or mishandling of
   other media payload streams. It is recommended that the receiver
   SHOULD do integrity check on SDP and follow the security
   considerations of SDP to only trust SDP from trusted sources.




Adam Li                                                         [Page 4]


INTERNET-DRAFT        FEC Grouping Semantics in SDP        June 25, 2006


6. IANA Considerations

   This document defines the semantics to be used with grouping of media
   lines in SDP as defined in RFC 3388. The semantics defined in this
   document are to be registered by the IANA when they are published in
   standard track RFCs.

   The following semantics need to be registered with IANA in Semantic
   for the "group" SDP Attribute under SDP Parameters.

   Semantics                  Token   Reference
   ------------------------   -----   ----------
   Forward Error Correction   FEC     [RFC XXXX]


7. Acknowledgments

   The author would like to thank Magnus Westerlund, Colin Perkins,
   Joerg Ott, and Cullen Jennings for their feedback on this document.


8. Author's Address

   Adam Li
   HyerVision
   10194 Wateridge Circle #152
   San Diego, CA 92121
   U.S.A.
   Tel:    +1 858 622 9038
   Email:  adamli@hyervision.com


9. References

9.1. Normative References

   [1]  S. Bradner, "Key words for use in RFCs to Indicate Requirement
        Levels", RFC 2119, March 1997.
   [2]  G. Camarillo, J. Holler, and H. Schulzrinne, "Grouping of Media
        Lines in the Session Description Protocol (SDP)", RFC 3388,
        December 2002.

9.2. Informative References

   [3]  M. Handley, V. Jacobson, and C. Perkins, "SDP: Session
        Description Protocol", IETF work in progress, January 2006.
   [4]  C. Perkins, I. Kouvelas, O. Hodson, V. Hardman, M. Handley, J.C.
        Bolot, A. Vega-Garcia, and S. Fosse-Parisis, "RTP Payload for
        Redundant Audio Data", RFC 2198, September 1997.
   [5]  A. Li, "An RFC Payload Format for Generic FEC", IETF work in
        progress, March 2006.



Adam Li                                                         [Page 5]


INTERNET-DRAFT        FEC Grouping Semantics in SDP        June 25, 2006



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.


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.

   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.













Adam Li                                                         [Page 6]


INTERNET-DRAFT        FEC Grouping Semantics in SDP        June 25, 2006


RFC Editor Considerations

   The RFC-editor is kindly requested to perform the following
   modifications upon the publication of this specification:

   - Replace all occurrences of RFC XXXX with the RFC number this
   specification receives when being published.

   - Replace reference [5] and all occurrences of RFC YYYY with the
   corresponding title and RFC number of that ID when it is published.

   - Remove this Section.

This Internet-Draft expires December 25, 2006.








































Adam Li                                                         [Page 7]