RFC 6332

Multicast Acquisition Report Block Type for RTP Control Protocol (RTCP) Extended Reports (XRs)

๐Ÿ“… published July 2011, from ietf

RFC 6332: Multicast Acquisition Report Block Type for RTP Control Protocol (RTCP) Extended Reports (XRs) ๐ŸŽ€

okay so bestie, this is RFC 6332 ๐Ÿ’– It's from the Internet Engineering Task Force (IETF), and the authors are A. Begen and E. Friedrich from Cisco ๐Ÿ’… It's on the Standards Track ๐Ÿ”ฅ, which means it's an official Internet standard, and it was published in July 2011 โœจ The ISSN is 2070-1721 ๐ŸŒˆ This document doesn't list any RFCs it obsoletes or updates, so it's standing on its own, no cap ๐Ÿซถ


Abstract โœจ

okay so in most RTP-based multicast apps, the source sends data that's all interrelated ๐Ÿงถ Because of that, a receiver that randomly joins a session usually can't start playing right away, so it often ends up waiting a random amount of time to "acquire" the stream ๐Ÿ˜ญ Receivers can use one or more methods to speed that up, but how well those methods work changes a lot ๐Ÿ’€ Sometimes a receiver just does a plain multicast join, and sometimes it has no choice about that ๐Ÿ™ˆ For quality reporting, monitoring, and diagnostics, it's super important to collect detailed info from receivers about how acquisition and presentation actually went ๐Ÿฆ‹

So this doc defines a brand-new report block type, the Multicast Acquisition (MA) report block, inside the RTCP Extended Reports (XRs) framework from RFC 3611 ๐Ÿ’œ It also defines the signaling needed to carry the new MA report block type in the Session Description Protocol (SDP) ๐Ÿ‘‘


Status of This Memo ๐ŸŒธ

This is an Internet Standards Track document ๐Ÿ”ฅ

It's a product of the IETF, which means it represents the IETF community's consensus ๐Ÿซถ It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). If you want more info on Internet Standards, check Section 2 of RFC 5741 โœจ

For the current status of this document, any errata, and how to give feedback, go to http://www.rfc-editor.org/info/rfc6332 ๐Ÿงš


Copyright (c) 2011 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), as in effect on the date this document was published. Please read those carefully, because they spell out your rights and restrictions for this document ๐Ÿ“œ Any Code Components pulled out of this document must include the Simplified BSD License text described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as the Simplified BSD License describes ๐ŸŽ€


Table of Contents ๐Ÿ“‘

1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
2.  Requirements Notation  . . . . . . . . . . . . . . . . . . . .  4
3.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . .  4
4.  Multicast Acquisition (MA) Report Block  . . . . . . . . . . .  4
  4.1.  Base Report  . . . . . . . . . . . . . . . . . . . . . . .  5
    4.1.1.  Status Code Rules for New MA Methods . . . . . . . . .  6
    4.1.2.  Status Code Rules for the RAMS Method  . . . . . . . .  6
  4.2.  Extensions . . . . . . . . . . . . . . . . . . . . . . . .  6
    4.2.1.  Vendor-Neutral Extensions  . . . . . . . . . . . . . .  7
    4.2.2.  Private Extensions . . . . . . . . . . . . . . . . . . 10
5.  Session Description Protocol Signaling . . . . . . . . . . . . 10
6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 11
7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 11
  7.1.  RTCP XR Block Type . . . . . . . . . . . . . . . . . . . . 11
  7.2.  RTCP XR SDP Parameter  . . . . . . . . . . . . . . . . . . 12
  7.3.  Multicast Acquisition Method Registry  . . . . . . . . . . 12
  7.4.  Multicast Acquisition Report Block TLV Space Registry  . . 12
  7.5.  Multicast Acquisition Status Code Space Registry . . . . . 13
