<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com)
     by Daniel M Kohn (private) -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
    <!ENTITY rfc2119 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
]>

<rfc category="std" ipr="trust200811" docName="draft-ietf-avt-rtcp-xr-burst-gap-discard-01.txt">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>

    <front>
        <title abbrev='RTCP XR Burst/Gap Discard'>RTCP XR Report Block for Burst/Gap Discard metric Reporting</title>
        <author initials='G.' surname='Hunt' fullname='Geoff Hunt'>
            <organization abbrev='BT'>BT</organization>
		<address>
	    <postal>
        	<street>Orion 2 PP3</street>
        	<street>Adastral Park</street>
        	<street>Martlesham Heath</street>
        	<city>Ipswich</city> <region>Suffolk</region>
        	<code>IP5 3RE</code>
        	<country>United Kingdom</country>
    	    </postal>
	    <phone>+44 1473 651704</phone>
	    <email>geoff.hunt@bt.com</email>
	    </address>
        </author>
        <author initials='A.' surname='Clark' fullname='Alan Clark'>
            <organization abbrev='Telchemy'>Telchemy Incorporated</organization>
		<address>
	    <postal>
        	<street>2905 Premiere Parkway, Suite 280</street>
        	<city>Duluth</city> <region>GA</region>
        	<code>30097</code>
        	<country>USA</country>
    	    </postal>
	    <email>alan.d.clark@telchemy.com</email>
	    </address>
        </author>
        <date month='February' year='2009' />
       <area>Real-time Applications and Infrastructure Area</area>
        <workgroup>Audio/Video Transport Working Group</workgroup>
        <keyword>RFC</keyword>
        <keyword>Request for Comments</keyword>
        <keyword>I-D</keyword>
        <keyword>Internet-Draft</keyword>
        <keyword>Real Time Control Protocol</keyword>
        <abstract>
        <t>
   This document defines an RTCP XR Report Block that allows the
   reporting of Burst and Gap Discard metrics for use in a range of RTP applications.
        </t>
        </abstract>
    </front>

    <middle>

<section anchor='intro' title="Introduction">
<section anchor='intro1' title="Burst and Gap Discard Report Block">
<t>
   This draft defines a new block type to augment those defined
   in <xref target='RFC3611'/> for use in a range of RTP applications.
   The new block type supports the reporting of the proportion of packets discarded by the receiver 
due to jitter. The 
discards during discard bursts are reported, together with the number of bursts and additional data allowing 
the calculation of statistical parameters (mean and variance) of the distribution of burst lengths. This block is 
intended to be used in conjunction with <xref target='DISCARD'/> which provides the total packets discarded, and 
on which this block therefore depends. However the metric in <xref target='DISCARD'/> may be used independently of the
metrics in this block.
</t>
<t>
   This block provides information on transient IP problems.
   Burst/Gap metrics are typically used in Cumulative reports however
   MAY be used in Interval reports.
The burstiness of packet discard affects user
experience, may influence any sender strategies to mitigate the problem, and may also have diagnostic value.
</t>
<t>
The metric belongs to the class of transport-related terminal metrics defined in [MONARCH] (work in progress).
</t>
<t>
   The definitions of Burst, Gap, Loss and Discard are consistent with definitions in
   <xref target='RFC3611'/>, with the clarification that Loss
   and Discard are defined in terms of frames.  To accomodate the range of jitter buffer
   algorithms and packet discard logic that may be used by implementors,
   the method used to distinguish between bursts and gaps may be an
   equivalent method to that defined in <xref target='RFC3611'/>.
</t>
<t>
Instances of this Metrics Block refer by tag to the separate auxiliary Measurement Identity block 
<xref target='MEASIDENT'/> which contains information 
such as the SSRC of the measured stream, and RTP sequence numbers and time intervals indicating the span of the report.
</t>
</section>
<section anchor='intro2' title="RTCP and RTCP XR Reports">
<t>
   The use of RTCP for reporting is defined in <xref target='RFC3550'/>. 
   <xref target='RFC3611'/> defined an extensible structure for reporting using
   an RTCP Extended Report (XR).  This draft defines
   a new Extended Report block that MUST be used as defined in
   <xref target='RFC3550'/> and <xref target='RFC3611'/>.
