RFC 8015 PROPOSED STANDARD RTP · MONITORING · METRICS

RTCP XR Discard Metrics: RTP Control Protocol (RTCP) Extended Report (XR) Block for Independent Reporting of Burst/Gap Discard Metrics

A compact RTCP report that says how many packets a receiver threw away, and in what bursts, without needing loss reports alongside it.

On rfc-editor.org ↗
PUBLISHED
November 2016
AUTHORS
V. Singh, C. Perkins, A. Clark, R. Huang
STREAM
IETF
BLOCK TYPE
35
BLOCK LENGTH
5 (32-bit words minus one)
SDP PARAMETER
ind-burst-gap-discard
BURST THRESHOLD
Discard rate generally over 5 percent
BURST DURATION OVER-RANGE / N.A.
0xFFFFFE / 0xFFFFFF
DOI
10.17487/RFC8015

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                          V. Singh
Request for Comments: 8015                                  callstats.io
Category: Standards Track                                     C. Perkins
ISSN: 2070-1721                                    University of Glasgow
                                                                A. Clark
                                                                Telchemy
                                                                R. Huang
                                                                  Huawei
                                                           November 2016


         RTP Control Protocol (RTCP) Extended Report (XR) Block
         for Independent Reporting of Burst/Gap Discard Metrics

Abstract

   This document defines an RTP Control Protocol (RTCP) Extended Report
   (XR) block that allows the reporting of burst/gap discard metrics
   independently of the burst/gap loss metrics for use in a range of RTP
   applications.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc8015.

Copyright Notice

   Copyright (c) 2016 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.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1.  Independent Burst/Gap Discard Metrics Block . . . . . . .   3
     1.2.  RTCP and RTCP Extended Reports  . . . . . . . . . . . . .   4
     1.3.  Performance Metrics Framework . . . . . . . . . . . . . .   4
     1.4.  Applicability . . . . . . . . . . . . . . . . . . . . . .   4
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   4
   3.  Independent Burst/Gap Discard Metrics Block . . . . . . . . .   5
     3.1.  Report Block Structure  . . . . . . . . . . . . . . . . .   6
     3.2.  Definition of Fields in the Independent Burst/Gap Discard
           Metrics Block . . . . . . . . . . . . . . . . . . . . . .   6
     3.3.  Derived Metrics Based on the Reported Metrics . . . . . .   8
   4.  Considerations for Voice-over-IP Applications . . . . . . . .   9
   5.  SDP Signaling . . . . . . . . . . . . . . . . . . . . . . . .   9
     5.1.  SDP rtcp-xr Attribute Extension . . . . . . . . . . . . .   9
     5.2.  Offer/Answer Usage  . . . . . . . . . . . . . . . . . . .   9
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  10
     6.1.  New RTCP XR Block Type Value  . . . . . . . . . . . . . .  10
     6.2.  New RTCP XR SDP Parameter . . . . . . . . . . . . . . . .  10
     6.3.  Contact Information for Registrations . . . . . . . . . .  10
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  10
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  11
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  11
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  12
   Appendix A.  Metrics Represented Using the Template from RFC 6390  13
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  14
   Contributors  . . . . . . . . . . . . . . . . . . . . . . . . . .  14
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  15

1.  Introduction

