RTP Control Protocol (RTCP) Extended Report (XR) Block for the Bytes Discarded Metric
Extracted elements (21)
A dedicated bytes-discarded XR block was defined because deriving byte counts from high-frequency packet-count reports (RFC 7002) would require unduly high RTCP overhead with non-deterministic scheduling, while using Discard RLE (RFC 7097) would incur significant complexity from storing a sequence-number-to-packet-size map.
The 'bytes discarded' field counts only RTP payload bytes, excluding header extensions and padding, so that the metric reflects actual media data loss rather than protocol overhead. The discarded packet is attributed to the interval in which it was discarded, not when it was expected.
If all packets over a reporting period were discarded, the media receiver MAY use the Discarded Packets Report Block (RFC 7002) instead of the Bytes Discarded block, as the latter provides no additional information in that edge case.
When the Bytes Discarded Report Block follows a Measurement Information Block (RFC 6776) in the same RTCP compound packet, the cumulative or interval duration corresponds to the 'measurement duration' value in that block.
For SDP signaling, the RTCP XR attribute as defined in RFC 3611 MUST be used, augmented with the 'discard-bytes' xr-format parameter to indicate support for the Bytes Discarded Report Block.
If both early and late discarded packets are to be reported, two Bytes Discarded report blocks MUST be included — one with E=1 for early arrivals and one with E=0 for late arrivals.
If the receiver sends the Bytes Discarded Report Block without the Measurement Information Block, the Bytes Discarded Report Block MUST be sent in conjunction with an RTCP Receiver Report (RR) as a compound RTCP packet.
Reserved bits in the block header MUST be set to zero by senders and MUST be 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 bytes discarded metric MUST NOT be reported as a Sampled Metric (I=01). The reserved value I=00 MUST NOT be sent and MUST be discarded when received.
The media receiver SHOULD signal bytes discarded using the method defined in this document. When reporting several metrics in a single RTCP packet, reporting intervals for all report blocks are synchronized.
The media sender MUST be prepared to operate without receiving any Bytes Discarded reports, as it cannot rely on all reports being received nor on a regular generation pattern.
The media sender SHOULD accept the Bytes Discarded Report Block only if received in a compound RTCP receiver report or preceded by a Measurement Information Block; under all other circumstances, it MUST ignore the block.
The Bytes Discarded Report Block (BT=26) reports the number of RTP payload bytes discarded from the de-jitter buffer, either as an interval or cumulative metric. It is a 3-word (12-byte) XR block containing BT, Interval flag (I), Early bit (E), Reserved, Block length, SSRC, and bytes discarded count.
The Early bit (E) distinguishes between packets discarded due to early arrival (E=1) and those discarded due to late arrival (E=0). Duplicate packets that are discarded are ignored and not reported.
The 'Number of RTP payload bytes discarded' field is a 32-bit unsigned integer counting RTP payload bytes of discarded packets; it excludes RTP header extensions and padding. The discarded packet is associated with the interval in which it was discarded, not when it was expected.
This document registers Block Type value 26 (BDR — Bytes Discarded Report) in the IANA 'RTP Control Protocol Extended Reports (RTCP XR) Block Type Registry'.
This document registers the SDP parameter 'discard-bytes' in the IANA 'RTP Control Protocol Extended Reports (RTCP XR) Session Description Protocol (SDP) Parameters Registry'.
Detailed discard reports can leak information about security processing: an attacker injecting a packet with a stale timestamp can infer whether security processing occurred based on whether a discard report is returned with matching byte count. Implementations should apply encryption and authentication (e.g., SAVPF) to mitigate this.
The Bytes Discarded report is used by senders for congestion control and goodput calculation. An attacker MAY forge or suppress reports to drive the endpoint to lower its sending rate and under-utilize the link; media senders should choose appropriate security measures to mitigate such attacks.
The block header contains: BT (8 bits, value 26), Interval Metric flag I (2 bits), Early bit E (1 bit), Reserved (5 bits), Block length (16 bits, MUST be 2), SSRC of source (32 bits), and Number of RTP payload bytes discarded (32-bit unsigned integer).