RTP Control Protocol (RTCP) Extended Report (XR) Blocks for Summary Statistics Metrics Reporting
draft-ietf-xrblock-rtcp-xr-summary-stat-08
This document defines three RTP Control Protocol (RTCP) Extended Report (XR) Blocks that allow the reporting of loss, duplication and discard summary statistics metrics in a range of RTP applications.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 25, 2016.
Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
1. Introduction
1.1. Summary Statistics Metrics
This draft defines three new block types to augment those defined in [RFC3611] for use in a range of RTP applications.
- Burst/Gap Loss Summary Statistics Metrics Block
- Burst/Gap Discard Summary Statistics Metrics Block
- Frame Impairment Statistics Summary Metrics Block
The first two block types support the reporting of burst gap loss/ discard summary statistics including packet loss/discard proportion, mean and variance and belong to the class of transport-related end system metrics defined in [RFC6792]. These two blocks are intended to be used in conjunction with information from the Burst Gap Loss Metrics Block [BGLOSS] or Burst Gap Discard Metrics Block [BGDISCARD], and on which these two blocks therefore depend. The metrics in the Burst Gap Loss Metrics block or Burst Gap Discard Metrics Block are consistent with the definitions of Burst, Gap, Loss and Discard in RTCP XR [RFC3611].
The third block supports the reporting of detailed video statistics for each frame type, including the number of frames received, lost and discarded of each frame type in the Group of Pictures (GOP) and additional data allowing the calculation of statistical parameters (e.g.,the proportion of each frame type impaired by packet loss and discard). The metrics defined in this block belong to the class of application layer metrics defined in [RFC6792].
1.2. RTCP and RTCP XR Reports
The use of RTCP for reporting is defined in [RFC3550]. [RFC3611] defined an extensible structure for reporting using an RTCP Extended Report (XR). This document defines a new Extended Report block for use with [RFC3550] and [RFC3611].
1.3. Performance Metrics Framework
The RTP Monitoring Architectures [RFC6792] provides guideline for reporting block format using RTCP XR. Metrics described in this draft are in accordance with the guidelines in [RFC6792].
1.4. Applicability
These metrics are applicable to a wide range of RTP applications and reflect transient IP problems that affect user experience. They can be used to form an accurate assessment of users' quality of experience and influence sender strategies to mitigate the problem.
2. Terminology
2.1. Standards Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].
In addition, the following terms are defined:
- Frame Type
A video frame is compressed using different algorithms. Frame type is used to identify different algorithms for video frames. Two frame Types used in the different video algorithms are the Key frame and Derived frames. The Key frame is independently coded without prediction from other pictures and used as a reference frame for predicting other pictures. Derived frames are predicatively coded and derived from a Key frame using a prediction algorithm.
3. Transport Related End System Metrics
The metrics described here are intended to be used as described in this section, in conjunction with information from the Measurement Information block [RFC6776] (which MUST be present in the same RTCP packet as the Burst/Gap Loss block) and also with the metric "cumulative number of packets lost" provided in standard RTCP [RFC3550]. Instances of this Metrics Block refer by Synchronization source (SSRC) to the separate auxiliary Measurement Information block [RFC6776] which describes measurement periods in use (see [RFC6776] section 4.2). This Metrics Block relies on the measurement period in the Measurement Information block indicating the span of the report and SHOULD be sent in the same compound RTCP packet as the measurement information block. If the measurement period is not received in the same compound RTCP packet as this Metrics Block, this metrics block MUST be discarded.
The metrics carried in this Metrics Block provide information relevant to statistical parameters, including burst loss rate, gap loss rate, burst duration mean, burst duration variance and are calculated at the receiving end of the RTP stream using burst gap loss metrics defined in [BGLOSS] and other information which is sent together with this report block.
3.1.1. Report Block Structure
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BT=BGLSS | I | Reserved | block length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of Source |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Burst Loss Rate | Gap Loss Rate |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Burst duration Mean | Burst duration Variance |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3.1.2. Definition of Fields in Loss Summary Statistics Block
- Block Type (BT): 8 bits
Burst/Gap Loss Summary Statistics Block is identified by the constant <BGLSS>.
- Interval Metric Flag (I): 2 bits
This field is used to indicate whether the Burst/Gap Loss Summary Statistics metrics are Sampled, Interval or Cumulative metrics:
- I=10: Interval Duration - the reported value applies to the most recent measurement interval duration between successive metrics reports.
- I=11: Cumulative Duration - the reported value applies to the accumulation period characteristic of cumulative measurements.
- I=01: Sampled Value - the reported value is a sampled instantaneous value.
In this document, the value I=00 is the reserved value and MUST NOT be used.
- Reserved: 6 bits
This field is reserved for future definition. In the absence of such a definition, the bits in this field MUST be set to zero and SHOULD be ignored by the receiver (See RFC6709 section 4.2).
- Block Length: 16 bits
The constant 3, in accordance with the definition of this field in Section 3 of RFC 3611 [RFC3611].
- SSRC of Source: 32 bits
As defined in Section 4.1 of RFC3611 [RFC3611].
- Burst Loss Rate: 16 bits
The fraction of packets lost during bursts since the beginning of reception, expressed as a fixed point number with the binary point at the left edge of the field. This value is calculated by dividing Packets Loss in Bursts by Total Packets expected in Bursts, multiplying the result of the division by 7FFF, with the maximum value 7FFF, and taking the integer part as follows:
Packets Loss in Bursts / Total Packets expected in Bursts
If the measurement is unavailable, the value 0x8000 MUST be reported.
- Gap Loss Rate: 16 bits
The fraction of packets lost during gaps since the beginning of reception expressed as a fixed point number with the binary point at the left edge of the field. This value is calculated by dividing the difference between number of packets lost and Packets lost in Bursts by the difference between Packets Expected and Total Packets expected in Bursts, multiplying the result of the division by 7FFF, with the maximum value 7FFF, and taking the integer part as follows:
(number of packets lost - Packets Lost in Bursts) / (Packets Expected - Total Packets expected in Bursts)
where "number of packets lost" is obtained from standard RTCP [RFC3550] and Packets Expected is calculated as the difference between "extended last sequence number" and "extended first sequence number" (Interval or Cumulative) provided in the Measurement Identity and Information block [RFC6776].
If the measurement is unavailable, the value 0x8000 MUST be reported.
Note that if the metric is to be calculated on an Interval basis, a difference must be taken between the current and preceding values of "cumulative number of packets lost" in RTCP, to obtain the "number of packets lost" for the reporting interval.
- Burst Duration Mean:16bits
The mean burst duration is obtained as the quotient:
mean = Sum of Burst Durations / Number of Bursts
where "Sum of Burst Durations" and “Number of Bursts” is obtained from the RTCP XR Burst/Gap Loss Block [BGLOSS].
If the measurement is unavailable, the value 0xFFFF MUST be reported.
- Burst Duration Variance:16bits
The variance of the burst duration is obtained using the standard result:
var = ( Sum of Squares of Burst Durations - Number of Bursts * mean^2 ) / (Number of Bursts - 1)
where "Sum of Squares of Burst Durations" and “Number of Bursts”is obtained from the RTCP XR Burst/Gap Loss Block [BGLOSS].
If the measurement is unavailable, the value 0xFFFF MUST be reported.
The metrics described here are intended to be used as described in this section, in conjunction with information from the Measurement Identity block [RFC6776] (which MUST be present in the same RTCP packet as the Burst/Gap Discard Summary Statistics block) .
These metrics provide information relevant to statistical parameters, including burst discard rate, gap discard rate and are calculated at the receiving end of the RTP stream using burst gap discard metrics defined in [BGDISCARD] and other information which is sent together with this report block.
Instances of this Metrics Block refer by Synchronization source (SSRC) to the separate auxiliary Measurement Information block [RFC6776] which describes measurement periods in use (see [RFC6776] section 4.2). This metrics block relies on the measurement period in the Measurement Information block indicating the span of the report and SHOULD be sent in the same compound RTCP packet as the measurement information block. If the measurement period is not received in the same compound RTCP packet as this Metrics Block, this Metrics Block MUST be discarded.
3.2.1. Report Block Structure
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BT=BGDSS | I | Reserved | block length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of Source |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Burst Discard Rate | Gap Discard Rate |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3.2.2. Definition of Fields in Burst/Gap Discard Summary Statistics Block
- Block Type (BT): 8 bits
Burst/Gap Discard Summary Statistics Block is identified by the constant <BGDSS>.
- Interval Metric Flag (I): 2 bits
This field is used to indicate whether the Burst/Gap Discard Summary Statistics metrics are Sampled, Interval or Cumulative metrics:
- I=10: Interval Duration - the reported value applies to the most recent measurement interval duration between successive metrics reports.
- I=11: Cumulative Duration - the reported value applies to the accumulation period characteristic of cumulative measurements.
- I=01: Sampled Value - the reported value is a sampled instantaneous value.
In this document, the value I=00 is the reserved value and MUST NOT be used.
- Reserved: 6 bits
This field is reserved for future definition. In the absence of such a definition, the bits in this field MUST be set to zero and SHOULD be ignored by the receiver (See RFC6709 section 4.2).
- Block Length: 16 bits
The constant 2, in accordance with the definition of this field in Section 3 of RFC 3611 [RFC3611].
- SSRC of Source: 32 bits
As defined in Section 4.1 of RFC3611 [RFC3611].
- Burst Discard Rate: 16 bits
The fraction of packets discarded during bursts since the beginning of reception, expressed as a fixed point number with the binary point at the left edge of the field. This value is calculated by dividing Packets Discarded in Bursts by Total Packets expected in Bursts, multiplying the result of the division by 7FFF, with the maximum value 7FFF, and taking the integer part as follows:
Packets Discarded in Bursts / Total Packets expected in Bursts
If the measurement is unavailable, the value 0x8000 MUST be reported.
- Gap Discard Rate: 16 bits
The fraction of packets discarded during gaps since the beginning of reception expressed as a fixed point number with the binary point at the left edge of the field. This value is calculated by dividing the difference between number of packets discarded and Packets Discarded in Bursts by the difference between Packets Expected and Total Packets expected in Bursts, multiplying the result of the division by 7FFF, with the maximum value 7FFF, and taking the integer part as follows:
(number of packets discarded - Packets Discarded in Bursts) / (Packets Expected - Total Packets expected in Bursts)
where "number of packets discarded" is obtained from the RTCP XR Discard Count Block [DISCARD] and filled with the sum of packets discarded due to early arrival (DT=1) and packets discarded due to late arrival(DT=2) and Packets Expected is calculated as the difference between "extended last sequence number" and "extended first sequence number" (Interval or Cumulative) provided in the Measurement Information block [RFC6776]. In order for the Burst/ Gap Discard Summary Statistics Block to be meaningful, 2 instances of the Discard Count block with DT=1 and DT=2 MUST be included in the same RTCP XR packet as the Burst/Gap Discard Summary Statistics Block.
If the measurement is unavailable, the value 0x8000 MUST be reported.
4. Application Level Metrics
This block reports statistics on which frame type were affected beyond the information carried in the Statistics Summary Report Block RTCP packet specified in the section 4.6 of RFC 3611 [RFC3611]. Information is measured at the receiving end of the RTP stream and recorded about the number of frames received, lost frames, duplicated frames and lost partial frames. Such information can be useful for network management and video quality monitoring.
4.1.1. Report Block Structure
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BT=FISS |T| Reserved | block length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of Source |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| begin_seq | end_seq |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of frames received |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Discarded_frames |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Dup_frames |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Full_lost_frames |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Partial_lost_frames |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
4.1.2. Definition of Fields in Frame Impairment Summary Statistics Block
- Block type (BT): 8 bits
Frame Impairment Statistics Summary Block is identified by the constant <FISS>.
- Frame type indicator (T): 1 bit
This field is used to indicate the frame type to be reported. The bit is set to 0 if the full_lost_frames, partial_lost_frames, dup_frames,discarded_frames and Number of frames received fields contain Key frame (reference frame) counts or 1 if they contain Derived frame counts. Note that if both the Key frame and Derivation frame report are sent, they should be sent in the same RTCP compound packet using two Frame Impairment Summary Statistics Blocks.
- Reserved: 7 bits
This field is reserved for future definition. In the absence of such a definition, the bits in this field MUST be set to zero and SHOULD be ignored by the receiver.
- Block Length: 16 bits
The constant 7, in accordance with the definition of this field in Section 3 of RFC 3611 [RFC3611].
- SSRC of Source: 32 bits
As defined in Section 4.1 of RFC3611 [RFC3611].
- begin_seq: 16 bits
As defined in Section 4.1 of RFC 3611 [RFC3611].
- end_seq: 16 bits
As defined in Section 4.1 of RFC 3611 [RFC3611].
- Number of frames received:32 bits
A count of the number of frames received in the above sequence number interval, estimated if necessary. If no frames have been received then this count SHALL be set to zero.
- Number of discarded frames (discarded_frames): 32 bits
Number of frames discarded in the above sequence number interval.
- Number of duplicate frames (dup_frames): 32 bits
Number of duplicate frames received in the above sequence number interval.
- Number of full lost frames (full_lost_frames): 32 bits
A frame is either split across multiple packets or carried in only one packet.If the whole frame or all the packets of the frame is lost, this frame is regarded as one full lost frame. The full_lost-frames can be inferred from packet(s) that comprise the frame. The full lost_ frames is equivalent to the number of full lost frames in the above sequence number interval.
- Number of partial lost frames (partial_lost_frames): 32 bits
When a frame is split across multiple packets and some packets of the frame are lost, this frame is regarded as one partially lost frame. The partial_lost-frames can be inferred from packets that comprise the frame. The value of the partial_lost_frames field is equivalent to the number of partial lost frames in the above sequence number interval.
5. SDP Signaling
RFC 3611 defines the use of SDP (Session Description Protocol) [RFC4566] for signaling the use of XR blocks. However XR blocks MAY be used without prior signaling (see section 5 of RFC3611).
5.1. SDP rtcp-xr-attrib Attribute Extension
This section augments the SDP [RFC4566] attribute "rtcp-xr" defined in Section 5.1 of RFC 3611 by providing three additional values of "xr-format" to signal the use of the report block defined in this document.
xr-format = / xr-bglss-block
/ xr-bgdss-block
/ xr-fiss-block
xr-bglss-block=" burst-gap-loss-stat "
xr-bgdss-block =" burst-gap-discard-stat "
xr-fiss-block=" frame-impairment-stat "
5.2. Offer/Answer Usage
When SDP is used in offer-answer context, the SDP Offer/Answer usage defined in [RFC3611] for unilateral "rtcp-xr" attribute parameters applies. For detailed usage of Offer/Answer for unilateral parameter, refer to section 5.2 of [RFC3611].
6. IANA Considerations
New block types for RTCP XR are subject to IANA registration. For general guidelines on IANA considerations for RTCP XR, refer to RFC 3611.
6.1. New RTCP XR Block Type values
Name: BGLSS
Long Name: Burst/Gap Loss Summary Statistics Block
Value <BGLSS>
Reference: Section 3.1
Name: BGDSS
Long Name: Burst/Gap Discard Summary Statistics Block
Value <BGDSS>
Reference: Section 3.2
Name: FISS
Long Name: Frame Impairment Statistics Summary
Value <FISS>
Reference: Section 4.1
This document assigns three new block type value in the "RTP Control Protocol (RTCP) Extended Report (XR) Block Type Registry" :
6.2. New RTCP XR SDP Parameters
* " burst-gap-loss-stat "
* " burst-gap-discard-stat "
* " frame-impairment-stat "
This document also registers three new SDP [RFC4566] parameters for the "rtcp-xr" attribute in the " RTP Control Protocol (RTCP) Extended Report (XR) SDP Parameters Registry ":
6.3. Contact information for registrations
The contact information for the registrations is:
Qin Wu (sunseawq@huawei.com)
101 Software Avenue, Yuhua District
Nanjing, Jiangsu 210012
China
7. Security Considerations
The new RTCP XR report blocks proposed in this document introduces no new security considerations beyond those described in RFC 3611.
8. Acknowledgements
The authors would like to thank Bill Ver Steeg, David R Oran, Ali Begen, Colin Perkins, Roni Even, Youqing Yang, Wenxiao Yu, Yinliang Hu, Jing Zhao, Ray van Brandenburg, Claire Bi, Dan Romascanu , Morton Jr., Alfred and Klaas Wierenga for their valuable comments and suggestions on this document.
9. References
9.1. Normative References
[BGDISCARD]
|
Clark, A., Huang, R. and W. Wu, "RTP Control Protocol(RTCP) Extended Report (XR) Block for Burst/Gap Discard metric Reporting", Internet-Draft draft-ietf-xrblock-rtcp-xr-burst-gap-discard-08, December 2012. |
[BGLOSS]
|
Clark, A., Zhang, S., Zhao, J. and Q. Wu, "RTP Control Protocol (RTCP) Extended Report (XR) Block for Burst/Gap Loss metric Reporting", Internet-Draft draft-ietf-xrblock-rtcp-xr-burst-gap-loss-06, December 2012. |
[DISCARD]
|
Clark, A., Zorn, G. and Q. Wu, "RTP Control Protocol (RTCP) Extended Report (XR) Block for Discard Count metric Reporting", Internet-Draft draft-ietf-xrblock-rtcp-xr-discard-09, October 2012. |
[RFC2119]
|
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |
[RFC3550]
|
Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, July 2003. |
[RFC3611]
|
Friedman, T., Caceres, R. and A. Clark, "RTP Control Protocol Extended Reports (RTCP XR)", RFC 3611, DOI 10.17487/RFC3611, November 2003. |
[RFC4566]
|
Handley, M., Jacobson, V. and C. Perkins, "SDP: Session Description Protocol", RFC 4566, DOI 10.17487/RFC4566, July 2006. |
[RFC6776]
|
Wu, Q., "Measurement Identity and information Reporting using SDES item and XR Block", RFC 6776, August 2012. |
9.2. Informative References
[RFC6709]
|
Carpenter, B., Aboba, B. and S. Cheshire, "Design Considerations for Protocol Extensions", RFC 6709, September 2012. |
[RFC6792]
|
Hunt, G., Wu, Q. and P. Arden, "Monitoring Architectures for RTP", RFC 6792, November 2012. |
Note to the RFC-Editor: please remove this section prior to publication as an RFC.
A.1. draft-ietf-xrblock-rtcp-xr-summary-stat-08
The following are the major changes compared to 07:
- Add comments raised in Sec-DIR review.
A.2. draft-ietf-xrblock-rtcp-xr-summary-stat-07
The following are the major changes compared to 06:
- Add comments raised in PM-DIR review by Al.
A.3. draft-ietf-xrblock-rtcp-xr-summary-stat-06
The following are the major changes compared to 05:
- Move RFC6709 to informative reference.
A.4. draft-ietf-xrblock-rtcp-xr-summary-stat-05
The following are the major changes compared to 04:
- Editorial changes to get in line with Delay and Burst Gap related drafts.
Glen Zorn (editor)
Zorn
Network Zen
227/358 Thanon Sanphawut
Bang Na,
Bangkok
10260
Thailand
Phone: +66 (0) 909-201060
EMail: glenzorn@gmail.com
Qin Wu
Wu
Huawei
101 Software Avenue, Yuhua District
Nanjing,
Jiangsu
210012
China
EMail: sunseawq@huawei.com
Rachel Huang
Huang
Huawei
101 Software Avenue, Yuhua District
Nanjing,
210012
China
EMail: Rachel@huawei.com