1.1.  Independent Burst/Gap Discard Metrics Block

   This document defines a new block type that extends the metrics
   defined in [RFC7003].  The new block type reports the proportion of
   packets discarded in a burst by the de-jitter buffer at the receiver.
   The number of packets discarded depends on the de-jitter buffer
   algorithm implemented by the endpoint.

   The new report block defined in this document is different from the
   one defined in [RFC7003].  The metrics in [RFC7003] depend on the
   metrics in the burst/gap loss metric defined in [RFC6958].
   Consequently, an endpoint that sends a Burst/Gap Discard Metrics
   Block [RFC7003] also needs to send a Burst/Gap Loss Metrics Block
   [RFC6958].  The combined usage is useful when an endpoint observes
   correlated packet losses and discard.  However, when the burst of
   packet losses and discards do not occur simultaneously, the
   application could prefer to send a concise report block that just
   reports the burst/gap of discarded packets.  The report block in this
   document provides the complete information and does not require
   additional report blocks.  That is, this block reports the total
   number of packets discarded, the total burst duration, and the total
   number of bursts.  All of these metrics are missing in [RFC7003].

   This block provides information on transient network issues.  Burst/
   gap metrics are typically used in cumulative reports; however, they
   can also be used in interval reports (see the Interval Metric flag in
   Section 3.2).  The variation in the number of packet discards in a
   burst affects the user experience.  Based on the metrics reported in
   the block, the sending endpoint can change the packetization
   interval, vary the bitrate, etc.  The report can additionally be used
   for diagnostics [RFC6792].  The metric belongs to the class of
   transport-related end-system metrics defined in [RFC6792].

   The definitions of "burst", "gap", "loss", and "discard" are
   consistent with the definitions in [RFC3611].  To accommodate a range
   of de-jitter buffer algorithms and packet discard logic that can be
   used by implementers, the method used to distinguish between bursts
   and gaps uses an equivalent method to that defined in Section 4.7.2
   of [RFC3611].  Note that reporting the specific de-jitter buffer
   algorithm and/or the packet discard logic is out of the scope of this
   document.

1.2.  RTCP and RTCP Extended 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 Performance Metrics Framework [RFC6390] provides guidance on the
   definition and specification of performance metrics.  The RTP
   Monitoring Framework [RFC6792] provides guidelines for reporting the
   block format using RTCP XR.  The metrics block described in this
   document is in accordance with the guidelines in [RFC6390] and
   [RFC6792].

1.4.  Applicability

   These metrics are applicable to a range of RTP applications that
   contain de-jitter buffers at the receiver to smooth variation in
   packet-arrival time and don't use stream repair means, e.g., Forward
   Error Correction (FEC) [FLEX_FEC] and/or retransmission [RFC4588].

2.  Terminology

   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:

   Received, Lost, and Discarded

      A packet is regarded as "lost" if it fails to arrive within an
      implementation-specific time window.  A packet that arrives within
      this time window but is too early to be played out, too late to be
      played out, or thrown away before playout due to packet
      duplication or redundancy is be recorded as "discarded".  A packet
      SHALL NOT be regarded as "discarded" if it arrives within this
      time window but is dropped during decoding by some higher-layer
      decoder, e.g., due to a decoding error.  Each packet is classified
      as one of "received" (or "OK"), "discarded", or "lost".  The
      metric "cumulative number of packets lost" defined in [RFC3550]
      reports a count of packets lost from the media stream (single
      synchronization source (SSRC) within a single RTP session).
      Similarly, the metric "number of packets discarded" defined in
      [RFC7002] reports a count of packets discarded from the media
      stream (single SSRC within a single RTP session) arriving at the
      receiver.  Another metric, defined in [RFC5725], is available to
      report on packets that are not recovered by any repair techniques
      that are in use.  Note that the term "discard" defined here builds
      on the "discard" definition in [RFC3611] but extends the concept
      to take into account packet duplication and reports different
      types of discard counts [RFC7002].

   Bursts and Gaps

      The terms "burst" and "gap" are used in a manner consistent with
      that of RTCP XR [RFC3611].  RTCP XR views an RTP stream as being
      divided into bursts, which are periods during which the discard
      rate is high enough to cause noticeable quality degradation
      (generally a discard rate over 5 percent), and gaps, which are
      periods during which discarded packets are infrequent, and hence
      quality is generally acceptable.

3.  Independent Burst/Gap Discard Metrics Block

   Metrics in this block report on burst/gap discard in the stream
   arriving at the RTP system.  Measurements of these metrics are made
   at the receiving end of the RTP stream.  Instances of this metrics
   block use the synchronization source (SSRC) to refer 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.
   Senders MUST send this block in the same compound RTCP packet as the
   Measurement Information Block.  Receivers MUST verify that the
   measurement period is received in the same compound RTCP packet as
   this metrics block.  If not, this metrics block MUST be discarded.

3.1.  Report Block Structure

   The structure of the Independent Burst/Gap Discard Metrics Block is
   as follows.

       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=35     | I |   resv    |      Block Length = 5         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        SSRC of Source                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Threshold   |         Sum of Burst Durations (ms)           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          Packets Discarded in Bursts          |    Number of  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Bursts     |           Total Packets Expected in Bursts    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                        Discard Count                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Figure 1: Report Block Structure