</t>
</section>
<section anchor='intro3' title="Performance Metrics Framework">
<t>
   The Performance Metrics Framework <xref target='PMOLFRAME'/> provides guidance on the
   definition and specification of performance metrics.  Metrics
   described in this draft either reference external definitions
   or define metrics generally in accordance with the guidelines
   in <xref target='PMOLFRAME'/>.
</t>
</section>
<section anchor='intro4' title="Applicability">
<t>
This metric is believed to be applicable to the large class of RTP applications which contain jitter buffers.
</t>
</section>
</section>

<section anchor='definitions' title='Definitions'>

<t>Received, Lost and Discarded</t>
<t><list style='empty'><t>
   A packet shall be 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 or late to be played out shall be
   regarded as discarded.  A packet shall be classified as one of
   received (or OK), discarded or lost.
</t>
</list></t>
<t>Bursts and Gaps</t>
<t><list style='empty'><t>
   The terms Burst and Gap are used in a manner consistent with that of
   RTCP XR <xref target='RFC3611'/>.  
</t>
</list>
</t>
</section>

<section anchor='blockdef' title="Burst/Gap Discard Block">
<section anchor='blockdef1' title="Report Block Structure">
    <figure anchor='blockdata' title="Report Block Structure">
        <artwork>
    0               1               2               3
    0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    BT=NBGD    |I| tag | resv  |      block length = 4         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Threshold     |         Sum of Burst Durations (ms)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       Packets Discarded in Bursts             |    Total...   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | ...Packets expected in bursts |    Number of bursts   | Sum of|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+        
   |                ...Squares of Burst Durations (ms-squared)     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	</artwork>
    </figure>
</section>
<section anchor='blockdef2' title="Definition of Fields in Burst/Gap Discard Report Block">
<t>
   block type (BT): 8 bits
</t>
<t>
<list style='empty'>
<t>
         A Burst/Gap Discard Report Block is identified by the constant 
         NBGD. 
</t>
</list>
</t>
<t>
[Note to RFC Editor: please replace NBGD with the
         IANA provided RTCP XR block type for this block.]
</t>
<t>
   Interval Metric flag (I): 1 bit
</t>
<t>
<list style='empty'>
<t>
This field is used to indicate whether the Burst/Gap Discard metric is an Interval or a Cumulative metric, 
that is, whether the reported value applies to the most 
recent measurement interval duration between successive metrics reports (I=1) (the Interval Duration) or to the accumulation period 
characteristic of cumulative 
measurements (I=0) (the Cumulative Duration). Numerical values for both these intervals are provided in the Measurement Identifier block 
referenced by the tag field below.
</t>
</list>
</t>
<t>
   Measurement Identifier association (tag): 3 bits
</t>
<t>
<list style='empty'>
<t>
This field is used to identify the Measurement Identifier block <xref target='MEASIDENT'/> which describes this measurement. The relevant 
Measurement Identifier block has the same tag value as the Burst/Gap Discard block. Note that there may be 
more than one Measurement Identifier block per RTCP packet.
</t>
</list>
</t>
<t>
   Reserved (resv): 4 bits
</t>
<t>
<list style='empty'>
<t>
These bits are reserved. They SHOULD be set to zero by senders and MUST be ignored by receivers.
</t>
</list>
</t>
<t>
   block length: 16 bits
</t>
<t>
<list style='empty'>
<t>
The length of this report block in 32-bit words, minus one. For the Burst/Gap Discard block, the block length 
is equal to 4.
</t>
</list>
</t>
<t>
Threshold: 8 bits
</t>
<t>
<list style='empty'>
<t>
   The Threshold is equivalent to Gmin in <xref target='RFC3611'/>, i.e. the number of
   successive frames that must not be discarded prior to
   and following a discarded frame in order for this 
   discarded frame to be regarded as part of a gap.