8.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 14
9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 15
  9.1.  Normative References . . . . . . . . . . . . . . . . . . . 15
  9.2.  Informative References . . . . . . . . . . . . . . . . . . 15

1. Introduction ๐Ÿฆ‹

okay so the RTP Control Protocol (RTCP) is the out-of-band control protocol for apps that use the Real-time Transport Protocol (RTP) for media transport [RFC3550] ๐Ÿ’– Besides giving RTP entities basic control, RTCP also lets you do basic monitoring of RTP sessions through sender and receiver reports โœจ For more detailed statistics and app-specific monitoring, people usually turn to the RTCP Extended Reports (XRs) [RFC3611] ๐Ÿงš

In most RTP-based multicast apps, like the ones carrying video, the RTP source sends data that's all interrelated ๐Ÿงถ That means the app might not be able to decode and present the data in one RTP packet until it has decoded the data in one or more earlier RTP packets, and/or until it has acquired some Reference Information about the content itself ๐Ÿ˜ญ So RTP receivers that randomly join a multicast session often run into a random acquisition delay ๐Ÿ’€

To shrink that delay, [RFC6285] proposes a method where an auxiliary unicast RTP session gets set up between a retransmission server and the joining RTP receiver ๐ŸŒˆ Over that unicast session, the retransmission server sends the Reference Information, which is everything the RTP receiver needs to acquire the multicast stream quickly ๐Ÿš€ This method is called the Rapid Acquisition of Multicast RTP Sessions (RAMS) ๐Ÿ‘‘ But here's the tea: depending on how much the Source Filtering Group Management Protocol (SFGMP) processing times vary, how many network resources are free for rapid acquisition, and what the RTP data is like, not every RTP receiver gets the multicast stream in the same amount of time ๐Ÿ™ˆ Performance can vary between receivers, and it can also change over time ๐Ÿ˜ฉ

So to give the multicast service provider more visibility into its network, help diagnose slow multicast acquisition, and collect what receivers actually experienced, this document defines a new report block type called the Multicast Acquisition (MA) report block, within the RTCP XR framework ๐Ÿ’œ RTP receivers that use the method in [RFC6285] may use this report every time they join a new multicast RTP session ๐ŸŽ€ Receivers using a different rapid acquisition method, or those that don't use any method and just do a simple multicast join, may also use this report ๐Ÿฆ‹ That way, the multicast service provider can compare the improvements that different methods achieve, with actual numbers โœจ


2. Requirements Notation ๐Ÿ’…

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] ๐Ÿ“œ


3. Definitions ๐ŸŒธ

This document uses the acronyms and definitions from Section 3 of [RFC6285] ๐Ÿงš


4. Multicast Acquisition (MA) Report Block ๐ŸŒˆ

This section defines the format of the MA report block ๐ŸŽ€ The base report is payload independent ๐Ÿ’œ There's also an extension mechanism, so further optional payload-independent and payload-specific info can be included in the report whenever you want ๐Ÿซถ

The OPTIONAL extensions defined in this document were mainly developed for the method presented in [RFC6285] ๐Ÿ’– Other methods that provide rapid acquisition can define their own extensions to use in the MA report block โœจ

The packet format for RTCP XR is defined in Section 2 of [RFC3611] ๐Ÿฆ‹ Each XR packet has a fixed-length part with version, padding, reserved bits, payload type (PT), length, and the synchronization source (SSRC) of the packet sender, plus a variable-length part for report blocks ๐Ÿงถ In XR packets, the PT field is set to XR (207) ๐Ÿ‘‘

It's better to send the MA report block after all the necessary info has been collected and computed ๐Ÿ™Œ Partial reporting is generally not useful, because it can't give the full picture of the multicast acquisition, and it adds complexity when report blocks have to be matched and correlated ๐Ÿ˜ฉ The MA report block is only sent as part of an RTCP compound packet, and it's sent in the primary multicast session ๐Ÿ’…