3.2.  Definition of Fields in the Independent Burst/Gap Discard Metrics
      Block

   Block Type (BT): 8 bits

      An Independent Burst/Gap Discard Metrics Block is identified by
      the constant 35.

   Interval Metric flag (I): 2 bits

      This field is used to indicate whether the burst/gap discard
      metrics are Sampled, Interval, or Cumulative metrics [RFC6792]:

         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.

      In this document, burst/gap discard metrics can only be measured
      over definite intervals and cannot be sampled.  Also, the value
      I=00 is reserved for future use.  Senders MUST NOT use the values
      I=00 or I=01.  If a block is received with I=00 or I=01, the
      receiver MUST discard the block.

   Reserved (resv): 6 bits

      These bits are reserved.  They MUST be set to zero by senders and
      ignored by receivers (see [RFC6709], Section 4.2).

   Block Length: 16 bits

      The length of this report block in 32-bit words, minus one.  For
      the Independent Burst/Gap Discard Metrics Block, the block length
      is equal to 5.  The block MUST be discarded if the block length is
      set to a different value.

   SSRC of Source: 32 bits

      As defined in Section 4 of [RFC3611].

   Threshold: 8 bits

      The Threshold is equivalent to Gmin in [RFC3611], i.e., the number
      of successive packets that have to be received prior to, and
      following, a discarded packet in order for that discarded packet
      to be regarded as part of a gap.  Note that the Threshold is set
      in accordance with the Gmin calculation defined in Section 4.7.2
      of [RFC3611].

   Sum of Burst Durations (ms): 24 bits

      The total duration of bursts of discarded packets in the period of
      the report (Interval or Cumulative).

      The measured value is an unsigned value.  If the measured value
      exceeds 0xFFFFFD, the value 0xFFFFFE MUST be reported to indicate
      an over-range measurement.  If the measurement is unavailable, the
      value 0xFFFFFF MUST be reported.

   Packets Discarded in Bursts: 24 bits

      The total number of packets discarded during discard bursts, as
      defined in Section 3.2 of [RFC7002].

   Number of Bursts: 16 bits

      The number of discard bursts in the period of the report (Interval
      or Cumulative).

      The measured value is an unsigned value.  If the measured value
      exceeds 0xFFFD, the value 0xFFFE MUST be reported to indicate an
      over-range measurement.  If the measurement is unavailable, the
      value 0xFFFF MUST be reported.

   Total Packets Expected in Bursts: 24 bits

      The total number of packets expected during the discard bursts
      (that is, the sum of received packets and lost packets).  The
      metric is defined in [RFC7003].

   Discard Count: 32 bits

      Number of packets discarded over the period (Interval or
      Cumulative) covered by this report, as defined in Section 3.2 of
      [RFC7002].

3.3.  Derived Metrics Based on the Reported Metrics

   The metrics described here are intended to be used in conjunction
   with information from the Measurement Information Block [RFC6776].

   These metrics provide the following information relevant to
   statistical parameters (depending on cumulative of interval
   measures), for example:

   o  The average discarded burst size, which can be calculated by
      dividing the metric "Packets Discarded in Bursts" by the "Number
      of Bursts".

   o  The average burst duration, which can be calculated by dividing
      the metric "Sum of Burst Durations (ms)" by the "Number of
      Bursts".

4.  Considerations for Voice-over-IP Applications

   This metrics block is applicable to a broad range of RTP
   applications.  Where the metric is used with a Voice-over-IP (VoIP)
   application and the stream repair means is not available, the
   following considerations apply.

   RTCP XR views a call as being divided into bursts, which are periods
   during which the discard rate is high enough to cause noticeable call
   quality degradation (generally a discard rate over 5 percent) and
   gaps, which are periods during which discarded packets are
   infrequent, and hence call quality is generally acceptable.

   If voice activity detection is used, the burst/gap duration is
   determined as if silence packets had been sent, i.e., a period of
   silence in excess of Gmin packets will terminate a burst condition.

   The RECOMMENDED value for the threshold Gmin in [RFC3611] results in
   a burst being a period of time during which the call quality is
   degraded to a similar extent to a typical pulse code modulation (PCM)
   severely errored second.

