RMT                                                              M. Luby
Internet-Draft                                     Qualcomm Incorporated
Intended status:  Standards Track                         T. Stockhammer
Expires:  March 10, 2012                                  Nomor Research
                                                       September 7, 2011
                Universal Object Delivery using RaptorQ
                       draft-luby-uod-raptorq-01
Abstract
   This document describes a Fully-Specified FEC scheme, identified by
   the FEC Encoding ID 7 (to be determined (tbd)), for Universal Object
   Delivery using the RaptorQ Forward Error Correction (FEC) Scheme for
   Object Delivery.  This document introduces a new FEC Payload ID,
   called the Universal Object Symbol Identifier (UOSI), and describes
   how to use the UOSI together with RaptorQ FEC Scheme to provide
   simplified and enhanced object delivery capabilities.  In particular,
   flexible and simple support is provided for basic object delivery,
   and support is also provided for unequal error protection (UEP)
   object delivery, for bundled object delivery, and for any combination
   of UEP and bundled object delivery.
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 March 10, 2012.
Copyright Notice
   Copyright (c) 2011 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

Luby & Stockhammer       Expires March 10, 2012                 [Page 1]


Internet-Draft          Universal Object Delivery         September 2011
   (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
   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 . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Requirements Notation  . . . . . . . . . . . . . . . . . . . .  3
   3.  Formats and Codes  . . . . . . . . . . . . . . . . . . . . . .  3
     3.1.  FEC Payload IDs  . . . . . . . . . . . . . . . . . . . . .  3
     3.2.  FEC Object Transmission Information  . . . . . . . . . . .  4
       3.2.1.  General  . . . . . . . . . . . . . . . . . . . . . . .  4
       3.2.2.  Mandatory  . . . . . . . . . . . . . . . . . . . . . .  4
       3.2.3.  Common . . . . . . . . . . . . . . . . . . . . . . . .  4
       3.2.4.  Scheme-Specific  . . . . . . . . . . . . . . . . . . .  5
   4.  Procedures . . . . . . . . . . . . . . . . . . . . . . . . . .  6
     4.1.  Introduction . . . . . . . . . . . . . . . . . . . . . . .  6
     4.2.  Content Delivery Protocol Requirements . . . . . . . . . .  6
     4.3.  Example Parameter Derivation Algorithm . . . . . . . . . .  7
     4.4.  Object Delivery  . . . . . . . . . . . . . . . . . . . . .  7
       4.4.1.  Source block construction  . . . . . . . . . . . . . .  7
       4.4.2.  Encoding packet construction . . . . . . . . . . . . .  7
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . .  9
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  9
   7.  References . . . . . . . . . . . . . . . . . . . . . . . . . .  9
     7.1.  Normative References . . . . . . . . . . . . . . . . . . .  9
     7.2.  Informative References . . . . . . . . . . . . . . . . . .  9
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 10






Luby & Stockhammer       Expires March 10, 2012                 [Page 2]


Internet-Draft          Universal Object Delivery         September 2011
1.  Introduction
   This document describes a Fully-Specified FEC scheme, identified by
   the FEC Encoding ID 7 (to be confirmed (tbc)), for Universal Object
   Delivery using the RaptorQ FEC Scheme specified in
   [I-D.ietf-rmt-bb-fec-raptorq], hereafter referred to as the UOD-
   RaptorQ FEC Scheme.  This document introduces a new FEC Payload ID,
   called the universal object symbol identifier (UOSI), and describes
   how to use the UOSI together with RaptorQ FEC Scheme
   [I-D.ietf-rmt-bb-fec-raptorq] to provide simplified and enhanced
   object delivery capabilities.  In particular, more flexible and
   simpler support is provided for basic object delivery when compared
   to the generic scheme defined in[I-D.ietf-rmt-bb-fec-raptorq], and
   support is also provided for unequal error protection (UEP) object
   delivery (for example as described in [PET]), for bundled object
   delivery, and for any combination of UEP and bundled object delivery.
2.  Requirements Notation
   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 [RFC2119].
3.  Formats and Codes
3.1.  FEC Payload IDs
   The FEC Payload ID MUST be a 4-octet field defined as follows:
        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |        Universal Object Symbol Identifier (UOSI)              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                      Figure 1: FEC Payload ID format
   o  Universal Object Symbol Identifier (UOSI), (32 bits, unsigned
      integer):  A non-negative integer that, in conjunction with the
      FEC Object Transmission Information (OTI), is used to identify the
      encoding symbols contained within the packet.
   The interpretation of the Universal Object Symbol Identifier is
   defined in Section 4.

Luby & Stockhammer       Expires March 10, 2012                 [Page 3]


Internet-Draft          Universal Object Delivery         September 2011
3.2.  FEC Object Transmission Information
3.2.1.  General
   For the delivery of a single object, or multiple objects, or a single
   object partitioned into parts with different priorities, or any
   combination of these, the FEC OTI is as described in this section.
   It should be noted that for each object delivered, the FEC OTI is
   exactly the same as specified in RaptorQ FEC Scheme
   [I-D.ietf-rmt-bb-fec-raptorq].  Each object described herein may be
   different for parts of the same file, or for different files, or
   combinations thereof.  The relationship between the size of object I,
   F(I), and the size of the encoding symbol to be used for object I,
   T(I), determines the priority of object I in the transmission.
3.2.2.  Mandatory
   The value of the FEC Encoding ID MUST be 7 (tbd), as assigned by IANA
   (see Section 6).
3.2.3.  Common
   The Common FEC Object Transmission Information elements used by this
   FEC Scheme are:
   o  Number of objects (D), (8 bits, unsigned integer):  A positive
      integer that is at most 255.  The number of objects delivered is
      D, i.e., if D = 1 then there is one object (default value).  D=0
      MUST NOT be used.
   o  For I = 1,...,D, the Common FEC OTI elements specific to object I
      are:
      *  Symbol Size (T(I)), (16 bits, unsigned integer):  A positive
         integer that is less than 2^^16.  This is the size of a symbol
         for object I in units of octets.
      *  Transfer Length (F(I)), (40 bits, unsigned integer):  A non-
         negative integer that is at most 2^^40.  This is the transfer
         length of object I in units of octets.
   The encoded Common FEC OTI format is shown in Figure 2 when D=2.



Luby & Stockhammer       Expires March 10, 2012                 [Page 4]


Internet-Draft          Universal Object Delivery         September 2011
        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |Num. obj. (D=2)|   Object 1 Symbol Size (T(1)) |    F(1)       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |             Object 1 Transfer Length (cont.) (F(1))           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |   Object 2 Symbol Size (T(2)  |Object 2 Transfer Length (F(2))|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |     Object 2 Transfer Length (cont.) (F(2))   |    padding    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 Figure 2: Encoded Common FEC OTI when D=2
3.2.4.  Scheme-Specific
   The following parameters are carried in the Scheme-Specific FEC OTI
   element for this FEC Scheme:
   o  A symbol alignment parameter (Al) (8 bits, unsigned integer)
   o  For I = 1,...,D, the Scheme-Specific FEC Object Transmission
      information elements specific to object I are:
      *  The number of source blocks for object I (Z(I)) (12 bits,
         unsigned integer)
      *  The number of sub-blocks for object I (N(I)) (12 bits, unsigned
         integer)
   These parameters are all positive integers.  The encoded Scheme-
   specific OTI is a (1+3*D)-octet field.  An example for D=2 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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |        Al     |          Z(1)         |           N(1)        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |          Z(2)         |           N(2)        |    padding    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            Figure 3: Encoded Scheme-specific FEC OTI when D=2
   The encoded FEC OTI is a (2+10*D)-octet field consisting of the
   concatenation of the encoded Common FEC OTI and the encoded Scheme-
   specific FEC OTI.

Luby & Stockhammer       Expires March 10, 2012                 [Page 5]


Internet-Draft          Universal Object Delivery         September 2011
4.  Procedures
4.1.  Introduction
   All notation used in the document has exactly the same interpretation
   and meaning as in RaptorQ FEC Scheme [I-D.ietf-rmt-bb-fec-raptorq].
4.2.  Content Delivery Protocol Requirements
   This section describes the information exchange between the UOD-
   RaptorQ FEC Scheme and any Content Delivery Protocol (CDP) that makes
   use of the UOD-RaptorQ FEC Scheme for object delivery.
   The UOD-RaptorQ encoder scheme and UOD-RaptorQ decoder scheme for
   object delivery require the following information from the CDP:
   o  The number of objects, D, to be transferred
   o  A symbol alignment parameter, Al
   o  For I = 1,...,D
      *  The transfer length of object I, F(I), in octets
      *  The symbol size to use for object I, T(I), in octets, which
         MUST be a multiple of Al
      *  The number of source blocks for object I, Z(I)
      *  The number of sub-blocks in each source block for object I,
         N(I)
   The UOD-RaptorQ encoder scheme for object delivery additionally
   requires:
   o  For I = 1,...,D, the object I to be encoded consisting of F(I)
      octets
   The UOD-RaptorQ encoder scheme supplies the CDP with the following
   information for each packet to be sent:
   o  Universal Object Symbol Identifier (UOSI)
   o  For I = 1,...,D, the encoding symbol(s) for object I
   The CDP MUST communicate this information to the receiver.

Luby & Stockhammer       Expires March 10, 2012                 [Page 6]


Internet-Draft          Universal Object Delivery         September 2011
4.3.  Example Parameter Derivation Algorithm
   For each object I, it is RECOMMENDED that the example parameter
   derivation algorithm described in Section 4.3 of the RaptorQ FEC
   Scheme [I-D.ietf-rmt-bb-fec-raptorq] be used, applied independently
   to each of the D objects.
   The following are RECOMMENDATIONS:
   o  Al = 4 octets
   o  SS = 8 (which implies that the each sub-symbol will be at least
      SS*Al = 32 octets)
   o  For each I = 1,...,D, the size of the encoding symbol T(I) for
      object I is RECOMMENDED to be least SS*Al octets.  (As stated
      earlier, T(I) MUST be a multiple of Al.)
   o  The payload size of each encoding packet is RECOMMENDED to be of
      size at least T, where T is the sum over I = 1,...,D of T(I).
4.4.  Object Delivery
4.4.1.  Source block construction
   Exactly the same procedures as specified in Section 4.4.1 of the
   RaptorQ FEC Scheme [I-D.ietf-rmt-bb-fec-raptorq] are to be applied
   independently to each of the D objects.
4.4.2.  Encoding packet construction
   Each encoding packet contains the following information:
   o  Universal Object Symbol Identifier (UOSI)
   o  For I = 1,...,D, the encoding symbol(s) for object I
   The following mappings provide the translations between the UOSI
   format used by the UOD-RaptorQ FEC Scheme and the (SBN, ESI) format
   of the FEC Payload ID used by the RaptorQ FEC Scheme
   [I-D.ietf-rmt-bb-fec-raptorq].
   For each object I = 1,...,D, the mapping from a UOSI value C to the
   corresponding (SBN, ESI) values (A,B) for object I is:
   o  B = floor(C/Z(I))

Luby & Stockhammer       Expires March 10, 2012                 [Page 7]


Internet-Draft          Universal Object Delivery         September 2011
   o  A = C - B*Z(I)
   Similarly, for each object I = 1,...,D, the mapping from (SBN, ESI)
   values (A,B) for object I to a corresponding UOSI value C is:
   o  C = A + B*Z(I)
   For each object I = 1,...,D, UOSI values from 0 to Kt(I)-1 identify
   the source symbols of object I in source block interleaved order,
   wherein Kt(I) = ceil(F(I)/T(I)).  UOSI values from Kt(I) onwards
   identify repair symbols generated from the source symbols of object I
   using the RaptorQ encoder.
   Each encoding packet may contain source symbols and repair symbols
   for objects.  For each object I = 1,...,D, a packet may contain
   multiple encoding symbols generated from the same source block of
   object I, which may be a mixture of source and repair symbols.  If
   the last source symbol of a source block includes padding octets
   added for FEC encoding purposes, then these octets MUST be included
   in any packet carrying this source symbol.  Thus, each packet MUST
   contain only full-sized encoding symbols generated from the objects.
   The UOSI, C, carried in each encoding packet is the UOSI of the first
   encoding symbol for each object carried in that packet.  The
   subsequent encoding symbols in the packet for each object have UOSIs,
   C+1 to C+G-1, in sequential order, where G is the number of encoding
   symbols for each object in the packet.
   It is RECOMMENDED that each encoding packet contain exactly one
   encoded symbol for each of the D objects.
   It is RECOMMENDED that encoding packets be generated and sent
   according to the following procedure:
   o  For each UOSI value C = 0, 1, 2, 3, ..., generate and send an
      encoding packet as follows:
      *  Set the value of the FEC Payload ID of the encoding packet to
         the UOSI value C.
      *  For I = 1,...,D,
         +  Determine the (SBN, ESI) values (A(I), B(I)) that correspond
            to UOSI value C.
         +  Generate the encoding symbol E(I) of size T(I) that
            corresponds to (SBN, ESI) values (A(I), B(I)) from object I
            according to the procedures of the RaptorQ FEC Scheme

Luby & Stockhammer       Expires March 10, 2012                 [Page 8]


Internet-Draft          Universal Object Delivery         September 2011
            [I-D.ietf-rmt-bb-fec-raptorq].
         +  Add encoding symbol E(I) to the payload of the encoding
            packet.
      *  Send the encoding packet.
   Note that it is not necessary for the receiver to know the total
   number of encoding packets.
5.  Security Considerations
   Exactly the same as for the RaptorQ FEC Scheme
   [I-D.ietf-rmt-bb-fec-raptorq] apply.
6.  IANA Considerations
   Values of FEC Encoding IDs and FEC Instance IDs are subject to IANA
   registration.  For general guidelines on IANA considerations as they
   apply to this document, see [RFC5052].  This document assigns the
   Fully-Specified FEC Encoding ID 7 (tbd) under the ietf:rmt:fec:
   encoding name-space to "UOD-RaptorQ Code".
7.  References
7.1.  Normative References
   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.
   [I-D.ietf-rmt-bb-fec-raptorq]
              Luby, M., Shokrollahi, A., Watson, M., Stockhammer, T.,
              and L. Minder, "RaptorQ Forward Error Correction Scheme
              for Object Delivery", draft-ietf-rmt-bb-fec-raptorq-04
              (work in progress), August 2010.
   [RFC5052]  Watson, M., Luby, M., and L. Vicisano, "Forward Error
              Correction (FEC) Building Block", RFC 5052, August 2007.
7.2.  Informative References
   [PET]      Albanese, Blomer, Edmonds, Luby, and Sudan, "Priority
              Encoding Transmission", November 1996.

Luby & Stockhammer       Expires March 10, 2012                 [Page 9]


Internet-Draft          Universal Object Delivery         September 2011
Authors' Addresses
   Michael Luby
   Qualcomm Incorporated
   3165 Kifer Road
   Santa Clara, CA  95051
   U.S.A.
   Email:  luby@qualcomm.com
   Thomas Stockhammer
   Nomor Research
   Brecherspitzstrasse 8
   Munich  81541
   Germany
   Email:  stockhammer@nomor.de











Luby & Stockhammer       Expires March 10, 2012                [Page 10]