Internet DRAFT - draft-mandyam-rtcweb-fecframebundledssrc

draft-mandyam-rtcweb-fecframebundledssrc







Rtcweb Working Group                                          G. Mandyam
Internet-Draft                                Qualcomm Innovation Center
Intended status: Informational                                   M. Luby
Expires: December 18, 2015                    Qualcomm Technologies Inc.
                                                          T. Stockhammer
                                         Qualcomm CDMA Technologies GMBH
                                                           June 16, 2015


  FEC FRAME Raptor Extensions for Multiple RTP Synchronization Sources
              draft-mandyam-rtcweb-fecframebundledssrc-00

Abstract

   The FEC FRAME Raptor code options do not currently address the case
   of bundled protection of multiple media types over multiple real-time
   transport protocol (RTP) synchronization sources (SSRC's).  This
   document provides the FEC source and repair payload definitions that
   enable a single repair flow to be defined for multiple RTP flows

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on December 18, 2015.

Copyright Notice

   Copyright (c) 2015 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
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must



Mandyam, et al.         Expires December 18, 2015               [Page 1]

Internet-Draft           FECFRAME4MultipleSSRCs                June 2015


   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Multi-sequenced Flows with Explicit Source FEC Payload ID . .   2
     2.1.  RTP Header Extension for Source FEC Payload ID  . . . . .   3
     2.2.  Repair FEC Payload ID . . . . . . . . . . . . . . . . . .   3
     2.3.  New RTP Header Extension URI's  . . . . . . . . . . . . .   3
   3.  Multi-sequenced Flows without Source FEC Payload ID . . . . .   3
     3.1.  Source FEC Payload ID . . . . . . . . . . . . . . . . . .   4
     3.2.  Repair FEC Payload ID . . . . . . . . . . . . . . . . . .   4
     3.3.  Procedures  . . . . . . . . . . . . . . . . . . . . . . .   5
       3.3.1.  Source Symbol Contruction . . . . . . . . . . . . . .   5
       3.3.2.  Derivations of Source FEC Packet Identification
               Information . . . . . . . . . . . . . . . . . . . . .   5
       3.3.3.  Procedures for RTP Source Flows . . . . . . . . . . .   6
   4.  Registration of the 'bundled/raptorfec' Media Type  . . . . .   6
   5.  SDP Example . . . . . . . . . . . . . . . . . . . . . . . . .   7
     5.1.  With RTP Extensions . . . . . . . . . . . . . . . . . . .   7
     5.2.  Without RTP Extensions  . . . . . . . . . . . . . . . . .   7
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   8
   7.  Normative References  . . . . . . . . . . . . . . . . . . . .   8
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   9

1.  Introduction

   [RFC6681] provides the specification of the fully formed Forward
   Error Correction (FEC) scheme for Raptor/RaptorQ codes in the context
   of the FEC Framework (FEC Frame - see [RFC6363]).  This document
   provides extensions that allow for protection of multiple RTP flows
   where each flow has its own unique sequence number space.  There are
   two approaches described: one using explicit source FEC payload ID's,
   and one that does not.

2.  Multi-sequenced Flows with Explicit Source FEC Payload ID

   As per Section 6 of [RFC6681], arbitrary flows (including RTP flows)
   can be protected if the source is identified explicitly using a
   Source FEC Payload ID.  However, the Source FEC Payload ID must be
   sent along with the source payload to the receiver.








Mandyam, et al.         Expires December 18, 2015               [Page 2]

Internet-Draft           FECFRAME4MultipleSSRCs                June 2015


2.1.  RTP Header Extension for Source FEC Payload ID

   It is recommended that the Source FEC Payload ID as defined in
   Section 6.2.2 of [RFC6681] be used in an RTP header extension for
   each RTP source stream packet.  Since the Source FEC Payload ID is 32
   bits long (4 bytes), the 1-byte header extension solution in
   Section 4.2 of [RFC5285] is sufficient for identifying the Source FEC
   Payload ID.  Note however that there may be reasons to use the 2-byte
   header extension solution provided in Section 4.3 of [RFC5285] (e.g.
   due to the need for 8-bit extension ID encoding).

2.2.  Repair FEC Payload ID

   The Repair FEC Payload ID is used as defined in Section 6.2.3 of
   [RFC6681].  This will be sent along with the associated repair
   payload in a repair FEC stream (i.e.  RTP flow).  This can also be
   sent as a RTP header extension (although it can be included in the
   RTP payload of the repair FEC stream).  As with the Source FEC
   Payload ID, the 1-byte header extension method is preferred.

2.3.  New RTP Header Extension URI's

   [RFC EDITOR NOTE: Please replace RFCXXXX with the RFC number of this
   document.]

   This document defines two new extension URI's in the RTP Compact
   Header Extensions subregistry of the Real-Time Transport Protocol
   (RTP) Parameters registry, according to the following data:


          Extension URI: urn:ietf:params:rtp-hdrext:FEC-FR:SourceID
          Description:   Source FEC Payload ID
          Contact:       mandyam@quicinc.com
          Reference:     RFCXXXX

          Extension URI: urn:ietf:params:rtp-hdrext:FEC-FR:RepairID
          Description:   Repair FEC Payload ID
          Contact:       mandyam@quicinc.com
          Reference:     RFCXXXX


3.  Multi-sequenced Flows without Source FEC Payload ID

   Section 8 of [RFC6681] describes the necessary procedures for single-
   sequenced flows.  This section extends this method for multi-
   sequenced flows, in particular multiple RTP flows corresponding to
   different SSRC's.  The FEC Scheme ID's used are 5 and 6.




Mandyam, et al.         Expires December 18, 2015               [Page 3]

Internet-Draft           FECFRAME4MultipleSSRCs                June 2015


3.1.  Source FEC Payload ID

   As with the approach provided in [RFC6681] for single-sequenced
   flows, a source FEC Payload ID is not used as the source packets are
   not modified.

3.2.  Repair FEC Payload ID

   In contrast to Section 8.1.3 of [RFC6681], only one format for the
   Repair FEC Payload is provided (based on Format A), but with
   necessary extensions for multi-sequenced flows.  The number of flows
   in a repair packet and the order in which the flows appear in the
   repair packet are determined using out-of-band signalling (for an SDP
   example, see Section 5.2).


                            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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |    Initial Sequence Number    |    Source Sub-Block Length    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |    Initial Sequence Number    |    Source Sub-Block Length    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |              ...              |      Encoding Symbol ID       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



                   Repair FEC Payload ID (multisequence)

                                 Figure 1

   Initial Sequence Number (Flow i ISN), (16 bits):  This field
         specifies the lowest 16 bits of the sequence number of the
         first packet to be included in this sub-block.  If the sequence
         numbers are shorter than 16 bits, then the received Sequence
         Number SHALL be logically padded with zero bits to become 16
         bits in length, respectively.  The field type is unsigned
         integer.

   Source Sub-Block Length (SSBL), (16 bits):  This field specifies the
         length of the source sub-block in symbols.  The field type is
         unsigned integer.

   Encoding Symbol ID (ESI), (16 bits):  This field indicates which
         repair symbols are contained within this repair packet.  The
         ESI provided is the ESI of the first repair symbol in the
         packet.  The field type is unsigned integer.



Mandyam, et al.         Expires December 18, 2015               [Page 4]

Internet-Draft           FECFRAME4MultipleSSRCs                June 2015


3.3.  Procedures

   There are slight changes necessary to the procedures outlined in
   Section 8.2 of [RFC6681] in order to accomodate multiple sequenced
   flows.

3.3.1.  Source Symbol Contruction

   FEC Scheme 5 and FEC Scheme 6 use the procedures defined in Section 5
   of [RFC6681] to construct a set of source symbols to which the FEC
   code can be applied.

   During the construction of the source block:

   o  the flow identifier, f[i], for each flow included in the source
      packet information.

   o  the length indication, l[i], included in the Source Packet
      Information for each packet shall be dependent on the protocol
      carried within the transport payload.  Rules for RTP are specified
      below.

   o  the value of s[i] in the construction of the Source Packet
      Information for each packet shall be the smallest integer such
      that s[i]*T >= (l[i]+3).

3.3.2.  Derivations of Source FEC Packet Identification Information

   The Source FEC Packet Identification Information for a source packet
   is derived from the flows in each packet, sequence number of each
   individual flow of the packet, and information received in any repair
   FEC packet belonging to this source block.  The application data
   units (ADU's) that constitute the source block are identified by the
   associated flow identifier and sequence number of the first source
   packet in the block.  This information is signaled in all repair FEC
   packets associated with the source block in the Initial Sequence
   Number field.

   The length of the Source Packet Information (in octets) for source
   packets within a source block is equal to the length of the payload
   containing encoding symbols of the repair packets (i.e., not
   including the Repair FEC Payload ID) for that block, which MUST be
   the same for all repair packets.  The Application Data Unit
   Information Length (ADUIL) in symbols is equal to this length divided
   by the encoding symbol size (which is signaled in the FEC Framework
   Configuration Information).  The set of source packets included in
   the source block is determined by the Initial Sequence Number (ISN)
   and Source Sub-Block Length (SSBL) as follows:



Mandyam, et al.         Expires December 18, 2015               [Page 5]

Internet-Draft           FECFRAME4MultipleSSRCs                June 2015


   Let,

   o  f be the index of the flow, i.e. if f refers to the first flow in
      the source block then f=1.

   o  I(f) be the Initial Sequence Number of the source sub-block from
      flow f

   o  LP(f) be the Source Sub-Block Information Length in symbols for
      flow f

   o  LB(f) be the Source Sub-Block Length in symbols for flow f

   Then, source packets with sequence numbers from I(f) to I(f)
   +(LB(f)/LP(f))-1 for flow f inclusive are included in the source
   block.  The Source Sub-Block Length, LB(f), MUST be chosen such that
   it is at least as large as the largest Source Packet Information
   Length LP(f).

   Note that if no FEC repair packets are received, then no FEC decoding
   is possible, and it is unnecessary for the receiver to identify the
   Source FEC Packet Identification Information for the source packets.

   For FEC Scheme 1, the ESI value placed into a repair packet is
   calculated as specified in Section 5.3.2 of [RFC5053].

   For FEC Scheme 2, the ESI value placed into a repair packet is
   calculated as specified in Section 4.4.2 of [RFC6330].

   In both cases, K is identical to the sum of all the SSBL's indicated
   in the repair packet.

3.3.3.  Procedures for RTP Source Flows

   In the specific case of RTP source packet flows, the RTP Sequence
   Number field SHALL be used as the sequence number in the procedures
   described above.  The length indication included in the Application
   Data Unit Information SHALL be the sum over all flows of the RTP
   payload length plus the length of the contributing sources (CSRCs),
   if any, the RTP Header Extension, if present, and the RTP padding
   octets, if any.  Note that this length is always equal to the UDP
   payload length of the packet minus 12.

4.  Registration of the 'bundled/raptorfec' Media Type

   This RTP payload format is identified using the 'bundled/raptorfec'
   media type that is registered in accordance with [RFC4855] and uses




Mandyam, et al.         Expires December 18, 2015               [Page 6]

Internet-Draft           FECFRAME4MultipleSSRCs                June 2015


   the template of [RFC4288].  The Media Type Definition is identical to
   'video/raptorfec' and can be found in Section 6.2.1 of [RFC6682].

5.  SDP Example

5.1.  With RTP Extensions

   An SDP example employing bundled protection of a video and audio
   stream (derived from Section 10 of [RFC6681]) is shown below.  In
   this example, the SDP guidance provided in Section 5 of [RFC5285] is
   also used.


           v=0
           o=ali 1122334455 1122334466 IN IP4 fec.example.com
           s=Raptor FEC Example
           t=0 0
           a=group:FEC-FR S1 S2 R1
           m=video 30000 RTP/AVP 100
           c=IN IP4 233.252.0.1/127
           a=rtpmap:100 MP2T/90000
           a=fec-source-flow: id=0
           a=mid:S1
           a=extmap:1 urn:ietf:params:rtp-hdrext:FEC-FR:SourceID
           m=audio 10000 RTP/AVP 0 8 97
           c=IN IP4 233.252.0.2/127
           b=AS:200
           a=rtpmap:0 PCMU/8000
           a=mid:S2
           a=extmap:1 urn:ietf:params:rtp-hdrext:FEC-FR:SourceID
           a=fec-source-flow: id=1
           m=application 30000 UDP/FEC
           c=IN IP4 233.252.0.3/127
           a=fec-repair-flow: encoding-id=6; fssi=Kmax:8192,T:128,P:A
           a=repair-window:200ms
           a=mid:R1
           a=extmap:1 urn:ietf:params:rtp-hdrext:FEC-FR:RepairID


5.2.  Without RTP Extensions

   An SDP example employing bundled protection of a video and audio
   stream (derived from Section 10 of [RFC6681]) is shown below.  In
   this example, source flows (S1 and S2) identified in the 'a=group'
   attirbute appear in this order in the Repair FEC Payload ID (see
   Figure 1).





Mandyam, et al.         Expires December 18, 2015               [Page 7]

Internet-Draft           FECFRAME4MultipleSSRCs                June 2015


           v=0
           o=ali 1122334455 1122334466 IN IP4 fec.example.com
           s=Raptor FEC Example
           t=0 0
           a=group:FEC-FR S1 S2 R1
           m=video 30000 RTP/AVP 100
           c=IN IP4 233.252.0.1/127
           a=rtpmap:100 MP2T/90000
           a=fec-source-flow: id=0
           a=mid:S1
           m=audio 10000 RTP/AVP 0 8 97
           c=IN IP4 233.252.0.2/127
           b=AS:200
           a=rtpmap:0 PCMU/8000
           a=mid:S2
           a=fec-source-flow: id=1
           m=application 30000 UDP/FEC
           c=IN IP4 233.252.0.3/127
           a=fec-repair-flow: encoding-id=6; fssi=Kmax:8192,T:128,P:A
           a=repair-window:200ms
           a=mid:R1


6.  IANA Considerations

   This memo includes no request to IANA.

7.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC4288]  Freed, N. and J. Klensin, "Media Type Specifications and
              Registration Procedures", RFC 4288, December 2005.

   [RFC4855]  Casner, S., "Media Type Registration of RTP Payload
              Formats", RFC 4855, February 2007.

   [RFC5052]  Watson, M., Luby, M., and L. Vicisano, "Forward Error
              Correction (FEC) Building Block", RFC 5052, August 2007.

   [RFC5053]  Luby, M., Shokrollahi, A., Watson, M., and T. Stockhammer,
              "Raptor Forward Error Correction Scheme for Object
              Delivery", RFC 5053, October 2007.

   [RFC5285]  Singer, D. and H. Desineni, "A General Mechanism for RTP
              Header Extensions", RFC 5285, July 2008.




Mandyam, et al.         Expires December 18, 2015               [Page 8]

Internet-Draft           FECFRAME4MultipleSSRCs                June 2015


   [RFC6330]  Luby, M., Shokrollahi, A., Watson, M., Stockhammer, T.,
              and L. Minder, "RaptorQ Forward Error Correction Scheme
              for Object Delivery", RFC 6330, August 2011.

   [RFC6363]  Watson, M., Begen, A., and V. Roca, "Forward Error
              Correction (FEC) Framework", RFC 6363, October 2011.

   [RFC6364]  Begen, A., "Session Description Protocol Elements for the
              Forward Error Correction (FEC) Framework", RFC 6364,
              October 2011.

   [RFC6681]  Watson, M., Stockhammer, T., and M. Luby, "Raptor Forward
              Error Correction (FEC) Schemes for FECFRAME", RFC 6681,
              August 2012.

   [RFC6682]  Watson, M., Stockhammer, T., and M. Luby, "RTP Payload
              Format for Raptor Forward Error Correction (FEC)", RFC
              6682, August 2012.

Authors' Addresses

   Giridhar Mandyam
   Qualcomm Innovation Center
   5775 Morehouse Drive
   San Diego, California  92121
   USA

   Phone: +1 858 651 7200
   Email: mandyam@quicinc.com


   Mike Luby
   Qualcomm Technologies Inc.
   2030 Addison Street
   Berkeley, California  94704
   USA

   Phone: +1 510 725 3502
   Email: luby@qti.qualcomm.com












Mandyam, et al.         Expires December 18, 2015               [Page 9]

Internet-Draft           FECFRAME4MultipleSSRCs                June 2015


   Thomas Stockhammer
   Qualcomm CDMA Technologies GMBH
   Franziskanerstrasse 14
   Munich  81669
   Germany

   Phone: +49 86190959757
   Email: tsto@qti.qualcomm.com











































Mandyam, et al.         Expires December 18, 2015              [Page 10]