The MA report block doesn't need any more reliability than other report blocks or types ๐ŸŒธ If you want, the report block can be repeated for redundancy, as long as it respects the RTCP scheduling algorithms โœจ

Following the rules in [RFC3550], all integer fields in the base report and the extensions defined below are carried in network-byte order, meaning most significant byte (octet) first, also known as big-endian ๐Ÿงš Unless stated otherwise, numeric constants are in decimal (base 10) ๐Ÿ”ข


4.1. Base Report ๐Ÿ’–

The base report format is shown in Figure 1 ๐ŸŽ€

   0                   1                   2                   3
   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     BT=11     |   MA Method   |         Block Length          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |              SSRC of the Primary Multicast Stream             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |             Status            |             Rsvd.             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

        Figure 1: Base Report Format for the MA Report Block
  • BT (8 bits): Field that denotes the type for this block format. The MA report block is identified by the constant 11 ๐ŸŒŸ
  • MA Method (8 bits): Field that denotes the type of the MA method (e.g., simple join, RAMS, etc.). See Section 7.3 for the values registered with IANA ๐Ÿงš
  • Block Length (16 bits): The length of this report block, including the header, in 32-bit words minus one ๐Ÿ”ข
  • SSRC of the Primary Multicast Stream (32 bits): Field that denotes the SSRC of the primary multicast stream ๐Ÿ’œ
  • Status (16 bits): Field that denotes the status code for the MA operation ๐Ÿšฆ

This document defines several status codes and registers them with IANA in Section 7.5. If a new vendor-neutral status code will be defined, it MUST be registered with IANA according to the guidelines specified in Section 7.5. If the new status code is intended to be used privately by a vendor, there is no need for IANA management. Section 4.2.2 defines how a vendor defines and uses private extensions to convey its messages ๐Ÿฆ‹

To indicate use of a private extension, the RTP receiver MUST set the Status field to zero. A private extension MUST NOT be used in an XR unless the RTP receiver knows from out-of-band methods that the entity that will receive and process the XR understands the private extension ๐Ÿ™ˆ

  • Rsvd. (16 bits): The RTP receiver MUST set this field to zero. The recipient MUST ignore this field when received ๐Ÿซถ

If the multicast join was successful, meaning at least one multicast packet was received, some additional info MUST be appended to the base report, as described in Section 4.2.1 ๐ŸŽ‰

to be continued, bestie ๐Ÿ’–

4.1.1. Status Code Rules for New MA Methods โœจ

okay so different MA methods usually use different status codes ๐ŸŽ€, although some of them (like a code saying the multicast join has failed) can be shared across multiple MA methods ๐Ÿค. The status code reported in the base report MUST always be within the scope of the particular MA method specified in the MA Method field ๐Ÿ’….

in certain MA methods, the RTP receiver can generate a status code for its multicast acquisition attempt, or another network element or RTP endpoint can tell it what the current status is through a response code ๐Ÿ‘€. in those cases, the RTP receiver MAY report the value of the received response code as its status code if the response code has a higher priority. each MA method needs to outline the rules for its response and status codes so that RTP receiver implementations know what to report in any given scenario ๐Ÿง โœจ.

4.1.2. Status Code Rules for the RAMS Method ๐Ÿš€

in this section, we provide the status code rules for the RAMS method described in [RFC6285] ๐Ÿ’–.

Section 11.6 of [RFC6285] defines several response codes. the 1xx- and 2xx-level response codes are informational and success response codes, respectively ๐Ÿ“š. if the RTP receiver receives a 1xx- or 2xx-level response code, then the RTP receiver MUST use one of the 1xxx-level status codes defined in Section 7.5 of this document ๐Ÿซถ. if the RTP receiver receives a 4xx- or 5xx-level response code (indicating receiver-side and server-side errors, respectively), then the RTP receiver MUST use the response code as its status code ๐Ÿ˜ญ. in other words, the 4xx- and 5xx-level response codes have a higher priority than the 1xxx-level status codes. literally main character energy ๐Ÿ‘‘.