</t>
</list>
</t>
<t>
Sum of Burst Durations (ms): 24 bits
</t>
<t>
<list style='empty'>
<t>
   The total duration of bursts of discarded frames in the period of the report (Interval or Cumulative).
</t><t>
   If the measured value exceeds 0xFFFFFD, the value 0xFFFFFE SHOULD be
   reported to indicate an over-range measurement.  If the measurement
   is unavailable, the value 0xFFFFFF SHOULD be reported.
</t>
</list>
</t>
<t>
Packets discarded in bursts: 24 bits
</t>
<t>
<list style='empty'>
<t>
   The total number of packets discarded during discard bursts.
</t>
<t>
   If the measured value exceeds 0xFFFFFD, the value 0xFFFFFE SHOULD
   be reported to indicate an over-range measurement.  If the
   measurement is unavailable, the value 0xFFFFFF SHOULD be reported.
</t>
</list>
</t>
<t>
Total packets expected in bursts: 24 bits
</t>
<t>
<list style='empty'>
<t>
   The total number of packets expected during discard bursts (that is, the sum of received packets and lost packets).
</t>
<t>
   If the measured value exceeds 0xFFFFFD, the value 0xFFFFFE SHOULD
   be reported to indicate an over-range measurement.  If the
   measurement is unavailable, the value 0xFFFFFF SHOULD be reported.
</t>
</list>
</t>
<t>
Number of bursts: 16 bits
</t>
<t>
<list style='empty'>
<t>
The number of bursts in the period of the report (Interval or Cumulative).
</t>
<t>
   If the measured value exceeds 0xFFFD, the value 0xFFFE SHOULD be
   reported to indicate an over-range measurement.  If the measurement
   is unavailable, the value 0xFFFF SHOULD be reported.
</t>
</list>
</t>
<t>
Sum of Squares of Burst Durations (ms-squared): 36 bits
</t>
<t>
<list style='empty'>
<t>
The sum of the squares of burst durations (where individual burst durations are expressed in ms) over in the period of the 
report (Interval or Cumulative). The units for this quantity are milliseconds-squared.
</t>
<t>
   If the measured value exceeds 0xFFFFFFFFD, the value 0xFFFFFFFFE SHOULD be
   reported to indicate an over-range measurement.  If the measurement
   is unavailable, the value 0xFFFFFFFFF SHOULD be reported.
</t>
</list>
</t>
</section>
<section anchor='calcs' title="Derived metrics based on reported metrics">
<t>
The metrics described here are intended to be used as described in this section, in conjunction with information from the Measurement 
Identity block 
(which MUST be present in the same RTCP packet as the Burst/Gap Discard block) and also with the metric 
"number of packets discarded" provided in the RTCP XR Discard Block <xref target='DISCARD'/>. The RTCP XR Discard Block 
SHOULD be sent if the Burst/Gap Discard block is sent, but the converse does not apply.
</t>
<t>
The fraction of packets discarded during bursts is the quotient:
Packets Discarded in Bursts / Total Packets expected in Bursts
</t><t>
The fraction of packets discarded during gaps is the quotient:
(number of packets discarded - Packets Discarded in Bursts) / (Packets Expected - Total Packets expected in Bursts)
</t><t>
where "number of packets discarded" is obtained from the RTCP XR Discard Block <xref target='DISCARD'/> 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 block <xref target='MEASIDENT'/> associated with this Burst/Gap Discard block. 
</t><t>
The mean burst duration is obtained as the quotient:
</t><t>
mean = Sum of Burst Durations / Number of Bursts
</t><t>
The variance of the burst duration is obtained using the standard result:
</t><t>
var = ( Sum of Squares of Burst Durations - Number of Bursts * mean^2 ) / (Number of Bursts - 1)
</t>
</section>
</section>

<section title="Considerations for Voice-over-IP applications">
<t>
This metric block is applicable to a broad range of RTP applications. Where the metric is used with a Voice-overIP (VoIP)
application, the following considerations apply.
</t>
<t>
   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 over 5 percent discard rate), and gaps,
   which are periods during which discarded packets are
   infrequent and hence call quality is generally acceptable.
</t>
<t>
   If Voice Activity Detection is 
used the Burst and Gap Duration shall
   be determined as if silence frames had been sent, i.e. a period of
   silence in excess of Gmin frames MUST terminate a burst condition.
</t>
<t>
   The recommended value 
for the threshold Gmin in <xref target='RFC3611'/> results in a Burst being
   a period of time during which the call quality is degraded to a
   similar extent to a typical PCM Severely Errored Second.
</t>
</section>

<section anchor='sdp' title="SDP Signaling">
<t>
   <xref target='RFC3611'/> defines the use of SDP (Session Description Protocol) 
   <xref target='RFC4566'/> for signaling the use of XR blocks.  XR blocks MAY be used without
   prior signaling.
</t>
<t>
   This section augments the SDP <xref target='RFC4566'/> attribute "rtcp-xr" defined in 
   <xref target='RFC3611'/> by providing an additional value of "xr-format" to signal the use of the report
   block defined in this document. 
</t><t>
     rtcp-xr-attrib = "a=" "rtcp-xr" ":" [xr-format *(SP xr-format)] CRLF
</t><t>
     (defined in <xref target='RFC3611'/>)
</t><t>
     xr-format = xr-format / 
                xr-bgd-block
</t><t>
     xr-bgd-block   = "brst-gap-dscrd"
</t>
</section>

<section title="IANA Considerations">
<t>
   New block types for RTCP XR are subject to IANA registration.  For
   general guidelines on IANA considerations for RTCP XR, refer to
   [RFC3611].
</t>
<section title="New RTCP XR Block Type value">
<t>   
   This document assigns the block type value NBGD in the IANA "RTCP XR Block
   Type Registry" to the "Concealed Seconds Metrics Block".
</t>
<t>
[Note to RFC Editor: please replace NBGD with the
         IANA provided RTCP XR block type for this block.]
</t>
</section>
<section title="New RTCP XR SDP Parameter">
<t>
This document also registers a new
   parameter "brst-gap-dscrd" in the "RTCP XR SDP Parameters Registry".
</t>
</section>
<section title="Contact information for registrations">
<t>
   The contact information for the registrations is:
</t>
<t>
   Geoff Hunt (geoff.hunt@bt.com)
</t>
<t>
   Orion 2 PP3, Adastral Park, Martlesham Heath, Ipswich IP5 3RE, United Kingdom
</t>
</section>
</section>

<section title="Security Considerations">
<t>
   It is believed that this proposed RTCP XR report block introduces no
   new security considerations beyond those described in <xref target='RFC3611'/>.  This block does not provide 
   per-packet statistics so the risk
   to confidentiality documented in Section 7, paragraph 3 of <xref target='RFC3611'/> does
   not apply.
</t>
</section>
<section title="Contributors">
<t>
   The authors gratefully acknowledge the comments and contributions
   made by Bruce Adams, Philip Arden, Amit Arora, Bob Biskner, Kevin Connor, Claus Dahm, Randy Ethier, 
   Roni Even, Jim Frauenthal, Albert Higashi, Tom Hock, 
   Shane Holthaus, Paul Jones, Rajesh Kumar, Keith Lantz, Mohamed Mostafa, Amy Pendleton, 
   Colin Perkins, Mike Ramalho, 
   Ravi Raviraj,
   Albrecht Schwarz, Tom Taylor, and Hideaki Yamada.
</t>
</section>
<section title="Changes from previous version">
<t>
Extended and clarified IANA considerations section
</t>
<t>
Changed SDP tag for block to "brst-gap-dscrd"
</t>
<t>
Changed short title to "RTCP XR Burst/Gap Discard" to avoid confusion with Burst/Gap Loss
</t>
<t>
Moved VoIP considerations to a separate section to emphasise the more general applicability of the metrics.
</t>
</section>
</middle>

    <back>
