RFC 5093
BT's eXtended Network Quality RTP Control Protocol Extended Reports (RTCP XR XNQ)
RFC 5093: BT's eXtended Network Quality RTP Control Protocol Extended Reports (RTCP XR XNQ) π
okay bestie, this one is from G. Hunt at BT (Geoff Hunt, if we're being formal π ), filed in the Network Working Group in December 2007 as Informational. It's basically BT saying "here's our packet-quality report block, FYI." The title block doesn't list any Obsoletes or Updates entries, so it doesn't replace or change any other RFC. πΈ
Status of This Memo β¨
This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.
IESG Note π
The IESG has concerns about vendor code points allocation in this small namespace and might not approve similar documents in the future.
Translation: the people who run the standards process are side-eyeing how vendors grab code points in this tiny namespace. Future documents like this might not get the green light. Iconic behaviour from the gatekeepers π
Abstract π¦
So this document describes an RTCP XR report block that reports packet transport parameters. BT built it for pre-standards use in their next-gen network. The doc exists so the block type can be registered with IANA under the Specification Required policy of RFC 3611, and that's the whole point. It does not standardise the block for use outside BT's network. Keep that in mind, main character π
Table of Contents π§
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Requirements Notation . . . . . . . . . . . . . . . . . . . . . 2
3. Extended Network Quality (XNQ) Report Block . . . . . . . . . . 2
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
5. Security Considerations . . . . . . . . . . . . . . . . . . . . 6
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6.1. Normative References . . . . . . . . . . . . . . . . . . . 6
6.2. Informative References . . . . . . . . . . . . . . . . . . 6
1. Introduction π
okay so BT already defined a set of packet-transport quality metrics for pre-standards use in their network. They call them "XNQ", short for "eXtended Network Quality" π«Ά. This doc defines an RTCP-XR Report Block that carries the XNQ measures from an RTP end system to its peer, using the extension mechanism from [1].
The metrics are meant to supplement the packet-loss metric in RTCP [2] and the roundtrip delay measurement RTCP already gives you. They add IP Packet Delay Variation metrics based on the IPDV metric from [3], metrics for how busy the receiver's jitter buffer is, and metrics for "errored" and "severely errored" seconds. Lowkey a whole upgrade pack π₯
Again, the doc is only detailed enough to register the block type with IANA under the Specification Required policy of [1]. It does not standardise the block for use outside BT's network. π
And heads up: work on RTCP HR [5] will likely make these metrics and the RTCP-XR Report Block defined here obsolete. Plot twist, ngl π
2. Requirements Notation π
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 [4]. Those are the BCP 14 key words, so they carry their formal meaning here. π
3. Extended Network Quality (XNQ) Report Block π
Quick recap so we're on the same page: BT made a set of packet-transport quality metrics for pre-standards use, called "XNQ" for "eXtended Network Quality" β¨
This doc defines an RTCP-XR Report Block using the extension mechanism from [1]. The new block carries the XNQ measures from an RTP end system to its peer. π¦
The metrics are described below, but some of them need extra explaining. vmaxdiff, vrange, vsum, and c all measure aspects of packet delay variation. They're based on IP Packet Delay Variation (IPDV) from [3]. The IPDV of a packet is how much longer that packet was delayed in the network, minus how much a reference packet was delayed in the network. The reference packet is usually the first packet of the connection. IPDV is a signed quantity, so it can go negative. Big brain stuff π§
vrange is the difference (longest minus shortest) between the longest and shortest network packet delays seen over the duration of the connection to date. It's usually a positive quantity, but it may be zero if the packet delay is exactly constant over the connection's lifetime to date. πΈ
vmaxdiff is found like this. For each RTCP measurement cycle, find the difference (longest minus shortest) between the longest and shortest network packet delays within that cycle. These differences are usually all positive, but a difference may be zero if the delay is exactly constant throughout the cycle. Then take that set of differences and find the maximum. That maximum is vmaxdiff. It's also usually a positive quantity, but it will be zero if every member of the set of per-cycle differences is zero. Math, but make it cute π
vsum is simply the sum of the per-RTCP-cycle differences you used to find vmaxdiff. c is the number of per-RTCP-cycle differences, which is the cardinality of the set. Together, vsum and c let you calculate vsum/c, which is the average IPDV per RTCP measurement cycle. Average-IPDV girlies rise up π
The 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=8 | reserved | block length = 8 |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| begin_seq | end_seq |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| vmaxdiff | vrange |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| vsum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| c | jbevents |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| reserved | tdegnet |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| reserved | tdegjit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| reserved | es |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| reserved | ses |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
Figure 1
The report is one RTCP-XR block header plus a single 8-word sub-block. Let's go field by field π
block type (BT): 8 bits
An XNQ Metrics Report Block is identified by the constant 8. β¨
reserved: 8 bits
These fields are reserved for future definition. Until something gets defined, the bits in these fields MUST be set to zero and MUST be ignored by the receiver. Hands off the reserved bits, bestie π
block length: 16 bits
Defined in Section 3 of [1]. πΈ
begin_seq: 16 bits
As defined in Section 4.1 of [1]. πΈ
end_seq: 16 bits
As defined in Section 4.1 of [1]. πΈ
vmaxdiff: 16 bits unsigned
The largest IPDV difference seen to date within a single RTCP measurement cycle, measured in RTP timestamp units. If the measured value exceeds 0xFFFE, the value 0xFFFF should be reported to indicate an over-range measurement. π¦
vrange: 16 bits unsigned
The largest IPDV difference over the lifetime of the RTP flow to date, measured in RTP timestamp units. If the measured value exceeds 0xFFFE, the value 0xFFFF should be reported to indicate an over-range measurement. π¦
vsum: 32 bits unsigned
The sum of the peak IPDV difference values within each RTCP cycle, summed over RTCP cycles over the lifetime of the RTP flow to date. If the measured value exceeds 0xFFFFFFFE, the value 0xFFFFFFFF should be reported to indicate an over-range measurement. π₯
c: 16 bits unsigned
The number of RTCP cycles over which vsum was accumulated. If the measured value exceeds 0xFFFE, the value 0xFFFF should be reported to indicate an over-range measurement. π
jbevents: 16 bits unsigned
The cumulative number of jitter buffer adaptation events over the lifetime of the RTP flow to date. If the measured value exceeds 0xFFFE, the value 0xFFFF should be reported to indicate an over-range measurement. π§
tdegnet: 24 bits unsigned
The total time in sample periods affected either by packets unavailable due to network loss, or late delivery of packets, since the start of transmission. If the measured value exceeds 0xFFFFFE, the value 0xFFFFFF should be reported to indicate an over-range measurement. π
tdegjit: 24 bits unsigned
The total time in sample periods degraded by jitter buffer adaptation events. For example, that's when the jitter buffer plays out a sample sequence that didn't come from the transmitter, repeats samples, or chooses not to play out a sample sequence the transmitter sent. If the measured value exceeds 0xFFFFFE, the value 0xFFFFFF should be reported to indicate an over-range measurement. π
es: 24 bits unsigned
The cumulative seconds affected by "unavailable packet" events over the lifetime of this ephemeral, to date. If the measured value exceeds 0xFFFFFE, the value 0xFFFFFF should be reported to indicate an over-range measurement. β
ses: 24 bits unsigned
The cumulative seconds affected by severe "unavailable packet" events over the lifetime of this ephemeral, to date. If the measured value exceeds 0xFFFFFE, the value 0xFFFFFF should be reported to indicate an over-range measurement. β
Full Copyright Statement π
Copyright (C) The IETF Trust (2007). πΈ
This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. So BCP 78 is the boss of the rights stuff, and the authors keep their own rights unless BCP 78 says otherwise π
This document and the information in it are provided on an "AS IS" basis, and the legal disclaimer is serious, so here it is in full, no edits π
THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property β¨
Okay so the IETF is not picking a side on whether any patents or other proprietary rights apply to the tech in this document, or whether anyone can get a license to use it. It also hasn't gone hunting for those rights itself π΅οΈββοΈ For how rights work with RFC documents, check out BCP 78 and BCP 79. They've got the details π
Copies of IPR disclosures sent to the IETF Secretariat, plus any promised licenses, or the results of anyone trying to get a general license or permission to use those proprietary rights for this spec, can be found in the IETF's online IPR repository at http://www.ietf.org/ipr. Bookmark it, bestie π
And if you know about any copyrights, patents, patent applications, or other proprietary rights that might cover technology you'd need to implement this standard, the IETF wants to hear about it. Send that info to ietf-ipr@ietf.org π¦ Speak up, it's giving transparency π«Ά
π¦ where this page comes from
- ietf: rfc5093 2007-12
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms