RFC 9808: Content Delivery Network Interconnection (CDNI) Capacity Capability Advertisement Extensions
- A. Ryan,
- B. Rosenblum,
- N. Sopher
Abstract
This specification defines a set of additional Capability Objects that provide information about current downstream CDN (dCDN) utilization and specified usage limits to the delegating upstream CDN (uCDN) in order to inform traffic delegation decisions.¶
This document supplements the CDNI Capability Objects, defined in
RFC 8008 as part of the Footprint & Capabilities Advertisement
Interface (FCI), with two additional Capability Objects:
FCI
Status of This Memo
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2025 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
(https://
1. Introduction
While delegating traffic from an upstream CDN (uCDN) to a downstream CDN (dCDN), it is important to ensure that an appropriate amount of traffic is delegated. To achieve that, this specification defines a feedback mechanism to inform the delegator how much traffic may be delegated. The traffic level information provided by that interface will be consumed by services, such as a request router, to inform that service's traffic delegation decisions. The provided information is advisory and does not represent a guarantee, commitment, or reservation of capacity.¶
This document defines and registers CDNI Payload Types (as defined in Section 7.1 of [RFC8006]). These Payload Types are used for Capability Objects, which are added to those defined in Section 4 of [RFC8008].¶
1.1. Terminology
The following term is used throughout this document:¶
- CDN:
- Content Delivery Network¶
Additionally, this document reuses the terminology defined in [RFC6707]. Specifically, the following CDNI acronyms are used:¶
1.2. Requirements Language
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 BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
1.3. Objectives
To enable information exchange between a uCDN and a dCDN regarding acceptable levels of traffic delegation, the following process has been defined:¶
In normal operation, a uCDN will communicate with a dCDN, via an interface, to collect and understand any limits that a dCDN has set forth for traffic delegation from a uCDN. These limits will come in the form of metrics such as bits per second, requests per second, etc. These limits can be thought of as Not to Exceed (NTE) limits.¶
The dCDN should provide access to a Telemetry Source of near real-time metrics that the uCDN can use to track current usage. The uCDN should compare its current usage to the limits the dCDN has put forth and adjust traffic delegation decisions accordingly to keep current usage under the specified limits.¶
In summary, the dCDN will inform the uCDN of the amount of traffic that may be delegated. Additionally, it will provide a Telemetry Source aligned with this limit, allowing the uCDN to monitor its current usage against the advertised value. Having a limit and a corresponding Telemetry Source creates an unambiguous definition understood by both parties.¶
Limits that are communicated from the dCDN to the uCDN should be considered valid based on the Time to Live (TTL) provided by a mechanism of the underlying transport, e.g., an HTTP Cache-Control header. The intention is that the limits would have a long-lived TTL and would represent a reasonable peak utilization limit that the uCDN should target. If the underlying transport does not provide a mechanism for the dCDN to communicate the TTL of the limits, the TTL should be communicated through an out-of-band mechanism agreed upon between the dCDN and uCDN.¶
2. CDNI Additional Capability Objects
Section 5 of [RFC8008] describes the FCI Capability Advertisement Object, which contains a CDNI Capability Object as well as the capability-type (a CDNI Payload Type). The section also defines the Capability Objects per such type. Below, we define two additional Capability Objects.¶
2.1. Telemetry Capability Object
The Telemetry Capability Object advertises a list of Telemetry Sources made available to the uCDN by the dCDN. In this document, telemetry data is being defined as near real-time aggregated metrics of dCDN utilization, such as bits per second egress, and is specific to the uCDN and dCDN traffic delegation relationship.¶
Telemetry data is uniquely defined by a source ID, a metric name, and the footprints that are associated with an FCI Capabilities advertisement. When defining a CapacityLimit, the meaning of a limit might be ambiguous if the uCDN and dCDN are observing telemetry via different data sources. A dCDN-provided Telemetry Source that both parties reference serves as a non-ambiguous metric for use when comparing current usage to a limit.¶
Telemetry data is important for making informed traffic delegation decisions. Additionally, it is essential in providing visibility of traffic that has been delegated. In situations where there are multiple CDN delegations, a uCDN will need to aggregate the usage information from any dCDNs to which it delegated when asked to provide usage information, otherwise the traffic may seem unaccounted for.¶
Example: A Content Provider delegates traffic directly to a uCDN, and that uCDN delegates that traffic to a dCDN. When the Content Provider polls the uCDN telemetry interface, any of the traffic the uCDN delegated to the dCDN would become invisible to the Content Provider, unless the uCDN aggregates the dCDN telemetry with its own metrics.¶
- Property:
-
sources¶
- Description:
- Telemetry Sources made available to the uCDN.¶
- Type:
- A JSON array of Telemetry Source objects (see Section 2.1.1).¶
- Mandatory
-to -Specify : - Yes¶
2.1.1. Telemetry Source Object
The Telemetry Source Object is made of an associated type, a list of exposed metrics, and type-specific configuration data.¶
- Property:
-
id¶
- Description:
- An identifier of a telemetry source. The ID string assigned to this Telemetry Source MUST be unique across all Telemetry Source objects in the advertisement containing this Telemetry Source Object. The ID string MUST remain consistent for the same source reference across advertisements.¶
- Type:
- String¶
- Mandatory
-to -Specify : - Yes¶
- Property:
-
type¶
- Description:
- A valid Telemetry Source Type (see Section 2.1.1.1).¶
- Type:
- String¶
- Mandatory
-to -Specify : - Yes¶
- Property:
-
metrics¶
- Description:
- The metrics exposed by this source.¶
- Type:
- A JSON array of Telemetry Source Metric Objects (see Section 2.1.1.2).¶
- Mandatory
-to -Specify : - Yes¶
- Property:
-
configuration¶
- Description:
- A source-specific representation of the
Telemetry Source configuration. For the generic source type, this
configuration format is defined as out-of-band. For other types, the
configuration format will be specified in a yet
-to -be -defined telemetry interface specification. The goal of this element is to allow for forward compatibility with a formal telemetry interface.¶ - Type:
- A JSON object, the structure of which is specific to the Telemetry Source and outside the scope of this document.¶
- Mandatory
-to -Specify : - No¶
2.1.1.1. Telemetry Source Types
At the time of this writing, the "CDNI Telemetry Source Types" registry is limited to a single type: generic (see Table 3 in Section 3.2.1).¶
2.1.2. Telemetry Capability Object Serialization
The following shows an example of a Telemetry Capability Object, including two metrics for a source, that is scoped to a footprint.¶
2.2. CapacityLimits Capability Object
The CapacityLimits Capability Object enables the dCDN to specify traffic delegation limits to a uCDN within an FCI Capabilities advertisement. The limits specified by the dCDN will inform the uCDN on how much traffic may be delegated to the dCDN. The limits specified by the dCDN should be considered NTE limits. The limits should be based on near real-time telemetry data that the dCDN provides to the uCDN. In other words, for each limit that is advertised, there should also exist a Telemetry Source that provides current utilization data against the particular advertised limit.¶
- Property:
-
limits¶
- Description:
- A collection of CapacityLimit Objects.¶
- Type:
- A JSON array of CapacityLimit Objects (see Section 2.2.1).¶
- Mandatory
-to -Specify : - Yes¶
2.2.1. CapacityLimit Object
A CapacityLimit Object is used to represent traffic limits for delegation from the uCDN towards the dCDN. The limit object is scoped to the footprint associated with the FCI Capabilities advertisement encompassing this object. Limits MUST be considered using a logical "AND": A uCDN will need to ensure that all limits are considered rather than choosing only the most specific.¶
- Property:
-
limit-type¶
- Description:
- The units of maximum-hard and maximum-soft.¶
- Type:
- String. One of the values listed in Section 2.2.1.1.¶
- Mandatory
-to -Specify : - Yes¶
- Property:
-
id¶
- Description:
- Specifies an identifier associated with a limit. This MAY be used as a relational identifier to a specific CapacityLimit Object. If specified, this identifier MUST be unique among specified identifiers associated with any other CapacityLimit Objects in the advertisement containing this CapacityLimit Object.¶
- Type:
- String¶
- Mandatory
-to -Specify : - No¶
- Property:
-
maximum-hard¶
- Property:
-
maximum-soft¶
- Property:
-
current¶
- Description:
- Specifies the current usage value of
the limit. It is NOT RECOMMENDED to specify the
current usage value inline with the FCI
.Capacity Limits advertisements as it will reduce the ability to cache the response, but this mechanism exists for simple use cases where an external Telemetry Source cannot be feasibly implemented. The intended method for providing telemetry data is to reference a Telemetry Source Object (see Section 2.1.1) to poll for the current usage.¶ - Type:
- Unsigned Integer¶
- Mandatory
-to -Specify : - No¶
- Property:
-
telemetry-source¶
- Description:
- The mapping of each particular limit to a specific metric with relevant real-time data provided by a Telemetry Source.¶
- Type:
- Capacity
Limit Telemetry Source object (see Section 2.2.1.2).¶ - Mandatory
-to -Specify : - No¶
2.2.1.1. CapacityLimit Types
Below are listed the valid limit-type entries registered in the "CDNI Capacity Limit Types" registry. The values specified here represent the types that were identified as being the most relevant metrics for the purposes of traffic delegation between CDNs.¶
2.2.1.2. CapacityLimitTelemetrySource Object
The Capacity
2.2.2. CapacityLimit Object Serialization
The following shows an example of an FCI
3. IANA Considerations
3.1. CDNI Payload Types
Per this document, IANA has registered two additional payload types in the "CDNI Payload Types" registry within the "Content Delivery Network Interconnection (CDNI) Parameters" registry group:¶
3.1.1. CDNI FCI.Telemetry Payload Type
- Purpose:
- The purpose of this Payload Type is to list the supported Telemetry Sources and the metrics made available by each source.¶
- Interface:
- FCI¶
- Encoding:
- See Section 2.1.¶
3.1.2. CDNI FCI.CapacityLimits Payload Type
- Purpose:
- The purpose of this Payload Type is to define Capacity Limits based on utilization metrics corresponding to Telemetry Sources provided by the dCDN.¶
- Interface:
- FCI¶
- Encoding:
- See Section 2.2.¶
3.2. CDNI Telemetry Source Types Registry
IANA has added the following new registry within the "Content Delivery
Network Interconnection (CDNI) Parameters" registry group at
<https://
- Registry Name:
- CDNI Telemetry Source Types¶
- Registry Description:
- The "CDNI Telemetry Source Types" registry defines the valid values for the "type" property of the Telemetry Source object defined in Section 2.1.1.¶
- Registration Procedure:
-
The registry follows the Specification Required policy as defined in [RFC8126]. The designated expert should consider the following guidelines when evaluating registration requests:¶
The following value has been registered:¶
3.2.1. CDNI Generic Telemetry Source Type
- Purpose:
- The purpose of this Telemetry Source Type is to provide a source-agnostic telemetry type that may be used for generic Telemetry Source advertisement.¶
- Usage:
- See Section 2.1.1.¶
3.3. CDNI Capacity Limit Types Registry
IANA has added the following new registry within the "Content Delivery
Network Interconnection (CDNI) Parameters" registry group at
<https://
- Registry Name:
- CDNI Capacity Limit Types¶
- Registry Description:
- The "CDNI Capacity Limit Types" registry defines the valid values of the "limit-type" property of a CapacityLimit Object defined in Section 2.2.1.¶
- Registration Procedure:
-
The registry follows the Specification Required policy as defined in [RFC8126]. The designated expert should consider the following guidelines when evaluating registration requests:¶
The following values have been registered:¶
- Usage:
- See Section 2.2.1.1.¶
4. Security Considerations
This specification is in accordance with the CDNI Request Routing: Footprint and Capabilities Semantics. As such, it is subject to the security and privacy considerations as defined in Section 7 of [RFC8008].¶
5. References
5.1. Normative References
- [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC8008]
-
Seedorf, J., Peterson, J., Previdi, S., van Brandenburg, R., and K. Ma, "Content Delivery Network Interconnection (CDNI) Request Routing: Footprint and Capabilities Semantics", RFC 8008, DOI 10
.17487 , , <https:///RFC8008 www >..rfc -editor .org /info /rfc8008 - [RFC8126]
-
Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10
.17487 , , <https:///RFC8126 www >..rfc -editor .org /info /rfc8126 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174
5.2. Informative References
- [RFC6707]
-
Niven-Jenkins, B., Le Faucheur, F., and N. Bitar, "Content Distribution Network Interconnection (CDNI) Problem Statement", RFC 6707, DOI 10
.17487 , , <https:///RFC6707 www >..rfc -editor .org /info /rfc6707 - [RFC8006]
-
Niven-Jenkins, B., Murray, R., Caulfield, M., and K. Ma, "Content Delivery Network Interconnection (CDNI) Metadata", RFC 8006, DOI 10
.17487 , , <https:///RFC8006 www >..rfc -editor .org /info /rfc8006 - [SVTA]
-
"Streaming Video Technology Alliance Home Page", <https://
www >..svta .org
Acknowledgements
The authors would like to express their gratitude to the members of the Streaming Video Technology Alliance [SVTA] Open Caching Working Group for their guidance, contribution, and review.¶