<references title='Normative References'>
                <reference anchor='MEASIDENT'>
			<front> 
				<title>RTCP XR Measurement Identifier Block</title> 
				<author initials='G.' surname='Hunt' fullname='Geoff Hunt'> 
					<organization>BT</organization> 
				</author> 
				<date month='February' year='2009' /> 
			</front> 
			<seriesInfo name='ID' value='draft-ietf-avt-rtcp-xr-measid-01' /> 	
			<format type='TXT' /> 
		</reference>
                <reference anchor='RFC3550'>
			<front> 
				<title>RTP: A Transport Protocol for Real-Time Applications</title> 
				<author initials='H.' surname='Schulzrinne' fullname='Henning Schulzrinne'> 
					<organization>Columbia University</organization> 
				</author> 
				<date month='July' year='2003' /> 
			</front> 
			<seriesInfo name='RFC' value='3550' /> 	
			<format type='TXT' /> 
		</reference>
                <reference anchor='RFC3611'>
			<front> 
				<title>RTP Control Protocol Extended Reports (RTCP XR)</title> 
				<author initials='T. (Ed)' surname='Friedman' fullname='Timur Friedman'> 
					<organization> Paris 6 </organization> 
				</author> 
				<date month='November' year='2003' /> 
			</front> 
			<seriesInfo name='RFC' value='3611' /> 	
			<format type='TXT' /> 
		</reference>
                <reference anchor='RFC2119'>
			<front> 
				<title>Key words for use in RFCs to Indicate Requirement Levels</title> 
				<author initials='S.' surname='Bradner' fullname='Scott Bradner'> 
					<organization>Harvard University</organization> 
				</author> 
				<date month='March' year='1997' /> 
			</front> 
			<seriesInfo name='RFC' value='2119' /> 	
			<seriesInfo name='BCP' value='14' /> 	
			<format type='TXT' /> 
		</reference>
                <reference anchor='RFC4566'>
			<front> 
				<title>SDP: Session Description Protocol</title> 
				<author initials='M.' surname='Handley' fullname='Mark Handley'> 
					<organization>UCL</organization> 
				</author> 
				<date month='July' year='2006' /> 
			</front> 
			<seriesInfo name='RFC' value='4566'/>
			<format type='TXT' /> 
		</reference>
</references>
        <references title='Informative References'>
		<reference anchor='PMOLFRAME'>
			<front>
                                <title>Framework for Performance Metric Development</title> 
                                <author initials='A.' surname='Clark' fullname='Alan Clark'> 
                                        <organization>Telchemy Incorporated</organization> 
				</author> 
                                <date month='July' year='2008' /> 
			</front> 
                        <seriesInfo name='ID' value='draft-ietf-pmol-metrics-framework-00' />  
			<format type='TXT' /> 
            </reference>
                <reference anchor='MONARCH'>
			<front> 
				<title>Monitoring Architectures for RTP</title> 
				<author initials='G.' surname='Hunt' fullname='Geoff Hunt'> 
					<organization>BT</organization> 
				</author> 
				<date month='August' year='2008' /> 
			</front> 
			<seriesInfo name='ID' value='draft-hunt-avt-monarch-01' /> 	
			<format type='TXT' /> 
		</reference>
                <reference anchor='DISCARD'>
			<front> 
				<title>RTCP XR Report Block for Discard metric Reporting</title> 
				<author initials='G.' surname='Hunt' fullname='Geoff Hunt'> 
					<organization>BT</organization> 
				</author> 
				<date month='February' year='2009' /> 
			</front> 
			<seriesInfo name='ID' value='draft-ietf-rtcp-xr-discard-01' /> 	
			<format type='TXT' /> 
		</reference>
	</references>
    </back>

</rfc>
