INTERNET-DRAFTInternet Engineering Task Force (IETF) R. HuangIntended Status:Request for Comments: 7509 Huawei Category: Standards TrackHuawei Expires: August 23, 2015V. Singh ISSN: 2070-1721 Aalto UniversityFebruary 19,May 2015 RTP Control Protocol (RTCP) Extended Report (XR) for Post-Repair Loss Count Metricsdraft-ietf-xrblock-rtcp-xr-post-repair-loss-count-11Abstract This document defines an RTP Control Protocol (RTCP) Extended Report (XR)Blockblock that allows reporting of a post-repair loss count metric for a range of RTP applications. In addition, another metric, repaired loss count, is also introduced in this report block for calculating the pre-repair loss count whenneededneeded, so that the RTP sender or a third-party entity is able to evaluate the effectiveness of the repair methods used by the system. Status ofthisThis Memo ThisInternet-Draftissubmitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documentsan Internet Standards Track document. This document is a product of the Internet Engineering Task Force(IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum(IETF). It represents the consensus ofsix monthsthe IETF community. It has received public review andmay be updated, replaced, or obsoletedhas been approved for publication byother documents at any time. Itthe Internet Engineering Steering Group (IESG). Further information on Internet Standards isinappropriate to use Internet-Drafts as reference material or to cite them other than as "workavailable inprogress." The listSection 2 of RFC 5741. Information about the currentInternet-Drafts can be accessed at http://www.ietf.org/1id-abstracts.html The liststatus ofInternet-Draft Shadow Directories canthis document, any errata, and how to provide feedback on it may beaccessedobtained athttp://www.ietf.org/shadow.htmlhttp://www.rfc-editor.org/info/rfc7509. Copyrightand LicenseNotice Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents11. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . 3 2....................................................2 2. Terminology. . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.....................................................3 3. Post-Repair Loss Count Metrics Report Block. . . . . . . . . . 4 3.1.....................3 3.1. Report Block Structure. . . . . . . . . . . . . . . . . . 4 3.2.....................................4 3.2. Example Usage. . . . . . . . . . . . . . . . . . . . . . . 5 4..............................................5 4. SDP Signaling. . . . . . . . . . . . . . . . . . . . . . . . . 7 4.1...................................................6 4.1. SDP rtcp-xr-attrib Attribute Extension. . . . . . . . . . 7 4.2.....................6 4.2. Offer/Answer Usage. . . . . . . . . . . . . . . . . . . . 7 5.........................................7 5. Security Considerations. . . . . . . . . . . . . . . . . . . . 7 6.........................................7 6. IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 7 6.1.............................................7 6.1. New RTCP XR Block Typevalue . . . . . . . . . . . . . . . 7 6.2Value ...............................7 6.2. New RTCP XR SDP Parameter. . . . . . . . . . . . . . . . . 8 6.3..................................7 6.3. Contact Information forregistrations . . . . . . . . . . . 8 7 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 8 8Registrations ......................7 7. References. . . . . . . . . . . . . . . . . . . . . . . . . . 8 8.1......................................................8 7.1. Normative References. . . . . . . . . . . . . . . . . . . 8 8.2.......................................8 7.2. Informative References. . . . . . . . . . . . . . . . . . 9.....................................8 Appendix A. Metrics Represented Using the Template from RFC 6390. 9..10 Acknowledgments ...................................................11 Authors' Addresses. . . . . . . . . . . . . . . . . . . . . . . . 10 1................................................11 1. Introduction RTCP Sender Reports(SR)/Receiver(SRs) / Receiver Reports(RR)(RRs) [RFC3550] contain some rough statistics about the data received from the particular source indicated in that block. One of them is the cumulative number of packets lost, which is called the pre-repair loss metric in this document. This metric conveys information regarding the total number of RTP data packets that have been lost since the beginning of the RTP session. However, this metric is measured on the media stream before anylossloss- repair mechanism, e.g., retransmission [RFC4588] or Forward Error Correction (FEC) [RFC5109], is applied. Using a repair mechanism usually results in recovering some or all of the lost packets. The recovery process does not reduce the values reported by the two loss metrics in RTCP RR [RFC3550] -- namely, the fraction lost and the cumulative loss. Hence, the sending endpoint cannotassessinfer the performance of the repair mechanismby observingbased on thechangeaforementioned metrics infraction loss and the cumulative loss statistics from RTCP SR/RR[RFC3550]. Consequently, [RFC5725] specifies a post-repair lossRun-lengthRun-Length Encoding (RLE) XR report block to address this issue. The sending endpoint is able to infer which packets were repaired from the RLE report block, but the reporting overhead for the packet-by-packet report block is higher compared to other report blocks. When applications use multiple XR blocks, the endpoints may require more concise reporting to save bandwidth. This document defines a new XR block type to augment those defined in [RFC3611] and complement the report block defined in [RFC5725] for use in a range of RTP applications. This new block type reports the post-repair loss countmetricmetric, which records the number of primary source RTP packets that are still lost after applying one or moreloss repairloss-repair mechanisms. In addition, another metric, repaired loss count, is also introduced in this report block for calculating the pre-repair loss count during this range, so that the RTP sender or a third-party entity is able to evaluate the effectiveness of the repair methods used by the system. The metrics defined in this document are packet level rather than slice/picturelevel, whichlevel; this means the partial recovery of a packet will not be regarded as a repaired packet. The metrics defined in this document belong to the class of transport-related metrics defined in [RFC6792] and are specified in accordance with the guidelines in [RFC6390] and [RFC6792]. These metrics are applicable to any RTP application, especially those that useloss repairloss-repair mechanisms.22. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [KEYWORDS]. primary source RTP packet: The original RTP packet sent from the RTP sender for the first time. A lost primary source RTP packet may be repaired by some other RTP packets used in repair mechanisms like FEC or retransmission.33. Post-Repair Loss Count Metrics Report Block This block reports the number of packets lost after applying repair mechanisms (e.g., FEC). It complements the RTCP XR metrics defined in [RFC5725]. As noted in [RFC5725], ambiguity may occur when comparing this metric with a pre-repair loss metric reported in an RTCP SR/RR, i.e., some packets were not repaired in the current RTCP interval, but they may be repaired later. Therefore, this block uses a begin sequence number and an end sequence number to explicitly indicate the actual sequence number range reported by this RTCP XR. Accordingly, only packets that have no further chance of being repaired and that have been repaired are included in this report block.3.13.1. Report Block Structure Thepost-repair loss count metrics report blockPost-Repair Loss Count Metrics Report Block has the following format: 0 1 2 3 4 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 0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BT=PRLRBT=33 | Reserved |blockBlock length = 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC of Source | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | begin_seq | end_seq | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |post-repairPost-repair loss count |repairedRepaired loss count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Block Type (BT): 8 bits A Post-Repair Loss Count Metrics Report Block is identified by the constantPRLR. [Note to RFC Editor: Please replace PRLR with the IANA provided RTCP XR block type for this block.]33. Reserved: 8 bits These bits are reserved for future use. They MUST be set to zero by senders and ignored by receivers (see[RFC6709],Section4.2). block4.2 of [RFC6709]). Block length: 16 bits This field is in accordance with the definition in [RFC3611]. In this report block, it MUST be set to 4. The block MUST be discarded if the block length is set to a different value. SSRC of source: 32 bits As defined in Section 4.1 of [RFC3611]. begin_seq: 16 bits The first sequence number that this block reports on. It can remain fixed when calculating metrics over several RTCP reporting intervals. end_seq: 16 bits The last sequence number that this block reports on plus one.post-repairPost-repair loss count: 16 bits Total number of packets finally lost after applying one or more loss-repair methods, e.g., FEC and/or retransmission, during the actual sequence number range indicated by begin_seq and end_seq. This metric MUST NOT count the lost packets for which repair might still be possible. Note that this metric MUST measure only primary source RTP packets.repairedRepaired loss count: 16 bits Total number of packets fully repaired after applying one or more loss-repair methods, e.g., FEC and/or retransmission, during the actual sequence number range indicated by begin_seq and end_seq. Note that this metric MUST measure only primary source RTP packets. 3.2 Example Usage The metrics defined in this report block are all measured at the RTP receiver. However, the receiving endpoint can report the metrics in two different ways:1.1) Cumulative report In this case, implementations may set begin_seq to the first packet in the RTPsessionsession, and it will remain fixed across all reports. Hence, the"post-repair"Post-repair loss count" and"repaired"Repaired loss count",respectivelyrespectively, will correspond to"cumulative"Cumulative post-repair loss count" and"cumulative"Cumulative repaired loss count" in this case. These cumulative metrics when combined with the cumulative loss metrics reported in an RTCP RR (pre-repair)assistsassist in calculating thestill to be repaired"Still-to-be-repaired lostpackets: still to be repairedpackets": Still-to-be-repaired lostpacketpackets =cumulativeCumulative number of packets lost -cumulativeCumulative post-repair loss count -cumulativeCumulative repaired loss count2.2) Interval report Some implementations may align the begin_seq and end_seq number with the highest sequence numbers of consecutive RTCP RRs (RTCP interval). This is NOT RECOMMENDED as packets that are not yet repaired in this current RTCP interval and may be repaired in the subsequent intervals will not be reported.ItAn interval report is illustrated in the following example: Interval A: The extended highest sequence number received in RTCP RR is 20. Begin_seq is 10 and end_seq is 20. Interval B: The extended highest sequence number received in RTCP RR is 30. Begin_seq is 20 and end_seq is 30. If packets 17 and 19 are lost and not yet repaired in interval A and subsequently repaired in interval B, they will notthenbe reported because their sequence numbers do not belong intheinterval B. Therefore, if implementations want these packets to be reported as repaired, they MUST NOT align the begin_seq and end_seq to the RTCP intervals. Alternatively, implementations may choose the begin_seq and end_seq numbers that cover several RTCP intervals. Additionally, the reported range of sequence numbers may overlap with the previous report blocks, so that the packets that were not yet repaired in oneintervalinterval, but were subsequently repaired or deemedunrepairableunrepairable, were reported in subsequent intervals. In this case, the"cumulative"Cumulative number of packets lost" cannot be easily compared with the post-repair metrics. However, the sending endpoint can calculate the efficiency of the error resilience algorithm using the post-repair and repairedlostloss count, respectively.44. SDP Signaling [RFC3611] defines the use of SDP (Session Description Protocol) for signaling the use of RTCP XR blocks.HoweverHowever, XR blocks MAY be used without prior signaling (seesectionSection 5 of [RFC3611]).4.14.1. SDP rtcp-xr-attrib Attribute Extension This session augments the SDP attribute "rtcp-xr" defined in Section 5.1 of [RFC3611] by providing an additional value of "xr-format" to signal the use of the report block defined in this document. The ABNF [RFC5234] syntax is as follows. xr-format =/ xr-prlr-block xr-prlr-block = "post-repair-loss-count"4.24.2. Offer/Answer Usage When SDP is used inoffer-answeroffer/answer context, the SDP Offer/Answer usage defined in [RFC3611] for the unilateral "rtcp-xr" attribute parameters applies. For detailed usage of Offer/Answer for unilateral parameters, refer tosectionSection 5.2 of [RFC3611].55. Security Considerations This proposed RTCP XR block introduces no new security considerations beyond those described in [RFC3611]. This block does not provideper- packetper-packet statistics, so the risk to confidentiality documented in Section 7, paragraph 3 of [RFC3611] does not apply. An attacker may put incorrect information in the Post-Repair Loss Count reports, which willbeaffect the performance ofloss repairloss-repair mechanisms. Implementers should consider the guidance in [RFC7202] for using appropriate security mechanisms, i.e., where security is a concern, the implementation should apply encryption and authentication to the report block. For example, this can be achieved by using the AVPF profile together with the Secure RTP profile as defined in [RFC3711]; an appropriate combination of the two profiles (an "SAVPF") is specified in [RFC5124]. However, other mechanisms also exist (documented in [RFC7201]) and might be more suitable.66. IANA Considerations New block types for RTCP XR are subject to IANA registration. For general guidelines on IANA considerations for RTCP XR, refer to [RFC3611].6.16.1. New RTCP XR Block TypevalueValue This document assigns the block type valuePRLR33 in the IANA "RTP Control Protocol Extended Reports (RTCP XR) Block Type Registry" to the "Post-Repair Loss Count Metrics Report Block".[Note to RFC Editor: please replace PRLR with the IANA provided RTCP XR block type for this block.] 6.26.2. New RTCP XR SDP Parameter This document also registers a new parameter "post-repair-loss-count" in the "RTP Control Protocol Extended Reports (RTCP XR) Session Description Protocol (SDP) Parameters Registry".6.36.3. Contact Information forregistrationsRegistrations The contact information for theregistration is :registrations is: RAI Area Directors<rai-ads@tools.ietf.org> 7 Acknowledgments The author would like to thank Roni Even, Colin Perkins, and Qin Wu for giving valuable comments and suggestions. 8<rai-ads@ietf.org> 7. References8.17.1. Normative References [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March1997.1997, <http://www.rfc-editor.org/info/rfc2119>. [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, July2003.2003, <http://www.rfc-editor.org/info/rfc3550>. [RFC3611] Friedman, T., Ed., Caceres, R., Ed., and A. Clark, Ed., "RTP Control Protocol Extended Reports (RTCP XR)", RFC 3611, DOI 10.17487/RFC3611, November2003.2003, <http://www.rfc-editor.org/info/rfc3611>. [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. Norrman, "The Secure Real-time Transport Protocol (SRTP)", RFC 3711, DOI 10.17487/RFC3711, March2004.2004, <http://www.rfc-editor.org/info/rfc3711>. [RFC5124] Ott, J. and E. Carrara, "Extended Secure RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/SAVPF)", RFC 5124, DOI 10.17487/RFC5124, February2008.2008, <http://www.rfc-editor.org/info/rfc5124>. [RFC5234] Crocker, D., Ed., and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, DOI 10.17487/RFC5234, January 2008, <http://www.rfc-editor.org/info/rfc5234>. [RFC5725] Begen, A., Hsu, D., and M. Lague, "Post-Repair Loss RLE Report Block Type for RTP Control Protocol (RTCP) Extended Reports (XRs)", RFC 5725, DOI 10.17487/RFC5725, February2010. 8.22010, <http://www.rfc-editor.org/info/rfc5725>. 7.2. Informative References [RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R. Hakenberg, "RTP Retransmission Payload Format", RFC 4588, DOI 10.17487/RFC4588, July2006.2006, <http://www.rfc-editor.org/info/rfc4588>. [RFC5109] Li, A., Ed., "RTP Payload Format for Generic Forward Error Correction", RFC 5109, DOI 10.17487/RFC5109, December2007.2007, <http://www.rfc-editor.org/info/rfc5109>. [RFC6390] Clark, A. and B. Claise, "Guidelines for Considering New Performance Metric Development", BCP 170, RFC 6390, DOI 10.17487/RFC6390, October2011.2011, <http://www.rfc-editor.org/info/rfc6390>. [RFC6709] Carpenter, B., Aboba, B., Ed., and S. Cheshire, "Design Considerations for Protocol Extensions",RFC6709,RFC 6709, DOI 10.17487/RFC6709, September2012.2012, <http://www.rfc-editor.org/info/rfc6709>. [RFC6792] Wu, Q., Ed., Hunt, G., and P. Arden, "Guidelines for Use of the RTP Monitoring Framework", RFC 6792, DOI 10.17487/RFC6792, November2012.2012, <http://www.rfc-editor.org/info/rfc6792>. [RFC7201] Westerlund, M. andC.,C. Perkins,"Qptions"Options for Securing RTP Sessions", RFC 7201, DOI 10.17487/RFC7201, April2014.2014, <http://www.rfc-editor.org/info/rfc7201>. [RFC7202] Perkins, C. andM.,M. Westerlund, "Securing the RTP Framework: Why RTP Does Not Mandate a Single Media Security Solution", RFC 7202, DOI 10.17487/RFC7202, April2014.2014, <http://www.rfc-editor.org/info/rfc7202>. Appendix A. Metrics Represented Using the Template from RFC 6390 a. Post-Repair RTP Packet Loss Count Metric * Metric Name: Post-Repair RTP Packet Loss Count Metric. * Metric Description: Total number of RTP packets still lost afterloss repairloss-repair methods areappliedapplied. * Method of Measurement or Calculation: Seesection 3.1, Post- Repair RTP Packet Loss Count Metric definition.the "Post-repair loss count" definition in Section 3.1. It is directly measured and must be measured for the primary source RTP packets with no further chance of repair. * Units of Measurement: This metric is expressed as a 16-bit unsigned integer value giving the number of RTP packets. * Measurement Point(s) with Potential Measurement Domain: It is measured at the receiving end of the RTP stream. * Measurement Timing: This metric relies on the sequence number interval to determine measurement timing. See the Cumulative and Interval reports defined in Section3, 3rd paragraph, for details.3.2. * Use and Applications: These metrics are applicable to any RTP application, especially those that useloss repairloss-repair mechanisms. See Section 1 for details. * Reporting Model: SeeRFC3611.RFC 3611. b. Repaired RTP Packet Loss Count Metric * Metric Name: Repaired RTP Packet Count Metric. * Metric Description: The number of RTP packets lost but repaired after applyingloss repair methodsloss-repair methods. * Method of Measurement or Calculation: Seesection 3.1, Repaired RTP Packet Loss Count Metric definition.the "Repaired loss count" in Section 3.1. It is directly measured and must be measured for the primary source RTP packets with no further chance of repair. * Units of Measurement: This metric is expressed as a 16-bit unsigned integer value giving the number of RTP packets. * Measurement Point(s) with Potential Measurement Domain: It is measured at the receiving end of the RTP stream. * Measurement Timing: This metric relies on the sequence number interval to determine measurement timing. See the Cumulative and Interval reports defined in Section3, 3rd paragraph, for details.3.2. * Use and Applications: These metrics are applicable to any RTP application, especially those that useloss repairloss-repair mechanisms. See Section 1 for details. * Reporting Model: SeeRFC3611.RFC 3611. Acknowledgments The authors would like to thank Roni Even, Colin Perkins, and Qin Wu for giving valuable comments and suggestions. Authors' Addresses Rachel Huang Huawei 101 Software Avenue, Yuhua District Nanjing 210012 China EMail: rachel.huang@huawei.com Varun Singh Aalto University School of Electrical Engineering Otakaari 5 A Espoo, FIN 02150 FinlandEmail:EMail: varun@comnet.tkk.fi URI: http://www.netlab.tkk.fi/~varun/