rfc-6364

Session Description Protocol Elements for the Forward Error Correction (FEC) Framework

A. Begen
date2011-10 streamIETF areatsv wgfecframe statusPROPOSED STANDARD pages18 canonicalhttps://www.rfc-editor.org/rfc/rfc6364 doi10.17487/RFC6364
This document specifies the use of the Session Description Protocol (SDP) to describe the parameters required to signal the Forward Error Correction (FEC) Framework Configuration Information between the sender(s) and receiver(s). This document also provides examples that show the semantics for grouping multiple source and repair flows together for the applications that simultaneously use multiple instances of the FEC Framework. [STANDARDS-TRACK]

Extracted elements (20)

design-rationale §4.6

Specifying the repair window size as an absolute time value does not necessarily correspond to an integer number of packets or exactly match the RTP clock rate, causing mismatches among subsequent repair windows. However, this mismatch does not break anything in the FEC decoding process in practice.

realtime, rtp

design-rationale §6

Using the same integer values for SDP media stream identifiers ('mid') and source flow identifiers is NOT RECOMMENDED, even though both may be integers, to avoid ambiguity in association between the two identifier spaces.

realtime

interoperability-note §4.2

The 'group' attribute and FEC grouping semantics from RFC 5888 and RFC 5956 respectively are used to associate source and repair flows. RFC 5956 handles backward compatibility in the Offer/Answer Model.

realtime

normative-requirement §4.5 MUST

A repair flow MUST contain only repair packets for a single FEC Framework instance; packets from source flows or other repair flows belonging to a different FEC Framework instance cannot be sent within this flow.

realtime

normative-requirement §4.7 RECOMMENDED

For bandwidth specification, it is RECOMMENDED to use the TIAS bandwidth modifier (RFC 3890) with 'a=maxprate', unless the AS bandwidth modifier is used. The use of AS is NOT RECOMMENDED because TIAS accounts for IP version and transport protocol differences.

realtime

normative-requirement §5.1 SHOULD NOT

In multicast-based applications, receivers SHOULD NOT send an answer back to the sender specifying their FEC protection choices, since this can overwhelm the sender in large-scale multicast applications.

realtime, multicast

normative-requirement §4.7 SHALL

In TIAS-based bitrate calculations, packet size SHALL include all headers and payload excluding IP and UDP headers. In AS-based calculations, packet size SHALL include all headers and payload plus IP and UDP headers.

realtime

normative-requirement §4.4 MUST

Individual source flows MUST be identified with unique integer identifiers using the 'fec-source-flow' attribute. The 'id' parameter MUST be an integer. If an Explicit Source FEC Payload ID is used, the 'tag-len' parameter MUST exist; otherwise it MUST NOT exist.

realtime

normative-requirement §4.5 MUST

Sender-Side FEC-Scheme-Specific Information (SS-FSSI) MUST be communicated in the 'ss-fssi' container; any other FSSI MUST be communicated in the 'fssi' container. If the FEC scheme does not require any specific information, the 'ss-fssi' and 'fssi' parameters MUST NOT exist.

realtime

normative-requirement §4.6 SHOULD NOT

The FEC decoder SHOULD NOT register a FEC decoding failure until it has waited at least for the duration of the repair window after receiving the first packet in a FEC block.

realtime

normative-requirement §3.3 MUST

The integer identifier for each source flow definition MUST be unique among all source flows protected by the same FEC repair flow. Any FSSI other than that solely required by the sender MUST be communicated via the FSSI container (not SS-FSSI).

realtime

normative-requirement §4.1 MUST

When a FEC scheme uses an Explicit Source FEC Payload ID, the 'FEC/<proto>' transport protocol identifier MUST be registered with IANA. If a FEC scheme does not use the Explicit Source FEC Payload ID, the original transport protocol identifier MUST be used to support backward compatibility with receivers that do not support FEC.

registry, realtime

protocol-element §3.3

FEC Framework Configuration Information includes: identification of repair flows, per-source-flow definition and unique integer identifier, FEC Encoding ID, length of Explicit Source FEC Payload ID, and zero or more FSSI elements consisting of name-value pairs defined by the FEC scheme.

realtime

protocol-element §4.1

RFC 6364 defines two new SDP transport protocol identifiers: 'FEC/UDP' for source flows that append an Explicit Source FEC Payload ID to a UDP-formatted input stream, and 'UDP/FEC' for FEC repair packet flows as defined in RFC 6363.

registry, realtime

protocol-element §4.5

The 'fec-repair-flow' SDP attribute (media-level) describes FEC repair flows. Its ABNF syntax includes required 'encoding-id' and optional 'preference-lvl', 'ss-fssi' (sender-side FSSI), and 'fssi' (general FSSI) parameters, each consisting of name:value element lists.

realtime

protocol-element §4.4

The 'fec-source-flow' SDP attribute (media-level) identifies a source flow within the FEC Framework. Its ABNF syntax is: "a=fec-source-flow:" SP "id=" src-id [";" SP "tag-len=" tlen], where src-id is a 32-bit non-negative integer and tlen is the Explicit Source FEC Payload ID length in octets.

realtime

protocol-element §4.6

The 'repair-window' SDP attribute (media-level) specifies the size of the FEC repair window in either milliseconds ('ms') or microseconds ('us'). Its ABNF syntax is: "a=repair-window:" window-size unit, where window-size is a 32-bit non-negative integer.

realtime

registry §8.2

This document registers three new SDP media-level attributes: 'fec-source-flow' (parameters for a FEC source flow), 'fec-repair-flow' (parameters for a FEC repair flow), and 'repair-window' (size of the FEC repair window). All are not subject to charset and reference RFC 6364.

registry, realtime

registry §8.1

This document updates the SDP Parameters registry ('proto' field) to add two new transport protocol identifiers: 'FEC/UDP' (source flows with Explicit Source FEC Payload ID appended to UDP) and 'UDP/FEC' (FEC repair packet format), both referencing RFC 6364.

registry, realtime

security-consideration §7 RECOMMENDED

Modification of SDP to show incorrect associations or groupings of source and repair flows can cause FEC protection failures or mishandling of media streams. Receivers are RECOMMENDED to perform an integrity check on SDP and only trust SDP from trusted sources; receivers MUST also follow RFC 4566 security considerations.

security, realtime