<?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-loss-conceal-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 Loss Concealment'>RTCP XR Report Block for Loss Concealment 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 Loss Concealment metrics primarily for audio applications of RTP.
        </t>
        </abstract>
    </front>

    <middle>

<section anchor='intro' title="Introduction">
<section anchor='intro1' title="Loss Concealment 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.
</t><t>
   At any instant, the audio output at a receiver may be classified as
   either 'normal' or 'concealed'.  'Normal' refers to playout of audio
   payload received from the remote end, and also includes locally
   generated signals such as announcements, tones and comfort noise.
   Concealment refers to playout of locally-generated signals used to
   mask the impact of network impairments or to reduce the audibility of
   jitter buffer adaptations.
</t><t>
   The new block type provides metrics for actions taken by the receiver to mitigate the effect of packet 
loss and packet discard. Specifically, the first metric (On-Time Playout Duration) reports the duration of normal playout of data which 
the receiver obtained from the sender's stream. A second metric (Loss Concealment Duration) reports the total time during which the receiver played 
out media data which was manufactured locally, because the sender's data for these periods was not available 
due to packet loss or discard. A similar metric (Buffer Adjustment Concealment Duration) reports the duration of playout of locally-manufactured data 
replacing data which is unavailable due to adaptation of an adaptive de-jitter buffer. Further metrics (Playout Interrupt Count and 
Mean Playout Interrupt Size) report 
the number of times normal playout was interrupted, and the mean duration of these interruptions.
</t>
<t>
Loss Concealment Duration and Buffer Adjustment Concealment Duration are reported separately because buffer adjustment
is typically arranged to occur in silence periods so may have very little impact on user experience, whilst loss 
concealment may occur at any time. 
</t>
<t>
The metric belongs to the class of transport-related terminal 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>
This metric is primarily applicable to audio applications of RTP. 
EDITOR'S NOTE: are there metrics for concealment of transport errors for video?
</t>
</section>
</section>

<section anchor='blockdef' title="Loss Concealment Block">
<section anchor='blockdef1' title="Report Block Structure">
    <figure anchor='blockdata' title="Report Block Structure">
        <artwork>
   Loss Concealment 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=NLC     |I| tag |plc|rsv|       block length=4          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 On-time Playout Duration                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Loss Concealment Duration                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Buffer Adjustment Concealment Duration           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Playout Interrupt Count    |  Mean Playout Interrupt Size  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	</artwork>
    </figure>
</section>
<section anchor='blockdef2' title="Definition of Fields in Loss Concealment Report Block">
<t>
   block type (BT): 8 bits
</t>
<t>
<list style='empty'>
<t>
         A Loss Concealment Metrics Report Block is identified by the constant 
         NLC. 
</t>
</list>
</t>
<t>
[Note to RFC Editor: please replace NLC 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 Loss Concealment metric 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 Loss Concealment Metrics block. Note that there may be 
more than one Measurement Identifier block per RTCP packet.
</t>
</list>
</t>
<t>
   Packet Loss Concealment Method (plc): 2 bits
</t>
<t>
<list style='empty'>
<t>
This field is used to identify the packet loss concealment method in use at the receiver, according to the 
following code:
</t>
</list>
</t>
<figure>
<artwork>
        bits 014-015
              0 = silence insertion
              1 = simple replay, no attenuation
              2 = simple replay, with attenuation
              3 = enhanced
</artwork>
</figure>
<t>
   Reserved (rsv): 2 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 Loss Concealment Metrics block, the block length 
is equal to 4.
</t>
</list>
</t>
<t>
On-time Playout Duration (ms): 32 bits
</t>
<t>
<list style='empty'>
<t>
   'On-time' playout is the uninterrupted, in-sequence playout of valid
   decoded audio information originating from the remote endpoint.  This
   includes comfort noise during periods of remote talker silence, if
   VAD is used, and locally generated or regenerated tones and
   announcements.
</t><t>
   An equivalent definition is that on-time playout is playout of any
   signal other than those used for concealment.
</t><t>
   On-time playout duration MUST include both speech and silence
   intervals, whether VAD is used or not.  This duration is reported in
   millisecond units.
</t><t>
   If the measured value exceeds 0xFFFFFFFD, the value 0xFFFFFFFE SHOULD
   be reported to indicate an over-range measurement.  If the
   measurement is unavailable, the value 0xFFFFFFFF SHOULD be reported.
</t>
</list>
</t>
<t>
Loss Concealment Duration (ms): 32 bits
</t>
<t>
<list style='empty'>
<t>
   The duration, in milliseconds, of audio playout corresponding to
   Loss-type concealment.
</t><t>
   Loss-type concealment is reactive insertion or deletion of samples in
   the audio playout stream due to effective frame loss at the audio
   decoder.  "Effective frame loss" is the event in which a frame of
   coded audio is simply not present at the audio decoder when required.
   In this case, substitute audio samples are generally formed, at the
   decoder or elsewhere, to reduce audible impairment.
</t><t>
   If the measured value exceeds 0xFFFFFFFD, the value 0xFFFFFFFE SHOULD
   be reported to indicate an over-range measurement.  If the
   measurement is unavailable, the value 0xFFFFFFFF SHOULD be reported.
</t>
</list>
</t>
<t>
Buffer Adjustment Concealment Duration (ms): 32 bits
</t>
<t>
<list style='empty'>
<t>
   The duration, in milliseconds, of audio playout corresponding to
   Buffer Adjustment-type concealment, if known.
</t><t>
   If the measured value exceeds 0xFFFFFFFD, the value 0xFFFFFFFE SHOULD
   be reported to indicate an over-range measurement.  If the
   measurement is unavailable, the value 0xFFFFFFFF SHOULD be reported.
</t><t>
   Buffer Adjustment-type concealment is proactive or controlled
   insertion or deletion of samples in the audio playout stream due to
   jitter buffer adaptation, re-sizing or re-centering decisions within
   the endpoint.
</t><t>
   Because this insertion is controlled, rather than occurring randomly
   in response to losses, it is typically less audible than loss-type
   concealment.  For example, jitter buffer adaptation
   events may be constrained to occur during periods of talker silence,
   in which case only silence duration is affected, or sophisticated
   time-stretching methods for insertion/deletion during favorable
   periods in active speech may be employed.
</t><t>
   Concealment events which cannot be classified as Buffer Adjustment-
   type MUST be classified as Loss-type.
</t>
</list>
</t>
<t>
Playout Interrupt Count: 16 bits
</t>
<t>
<list style='empty'>
<t>
The number of interruptions to normal playout which occurred during the reporting period.
</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>
Mean Playout Interrupt Size (ms): 16 bits
</t>
<t>
<list style='empty'>
<t>
The mean duration, in ms, of interruptions to normal playout which occurred during the reporting period.
</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>
</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-conceal-block
</t><t>
     xr-conceal-block   = "loss-conceal"
</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 NLC in the IANA "RTCP XR Block
   Type Registry" to the "Loss Concealment Metrics Block".
</t>
<t>
[Note to RFC Editor: please replace NLC 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 "loss-conceal" 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>
Expanded and clarified IANA Considerations section
</t>
<t>
Changed SDP tag for block to "loss-conceal"
</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>
	</references>
    </back>

</rfc>
