Forward Error Correction Grouping Semantics in the Session Description Protocol
obsoletes
- rfc-4756 — Forward Error Correction Grouping Semantics in Session Description Protocol
Extracted elements (23)
Additivity among repair flows is not defined as transitive: each set of additive repair flows must be explicitly grouped, because two repair flows additive in one FEC group are not necessarily additive in another group.
SSRC-level grouping semantics are defined separately from session-level grouping because SSRC-multiplexed streams share the same 'm' line and cannot use the 'group' attribute, which operates on 'mid' identifiers across 'm' lines.
The 'FEC-FR' semantics were introduced to replace 'FEC' because the original RFC 4756 'FEC' semantics could not express specific associations between source and repair flows in multi-flow scenarios, leading to ambiguous SDP descriptions.
The FEC Framework requires source and repair flows to be carried in separate streams, and recommends separate RTP sessions for flexibility and backward compatibility, though SSRC multiplexing is supported to reduce port usage.
RFC 5888 obsoleted RFC 3388 to allow an 'm' line to appear in more than one 'a=group' line with the same semantics; this change is required for the FEC-FR semantics to work correctly.
When a node receiving an offer with 'FEC-FR' semantics does not understand line grouping or the FEC grouping semantics, it responds either by ignoring the grouping attribute or refusing the request; the offerer must handle both cases per Section 4.5.
Each set of additive repair flows MUST be stated explicitly in SDP; additivity is not necessarily a transitive relationship.
If there is more than one repair flow included in an FEC group, these repair flows MUST be considered to be additive. Repair flows that are not additive MUST be indicated in separate FEC groups.
Implementations are RECOMMENDED to support the 'FEC' semantics specified in Section 4.4 for backward-compatibility reasons.
Implementations compliant with this document MUST use the 'FEC-FR' semantics introduced in Sections 4.1 and 4.3 for associating source and repair flows.
Sessions negotiated between two endpoints implementing this specification MUST use the 'FEC-FR' semantics and not the deprecated 'FEC' semantics.
The 'a=group:FEC-FR' semantics MUST be used to associate the source and repair flows except when the source and repair flows are specified in the same media description (same 'm' line).
The SSRC identifiers for RTP streams carried in the same RTP session MUST be unique per RFC 3550, and the 'ssrc-group' attribute MUST only be used at the media level.
When a sender does not support 'FEC' semantics and 'FEC-FR' is not understood by the peer, it MUST send a new offer without FEC.
When the answer ignores the 'FEC-FR' grouping attribute and using 'FEC' semantics would create ambiguity, the sender MUST send a new offer without FEC.
When the 'FEC-FR' semantics are not understood by the node, the offering implementation SHOULD initiate a new offer using the 'FEC' semantics.
'FEC-FR' is defined as the SDP grouping semantics token used with 'a=group' to associate source and repair flows in the FEC Framework. Each 'a=group:FEC-FR' line defines one FEC group; multiple repair flows in the same group are additive.
The deprecated 'FEC' grouping semantics (originally from RFC 4756) require a source or repair flow to appear in only a single 'a=group:FEC' line, limiting expressiveness for complex multi-flow scenarios.
The 'ssrc-group' attribute with 'FEC-FR' semantics (a=ssrc-group:FEC-FR *(SP ssrc-id)) is used to express FEC grouping for SSRC-multiplexed RTP streams within a single RTP session.
This document registers 'FEC-FR' in the IANA 'Semantics for the ssrc-group SDP Attribute' registry under SDP Parameters, for Forward Error Correction FR grouping of SSRC-multiplexed streams.
This document registers two tokens in the IANA 'Semantics for the group SDP Attribute' registry: 'FEC' (Forward Error Correction, Deprecated) and 'FEC-FR' (Forward Error Correction FR), both referencing RFC 5956.
There is a weak threat that FEC grouping in SDP can be modified to indicate FEC relationships that do not exist, potentially causing FEC to fail to protect or mishandle media payload streams. The receiver SHOULD perform an integrity check on SDP and only trust SDP from trusted sources.
FEC grouping uses the SDP 'a=group:FEC-FR' line with space-separated 'mid' identifiers listing source flows followed by repair flows. For SSRC multiplexing, 'a=ssrc-group:FEC-FR' uses space-separated SSRC numeric identifiers.