2.2.6.11 Transport

The syntax of the Transport header MUST adhere to the ABNF syntax specified in [RFC2326] section 12.39, with the following modification. The transport-spec syntax element has been extended with an optional fec-parameters element. The modified syntax for transport-spec is as follows:

 fec-parameters  = ";FecSpan=" 1*2HEXDIG
                   ";FecPerSpan=" 1*2HEXDIG
                   ";FecBurstMargin=" HEXDIG
 transport-spec  = transport-protocol "/" profile ; [RFC2326] section 12.39 
                   [ "/" lower-transport ]        ; [RFC2326] section 12.39
                   2*parameter                    ; [RFC2326] section 12.39
                   [ fec-parameters ]

The syntax elements unicast and client_port, which are included in the parameter syntax element, as specified in [RFC2326] section 12.39, MUST be present in each transport-spec syntax element where the value of the lower-transport parameter is UDP.

The value of the FecSpan parameter MUST be in the range 0x01 to 0x18, inclusive.

The value of the FecPerSpan parameter MUST be in the range 0x01 to 0x18, inclusive, and it MUST also be less than or equal to the value of the FecSpan parameter.

The value of the FecBurstMargin parameter MUST be in the range 0x1 to 0xC, inclusive. Also, the value of FecSpan minus 1 multiplied by the value of FecBurstMargin MUST NOT exceed 0x18.

The fec-parameters syntax element SHOULD be present in a SETUP request for a stream that uses the RTP payload format for FEC (for details, see section 2.2.2).

When used in a request, the numerical value after the FecSpan parameter specifies the number of RTP source packets that the client wants to be included in a span. There is at least one RTP FEC packet for each span, so a small span implies higher-loss tolerance because each RTP FEC packet protects few RTP source packets. But a small span also implies higher overhead because RTP FEC packets are transmitted more frequently than with a large span.

When used in a request, the numerical value after the FecPerSpan parameter specifies the number of RTP FEC packets that the client wants to be included in each span. Each span will include at least one RTP FEC packet, and any additional RTP FEC packets provide additional protection against lost RTP source packets, with the overhead of having to transmit the RTP FEC packet.

When used in a request, the numerical value after the FecBurstMargin parameter specifies the distance between RTP source packets in a single span. A value of 1 means that adjacent RTP source packets belong to the same span. A value of 2 means that every second RTP source packet belongs to the same span (that is, two spans are interleaved). Interleaving spans provides additional protection against burst errors, which is a kind of packet-loss event that causes multiple adjacent RTP packets to be lost.

The fec-parameters syntax element SHOULD be present in the response to a SETUP request for a stream that uses the RTP payload format for FEC.

When used in a response, the FecSpan, FecPerSpan, and FecBurstMargin parameters specify the actual values for these parameters that the server has chosen.