<?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="full3978" docName="draft-ietf-avt-rtcp-xr-pdv-00.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 Packet Delay Variation'>RTCP XR Report Block for Packet Delay Variation Metric Reporting</title>
        <author initials='G.' surname='Hunt' fullname='Geoff Hunt'>
            <organization abbrev='BT'>BT</organization>
		<address>
	    <postal>
        	<street>Orion 1 PP9</street>
        	<street>Adastral Park</street>
        	<street>Martlesham Heath</street>
        	<city>Ipswich</city> <region>Suffolk</region>
        	<code>IP4 2TH</code>
        	<country>United Kingdom</country>
    	    </postal>
	    <phone>+44 1473 608325</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='October' year='2008' />
       <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 Packet Delay Variation metrics for a range of RTP applications.
        </t>
        </abstract>
    </front>

    <middle>

<section anchor='intro' title="Introduction">
<section anchor='intro1' title="Packet Delay Variation Metrics 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.
</t><t>
   The new block type provides information on Packet Delay Variation using one of several standard metrics.
</t>
<t>
The metrics belong to the class of transport metrics defined in [MONARCH] (work in progress).
</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>
These metrics are applicable to a range of RTP applications. 
</t>
</section>
</section>

<section anchor='blockdef' title="Packet Delay Variation Metrics Block">
<t>
Metrics in this block report on packet delay variation in the stream arriving at the RTP system.
</t>
<section anchor='blockdef1' title="Report Block Structure">
    <figure anchor='blockdata' title="Report Block Structure">
        <artwork>
   PDV metrics block
    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=NPDV   |I| tag |pdvtyp |        block length=3         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Pos Threshold/Peak PDV     |     Pos PDV Percentile        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Neg Threshold/Peak PDV     |     Neg PDV Percentile        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Mean PDV             |            unused             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	</artwork>
    </figure>
</section>
<section anchor='blockdef2' title="Definition of Fields in PDV Metrics Block">
<t>
   block type (BT): 8 bits
</t>
<t>
<list style='empty'>
<t>
         A Packet Delay Variation Metrics Report Block is identified by the constant 
         NJB. 
