idnits 2.17.1 draft-ietf-xrblock-rtcp-xr-jb-08.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (February 23, 2013) is 4079 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 4566 (Obsoleted by RFC 8866) ** Downref: Normative reference to an Informational RFC: RFC 6709 Summary: 2 errors (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Audio/Video Transport Working Group A. Clark 3 Internet-Draft Telchemy 4 Intended status: Standards Track V. Singh 5 Expires: August 27, 2013 Aalto University 6 Q. Wu 7 Huawei 8 February 23, 2013 10 RTP Control Protocol (RTCP) Extended Report (XR) Block for Jitter Buffer 11 Metric Reporting 12 draft-ietf-xrblock-rtcp-xr-jb-08.txt 14 Abstract 16 This document defines an RTP Control Protocol (RTCP) Extended Report 17 (XR) Block that allows the reporting of Jitter Buffer metrics for a 18 range of RTP applications. 20 Status of this Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at http://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on August 27, 2013. 37 Copyright Notice 39 Copyright (c) 2013 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (http://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 55 1.1. Jitter Buffer Metrics Block . . . . . . . . . . . . . . . 3 56 1.2. RTCP and RTCP XR Reports . . . . . . . . . . . . . . . . . 3 57 1.3. Performance Metrics Framework . . . . . . . . . . . . . . 3 58 1.4. Applicability . . . . . . . . . . . . . . . . . . . . . . 3 59 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 60 2.1. Standards Language . . . . . . . . . . . . . . . . . . . . 4 61 3. Jitter Buffer Operation . . . . . . . . . . . . . . . . . . . 5 62 3.1. Fixed Jitter Buffer . . . . . . . . . . . . . . . . . . . 5 63 3.2. Adaptive Jitter Buffer . . . . . . . . . . . . . . . . . . 5 64 4. Jitter Buffer Metrics Block . . . . . . . . . . . . . . . . . 6 65 4.1. Report Block Structure . . . . . . . . . . . . . . . . . . 6 66 4.2. Definition of Fields in Jitter Buffer Metrics Block . . . 6 67 5. SDP Signaling . . . . . . . . . . . . . . . . . . . . . . . . 9 68 5.1. SDP rtcp-xr-attrib Attribute Extension . . . . . . . . . . 9 69 5.2. Offer/Answer Usage . . . . . . . . . . . . . . . . . . . . 9 70 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 71 6.1. New RTCP XR Block Type value . . . . . . . . . . . . . . . 10 72 6.2. New RTCP XR SDP Parameter . . . . . . . . . . . . . . . . 10 73 6.3. Contact information for registrations . . . . . . . . . . 10 74 7. Security Considerations . . . . . . . . . . . . . . . . . . . 11 75 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 12 76 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 13 77 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 78 10.1. Normative References . . . . . . . . . . . . . . . . . . . 14 79 10.2. Informative References . . . . . . . . . . . . . . . . . . 14 80 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 15 81 A.1. draft-ietf-xrblock-rtcp-xr-jb-08 . . . . . . . . . . . . . 15 82 A.2. draft-ietf-xrblock-rtcp-xr-jb-07 . . . . . . . . . . . . . 15 83 A.3. draft-ietf-xrblock-rtcp-xr-jb-05 . . . . . . . . . . . . . 15 84 A.4. draft-ietf-xrblock-rtcp-xr-jb-03 . . . . . . . . . . . . . 15 85 A.5. draft-ietf-xrblock-rtcp-xr-jb-02 . . . . . . . . . . . . . 15 86 A.6. draft-ietf-xrblock-rtcp-xr-jb-01 . . . . . . . . . . . . . 15 87 A.7. draft-ietf-xrblock-rtcp-xr-jb-00 . . . . . . . . . . . . . 16 88 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17 90 1. Introduction 92 1.1. Jitter Buffer Metrics Block 94 This document defines a new block type to augment those defined in 95 [RFC3611], for use in a range of RTP applications. 97 The new block type provides information on jitter buffer 98 configuration and performance. 100 The metric belongs to the class of transport-related end system 101 metrics defined in [RFC6792]. 103 Instances of this Metrics Block refer by Synchronization source 104 (SSRC) to the separate auxiliary Measurement Information block 105 [RFC6776] which contains information such as the SSRC of the measured 106 stream, and RTP sequence numbers and time intervals indicating the 107 span of the report. 109 1.2. RTCP and RTCP XR Reports 111 The use of RTCP for reporting is defined in [RFC3550]. [RFC3611] 112 defines an extensible structure for reporting using an RTCP Extended 113 Report (XR). This document defines a new Extended Report block for 114 use with [RFC3550] and [RFC3611]. 116 1.3. Performance Metrics Framework 118 The Performance Metrics Framework [RFC6390] provides guidance on the 119 definition and specification of performance metrics. The RTP 120 Monitoring Architectures [RFC6792] provides guideline for reporting 121 block format using RTCP XR. Metrics described in this draft are in 122 accordance with the guidelines in [RFC6390]and [RFC6792]. 124 1.4. Applicability 126 Real-time applications employ a jitter buffer to absorb jitter 127 introduced on the path from source to destination. These metrics are 128 used to report how the jitter buffer at the receiving end of RTP 129 stream behaves as a result of jitter in the network and are 130 applicable to a range of RTP applications. 132 These metrics reflect how terminal-related factors affect real-time 133 application quality and are useful to provide better end-user quality 134 of experience (QoE). 136 2. Terminology 138 2.1. Standards Language 140 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 141 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 142 document are to be interpreted as described in RFC 2119 [RFC2119]. 144 3. Jitter Buffer Operation 146 A jitter buffer is required to absorb delay variation in network 147 delivery of media packets. A jitter buffer works by holding media 148 data for a period of time after it is received and before it is 149 played out. Packets that arrive early are held in the jitter buffer 150 longer. If packets arrive too early they may be discarded if there 151 is no available jitter buffer space. If packets are delayed 152 excessively by the network they may be discarded if they miss their 153 playout time. 155 The jitter buffer can be considered as a time window with one side 156 (the early window) aligned with the delay corresponding to the 157 earliest arriving packet and the other side (the late window) 158 representing the maximum permissible delay before a late arriving 159 packet would be discarded. The delay applied to packets that arrive 160 at their expected time is known as the Nominal Delay and this is 161 equivalent to the late window. 163 The "expected arrival time" is the time that a packet would arrive if 164 there was no delay variation. If all packets arrived at their 165 expected arrival time then every packet would be delayed by exactly 166 the Nominal Delay. Early packets arrive before their expected 167 arrival time and late packets arrive after. The reference for the 168 expected arrival time may, for example, be the first packet in the 169 session or the running average delay. 171 Jitter Buffer delay is the time spent by a packet in the jitter 172 buffer. The Jitter Buffer Nominal Delay is the delay applied to 173 packets arriving at their expected time. The Jitter Buffer maximum 174 delay is the delay that is applied to an earliest arriving packet 175 that is not discarded and corresponds to the early window of the 176 jitter buffer. 178 3.1. Fixed Jitter Buffer 180 A receiver can use either a fixed or adaptive jitter buffer. A fixed 181 jitter buffer is a simple implementation however may not give optimum 182 performance in terms of packet discard rate and delay. 184 3.2. Adaptive Jitter Buffer 186 An adaptive jitter buffer allows the nominal delay to be set to a low 187 value initially, to minimize user perceived delay, however can 188 automatically increase the late window if a significant proportion of 189 packets are arriving late (and hence being discarded). 191 4. Jitter Buffer Metrics Block 193 This block describes the configuration and operating parameters of 194 the jitter buffer in the receiver of the RTP end system or RTP mixer 195 which sends the report. Instances of this Metrics Block refer by 196 SSRC to the separate auxiliary Measurement Information block 197 [RFC6776] which describes the measurement interval in use. This 198 Metrics Block relies on the measurement interval in the Measurement 199 Information block indicating the span of the report and should be 200 sent in the same compound RTCP packet as the measurement information 201 block. If the measurement interval is not received in the same 202 compound RTCP packet as this Metrics Block, this Metrics Block should 203 be discarded. 205 4.1. Report Block Structure 207 JB Metrics Block 209 0 1 2 3 210 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 211 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 212 | BT=NJB | I |C| Rsvd. | block length=3 | 213 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 214 | SSRC of Source | 215 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 216 | JB nominal | JB maximum | 217 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 218 | JB high water mark | JB low water mark | 219 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 221 Figure 1: Report Block Structure 223 4.2. Definition of Fields in Jitter Buffer Metrics Block 225 Block type (BT): 8 bits 227 A Jitter Buffer Metrics Report Block is identified by the constant 228 NJB. 230 [Note to RFC Editor: please replace NJB with the IANA provided 231 RTCP XR block type for this block.] 233 Interval Metric flag (I): 2 bits 235 This field is used to indicate whether the Jitter Buffer metrics 236 are Sampled, Interval or Cumulative metrics: 238 I=01: Sampled Value - the reported value is a sampled 239 instantaneous value. 241 I=10: Interval Duration - the reported value applies to the 242 most recent measurement interval duration between successive 243 metrics reports. 245 I=11: Cumulative Duration - the reported value applies to the 246 accumulation period characteristic of cumulative measurements. 248 Jitter Buffer Configuration (C): 1 bit 250 This field is used to identify the jitter buffer method in use at 251 the receiver, according to the following code: 253 0 = Fixed jitter buffer 255 1 = Adaptive jitter buffer 257 Reserved (Rsvd.): 5 bits 259 These bits are reserved. They MUST be set to zero by senders 260 ignored by receivers (See [RFC6709] section 4.2). 262 Block Length: 16 bits 264 The length of this report block in 32-bit words, minus one, in 265 accordance with the definition in [RFC3611]. This field MUST be 266 set to 3 to match the fixed length of the report block. 268 jitter buffer nominal delay (JB nominal): 16 bits 270 This is the current nominal jitter buffer delay in milliseconds, 271 which corresponds to the nominal jitter buffer delay for packets 272 that arrive exactly on time. It is calculated based on the time 273 spend in the jitter buffer for the packet that arrives exactly on 274 time. This parameter MUST be provided for both fixed and adaptive 275 jitter buffer implementations. 277 If the measured value exceeds 0xFFFD, the value 0xFFFE MUST be 278 reported to indicate an over-range measurement. If the 279 measurement is unavailable, the value 0xFFFF MUST be reported. 281 jitter buffer maximum delay (JB maximum): 16 bits 283 This is the current maximum jitter buffer delay in milliseconds 284 which corresponds to the earliest arriving packet that would not 285 be discarded. It is calculated based on the time spent in the 286 jitter buffer for the earliest arriving packet In simple queue 287 implementations this may correspond to the size of the jitter 288 buffer. In adaptive jitter buffer implementations, this value may 289 vary dynamically. This parameter MUST be provided for both fixed 290 and adaptive jitter buffer implementations. 292 If the measured value exceeds 0xFFFD, the value 0xFFFE MUST be 293 reported to indicate an over-range measurement. If the 294 measurement is unavailable, the value 0xFFFF MUST be reported. 296 jitter buffer high water mark (JB high water mark): 16 bits 298 This is the highest value of the jitter buffer nominal delay in 299 milliseconds which occurred at any time during the reporting 300 interval. This parameter MUST be provided for adaptive jitter 301 buffer implementations and its value MUST be set to JB maximum for 302 fixed jitter buffer implementations. 304 If the measured value exceeds 0xFFFD, the value 0xFFFE MUST be 305 reported to indicate an over-range measurement. If the 306 measurement is unavailable, the value 0xFFFF MUST be reported. 308 jitter buffer low water mark (JB low water mark): 16 bits 310 This is the lowest value of the jitter buffer nominal delay in 311 milliseconds which occurred at any time during the reporting 312 interval. This parameter MUST be provided for adaptive jitter 313 buffer implementations and its value MUST be set to JB maximum for 314 fixed jitter buffer implementations. 316 If the measured value exceeds 0xFFFD, the value 0xFFFE MUST be 317 reported to indicate an over-range measurement. If the 318 measurement is unavailable, the value 0xFFFF MUST be reported. 320 5. SDP Signaling 322 [RFC3611] defines the use of SDP (Session Description Protocol) 323 [RFC4566] for signaling the use of XR blocks. However XR blocks MAY 324 be used without prior signaling (see section 5 of RFC3611). 326 5.1. SDP rtcp-xr-attrib Attribute Extension 328 This section augments the SDP [RFC4566] attribute "rtcp-xr" defined 329 in [RFC3611] by providing an additional value of "xr-format" to 330 signal the use of the report block defined in this document. 332 xr-format =/ xr-jb-block 334 xr-jb-block = "jitter-bfr" 336 5.2. Offer/Answer Usage 338 When SDP is used in offer-answer context, the SDP Offer/Answer usage 339 defined in [RFC3611] for unilateral "rtcp-xr" attribute parameters 340 applies. For detailed usage of Offer/Answer for unilateral 341 parameter, refer to section 5.2 of [RFC3611]. 343 6. IANA Considerations 345 New block types for RTCP XR are subject to IANA registration. For 346 general guidelines on IANA considerations for RTCP XR, refer to 347 [RFC3611]. 349 6.1. New RTCP XR Block Type value 351 This document assigns the block type value NJB in the IANA "RTCP XR 352 Block Type Registry" to the "JB Metrics Block". 354 [Note to RFC Editor: please replace NJB with the IANA provided RTCP 355 XR block type for this block.] 357 6.2. New RTCP XR SDP Parameter 359 This document also registers a new parameter "jitter-bfr" in the 360 "RTCP XR SDP Parameters Registry". 362 6.3. Contact information for registrations 364 The contact information for the registrations is: 366 Qin Wu (sunseawq@huawei.com) 367 101 Software Avenue, Yuhua District 368 Nanjing, Jiangsu 210012 369 China 371 7. Security Considerations 373 It is believed that this proposed RTCP XR report block introduces no 374 new security considerations beyond those described in [RFC3611]. 375 This block does not provide per-packet statistics so the risk to 376 confidentiality documented in Section 7, paragraph 3 of [RFC3611] 377 does not apply. 379 8. Contributors 381 Geoff Hunt wrote the initial draft of this document. 383 9. Acknowledgments 385 The authors gratefully acknowledge reviews and feedback provided by 386 Bruce Adams, Philip Arden, Amit Arora, Bob Biskner, Kevin Connor, 387 Claus Dahm, Randy Ethier, Roni Even, Jim Frauenthal, Albert Higashi, 388 Tom Hock, Shane Holthaus, Paul Jones, Rajesh Kumar, Keith Lantz, 389 Mohamed Mostafa, Amy Pendleton, Colin Perkins, Mike Ramalho, Ravi 390 Raviraj, Albrecht Schwarz, Tom Taylor, Hideaki Yamada,Claire Bi,Colin 391 Perkin, Dan Romascanu, Kevin Gross and Glen Zorn. 393 10. References 395 10.1. Normative References 397 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 398 Requirement Levels", March 1997. 400 [RFC3550] Schulzrinne, H., "RTP: A Transport Protocol for Real-Time 401 Applications", RFC 3550, July 2003. 403 [RFC3611] Friedman, T., Caceres, R., and A. Clark, "RTP Control 404 Protocol Extended Reports (RTCP XR)", November 2003. 406 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 407 Description Protocol", July 2006. 409 [RFC6709] Carpenter, B., Aboba, B., and S. Cheshire, "Design 410 Considerations for Protocol Extensions", RFC 6709, 411 September 2012. 413 [RFC6776] Wu, Q., "Measurement Identity and information Reporting 414 using SDES item and XR Block", RFC 6776, August 2012. 416 10.2. Informative References 418 [RFC6390] Clark, A. and B. Claise, "Framework for Performance Metric 419 Development", RFC 6390, October 2011. 421 [RFC6792] Hunt, G., Wu, Q., and P. Arden, "Monitoring Architectures 422 for RTP", RFC 6792, November 2012. 424 Appendix A. Change Log 426 Note to the RFC-Editor: please remove this section prior to 427 publication as an RFC. 429 A.1. draft-ietf-xrblock-rtcp-xr-jb-08 431 The following are the major changes to previous version : 433 o Rewrote descriptive text and definitions for clarification. 435 A.2. draft-ietf-xrblock-rtcp-xr-jb-07 437 The following are the major changes to previous version : 439 o Add one new section to discuss jitter buffer operation. 441 A.3. draft-ietf-xrblock-rtcp-xr-jb-05 443 The following are the major changes to previous version : 445 o Some editorial change changes based on the discussion with Glen 446 and Kevin on the list. 448 A.4. draft-ietf-xrblock-rtcp-xr-jb-03 450 The following are the major changes to previous version : 452 o Reduce the "jb cfg" to 1-bit based on discussion in the WGLC. 454 o Other editorial change changes aligning with PDV,Delay draft. 456 A.5. draft-ietf-xrblock-rtcp-xr-jb-02 458 The following are the major changes to previous version : 460 o Add some explanation text in the SDP offer/answer section. 462 o Add some text in applicability section to explain the use to 463 report jitter buffer metrics. 465 o Other editorial change changes aligning with PDV,Delay draft. 467 A.6. draft-ietf-xrblock-rtcp-xr-jb-01 469 The following are the major changes to previous version : 471 o Outdated reference update 473 o Add one Editor notes to ask clarification on the use of reporting 474 jitter buffer metrics. 476 o Other Editorial changes. 478 A.7. draft-ietf-xrblock-rtcp-xr-jb-00 480 The following are the major changes to previous version : 482 o Boilerplate updates. 484 o references updates 486 o allocate 32 bit field in report block for SSRC 488 o Other editorial changes to get alignment with MONARCH draft. 490 Authors' Addresses 492 Alan Clark 493 Telchemy Incorporated 494 2905 Premiere Parkway, Suite 280 495 Duluth, GA 30097 496 USA 498 Email: alan.d.clark@telchemy.com 500 Varun Singh 501 Aalto University 502 School of Electrical Engineering 503 Otakaari 5 A 504 Espoo, FIN 02150 505 Finland 507 Email: varun@comnet.tkk.fi 509 Qin Wu 510 Huawei 511 101 Software Avenue, Yuhua District 512 Nanjing, Jiangsu 210012 513 China 515 Email: sunseawq@huawei.com