5.  SDP Signaling

   [RFC3611] defines the use of SDP (Session Description Protocol)
   [RFC4566] for signaling the use of XR blocks.  XR blocks can be used
   without prior signaling.

5.1.  SDP rtcp-xr Attribute Extension

   This section augments the SDP [RFC4566] attribute "rtcp-xr" defined
   in [RFC3611] by providing an additional value of "xr-format" to
   signal the use of the report block defined in this document.  The
   ABNF [RFC5234] syntax is as follows.

   xr-format =/ xr-ind-bgd-block

   xr-ind-bgd-block = "ind-burst-gap-discard"

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 in Offer/Answer for unilateral
   parameters, 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
   [RFC3611].

6.1.  New RTCP XR Block Type Value

   This document assigns the block type value 35 in the IANA "RTP
   Control Protocol Extended Reports (RTCP XR) Block Type Registry" to
   the "Independent Burst/Gap Discard Metrics Block".

6.2.  New RTCP XR SDP Parameter

   This document also registers a new parameter "ind-burst-gap-discard"
   in the "RTP Control Protocol Extended Reports (RTCP XR) Session
   Description Protocol (SDP) Parameters Registry".

6.3.  Contact Information for Registrations

   The contact information for the registrations is:

      ART Area Directors <art-ads@ietf.org>

7.  Security Considerations

   This block does not provide per-packet statistics, so the risk to
   confidentiality documented in Section 7, paragraph 3 of [RFC3611]
   does not apply.  However, the gap indicated within this block could
   be used to detect the timing of other events on the path between the
   sender and receiver.  For example, a competing multimedia stream
   might cause a discard burst for the duration of the stream, allowing
   the receiver of this block to know when the competing stream was
   active.  This risk is not a significant threat since the only
   information leaked is the timing of the discard, not the cause.

   Where this is a concern, the implementation SHOULD apply encryption
   and authentication to this report block.  For example, this can be
   achieved by using the Audio-Visual Profile with Feedback (AVPF)
   profile together with the Secure RTP profile, as defined in
   [RFC3711]; an appropriate combination of those two profiles ("SAVPF")
   is specified in [RFC5124].  Besides this, it is believed that this
   RTCP XR block introduces no new security considerations beyond those
   described in [RFC3611].

8.  References