</t>
</list>
</t>
<t>
[Note to RFC Editor: please replace NPDV 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 Packet Delay Variation metrics block is an Interval or a Cumulative report, 
that is, whether the reported values apply 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 Packet Delay Variation Metrics block. Note that there may be 
more than one Measurement Identifier block per RTCP packet.
</t>
</list>
</t>
<t>
   Packet Delay Variation Metric Type (pdvtyp): 4 bits
</t>
<t>
<list style='empty'>
<t>
This field is used to identify the Packet Delay Variation Metric Type used in this report block, according 
to the following code:
</t>
</list>
</t>
<figure>
<artwork>
    bits 014-017
        0: PPDV according to [RFC3550],
        1: MAPDV according to [G.1020],
        2: IPDV according to [Y.1540]
        Other values reserved
</artwork>
</figure>
<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 Packet Delay Variation Metrics block, the 
block length is equal to 3.
</t>
</list>
</t>
<t>
Positive Threshold/Peak PDV: 16 bit, S11:4 format
</t>
<t>
<list style='empty'>
<t>
   The PDV associated with the Positive PDV percentile expressed in milliseconds.  
The term Positive is associated
   with packets arriving later than the expected time.
</t><t>
   If the measured value is more negative than -2047.9375 (the value
   which would be coded as 0x8001), the value 0x8000 SHOULD be reported
   to indicate an over-range negative measurement.  If the measured
   value is more positive than +2047.8125 (the value which would be
   coded as 0x7FFD), the value 0x7FFE SHOULD be reported to indicate an
   over-range positive measurement.  If the measurement is unavailable,
   the value 0x7FFF SHOULD be reported.
</t>
</list>
</t>
<t>
Positive PDV Percentile: 16 bit, 8:8 format
</t>
<t>
<list style='empty'>
<t>
   The percentage of packets on the call for which individual packet
   delays were less than the Positive Threshold PDV.
</t><t>
   If the measurement is unavailable, the value 0xFFFF SHOULD be
   reported.
</t>
</list>
</t>
<t>
Negative Threshold/Peak PDV: 16 bit, S11:4 format
</t>
<t>
<list style='empty'>
<t>
   The PDV associated with the Negative PDV percentile expressed in milliseconds.  
The term Negative is associated
   with packets arriving earlier than the expected time.
</t><t>
   If the measured value is more negative than -2047.9375 (the value
   which would be coded as 0x8001), the value 0x8000 SHOULD be reported
   to indicate an over-range negative measurement.  If the measured
   value is more positive than +2047.8125 (the value which would be
   coded as 0x7FFD), the value 0x7FFE SHOULD be reported to indicate an
   over-range positive measurement.  If the measurement is unavailable,
   the value 0x7FFF SHOULD be reported.
</t>
</list>
</t>
<t>
Negative PDV Percentile: 16 bit, 8:8 format
</t>
<t>
<list style='empty'>
<t>
   The percentage of packets on the call for which individual packet
   delays were more than the Negative Threshold PDV.
</t><t>
   If the measurement is unavailable, the value 0xFFFF SHOULD be
   reported.
</t>
</list>
</t>
<t>
   If the PDV Type indicated is IPDV and the Positive and Negative PDV
   Percentiles are set to 100.0 then the Positive and Negative
   Threshold/Peak PDV values are the peak values measured during the
   reporting interval (which may be from the start of the call for
   cumulative reports).  In this case, the difference between the
   Positive and Negative Threshold/Peak values defines the range of
   IPDV.
</t>
<t>
Mean PDV: (16 bit, S11:4 format) expressed in milliseconds
</t>
<t>
<list style='empty'>
<t>
   For MAPDV this value is generated according to <xref target='G.1020'/>.  For
   interval reports the MAPDV value is reset at the start of the
   interval.
</t><t>
   For PPDV the value reported is the value of J(i) calculated according
   to <xref target='RFC3550'/> at the time the report is generated.
</t><t>
For IPDV, the value reported is the mean of per-packet IPDV values. This metric 
indicates the arrival time of the first media packet of the session with respect to the 
mean of the arrival times of every packet of the session. A single value of the metric (for a
single session) may not be
useful by itself, but its average over a number of sessions may be useful in diagnosing media 
delay at session startup. For example, this might occur if media packets are often delayed behind 
signalling packets due to head-of-line blocking.
</t><t>
   If the measured value is more negative than -2047.9375 (the value
   which would be coded as 0x8001), the value 0x8000 SHOULD be reported
   to indicate an over-range negative measurement.  If the measured
   value is more positive than +2047.8125 (the value which would be
   coded as 0x7FFD), the value 0x7FFE SHOULD be reported to indicate an
   over-range positive measurement.  If the measurement is unavailable,
   the value 0x7FFF SHOULD be reported.
</t>
</list>
</t>
<t>
   unused: 16 bits
</t>
<t>
<list style='empty'>
<t>
These bits are unused. They SHOULD be set to zero by the sender and MUST be ignored by the receiver.
</t>
</list>
</t>
</section>
<section anchor='examples' title="Examples of use">
<t>
   (a) To report PPDV (RFC3550):
</t><t>
   Threshold PDV = FFFF (Undefined); PDV Percentile = FFFF (Undefined);
   PDV type = 0 (PPDV)
</t><t>
   causes PPDV to be reported in the Mean PDV field.
</t><t>
   (b) To report MAPDV (G.1020):
</t><t>
   Pos Threshold PDV = 50.0; Pos PDV Percentile = 95.3; Neg Threshold
   PDV = 50.0 (note - implies -50ms); Neg PDV Percentile = 98.4; PDV
   type = 1 (MAPDV)
</t><t>
   causes average MAPDV to be reported in the Mean PDV field.
</t><t>
   Note that implementations may either fix the reported percentile and
   calculate the associated PDV level OR may fix a threshold PDV level
   and calculate the associated percentile.  From a practical
   implementation perspective it is simpler to use the second of these
   approaches (except of course in the extreme case of a 100%
   percentile).
</t><t>
   IPDV, according to Y.1540 is the difference in delay between the current
   packet and the first packet of the stream.  If the sending and
   receiving clocks are not synchronized, this metric includes the
   effect of relative timing drift.
</t>
</section>
</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-pdv-block
</t>
<figure>
<artwork>
     xr-pdv-block  = "delay" [ "," pdvtype ] [ "," nspec "," pspec ] 
</artwork>
</figure>
<figure>
<artwork>
     pdvtype     = "pdv="    0      ; ppdv  RFC 3550 
                           / 1      ; mapdv ITU-T G.1020 
                           / 2      ; ipdv  ITU-T Y.1540 
     nspec       = "nthr=" fixpoint     ; negative threshold PDV (ms) 
                 / "npc=" fixpoint    ; negative PDV percentile 
     pspec       = "pthr=" fixpoint     ; positive threshold PDV (ms) 
                 / "ppc=" fixpoint    ; positive PDV percentile 
</artwork>
</figure>
<figure>
<artwork>
     fixpoint       = 1*DIGIT "." 1*DIGIT  ; fixed point decimal 
     DIGIT          = %x30-39 
</artwork>
</figure>
<t>
When SDP is used in offer-answer, a system sending SDP may request a specific type of PDV measurement. In addition, they 
may state a specific percentile or threshold value, and expect to receive the corresponding threshold or 
percentile metric, respectively. The system receiving the SDP SHOULD send the PDV metrics requested, but 
if the metric is not available, the system receiving the SDP SHOULD send the flag value indicating that the 
metric is unavailable.
</t>
</section>

<section title="IANA Considerations">
<t>   
   This document creates a new block type within the IANA "RTCP XR Block
   Type Registry" called the Packet Delay Variation Metrics Block, and a new
   parameter xr-pdv within the "RTCP XR SDP Parameters Registry".
</t>
</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>
</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='August' year='2008' /> 
			</front> 
			<seriesInfo name='ID' value='draft-ietf-avt-rtcp-xr-measid-00' /> 	
			<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>
		<reference anchor='G.1020'>
			<front> 
				<title>ITU-T Rec. G.1020, Performance parameter definitions for quality of speech and
        other voiceband applications utilizing IP networks</title> 
				<author initials='' surname='' fullname=''> 
					<organization>ITU-T</organization> 
				</author> 
 				<date month='November' year='2003' /> 
			</front> 
			<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>
	</references>
    </back>

</rfc>
