idnits 2.17.1 draft-ietf-xrblock-rtcp-xr-jb-07.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 (January 26, 2013) is 4108 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: July 30, 2013 Aalto University 6 Q. Wu 7 Huawei 8 January 26, 2013 10 RTP Control Protocol (RTCP) Extended Report (XR) Block for Jitter Buffer 11 Metric Reporting 12 draft-ietf-xrblock-rtcp-xr-jb-07.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 July 30, 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-07 . . . . . . . . . . . . . 15 82 A.2. draft-ietf-xrblock-rtcp-xr-jb-05 . . . . . . . . . . . . . 15 83 A.3. draft-ietf-xrblock-rtcp-xr-jb-03 . . . . . . . . . . . . . 15 84 A.4. draft-ietf-xrblock-rtcp-xr-jb-02 . . . . . . . . . . . . . 15 85 A.5. draft-ietf-xrblock-rtcp-xr-jb-01 . . . . . . . . . . . . . 15 86 A.6. draft-ietf-xrblock-rtcp-xr-jb-00 . . . . . . . . . . . . . 16 87 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17 89 1. Introduction 91 1.1. Jitter Buffer Metrics Block 93 This document defines a new block type to augment those defined in 94 [RFC3611], for use in a range of RTP applications. 96 The new block type provides information on jitter buffer 97 configuration and performance. 99 The metric belongs to the class of transport-related end system 100 metrics defined in [RFC6792]. 102 Instances of this Metrics Block refer by Synchronization source 103 (SSRC) to the separate auxiliary Measurement Information block 104 [RFC6776] which contains information such as the SSRC of the measured 105 stream, and RTP sequence numbers and time intervals indicating the 106 span of the report. 108 1.2. RTCP and RTCP XR Reports 110 The use of RTCP for reporting is defined in [RFC3550]. [RFC3611] 111 defines an extensible structure for reporting using an RTCP Extended 112 Report (XR). This document defines a new Extended Report block for 113 use with [RFC3550] and [RFC3611]. 115 1.3. Performance Metrics Framework 117 The Performance Metrics Framework [RFC6390] provides guidance on the 118 definition and specification of performance metrics. The RTP 119 Monitoring Architectures [RFC6792] provides guideline for reporting 120 block format using RTCP XR. Metrics described in this draft are in 121 accordance with the guidelines in [RFC6390]and [RFC6792]. 123 1.4. Applicability 125 Real-time applications employ a jitter buffer to absorb jitter 126 introduced on the path from source to destination. These metrics are 127 used to report how the jitter buffer at the receiving end of RTP 128 stream behaves as a result of jitter in the network and are 129 applicable to a range of RTP applications. 131 These metrics reflect how terminal-related factors affect real-time 132 application quality and are useful to provide better end-user quality 133 of experience (QoE). 135 2. Terminology 137 2.1. Standards Language 139 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 140 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 141 document are to be interpreted as described in RFC 2119 [RFC2119]. 143 3. Jitter Buffer Operation 145 A jitter buffer is required to absorb delay variation in network 146 delivery of media packets. A jitter buffer works by holding media 147 data for a period of time after it is received but before it s played 148 out. Packets that arrive relatively early are held in the jitter 149 buffer relatively longer. Playout can fail if packets arrive too 150 early and find no available jitter buffer space to be held until time 151 for playout. Playout can also fail if packets are delayed 152 excessively by the network and arrive too late after they are 153 scheduled to be played. 155 The jitter buffer can be considered as a time window with one side 156 (the early side) aligned with the delay corresponding to the early 157 arriving packet and the other side (the late side) representing the 158 maximum permissible delay before a late arriving packet would be 159 discarded. The Jitter Buffer delay is referred to as the time spent 160 in the jitter buffer. The Jitter Buffer Nominal delay is the delay 161 that is applied to a packet that arrives at its expected time (i.e. 0 162 jitter) - and corresponds to the late window of the jitter buffer. 163 The Jitter buffer maximum delay is the delay that is applied to an 164 earliest arriving packet that is not discarded and corresponds to the 165 early window of the jitter buffer. 167 Note that when a packet arrives at its expected time (i.e. 0 jitter), 168 this packet will fall between left window and right window and we 169 also call this packet as the packet that arrives exactly on time. 170 The jitter buffer nominal delay uses this packet as the reference 171 packet. The reference point would typically be selected as the first 172 packet. However the reference point could also be selected based on 173 some other common criterions, e.g., a running average of the delay. 175 3.1. Fixed Jitter Buffer 177 A receiver can use either a fixed or adaptive jitter buffer method. 178 A fixed jitter buffer method is a simple implementation with the 179 fixed jitter buffer size but may not do a good job of accommodating 180 varying network performance. The fixed jitter buffer may also have 181 extra buffer memory and therefore incur extra media latency compared 182 to an adaptive implementation. 184 3.2. Adaptive Jitter Buffer 186 An adaptive jitter buffer method has adaptive jitter buffer size and 187 may adjust jitter buffer delay during playback in response to 188 changing network performance. The jitter buffer delay is typically 189 adjusted to minimize media latency while also minimizing of lost data 190 due to packets arriving too early or too late. 192 4. Jitter Buffer Metrics Block 194 This block describes the configuration and operating parameters of 195 the jitter buffer in the receiver of the RTP end system or RTP mixer 196 which sends the report. Instances of this Metrics Block refer by 197 SSRC to the separate auxiliary Measurement Information block 198 [RFC6776] which describes the measurement interval in use. This 199 Metrics Block relies on the measurement interval in the Measurement 200 Information block indicating the span of the report and should be 201 sent in the same compound RTCP packet as the measurement information 202 block. If the measurement interval is not received in the same 203 compound RTCP packet as this Metrics Block, this Metrics Block should 204 be discarded. 206 4.1. Report Block Structure 208 JB Metrics Block 210 0 1 2 3 211 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 212 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 213 | BT=NJB | I |C| Rsvd. | block length=3 | 214 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 215 | SSRC of Source | 216 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 217 | JB nominal | JB maximum | 218 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 219 | JB high water mark | JB low water mark | 220 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 222 Figure 1: Report Block Structure 224 4.2. Definition of Fields in Jitter Buffer Metrics Block 226 Block type (BT): 8 bits 228 A Jitter Buffer Metrics Report Block is identified by the constant 229 NJB. 231 [Note to RFC Editor: please replace NJB with the IANA provided 232 RTCP XR block type for this block.] 234 Interval Metric flag (I): 2 bits 236 This field is used to indicate whether the Jitter Buffer metrics 237 are Sampled, Interval or Cumulative metrics: 239 I=01: Sampled Value - the reported value is a sampled 240 instantaneous value. 242 I=10: Interval Duration - the reported value applies to the 243 most recent measurement interval duration between successive 244 metrics reports. 246 I=11: Cumulative Duration - the reported value applies to the 247 accumulation period characteristic of cumulative measurements. 249 Jitter Buffer Configuration (C): 1 bit 251 This field is used to identify the jitter buffer method in use at 252 the receiver, according to the following code: 254 0 = Fixed jitter buffer 256 1 = Adaptive jitter buffer 258 Reserved (Rsvd.): 5 bits 260 These bits are reserved. They MUST be set to zero by senders 261 ignored by receivers (See [RFC6709] section 4.2). 263 Block Length: 16 bits 265 The length of this report block in 32-bit words, minus one, in 266 accordance with the definition in [RFC3611]. This field MUST be 267 set to 3 to match the fixed length of the report block. 269 jitter buffer nominal delay (JB nominal): 16 bits 271 This is the current nominal jitter buffer delay in milliseconds, 272 which corresponds to the nominal jitter buffer delay for packets 273 that arrive exactly on time. It is calculated based on the time 274 spend in the jitter buffer for the packet that arrives exactly on 275 time. This parameter MUST be provided for both fixed and adaptive 276 jitter buffer implementations. 278 If the measured value exceeds 0xFFFD, the value 0xFFFE MUST be 279 reported to indicate an over-range measurement. If the 280 measurement is unavailable, the value 0xFFFF MUST be reported. 282 jitter buffer maximum delay (JB maximum): 16 bits 284 This is the current maximum jitter buffer delay in milliseconds 285 which corresponds to the earliest arriving packet that would not 286 be discarded. It is calculated based on the time spent in the 287 jitter buffer for the earliest arriving packet In simple queue 288 implementations this may correspond to the size of the jitter 289 buffer. In adaptive jitter buffer implementations, this value may 290 vary dynamically. This parameter MUST be provided for both fixed 291 and adaptive jitter buffer implementations. 293 If the measured value exceeds 0xFFFD, the value 0xFFFE MUST be 294 reported to indicate an over-range measurement. If the 295 measurement is unavailable, the value 0xFFFF MUST be reported. 297 jitter buffer high water mark (JB high water mark): 16 bits 299 This is the highest value of the jitter buffer nominal delay in 300 milliseconds which occurred at any time during the reporting 301 interval. This parameter MUST be provided for adaptive jitter 302 buffer implementations and its value MUST be set to JB maximum for 303 fixed jitter buffer implementations. 305 If the measured value exceeds 0xFFFD, the value 0xFFFE MUST be 306 reported to indicate an over-range measurement. If the 307 measurement is unavailable, the value 0xFFFF MUST be reported. 309 jitter buffer low water mark (JB low water mark): 16 bits 311 This is the lowest value of the jitter buffer nominal delay in 312 milliseconds which occurred at any time during the reporting 313 interval. This parameter MUST be provided for adaptive jitter 314 buffer implementations and its value MUST be set to JB maximum for 315 fixed jitter buffer implementations. 317 If the measured value exceeds 0xFFFD, the value 0xFFFE MUST be 318 reported to indicate an over-range measurement. If the 319 measurement is unavailable, the value 0xFFFF MUST be reported. 321 5. SDP Signaling 323 [RFC3611] defines the use of SDP (Session Description Protocol) 324 [RFC4566] for signaling the use of XR blocks. However XR blocks MAY 325 be used without prior signaling (see section 5 of RFC3611). 327 5.1. SDP rtcp-xr-attrib Attribute Extension 329 This section augments the SDP [RFC4566] attribute "rtcp-xr" defined 330 in [RFC3611] by providing an additional value of "xr-format" to 331 signal the use of the report block defined in this document. 333 xr-format =/ xr-jb-block 335 xr-jb-block = "jitter-bfr" 337 5.2. Offer/Answer Usage 339 When SDP is used in offer-answer context, the SDP Offer/Answer usage 340 defined in [RFC3611] for unilateral "rtcp-xr" attribute parameters 341 applies. For detailed usage of Offer/Answer for unilateral 342 parameter, refer to section 5.2 of [RFC3611]. 344 6. IANA Considerations 346 New block types for RTCP XR are subject to IANA registration. For 347 general guidelines on IANA considerations for RTCP XR, refer to 348 [RFC3611]. 350 6.1. New RTCP XR Block Type value 352 This document assigns the block type value NJB in the IANA "RTCP XR 353 Block Type Registry" to the "JB Metrics Block". 355 [Note to RFC Editor: please replace NJB with the IANA provided RTCP 356 XR block type for this block.] 358 6.2. New RTCP XR SDP Parameter 360 This document also registers a new parameter "jitter-bfr" in the 361 "RTCP XR SDP Parameters Registry". 363 6.3. Contact information for registrations 365 The contact information for the registrations is: 367 Qin Wu (sunseawq@huawei.com) 368 101 Software Avenue, Yuhua District 369 Nanjing, Jiangsu 210012 370 China 372 7. Security Considerations 374 It is believed that this proposed RTCP XR report block introduces no 375 new security considerations beyond those described in [RFC3611]. 376 This block does not provide per-packet statistics so the risk to 377 confidentiality documented in Section 7, paragraph 3 of [RFC3611] 378 does not apply. 380 8. Contributors 382 Geoff Hunt wrote the initial draft of this document. 384 9. Acknowledgments 386 The authors gratefully acknowledge reviews and feedback provided by 387 Bruce Adams, Philip Arden, Amit Arora, Bob Biskner, Kevin Connor, 388 Claus Dahm, Randy Ethier, Roni Even, Jim Frauenthal, Albert Higashi, 389 Tom Hock, Shane Holthaus, Paul Jones, Rajesh Kumar, Keith Lantz, 390 Mohamed Mostafa, Amy Pendleton, Colin Perkins, Mike Ramalho, Ravi 391 Raviraj, Albrecht Schwarz, Tom Taylor, Hideaki Yamada,Claire Bi,Colin 392 Perkin, Dan Romascanu, Kevin Gross and Glen Zorn. 394 10. References 396 10.1. Normative References 398 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 399 Requirement Levels", March 1997. 401 [RFC3550] Schulzrinne, H., "RTP: A Transport Protocol for Real-Time 402 Applications", RFC 3550, July 2003. 404 [RFC3611] Friedman, T., Caceres, R., and A. Clark, "RTP Control 405 Protocol Extended Reports (RTCP XR)", November 2003. 407 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 408 Description Protocol", July 2006. 410 [RFC6709] Carpenter, B., Aboba, B., and S. Cheshire, "Design 411 Considerations for Protocol Extensions", RFC 6709, 412 September 2012. 414 [RFC6776] Wu, Q., "Measurement Identity and information Reporting 415 using SDES item and XR Block", RFC 6776, August 2012. 417 10.2. Informative References 419 [RFC6390] Clark, A. and B. Claise, "Framework for Performance Metric 420 Development", RFC 6390, October 2011. 422 [RFC6792] Hunt, G., Wu, Q., and P. Arden, "Monitoring Architectures 423 for RTP", RFC 6792, November 2012. 425 Appendix A. Change Log 427 Note to the RFC-Editor: please remove this section prior to 428 publication as an RFC. 430 A.1. draft-ietf-xrblock-rtcp-xr-jb-07 432 The following are the major changes to previous version : 434 o Add one new section to discuss jitter buffer operation. 436 A.2. draft-ietf-xrblock-rtcp-xr-jb-05 438 The following are the major changes to previous version : 440 o Some editorial change changes based on the discussion with Glen 441 and Kevin on the list. 443 A.3. draft-ietf-xrblock-rtcp-xr-jb-03 445 The following are the major changes to previous version : 447 o Reduce the "jb cfg" to 1-bit based on discussion in the WGLC. 449 o Other editorial change changes aligning with PDV,Delay draft. 451 A.4. draft-ietf-xrblock-rtcp-xr-jb-02 453 The following are the major changes to previous version : 455 o Add some explanation text in the SDP offer/answer section. 457 o Add some text in applicability section to explain the use to 458 report jitter buffer metrics. 460 o Other editorial change changes aligning with PDV,Delay draft. 462 A.5. draft-ietf-xrblock-rtcp-xr-jb-01 464 The following are the major changes to previous version : 466 o Outdated reference update 468 o Add one Editor notes to ask clarification on the use of reporting 469 jitter buffer metrics. 471 o Other Editorial changes. 473 A.6. draft-ietf-xrblock-rtcp-xr-jb-00 475 The following are the major changes to previous version : 477 o Boilerplate updates. 479 o references updates 481 o allocate 32 bit field in report block for SSRC 483 o Other editorial changes to get alignment with MONARCH draft. 485 Authors' Addresses 487 Alan Clark 488 Telchemy Incorporated 489 2905 Premiere Parkway, Suite 280 490 Duluth, GA 30097 491 USA 493 Email: alan.d.clark@telchemy.com 495 Varun Singh 496 Aalto University 497 School of Electrical Engineering 498 Otakaari 5 A 499 Espoo, FIN 02150 500 Finland 502 Email: varun@comnet.tkk.fi 504 Qin Wu 505 Huawei 506 101 Software Avenue, Yuhua District 507 Nanjing, Jiangsu 210012 508 China 510 Email: sunseawq@huawei.com