Multicast Acquisition Report Block Type for RTP Control Protocol (RTCP) Extended Reports (XRs)
Extracted elements (26)
The MA report block is designed to be sent after all necessary information is collected and computed rather than as a partial report, because partial reporting cannot give the full picture of multicast acquisition and adds complexity in report block matching and correlation.
The status code space is partitioned by MA method (1-1000 for simple join, 1001-2000 for RAMS) to allow easier classification and to support newly defined MA methods, while acknowledging that due to the limited 16-bit space, not every MA method can have 1000 reserved values.
For the RAMS method, 4xx- and 5xx-level response codes from RFC 6285 Section 11.6 take higher priority than 1xxx-level MA status codes, so a receiver MUST use the response code directly as its status code when a 4xx or 5xx is received.
A new vendor-neutral status code MUST be registered with IANA according to the guidelines in Section 7.5. New vendor-neutral TLV extensions must be registered with IANA per Section 7.4.
All integer fields in the base report and extensions MUST be carried in network-byte order (big-endian), following RFC 3550 rules.
For the RAMS method, if the RTP receiver receives a 1xx- or 2xx-level response code, it MUST use one of the 1xxx-level status codes. If it receives a 4xx- or 5xx-level response code, the RTP receiver MUST use the response code as its status code.
If RAMS-specific TLV elements are defined, they MUST NOT exist in the MA report block if the RTP receiver does not send a rapid acquisition request.
If the multicast join was successful (at least one multicast packet received), additional information MUST be appended to the base report as described in Section 4.2.1.
The MA report block MUST only be sent as part of an RTCP compound packet, and it is sent in the primary multicast session.
The Rsvd. field (16 bits) in the base report MUST be set to zero by the RTP receiver; the recipient MUST ignore this field when received.
The RTP Seqnum of the First Multicast Packet TLV element (Type 1) MUST be included if the multicast join was successful, and MUST NOT exist if no multicast packet has been received.
The SFGMP Join Time TLV element (Type 2) MUST be included if the multicast join was successful, and MUST NOT exist if no multicast packet has been received.
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.
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 receiver knows via out-of-band methods that the recipient understands it.
The MA report block base format consists of a fixed 12-byte header: BT=11 (8 bits), MA Method (8 bits), Block Length (16 bits), SSRC of Primary Multicast Stream (32 bits), Status (16 bits), and Reserved (16 bits).
The MA report block defines 11 vendor-neutral TLV extensions for RAMS performance reporting, including: RAMS Request-to-Burst Delta Time (Type 13), RAMS Request-to-Multicast Delta Time (Type 14), Number of Duplicate Packets (Type 16), and Size of Burst-to-Multicast Gap (Type 17).
The SDP parameter 'multicast-acq' is defined for the 'rtcp-xr' attribute to signal support for the MA report block, using ABNF: xr-format =/ multicast-acq-ext; multicast-acq-ext = "multicast-acq".
RTCP XR Block Type value 11 is registered in the RTCP XR Block Type Registry for the 'Multicast Acquisition Report Block'. SDP parameter 'multicast-acq' is registered in the RTCP XR SDP Parameters Registry.
The 'Multicast Acquisition Method Registry' is created, managed under the Specification Required policy. Initial entries: 0=Reserved, 1=Simple join, 2=RAMS (RFC 6285), 3-254=Unassigned, 255=Reserved. The field is a single octet (256 possible values).
The 'Multicast Acquisition Report Block TLV Space Registry' is created under Specification Required policy. Types 0 and 255 are reserved; 1-17 are assigned to specific timing/counting elements; 128-254 are reserved for private extensions.
The 'Multicast Acquisition Status Code Space Registry' is created under Specification Required policy with a 16-bit (65536-value) space. Codes 0-4 and 1001-1007 are defined; 65535 is reserved. Simple join uses 1-1000; RAMS uses 1001-2000.
Forged or modified MA reports could cause invalid data to be used in later rapid acquisition attempts—e.g., incorrectly small SFGMP join times could make unicast bursts too short, creating sequence number gaps. The document RECOMMENDS use of SRTCP (RFC 3711) for integrity protection.
MA report blocks may expose RTP service performance characteristics and underlying network details if captured by a passive observer. Private extensions may contain application-level performance data not otherwise available to an attacker, making security of private extensions especially important to evaluate.
BT field is 8 bits set to the constant 11, identifying this as a Multicast Acquisition report block. MA Method is 8 bits denoting the type of acquisition method (e.g., simple join=1, RAMS=2). Block Length is 16 bits giving the report block length in 32-bit words minus one.
Private extensions use Type (1 octet, range 128-254), Reserved (1 octet), Length (2 octets), Enterprise Number (32 bits from IANA private enterprise numbers), and a variable-length Value field.
TLV extension elements use a Type field (1 octet), a Reserved field (1 octet), a Length field (2 octets indicating value length in octets excluding Type, Reserved, and Length), and a variable-length Value. TLV elements not on a 32-bit boundary MUST be padded with zero bits.