RTP Control Protocol (RTCP) Extended Report (XR) Blocks for Summary Statistics Metrics Reporting
Extracted elements (25)
The Burst/Gap Loss and Discard Summary Statistics blocks depend on and are intended to be used in conjunction with the Burst/Gap Loss Metrics Block [RFC6958] and Burst/Gap Discard Metrics Block [RFC7003], which provide the underlying raw burst/gap counters from which the summary statistics are derived.
To compute Gap Loss Rate on an interval basis, an implementation must take the difference between current and preceding cumulative values of "number of packets lost" from standard RTCP [RFC3550] to obtain the per-interval loss count.
For the Gap Discard Rate to be meaningful, 2 instances of the Discard Count Block [RFC7002] with DT=1 and DT=2 MUST be included in the same RTCP XR packet as the Burst/Gap Discard Summary Statistics Block.
If any of Burst Loss Rate, Gap Loss Rate, Burst Duration Mean, or Burst Duration Variance measurements are unavailable, the value 0xFFFF MUST be reported in the respective 16-bit field.
If Burst Discard Rate or Gap Discard Rate measurements are unavailable, the value 0xFFFF MUST be reported in the respective 16-bit field.
If the Measurement Information Block is not received in the same compound RTCP packet as the Burst/Gap Discard Summary Statistics Block, this metrics block MUST be discarded.
If the Measurement Information Block [RFC6776] is not received in the same compound RTCP packet as the Burst/Gap Loss Summary Statistics Block, this metrics block MUST be discarded.
Reserved bits in the block header MUST be set to zero and ignored by the receiver, per RFC 6709 Section 4.2.
The Burst/Gap Loss Summary Statistics Block SHOULD be sent in the same compound RTCP packet as the Measurement Information Block to ensure the measurement period span is available.
The Interval Metric flag value I=00 is reserved and MUST NOT be used in either the Burst/Gap Loss or Burst/Gap Discard Summary Statistics blocks.
XR blocks MAY be used without prior SDP signaling, per Section 5 of RFC 3611.
A partial_lost_frame is defined as a frame split across multiple RTP packets where some but not all packets are lost. A full_lost_frame is one where the entire frame or all its packets are lost.
SDP signaling uses the rtcp-xr attribute with three new xr-format values: "burst-gap-loss-stat", "burst-gap-discard-stat", and "frame-impairment-stat", extending RFC 3611's SDP attribute definition.
The Burst/Gap Discard Summary Statistics Block (BT=18) reports burst discard rate and gap discard rate as 16-bit fixed-point values. It is a 3-word (12-octet) block identified by block type constant 18.
The Burst/Gap Loss Summary Statistics Block (BT=17) reports burst loss rate, gap loss rate, burst duration mean, and burst duration variance. It is a 4-word (16-octet) block identified by block type constant 17.
The Frame Impairment Statistics Summary Block (BT=19) reports per-frame-type counts of discarded frames, duplicate frames, full lost frames, and partial lost frames over a sequence number interval. It is a 7-word (28-octet) block identified by block type constant 19.
The Frame Type indicator (T) field is a 1-bit flag: T=0 indicates Key frame counts; T=1 indicates Derived frame counts. If both frame types are reported, two separate Frame Impairment Statistics Summary Blocks should be sent in the same RTCP compound packet.
The Interval Metric flag (I) is a 2-bit field indicating whether metrics are Interval Duration (I=10), Cumulative Duration (I=11), or Sampled Value (I=01); the value I=00 is reserved.
Three new block type values are registered in the RTCP XR Block Type Registry: BGLSS (value 17), BGDSS (value 18), and FISS (value 19), with references to Sections 3.1, 3.2, and 4.1 respectively.
Three new SDP parameters are registered in the RTCP XR SDP Parameters Registry: "burst-gap-loss-stat", "burst-gap-discard-stat", and "frame-impairment-stat".
The new RTCP XR blocks defined in this document do not introduce any new security considerations beyond those described in RFC 3611.
Burst/Gap Discard Summary Statistics Block wire format: 8-bit BT=18, 2-bit Interval Metric flag (I), 6-bit Reserved, 16-bit Block Length (constant 2), 32-bit SSRC of Source, 16-bit Burst Discard Rate, 16-bit Gap Discard Rate.
Burst/Gap Loss Summary Statistics Block wire format: 8-bit BT=17, 2-bit Interval Metric flag (I), 6-bit Reserved, 16-bit Block Length (constant 3), 32-bit SSRC of Source, 16-bit Burst Loss Rate, 16-bit Gap Loss Rate, 16-bit Burst Duration Mean, 16-bit Burst Duration Variance.
Burst Loss Rate and Gap Loss Rate are 16-bit fixed-point numbers with the binary point immediately after the left-most bit, calculated as integer-part((count/total) * 0x8000); maximum value is 0x8000.
Frame Impairment Statistics Summary Block wire format: 8-bit BT=19, 1-bit frame type indicator (T), 7-bit Reserved, 16-bit Block Length (constant 6), 32-bit SSRC of Source, 16-bit begin_seq, 16-bit end_seq, 32-bit discarded_frames, 32-bit dup_frames, 32-bit full_lost_frames, 32-bit partial_lost_frames.