8.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [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, <http://www.rfc-editor.org/info/rfc3550>.

   [RFC3611]  Friedman, T., Ed., Caceres, R., Ed., and A. Clark, Ed.,
              "RTP Control Protocol Extended Reports (RTCP XR)",
              RFC 3611, DOI 10.17487/RFC3611, November 2003,
              <http://www.rfc-editor.org/info/rfc3611>.

   [RFC3711]  Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
              Norrman, "The Secure Real-time Transport Protocol (SRTP)",
              RFC 3711, DOI 10.17487/RFC3711, March 2004,
              <http://www.rfc-editor.org/info/rfc3711>.

   [RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
              Description Protocol", RFC 4566, DOI 10.17487/RFC4566,
              July 2006, <http://www.rfc-editor.org/info/rfc4566>.

   [RFC5124]  Ott, J. and E. Carrara, "Extended Secure RTP Profile for
              Real-time Transport Control Protocol (RTCP)-Based Feedback
              (RTP/SAVPF)", RFC 5124, DOI 10.17487/RFC5124, February
              2008, <http://www.rfc-editor.org/info/rfc5124>.

   [RFC5234]  Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", STD 68, RFC 5234,
              DOI 10.17487/RFC5234, January 2008,
              <http://www.rfc-editor.org/info/rfc5234>.

   [RFC5725]  Begen, A., Hsu, D., and M. Lague, "Post-Repair Loss RLE
              Report Block Type for RTP Control Protocol (RTCP) Extended
              Reports (XRs)", RFC 5725, DOI 10.17487/RFC5725, February
              2010, <http://www.rfc-editor.org/info/rfc5725>.

   [RFC6776]  Clark, A. and Q. Wu, "Measurement Identity and Information
              Reporting Using a Source Description (SDES) Item and an
              RTCP Extended Report (XR) Block", RFC 6776,
              DOI 10.17487/RFC6776, October 2012,
              <http://www.rfc-editor.org/info/rfc6776>.

   [RFC7003]  Clark, A., Huang, R., and Q. Wu, Ed., "RTP Control
              Protocol (RTCP) Extended Report (XR) Block for Burst/Gap
              Discard Metric Reporting", RFC 7003, DOI 10.17487/RFC7003,
              September 2013, <http://www.rfc-editor.org/info/rfc7003>.

8.2.  Informative References

   [FLEX_FEC]
              Singh, V., Begen, A., Zanaty, M., and G. Mandyam, "RTP
              Payload Format for Flexible Forward Error Correction
              (FEC)", Work in Progress, draft-ietf-payload-flexible-fec-
              scheme-03, October 2016.

   [RFC4588]  Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R.
              Hakenberg, "RTP Retransmission Payload Format", RFC 4588,
              DOI 10.17487/RFC4588, July 2006,
              <http://www.rfc-editor.org/info/rfc4588>.

   [RFC6390]  Clark, A. and B. Claise, "Guidelines for Considering New
              Performance Metric Development", BCP 170, RFC 6390,
              DOI 10.17487/RFC6390, October 2011,
              <http://www.rfc-editor.org/info/rfc6390>.

   [RFC6709]  Carpenter, B., Aboba, B., Ed., and S. Cheshire, "Design
              Considerations for Protocol Extensions", RFC 6709,
              DOI 10.17487/RFC6709, September 2012,
              <http://www.rfc-editor.org/info/rfc6709>.

   [RFC6792]  Wu, Q., Ed., Hunt, G., and P. Arden, "Guidelines for Use
              of the RTP Monitoring Framework", RFC 6792,
              DOI 10.17487/RFC6792, November 2012,
              <http://www.rfc-editor.org/info/rfc6792>.

   [RFC6958]  Clark, A., Zhang, S., Zhao, J., and Q. Wu, Ed., "RTP
              Control Protocol (RTCP) Extended Report (XR) Block for
              Burst/Gap Loss Metric Reporting", RFC 6958,
              DOI 10.17487/RFC6958, May 2013,
              <http://www.rfc-editor.org/info/rfc6958>.

   [RFC7002]  Clark, A., Zorn, G., and Q. Wu, "RTP Control Protocol
              (RTCP) Extended Report (XR) Block for Discard Count Metric
              Reporting", RFC 7002, DOI 10.17487/RFC7002, September
              2013, <http://www.rfc-editor.org/info/rfc7002>.

Appendix A.  Metrics Represented Using the Template from RFC 6390

   a.  Threshold Metric

       *  Defined in item a of Appendix A of [RFC7003].

   b.  Sum of Burst Durations (ms)

       *  Metric Name: Sum of Burst Durations with Discarded RTP
          Packets.

       *  Metric Description: The total duration of bursts of discarded
          RTP packets in the period of the report.

       *  Method of Measurement or Calculation: See Section 3.2, Sum of
          Burst Durations definition.

       *  Units of Measurement: See Section 3.2, Sum of Burst Durations
          definition.

       *  Measurement Point(s) with Potential Measurement Domain: See
          Section 3, first paragraph.

       *  Measurement Timing: See Section 3, second paragraph for
          measurement timing and Section 3.2 for Interval Metric flag.

       *  Use and Applications: See Section 1.4.

       *  Reporting Model: See [RFC3611].

   c.  Packets Discarded in Bursts Metric

       *  Defined in item b of Appendix A of [RFC7003].

   d.  Number of Bursts

       *  Metric Name: Number of discard bursts in RTP.

       *  Metric Description: The total number of bursts with discarded
          RTP packets in the period of the report.

       *  Method of Measurement or Calculation: See Section 3.2, Number
          of Bursts definition.

       *  Units of Measurement: See Section 3.2 for the Number of Bursts
          definition.

       *  Measurement Point(s) with Potential Measurement Domain: See
          Section 3, first paragraph.

       *  Measurement Timing: See Section 3, second paragraph for
          measurement timing and Section 3.2 for Interval Metric flag.

       *  Use and Applications: See Section 1.4.

       *  Reporting Model: See [RFC3611].

   e.  Total Packets Expected in Bursts Metric

       *  Defined in item c of Appendix A of [RFC7003].

   f.  Discard Count

       *  Defined in Appendix A of [RFC7002].

Acknowledgments

   The authors would like to thank Ben Campbell, Stephen Farrell, Paul
   Kyzivat, Shucheng LIU, Jan Novak, and Dan Romascanu for providing
   valuable feedback on this document.

Contributors

   Qin Wu, Rachel Huang, and Alan Clark wrote RFC 7003, which this
   document extends.

Authors' Addresses

   Varun Singh
   CALLSTATS I/O Oy
   Runeberginkatu 4c A 4
   Helsinki  00100
   Finland

   Email: varun@callstats.io
   URI:   https://www.callstats.io/about


   Colin Perkins
   University of Glasgow
   School of Computing Science
   Glasgow  G12 8QQ
   United Kingdom

   Email: csp@csperkins.org


   Alan Clark
   Telchemy Incorporated
   2905 Premiere Parkway, Suite 280
   Duluth, GA  30097
   United States of America

   Email: alan.d.clark@telchemy.com


   Rachel Huang
   Huawei Technologies Co., Ltd.
   101 Software Avenue, Yuhua District
   Nanjing, Jiangsu  210012
   China

   Email: Rachel@huawei.com

AI ELI5

On this page
PROBLEMA real-time media receiver sometimes discards packets that arrive too early, too late or as duplicates. The earlier burst/gap discard report only works together with a burst/gap loss report, even when losses and discards do not happen at the same time.
MECHANISMRFC 8015 defines an RTCP Extended Report block (block type 35) that carries the discard burst statistics on its own: total discards, number of bursts, total burst duration and packets expected in bursts.
WHY IT MATTERSA sender can see how bursty the discards are and adapt, for example by changing the packetization interval or the bitrate. It is a Proposed Standard and nothing in the unit metadata says it has been replaced.

§1Why a Separate Discard Report

RFC 8015 defines a new RTCP Extended Report (XR) block. It reports the proportion of packets that the receiver's de-jitter buffer discarded in a burst. How many packets are discarded depends on the de-jitter buffer algorithm the endpoint uses, and the RFC does not try to report that algorithm.

The older block in RFC 7003 depends on the burst/gap loss metrics of RFC 6958, so an endpoint that sends one also has to send the other. That is useful when losses and discards are correlated. When they are not, an application may prefer a concise block that reports only discard bursts and gaps. The block in this RFC is complete by itself and adds the total number of packets discarded, the total burst duration and the total number of bursts, all of which are missing from RFC 7003.

Before, you had to hand in two forms at once: one for lost packets and one for thrown-away packets. Now you can hand in just the thrown-away form.

§2Received, Lost, Discarded, Bursts and Gaps

Every packet is classified as exactly one of received (or OK), discarded or lost. A packet is lost if it fails to arrive within an implementation-specific time window. A packet that arrives in that window but is too early or too late to be played out, or is thrown away before playout because of duplication or redundancy, is discarded. A packet is not discarded if a higher-layer decoder drops it later, for example because of a decoding error.

The words burst and gap follow RFC 3611. A burst is a period when the discard rate is high enough to cause noticeable quality degradation, generally a discard rate over 5 percent. A gap is a period when discards are infrequent and quality is generally acceptable.

A packet either shows up on time, shows up but is useless, or never shows up. A burst is a rough patch where lots of packets get tossed, and a gap is a calm stretch.

§3The Independent Burst/Gap Discard Metrics Block

The block is identified by block type BT=35 and has a fixed Block Length of 5. A receiver MUST discard a block with any other length. The I field says whether the numbers cover the most recent interval (I=10) or a cumulative period (I=11). These metrics cannot be sampled, so senders MUST NOT use I=00 or I=01, and a receiver MUST discard a block that carries them. The six reserved bits MUST be zero and are ignored by receivers.

The remaining fields are:

  • SSRC of Source: 32 bits, as in RFC 3611.
  • Threshold: 8 bits, equal to Gmin in RFC 3611, the number of successive packets that must be received before and after a discarded packet for it to count as part of a gap.
  • Sum of Burst Durations (ms): 24 bits, the total duration of discard bursts in the report period.
  • Packets Discarded in Bursts: 24 bits.
  • Number of Bursts: 16 bits.
  • Total Packets Expected in Bursts: 24 bits, the sum of received and lost packets during the bursts.
  • Discard Count: 32 bits, packets discarded over the whole period of the report.

For the two counters that can overflow, an over-range value is reported as 0xFFFFFE (burst duration) or 0xFFFE (number of bursts), and an unavailable measurement as 0xFFFFFF or 0xFFFF.

The block is a short form with boxes to fill in: how many packets were tossed, how many clumps there were, and how long the clumps lasted.

INDEPENDENT BURST/GAP DISCARD METRICS BLOCK (RFC 8015)
Independent Burst/Gap Discard Metrics Block
FieldNameSizeValueDescription
BTBT1 byte35Block type, the constant 35.
II2 bitsInterval (10) or cumulative (11); 00 and 01 are not allowed.
RESVReserved6 bitsSet to zero by senders, ignored by receivers.
BLOCK-LENGTHBlock Length2 bytes5Length in 32-bit words minus one.
SSRCSSRC of Source4 bytesThe stream being reported on, as in RFC 3611.
THRESHOLDThreshold1 byteEquivalent to Gmin in RFC 3611.
BURST-DURATIONSum of Burst Durations (ms)3 bytesTotal duration of discard bursts.
PKTS-DISCARDEDPackets Discarded in Bursts3 bytesPackets discarded during bursts.
NUM-BURSTSNumber of Bursts2 bytesCount of discard bursts.
PKTS-EXPECTEDTotal Packets Expected in Bursts3 bytesReceived plus lost packets during bursts.
DISCARD-COUNTDiscard Count4 bytesPackets discarded over the whole report period.

§4Measuring and Using the Numbers

Measurements are made at the receiving end of the stream. The block relies on the Measurement Information Block of RFC 6776 to say what period the report spans. Senders MUST send the two in the same compound RTCP packet, and a receiver MUST discard this block if the measurement period did not arrive in the same compound packet.

Two derived values are suggested. The average discarded burst size is Packets Discarded in Bursts divided by Number of Bursts. The average burst duration is Sum of Burst Durations (ms) divided by Number of Bursts. The RFC says the variation in discards within a burst affects user experience, so a sending endpoint can change the packetization interval or vary the bitrate based on the report. The report can also be used for diagnostics.

The metrics suit RTP applications that have de-jitter buffers and do not use stream repair such as forward error correction or retransmission. For Voice-over-IP without repair, if voice activity detection is used, burst and gap duration are determined as if silence packets had been sent, so silence longer than Gmin packets ends a burst.

If a call hears that packets keep getting tossed in big clumps, it can send smaller or fewer pieces at a time to cope.

§5SDP Signaling and IANA

XR blocks can be used without prior signaling. When signaling is wanted, this RFC adds a new value to the SDP rtcp-xr attribute from RFC 3611: ind-burst-gap-discard. The offer/answer rules for unilateral rtcp-xr parameters in RFC 3611 apply unchanged.

IANA assigns block type 35 to the Independent Burst/Gap Discard Metrics Block in the RTCP XR Block Type registry and registers the SDP parameter ind-burst-gap-discard.

Two phones can say ahead of time that they will swap this report, but they are also allowed to just start sending it.

§6Security Considerations

The block carries no per-packet statistics, so the confidentiality risk described in RFC 3611 does not apply. The RFC does note that the timing of a discard burst could reveal when another stream on the path was active. It calls this not a significant threat, because only the timing is leaked and not the cause.

Where it is a concern, implementations SHOULD apply encryption and authentication to the block, for example by using the AVPF profile with the Secure RTP profile (the combination called SAVPF, specified in RFC 5124). Beyond that, the RFC believes the block adds no new security considerations beyond those in RFC 3611.

Someone who sees the report might guess when another video was using the same road. That is not a big deal, and you can lock the report if you care.

§7References