4.2. Extensions ๐ŸŒˆ

to improve the reporting scope, it might be desirable to define new fields in the MA report block ๐Ÿ“. such fields are encoded as TLV elements, as described below and sketched in Figure 2:

  • Type: A single-octet identifier that defines the type of the parameter represented in this TLV element.
  • Length: A two-octet field that indicates the length (in octets) of the TLV element excluding the Type and Length fields and the 8-bit Reserved field between them. Note that this length does not include any padding that is needed for alignment.
  • Value: Variable-size set of octets that contains the specific value for the parameter.

in the extensions, the Reserved field MUST be set to zero and ignored on reception ๐Ÿ™ˆ. if a TLV element does not fall on a 32-bit boundary, the last word MUST be padded to the boundary using further bits set to zero ๐Ÿงš.

in the MA report block, the RTP receiver MUST place any vendor-neutral or private extension after the base report ๐Ÿ’….

      0                   1                   2                   3
      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |     Type      |   Reserved    |            Length             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     :                             Value                             :
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Figure 2: Structure of a TLV Element

4.2.1. Vendor-Neutral Extensions ๐Ÿฆ‹

if the goal in defining new TLV elements is to extend the report block in a vendor-neutral manner, they need to be registered with IANA according to the guidelines provided in Section 7.4 ๐Ÿ“.

this document defines several vendor-neutral extensions. first, we present the TLV elements that can be used by any RTP-based multicast application ๐ŸŒธ.

  • RTP Seqnum of the First Multicast Packet (16 bits): TLV element that specifies the RTP sequence number of the first multicast packet received for the primary multicast stream. If the multicast join was successful, this element MUST be included. If no multicast packet has been received, this element MUST NOT exist in the report block.
    • Type: 1
  • SFGMP Join Time (32 bits): TLV element that denotes the greater of zero or the time difference (in ms) between the instant the SFGMP Join message was sent and the instant the first packet was received in the multicast session. If the multicast join was successful, this element MUST be included. If no multicast packet has been received, this element MUST NOT exist in the report block.
    • Type: 2
  • Application Request-to-Multicast Delta Time (32 bits): OPTIONAL TLV element that denotes the time difference (in ms) between the instant the application became aware it would join a new multicast session and the instant the first RTP packet was received from the primary multicast stream. If no such packet has been received, this element MUST NOT exist in the report block.
    • Type: 3
  • Application Request-to-Presentation Delta Time (32 bits): OPTIONAL TLV element that denotes the time difference (in ms) between the instant the application became aware it would join a new multicast session and the instant the media was first presented. If the RTP receiver cannot successfully present the media, this element MUST NOT exist in the report block.
    • Type: 4

