RTP Control Protocol (RTCP) Extended Report (XR) Block for Discard Count Metric Reporting
Extracted elements (19)
A packet is classified as 'discarded' only if it arrives within the implementation-specific time window but is too early, too late, or a duplicate. Packets dropped during decoding by a higher layer (e.g., decoding error) are NOT counted as discarded, keeping the metric focused on transport-layer problems.
The block does not provide per-packet statistics, which means the confidentiality risk described in RFC 3611 Section 7 paragraph 3 does not apply here — aggregate counts expose less information than per-packet data.
Sending duplicate RTP packets for robustness is NOT RECOMMENDED because it breaks RTCP packet statistics. If duplication is desired for error resilience, the mechanism in [RTPDUP] should be used instead.
The Discard Count Metrics Block may be used together with the Burst/Gap Discard Metrics Block (RFC 7003) to enable calculation of burst/gap summary statistics such as gap discard rate, but either block may be used independently.
An endpoint MAY report any combination of discard types in each reporting interval by including several Discard Count Metrics Blocks in a single RTCP XR packet.
Reserved bits (resv, 4 bits) MUST be set to zero by senders and ignored by receivers.
The Block Length field MUST be set to 2. The block MUST be discarded if the block length is set to a different value.
The Discard Count Metrics Block MUST be sent in the same compound RTCP packet as the Measurement Information Block. If the measurement interval is not received in the same compound RTCP packet, this metrics block MUST be discarded.
The reserved DT=11 value MUST NOT be sent and MUST be discarded when received.
The sampled value I=01 MUST NOT be sent and MUST be discarded when received, because discard count can only be measured over definite intervals. The reserved value I=00 MUST NOT be sent and MUST be discarded when received.
SDP signaling uses the 'rtcp-xr' attribute with the parameter value 'pkt-discard-count' (ABNF token 'xr-pdc-block') to signal use of the Discard Count Metrics Block. XR blocks MAY also be used without prior SDP signaling.
The Discard Count field is a 32-bit unsigned value. If the measured value exceeds 0xFFFFFFFD, the value 0xFFFFFFFE MUST be reported to indicate over-range. If measurement is unavailable, 0xFFFFFFFF MUST be reported.
The Discard Count Metrics Block (BT=24) is a 3-word (96-bit) RTCP XR block reporting the number of RTP packets received but discarded (due to duplication, early arrival, or late arrival) over a measurement interval. It references the Measurement Information Block via SSRC for the measurement period.
The Discard Type (DT, 2 bits) identifies the category of discard: DT=00 (duplicate packet discard), DT=01 (too early to play out), DT=10 (too late to play out). DT=11 is reserved.
The Interval Metric flag (I, 2 bits) indicates whether the reported discard count is an Interval Duration (I=10), Cumulative Duration (I=11), or Sampled Value (I=01). The value I=00 is reserved.
Block type value 24 is assigned in the IANA 'RTP Control Protocol Extended Reports (RTCP XR) Block Type Registry' for the 'Discard Count Metrics Block'.
The parameter 'pkt-discard-count' is registered in the 'RTP Control Protocol Extended Reports (RTCP XR) Session Description Protocol (SDP) Parameters Registry'.
Returning detailed error information (e.g., over-range measurement or measurement unavailable values) can provide an attacker with insight into security processing. Implementations should apply encryption and authentication (e.g., using SAVPF combining AVPF and SRTP as per RFC 5124) when this is a concern.
The block structure is: BT (8 bits, value=24), I flag (2 bits), DT field (2 bits), resv (4 bits), Block Length (16 bits, fixed value=2), SSRC of Source (32 bits), Discard Count (32 bits unsigned). Total block length is 3 32-bit words.