we next present the TLV elements that can be used when the RTP receiver supports and uses the RAMS method described in [RFC6285] ๐Ÿš€. however, if the RTP receiver does not send a rapid acquisition request, the following TLV elements MUST NOT exist in the MA report block ๐Ÿ™…โ€โ™€๏ธ. some elements may or may not exist, depending on whether or not the RTP receiver receives any packet from the unicast burst and/or the primary multicast stream. these are explained below โœจ.

  • Application Request-to-RAMS Request Delta Time (32 bits): OPTIONAL TLV element that denotes the time difference (in ms) between the instant the application became aware it would request a rapid acquisition and the instant the rapid acquisition request was actually sent by the application.
    • Type: 11
  • RAMS Request-to-RAMS Information Delta Time (32 bits): OPTIONAL TLV element that denotes the time difference (in ms) between the instant the rapid acquisition request was sent and the instant the first RAMS Information message was received in the unicast session. If no such message has been received, this element MUST NOT exist in the report block.
    • Type: 12
  • RAMS Request-to-Burst Delta Time (32 bits): OPTIONAL TLV element that denotes the time difference (in ms) between the instant the rapid acquisition request was sent and the instant the first burst packet was received in the unicast session. If no burst packet has been received, this element MUST NOT exist in the report block.
    • Type: 13
  • RAMS Request-to-Multicast Delta Time (32 bits): OPTIONAL TLV element that denotes the time difference (in ms) between the instant the rapid acquisition request was sent and the instant the first RTP packet was received from the primary multicast stream. If no such packet has been received, this element MUST NOT exist in the report block.
    • Type: 14
  • RAMS Request-to-Burst-Completion Delta Time (32 bits): OPTIONAL TLV element that denotes the time difference (in ms) between the instant the rapid acquisition request was sent and the instant the last burst packet was received in the unicast session. If no burst packet has been received, this element MUST NOT exist in the report block.
    • Type: 15
  • Number of Duplicate Packets (32 bits): OPTIONAL TLV element that denotes the number of duplicate packets due to receiving the same packet in both unicast and primary multicast RTP sessions. If no RTP packet has been received from the primary multicast stream, this element MUST NOT exist. If no burst packet has been received in the unicast session, the value of this element MUST be set to zero.
    • Type: 16
  • Size of Burst-to-Multicast Gap (32 bits): OPTIONAL TLV element that denotes the greater of zero or the difference between the sequence number of the first multicast packet (received from the primary multicast stream) and the sequence number of the last burst packet minus 1 (considering the wrapping of the sequence numbers). If no burst packet has been received in the unicast session or no RTP packet has been received from the primary multicast stream, this element MUST NOT exist in the report block.
    • Type: 17

4.2.2. Private Extensions ๐Ÿงš

it is desirable to allow vendors to use private extensions in TLV format ๐Ÿ’œ. the range of [128-254] of TLV Types is reserved for private extensions. IANA management for these extensions is unnecessary; they are the responsibility of individual vendors ๐ŸŽ€.

implementations use the structure depicted in Figure 3 for private extensions. here, the private enterprise numbers are used from http://www.iana.org. this will ensure the uniqueness of the private extensions and avoid any collision ๐Ÿ”’โœจ.

      0                   1                   2                   3
      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |      Type     |   Reserved    |            Length             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                       Enterprise Number                       |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     :                             Value                             :
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Figure 3: Structure of a Private Extension

5. Session Description Protocol Signaling ๐Ÿ“ก

a new unilateral parameter is defined for the MA report block to be used with the Session Description Protocol (SDP) [RFC4566] ๐Ÿ’Œ. in the following ABNF [RFC5234], xr-format is used as defined in [RFC3611].

                 xr-format =/ multicast-acq-ext
                 multicast-acq-ext = "multicast-acq"

refer to Section 5.1 of [RFC3611] for a detailed description and the full syntax of the 'rtcp-xr' attribute ๐Ÿฅฐ.

6. Security Considerations ๐Ÿ›ก๏ธ๐Ÿ’–

okay bestie, this is the part where we talk about who could mess with our stuff ๐Ÿ‘€ The security considerations of [RFC3611] apply here too, so go read those as well ๐Ÿซถ

MA reports can get stolen just like any other RTCP reports if there's no proper protection in place ๐Ÿ˜ญ If you want, the same way other RTCP XRs do it, the MA reports MAY be protected with Secure RTP (SRTP) and Secure RTP Control Protocol (SRTCP) [RFC3711] โœจ

Sniffing or otherwise grabbing MA report blocks can expose how well the RTP service and the network underneath are performing ๐Ÿ“‰ Anyone who can capture RTP and RTCP session traffic can basically see this info. When you're deciding whether the MA reports need securing, look hard at any private extension, because it might carry app-level performance data that an attacker couldn't get any other way, same as the required fields and vendor-neutral extensions ๐Ÿ”

Using MA reports as feedback for acquiring multicast streams can add its own security risks ๐Ÿšจ If someone forges or tampers with an MA report from an earlier acquisition attempt, the bad data can get fed into later rapid acquisition attempts. For example, SFGMP join times that are too small could make the unicast burst too short, which leaves gaps in sequence numbers in the approach described in [RFC6285] ๐Ÿ’€ Forged reports could also make rapid acquisition look like it's working when it's really failing, or the other way around ๐Ÿ™ˆ Integrity protection can be done in different ways, but we RECOMMEND using SRTCP [RFC3711] ๐Ÿ”


7. IANA Considerations ๐Ÿ“‹

the registrations in this document all share the same contact info, so here it is ๐Ÿ’…

Ali Begen
abegen@cisco.com

7.1. RTCP XR Block Type ๐Ÿงฉ

Type value 11 is now registered with IANA for the "Multicast Acquisition Report Block" in the RTCP XR Block Type Registry ๐ŸŽ€

7.2. RTCP XR SDP Parameter ๐ŸŽถ

The SDP [RFC4566] parameter 'multicast-acq' for the 'rtcp-xr' attribute got registered in the RTCP XR SDP Parameters Registry โœจ

7.3. Multicast Acquisition Method Registry ๐Ÿฆ‹

A brand new IANA registry for MA methods was created, and it's called the "Multicast Acquisition Method Registry" ๐ŸŒˆ IANA manages it using the Specification Required policy from [RFC5226].

The MA Method field is one octet long, so there's room for 256 values. The registry starts out with these entries:

MA Method Description                          Reference
--------- ------------------------------------ -------------
0         Reserved                             [RFC6332]
1         Simple join (No explicit method)     [RFC6332]
2         RAMS                                 [RFC6285]
3-254     Unassigned                   Specification Required
255       Reserved                             [RFC6332]

The MA Method values 0 and 255 are reserved for future use ๐Ÿ”’

If you're registering an unassigned value, you need to include:

  • Contact information for the person doing the registration, with at least name, address, and email ๐Ÿ“ฎ
  • A detailed description of how the MA method works ๐Ÿง 

7.4. Multicast Acquisition Report Block TLV Space Registry ๐Ÿงƒ

Another new IANA TLV space registry got created for the MA report block extensions ๐Ÿ’œ It's called the "Multicast Acquisition Report Block TLV Space Registry," and IANA manages it under the Specification Required policy from [RFC5226].

The Type field in TLV elements is one octet, so 256 values fit. The registry starts out like this:

Type    Description                                        Reference
------- -------------------------------------------------- ---------
0       Reserved                                           [RFC6332]
1       RTP Seqnum of the First Multicast Packet           [RFC6332]
2       SFGMP Join Time                                    [RFC6332]
3       Application Request-to-Multicast Delta Time        [RFC6332]
4       Application Request-to-Presentation Delta Time     [RFC6332]
5-10    Unassigned                            Specification Required
11      Application Request-to-RAMS Request Delta Time     [RFC6332]
12      RAMS Request-to-RAMS Information Delta Time        [RFC6332]
13      RAMS Request-to-Burst Delta Time                   [RFC6332]
14      RAMS Request-to-Multicast Delta Time               [RFC6332]
15      RAMS Request-to-Burst-Completion Delta Time        [RFC6332]
16      Number of Duplicate Packets                        [RFC6332]
17      Size of Burst-to-Multicast Gap                     [RFC6332]
18-127  Unassigned                            Specification Required
128-254 Reserved for private extensions                    [RFC6332]
255     Reserved                                           [RFC6332]

Type values 0 and 255 are reserved for future use ๐ŸŒธ Type values from 128 through 254 (both included) are reserved for private extensions ๐Ÿงš

If you're registering an unassigned Type value, you need to include:

  • Contact information for the person doing the registration, with at least name, address, and email ๐Ÿ“ฎ
  • A detailed description of what the new TLV element represents and how it's interpreted ๐Ÿ”

7.5. Multicast Acquisition Status Code Space Registry ๐Ÿšฆ

One more new IANA TLV space registry, this time for status codes ๐Ÿ’… It's called the "Multicast Acquisition Status Code Space Registry," and IANA manages it under the Specification Required policy from [RFC5226].

The Status field is two octets, so it can hold 65536 codes. The codes are grouped so they're easier to sort out. Values 1 through 1000 (both included) are mostly used by the simple join MA method. Values 1001 through 2000 (both included) are used by the MA method in [RFC6285] ๐ŸŽฏ If you're registering new status codes, either for existing MA methods or for new ones, you're encouraged to allocate a good chunk of continuous space. Heads up though: there's limited room, so not every MA method can get 1000 different status code values ๐Ÿซ 

Status code 65535 is reserved for future use. The registry starts out with these entries:

Code       Description                                      Reference
---------  ------------------------------------------------ ---------
0          A private status code is included in the message [RFC6332]
1          Multicast join was successful                    [RFC6332]
2          Multicast join has failed                        [RFC6332]
3          A presentation error has occurred                [RFC6332]
4          An unspecified RTP receiver internal error has
           occurred                                         [RFC6332]
5-1000     Unassigned
1001       RAMS has been successfully completed             [RFC6332]
1002       No RAMS-R message has been sent                  [RFC6332]
1003       Invalid RAMS-I message syntax                    [RFC6332]
1004       RAMS-I message has timed out                     [RFC6332]
1005       RAMS unicast burst has timed out                 [RFC6332]
1006       An unspecified RTP receiver internal error has
           occurred during RAMS                             [RFC6332]
1007       A presentation error has occurred during RAMS    [RFC6332]
1008-65534 Unassigned
65535      Reserved                                         [RFC6332]

If you're registering an unassigned status code, you need to include:

  • Contact information for the person doing the registration, with at least name, address, and email ๐Ÿ“ฎ
  • A detailed description of what the new status code describes and how it's interpreted ๐Ÿง 

8. Acknowledgments ๐Ÿซถ

this spec was really shaped by talking things through with Michael Lague, Dong Hsu, Carol Iturralde, Xuan Zhong, Dave Oran, Tom Van Caenegem, and a bunch of other amazing people ๐ŸŒŸ The authors want to thank every single one of them for their input ๐Ÿ’–


9. References ๐Ÿ“š

9.1. Normative References ๐Ÿ”—

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC3550]  Schulzrinne, H., Casner, S., Frederick, R., and V.
           Jacobson, "RTP: A Transport Protocol for Real-Time
           Applications", STD 64, RFC 3550, July 2003.

[RFC3611]  Friedman, T., Caceres, R., and A. Clark, "RTP Control
           Protocol Extended Reports (RTCP XR)", RFC 3611,
           November 2003.

[RFC3711]  Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
           Norrman, "The Secure Real-time Transport Protocol (SRTP)",
           RFC 3711, March 2004.

[RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
           Description Protocol", RFC 4566, July 2006.

[RFC5234]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
           Specifications: ABNF", STD 68, RFC 5234, January 2008.

[RFC6285]  Ver Steeg, B., Begen, A., Van Caenegem, T., and Z. Vax,
           "Unicast-Based Rapid Acquisition of Multicast RTP
           Sessions", RFC 6285, June 2011.

9.2. Informative References ๐Ÿ“–

[RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
           IANA Considerations Section in RFCs", BCP 26, RFC 5226,
           May 2008.

Authors' Addresses ๐Ÿ’Œ

Ali Begen
Cisco
181 Bay Street
Toronto, ON  M5J 2T3
Canada

EMail: abegen@cisco.com


Eric Friedrich
Cisco
1414 Massachusetts Ave.
Boxborough, MA  01719
USA

EMail: efriedri@cisco.com

and that's the whole spec, bestie!! ๐ŸŒˆโœจ๐Ÿ‘‘

๐Ÿ“ฆ where this page comes from