rfc9808.original   rfc9808.txt 
Content Delivery Networks Interconnection A. Ryan Internet Engineering Task Force (IETF) A. Ryan
Internet-Draft Disney Streaming Request for Comments: 9808 Disney Streaming
Intended status: Standards Track B. Rosenblum Category: Standards Track B. Rosenblum
Expires: 15 June 2025 Vecima ISSN: 2070-1721 Vecima
N. Sopher N. Sopher
Qwilt Qwilt
12 December 2024 June 2025
CDNI Capacity Capability Advertisement Extensions Content Delivery Network Interconnection (CDNI) Capacity Capability
draft-ietf-cdni-capacity-insights-extensions-12 Advertisement Extensions
Abstract Abstract
The Content Delivery Networks Interconnection (CDNI) Capacity The Content Delivery Network Interconnection (CDNI) Capacity
Capability Advertisement Extensions define a set of additional Capability Advertisement Extensions define a set of additional
Capability Objects that provide information about current downstream Capability Objects that provide information about current downstream
CDN (dCDN) utilization and specified usage limits to the delegating CDN (dCDN) utilization and specified usage limits to the delegating
upstream CDN (uCDN) in order to inform traffic delegation decisions. upstream CDN (uCDN) in order to inform traffic delegation decisions.
This document supplements the CDNI Capability Objects, defined in RFC This document supplements the CDNI Capability Objects, defined in RFC
8008 as part of the Footprints & Capabilities Advertisement Interface 8008 as part of the Footprint & Capabilities Advertisement Interface
(FCI), with two additional Capability Objects: FCI.CapacityLimits and (FCI), with two additional Capability Objects: FCI.CapacityLimits and
FCI.Telemetry. FCI.Telemetry.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
This Internet-Draft will expire on 15 June 2025. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9808.
Copyright Notice Copyright Notice
Copyright (c) 2024 IETF Trust and the persons identified as the Copyright (c) 2025 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Terminology
1.2. Requirements Language . . . . . . . . . . . . . . . . . . 3 1.2. Requirements Language
1.3. Objectives . . . . . . . . . . . . . . . . . . . . . . . 3 1.3. Objectives
2. CDNI Additional Capability Objects . . . . . . . . . . . . . 4 2. CDNI Additional Capability Objects
2.1. Telemetry Capability Object . . . . . . . . . . . . . . . 4 2.1. Telemetry Capability Object
2.1.1. Telemetry Source Object . . . . . . . . . . . . . . . 5 2.1.1. Telemetry Source Object
2.1.1.1. Telemetry Source Types . . . . . . . . . . . . . 6 2.1.1.1. Telemetry Source Types
2.1.1.2. Telemetry Source Metric Object . . . . . . . . . 6 2.1.1.2. Telemetry Source Metric Object
2.1.2. Telemetry Capability Object Serialization . . . . . . 7 2.1.2. Telemetry Capability Object Serialization
2.2. CapacityLimits Capability Object . . . . . . . . . . . . 8 2.2. CapacityLimits Capability Object
2.2.1. CapacityLimit Object . . . . . . . . . . . . . . . . 9 2.2.1. CapacityLimit Object
2.2.1.1. CapacityLimit Types . . . . . . . . . . . . . . . 10 2.2.1.1. CapacityLimit Types
2.2.1.2. CapacityLimitTelemetrySource Object . . . . . . . 11 2.2.1.2. CapacityLimitTelemetrySource Object
2.2.2. CapacityLimit Object Serialization . . . . . . . . . 11 2.2.2. CapacityLimit Object Serialization
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 3. IANA Considerations
3.1. CDNI Payload Types . . . . . . . . . . . . . . . . . . . 12 3.1. CDNI Payload Types
3.1.1. CDNI FCI Telemetry Payload Type . . . . . . . . . . . 13 3.1.1. CDNI FCI Telemetry Payload Type
3.1.2. CDNI FCI Capacity Limits Payload Type . . . . . . . . 13 3.1.2. CDNI FCI Capacity Limits Payload Type
3.2. "CDNI Telemetry Source Types" Registry . . . . . . . . . 13 3.2. CDNI Telemetry Source Types Registry
3.2.1. CDNI Generic Telemetry Source Type . . . . . . . . . 14 3.2.1. CDNI Generic Telemetry Source Type
3.3. "CDNI Capacity Limit Types" Registry . . . . . . . . . . 14 3.3. CDNI Capacity Limit Types Registry
4. Security Considerations . . . . . . . . . . . . . . . . . . . 15 4. Security Considerations
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 5. References
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.1. Normative References
6.1. Normative References . . . . . . . . . . . . . . . . . . 15 5.2. Informative References
6.2. Informative References . . . . . . . . . . . . . . . . . 16 Acknowledgements
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 Authors' Addresses
1. Introduction 1. Introduction
While delegating traffic from an upstream CDN (uCDN) to a downstream While delegating traffic from an upstream CDN (uCDN) to a downstream
CDN (dCDN), it is important to ensure that an appropriate amount of CDN (dCDN), it is important to ensure that an appropriate amount of
traffic is delegated. To achieve that, this specification defines a traffic is delegated. To achieve that, this specification defines a
feedback mechanism to inform the delegator how much traffic may be feedback mechanism to inform the delegator how much traffic may be
delegated. The traffic level information provided by that interface delegated. The traffic level information provided by that interface
will be consumed by services, such as a request router, to inform will be consumed by services, such as a request router, to inform
that service's traffic delegation decisions. The provided that service's traffic delegation decisions. The provided
information is advisory and does not represent a guarantee, information is advisory and does not represent a guarantee,
commitment, or reservation of capacity. commitment, or reservation of capacity.
This document defines and registers CDNI Payload Types (as defined at This document defines and registers CDNI Payload Types (as defined in
section 7.1 of [RFC8006]). These Payload types are used for Section 7.1 of [RFC8006]). These Payload types are used for
Capability Objects added to those defined at section 4 of [RFC8008]. Capability Objects, which are added to those defined in Section 4 of
[RFC8008].
1.1. Terminology 1.1. Terminology
The following terms are used throughout this document: The following term is used throughout this document:
* CDN - Content Delivery Network CDN: Content Delivery Network
Additionally, this document reuses the terminology defined in Additionally, this document reuses the terminology defined in
[RFC6707]. Specifically, we use the following CDNI acronyms: [RFC6707]. Specifically, the following CDNI acronyms are used:
* uCDN, dCDN - Upstream CDN and Downstream CDN, respectively uCDN: upstream CDN
dCDN: downstream CDN
1.2. Requirements Language 1.2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in
14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
1.3. Objectives 1.3. Objectives
To enable information exchange between a uCDN and a dCDN regarding To enable information exchange between a uCDN and a dCDN regarding
acceptable levels of traffic delegation, the following process has acceptable levels of traffic delegation, the following process has
been defined: been defined:
In normal operation a uCDN will communicate with a dCDN, via an In normal operation, a uCDN will communicate with a dCDN, via an
interface, to collect and understand any limits that a dCDN has set interface, to collect and understand any limits that a dCDN has
forth for traffic delegation from a uCDN. These limits will come in set forth for traffic delegation from a uCDN. These limits will
the form of metrics such as bits per second, requests per second, come in the form of metrics such as bits per second, requests per
etc. These limits can be thought of as Not to Exceed (NTE) limits. 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- 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 time metrics that the uCDN can use to track current usage. The
should compare its current usage to the limits the dCDN has put forth uCDN should compare its current usage to the limits the dCDN has
and adjust traffic delegation decisions accordingly to keep current put forth and adjust traffic delegation decisions accordingly to
usage under the specified limits. keep current usage under the specified limits.
In summary, the dCDN will inform the uCDN of the amount of traffic In summary, the dCDN will inform the uCDN of the amount of traffic
that may be delegated. Additionally, it will provide a telemetry that may be delegated. Additionally, it will provide a telemetry
source aligned with this limit, allowing the uCDN to monitor its source aligned with this limit, allowing the uCDN to monitor its
current usage against the advertised value. Having a limit and a current usage against the advertised value. Having a limit and a
corresponding telemetry source creates an unambiguous definition corresponding telemetry source creates an unambiguous definition
understood by both parties. understood by both parties.
Limits that are communicated from the dCDN to the uCDN should be Limits that are communicated from the dCDN to the uCDN should be
considered valid based on the TTL (Time To Live) provided by a considered valid based on the Time to Live (TTL) provided by a
mechanism of the underlying transport, e.g., an HTTP Cache-Control mechanism of the underlying transport, e.g., an HTTP Cache-Control
header. The intention is that the limits would have a long-lived TTL header. The intention is that the limits would have a long-lived TTL
and would represent a reasonable peak utilization limit that the uCDN and would represent a reasonable peak utilization limit that the uCDN
should target. If the underlying transport does not provide a should target. If the underlying transport does not provide a
mechanism for the dCDN to communicate the TTL of the limits, the TTL mechanism for the dCDN to communicate the TTL of the limits, the TTL
should be communicated through an out-of-band mechanism agrred should be communicated through an out-of-band mechanism agreed upon
between the dCDN and uCDN. between the dCDN and uCDN.
2. CDNI Additional Capability Objects 2. CDNI Additional Capability Objects
Section 5 of [RFC8008] describes the FCI Capability Advertisement Section 5 of [RFC8008] describes the FCI Capability Advertisement
Object, which contains a CDNI Capability Object as well as the Object, which contains a CDNI Capability Object as well as the
capability object type (a CDNI Payload Type). The section also capability object type (a CDNI Payload Type). The section also
defines the Capability Objects per such type. Below, we define two defines the Capability Objects per such type. Below, we define two
additional Capability Objects. additional Capability Objects.
skipping to change at page 5, line 13 skipping to change at line 203
traffic that has been delegated. In situations where there are traffic that has been delegated. In situations where there are
multiple CDN delegations, a uCDN will need to aggregate the usage multiple CDN delegations, a uCDN will need to aggregate the usage
information from any dCDNs to which it delegated when asked to information from any dCDNs to which it delegated when asked to
provide usage information, otherwise the traffic may seem unaccounted provide usage information, otherwise the traffic may seem unaccounted
for. for.
Example: A Content Provider delegates traffic directly to a uCDN, and Example: A Content Provider delegates traffic directly to a uCDN, and
that uCDN delegates that traffic to a dCDN. When the Content that uCDN delegates that traffic to a dCDN. When the Content
Provider polls the uCDN telemetry interface, any of the traffic the Provider polls the uCDN telemetry interface, any of the traffic the
uCDN delegated to the dCDN would become invisible to the Content uCDN delegated to the dCDN would become invisible to the Content
Provider unless the uCDN aggregates the dCDN telemetry with its own Provider, unless the uCDN aggregates the dCDN telemetry with its own
metrics. metrics.
Property: sources Property: sources
Description: Telemetry sources made available to the uCDN. Description: Telemetry sources made available to the uCDN.
Type: A JSON array of Telemetry Source objects (see Type: A JSON array of Telemetry Source objects (see
Section 2.1.1). Section 2.1.1).
Mandatory-to-Specify: Yes. Mandatory-to-Specify: Yes.
2.1.1. Telemetry Source Object 2.1.1. Telemetry Source Object
The Telemetry Source Object is built of an associated type, a list of The Telemetry Source Object is made of an associated type, a list of
exposed metrics, and type-specific configuration data. exposed metrics, and type-specific configuration data.
Property: id Property: id
Description: An identifier of a telemetry source. The ID Description: An identifier of a telemetry source. The ID string
string assigned to this Telemetry Source MUST be unique across assigned to this Telemetry Source MUST be unique across all
all Telemetry Source objects in the advertisement containining Telemetry Source objects in the advertisement containing this
this Telemetry Source Object. The ID string MUST remain Telemetry Source Object. The ID string MUST remain consistent
consistent for the same source reference across advertisements. for the same source reference across advertisements.
Type: String. Type: String.
Mandatory-to-Specify: Yes. Mandatory-to-Specify: Yes.
Property: type Property: type
Description: A valid telemetry source type. See Description: A valid telemetry source type (see Section 2.1.1.1).
Section 2.1.1.1.
Type: String. Type: String.
Mandatory-to-Specify: Yes. Mandatory-to-Specify: Yes.
Property: metrics Property: metrics
Description: The metrics exposed by this source.
Type: A JSON array of Telemetry Source Metric objects (see Description: The metrics exposed by this source.
Type: A JSON array of Telemetry Source Metric objects (see
Section 2.1.1.2). Section 2.1.1.2).
Mandatory-to-Specify: Yes. Mandatory-to-Specify: Yes.
Property: configuration Property: configuration
Description: a source-specific representation of the Telemetry Description: a source-specific representation of the Telemetry
Source configuration. For the generic source type, this Source configuration. For the generic source type, this
configuration format is defined out-of-band. For other types, configuration format is defined as out-of-band. For other
the configuration format will be specified in a yet to be types, the configuration format will be specified in a yet-to-
defined telemetry interface specification. The goal of this be-defined telemetry interface specification. The goal of this
element is to allow for forward compatibility with a formal element is to allow for forward compatibility with a formal
telemetry interface. telemetry interface.
Type: A JSON object, the structure of which is specific to the Type: A JSON object, the structure of which is specific to the
Telemetry Source and outside the scope of this document. Telemetry Source and outside the scope of this document.
Mandatory-to-Specify: No. Mandatory-to-Specify: No.
2.1.1.1. Telemetry Source Types 2.1.1.1. Telemetry Source Types
At the time of this writing, the registry of valid Telemetry Source At the time of this writing, the registry of valid Telemetry Source
Object types is limited to a single type: Generic (see Types is limited to a single type: generic (see Section 3.2.1).
Section 3.2.1).
+=============+=======================================+ +=============+=======================================+
| Source Type | Description | | Source Type | Description |
+=============+=======================================+ +=============+=======================================+
| generic | An object which allows for | | generic | An object that allows for |
| | advertisement of generic data sources | | | advertisement of generic data sources |
+-------------+---------------------------------------+ +-------------+---------------------------------------+
Table 1 Table 1
2.1.1.2. Telemetry Source Metric Object 2.1.1.2. Telemetry Source Metric Object
The Telemetry Source Metric Object describes the metric to be The Telemetry Source Metric Object describes the metric to be
exposed. exposed.
Property: name Property: name
Description: An identifier for this metric. This name MUST be Description: An identifier for this metric. This name MUST be
unique among metric objects within the containing Telemetry unique among metric objects within the containing Telemetry
Source. The name MUST remain consistent for the same source Source. The name MUST remain consistent for the same source
reference across advertisements. reference across advertisements.
Type: String. Type: String.
Mandatory-to-Specify: Yes. Mandatory-to-Specify: Yes.
Property: time-granularity Property: time-granularity
Description: The time, in seconds, representing the metric Description: The time, in seconds, representing the metric data.
data. For example, a value representing the last 5 minutes For example, a value representing the last 5 minutes would have
would have a time-granularity of 300. a time-granularity of 300.
Type: Unsigned Integer. Type: Unsigned Integer.
Mandatory-to-Specify: No. Mandatory-to-Specify: No.
Property: data-percentile Property: data-percentile
Description: The percentile calculation the data represents, Description: The percentile calculation the data represents,
i.e., 50 percentile would equate to the median over the time- i.e., 50 percentile would equate to the median over the time-
granularity. Lack of a data-percentile indicates that the data granularity. Lack of a data-percentile indicates that the data
MUST be the mean over the time representation. MUST be the mean over the time representation.
Type: Unsigned Integer. Type: Unsigned Integer.
Mandatory-to-Specify: No. Mandatory-to-Specify: No.
Property: latency Property: latency
Description: Time in seconds that the data is behind real-time. Description: Time in seconds that the data is behind real-time.
This is important to specify to help the uCDN understand how This is important to specify to help the uCDN understand how
long it might take to reflect traffic adjustments in the long it might take to reflect traffic adjustments in the
metrics. metrics.
Type: Unsigned Integer. Type: Unsigned Integer.
Mandatory-to-Specify: No. Mandatory-to-Specify: No.
2.1.2. Telemetry Capability Object Serialization 2.1.2. Telemetry Capability Object Serialization
The following shows an example of Telemetry Capability including two The following shows an example of Telemetry Capability including two
metrics for a source, that is scoped to a footprint. metrics for a source, that is scoped to a footprint.
{ {
"capabilities": [ "capabilities": [
{ {
"capability-type": "FCI.Telemetry", "capability-type": "FCI.Telemetry",
skipping to change at page 8, line 42 skipping to change at line 368
} }
] ]
} }
2.2. CapacityLimits Capability Object 2.2. CapacityLimits Capability Object
The CapacityLimits Capability Object enables the dCDN to specify The CapacityLimits Capability Object enables the dCDN to specify
traffic delegation limits to a uCDN within an FCI.Capabilities traffic delegation limits to a uCDN within an FCI.Capabilities
advertisement. The limits specified by the dCDN will inform the uCDN advertisement. The limits specified by the dCDN will inform the uCDN
on how much traffic may be delegated to the dCDN. The limits on how much traffic may be delegated to the dCDN. The limits
specified by the dCDN should be considered Not To Exceed (NTE) specified by the dCDN should be considered NTE limits. The limits
limits. The limits should be based on near real-time telemetry data should be based on near real-time telemetry data that the dCDN
that the dCDN provides to the uCDN. In other words, for each limit provides to the uCDN. In other words, for each limit that is
that is advertised, there should also exist a telemetry source which advertised, there should also exist a telemetry source that provides
provides current utilization data against the particular advertised current utilization data against the particular advertised limit.
limit.
Property: limits Property: limits
Description: A collection of CapacityLimit objects. Description: A collection of CapacityLimit objects.
Type: A JSON array of CapacityLimit objects (see Type: A JSON array of CapacityLimit objects (see Section 2.2.1).
Section 2.2.1).
Mandatory-to-Specify: Yes. Mandatory-to-Specify: Yes.
2.2.1. CapacityLimit Object 2.2.1. CapacityLimit Object
A CapacityLimit object is used to represent traffic limits for A CapacityLimit object is used to represent traffic limits for
delegation from the uCDN towards the dCDN. The limit object is delegation from the uCDN towards the dCDN. The limit object is
scoped to the footprint associated with the FCI capability scoped to the footprint associated with the FCI capability
advertisement encompassing this object. Limits MUST be considered advertisement encompassing this object. Limits MUST be considered
using a logical "AND": a uCDN will need to ensure that all limits are using a logical "AND": A uCDN will need to ensure that all limits are
considered rather than choosing only the most specific. considered rather than choosing only the most specific.
Property: limit-type Property: limit-type
Description: The units of maximum-hard and maximum-soft. Description: The units of maximum-hard and maximum-soft.
Type: String. One of the values listed in Section 2.2.1.1. Type: String. One of the values listed in Section 2.2.1.1.
Mandatory-to-Specify: Yes. Mandatory-to-Specify: Yes.
Property: id Property: id
Description: Specifies an identifier associated with a limit. Description: Specifies an identifier associated with a limit.
This MAY be used as a relational identifier to a specific This MAY be used as a relational identifier to a specific
CapacityLimit Object. If specified, this identifier MUST be CapacityLimit Object. If specified, this identifier MUST be
unique among specified identifiers associated with any other unique among specified identifiers associated with any other
CapacityLimit objects in the advertisement containing this CapacityLimit objects in the advertisement containing this
CapacityLimit Object. CapacityLimit Object.
Type: String. Type: String.
Mandatory-to-Specify: No. Mandatory-to-Specify: No.
Property: maximum-hard Property: maximum-hard
Description: The maximum unit of capacity that is available for Description: The maximum unit of capacity that is available for
use. use.
Type: Unsigned Integer. Type: Unsigned Integer.
Mandatory-to-Specify: Yes. Mandatory-to-Specify: Yes.
Property: maximum-soft Property: maximum-soft
Description: A soft limit at which a uCDN SHOULD reduce traffic
Description: A soft limit at which a uCDN SHOULD reduce traffic
before hitting the hard limit. This value MUST be less than before hitting the hard limit. This value MUST be less than
the value of maximum-hard. If this value is not specified, it the value of maximum-hard. If this value is not specified, it
is equal to the value of maximum-hard. is equal to the value of maximum-hard.
Type: Unsigned Integer. Type: Unsigned Integer.
Mandatory-to-Specify: No. Mandatory-to-Specify: No.
Property: current Property: current
Description: Specifies the current usage value of the limit. Description: Specifies the current usage value of the limit. It
It is NOT RECOMMENDED to specify the current usage value inline is NOT RECOMMENDED to specify the current usage value inline
with the FCI.CapacityLimits advertisements as it will reduce with the FCI.CapacityLimits advertisements as it will reduce
the ability to cache the response, but this mechanism exists the ability to cache the response, but this mechanism exists
for simple use cases where an external telemetry source cannot for simple use cases where an external telemetry source cannot
be feasibly implemented. The intended method for providing be feasibly implemented. The intended method for providing
telemetry data is to reference a Telemetry Source object (see telemetry data is to reference a Telemetry Source object (see
Section 2.1.1) to poll for the current usage. Section 2.1.1) to poll for the current usage.
Type: Unsigned Integer. Type: Unsigned Integer.
Mandatory-to-Specify: No. Mandatory-to-Specify: No.
Property: telemetry-source Property: telemetry-source
Description: Mapping of each particular limit to a specific Description: The mapping of each particular limit to a specific
metric with relevant real-time data provided by a telemetry metric with relevant real-time data provided by a telemetry
source. source.
Type: CapacityLimitTelemetrySource object (see Type: CapacityLimitTelemetrySource object (see Section 2.2.1.2).
Section 2.2.1.2).
Mandatory-to-Specify: No. Mandatory-to-Specify: No.
2.2.1.1. CapacityLimit Types 2.2.1.1. CapacityLimit Types
Below are listed the valid capacity limit-types registered in the Below are listed the valid capacity limit-types registered in the
CDNI Capacity Limit Types registry. The values specified here "CDNI Capacity Limit Types" registry. The values specified here
represent the types that were identified as being the most relevant represent the types that were identified as being the most relevant
metrics for the purposes of traffic delegation between CDNs. metrics for the purposes of traffic delegation between CDNs.
+=================+=====================+ +=====================+=====================+
| Limit Type | Units | | Capacity Limit Type | Units |
+=================+=====================+ +=====================+=====================+
| egress | Bits per second | | egress | Bits per second |
+-----------------+---------------------+ +---------------------+---------------------+
| requests | Requests per second | | requests | Requests per second |
+-----------------+---------------------+ +---------------------+---------------------+
| storage-size | Total bytes | | storage-size | Total bytes |
+-----------------+---------------------+ +---------------------+---------------------+
| storage-objects | Count | | storage-objects | Count |
+-----------------+---------------------+ +---------------------+---------------------+
| sessions | Count | | sessions | Count |
+-----------------+---------------------+ +---------------------+---------------------+
| cache-size | Total bytes | | cache-size | Total bytes |
+-----------------+---------------------+ +---------------------+---------------------+
Table 2 Table 2
2.2.1.2. CapacityLimitTelemetrySource Object 2.2.1.2. CapacityLimitTelemetrySource Object
The CapacityLimitTelemetrySource Object refers to a specific metric The CapacityLimitTelemetrySource Object refers to a specific metric
within a Telemetry Source. within a Telemetry Source.
Property: id Property: id
Description: Reference to the "id" of a telemetry source Description: Reference to the "id" of a telemetry source defined
defined by a Telemetry Capability object as defined in by a Telemetry Capability object as defined in Section 2.1.
Section 2.1.
Type: String. Type: String.
Mandatory-to-Specify: Yes. Mandatory-to-Specify: Yes.
Property: metric Property: metric
Description: Reference to the "name" property of a metric Description: Reference to the "name" property of a metric defined
defined within a telemetry source of a Telemetry Capability within a telemetry source of a Telemetry Capability object.
object.
Type: String. Type: String.
Mandatory-to-Specify: Yes. Mandatory-to-Specify: Yes.
2.2.2. CapacityLimit Object Serialization 2.2.2. CapacityLimit Object Serialization
The following shows an example of an FCI.CapacityLimits object. The following shows an example of an FCI.CapacityLimits object.
{ {
"capabilities": [ "capabilities": [
{ {
"capability-type":"FCI.CapacityLimits", "capability-type":"FCI.CapacityLimits",
"capability-value":{ "capability-value":{
skipping to change at page 12, line 34 skipping to change at line 538
"<footprint objects>" "<footprint objects>"
] ]
} }
] ]
} }
3. IANA Considerations 3. IANA Considerations
3.1. CDNI Payload Types 3.1. CDNI Payload Types
This document requests the registration of two additional payload Per this document, IANA has registered two additional payload types
types to the Content Delivery Network Interconnection (CDNI) in the "CDNI Payload Types" registry within the "Content Delivery
Parameters "CDNI Payload Types" registry: Network Interconnection (CDNI) Parameters" registry group:
+====================+===============+ +====================+===========+
| Payload Type | Specification | | Payload Type | Reference |
+====================+===============+ +====================+===========+
| FCI.Telemetry | RFCthis | | FCI.Telemetry | RFC 9808 |
+--------------------+---------------+ +--------------------+-----------+
| FCI.CapacityLimits | RFCthis | | FCI.CapacityLimits | RFC 9808 |
+--------------------+---------------+ +--------------------+-----------+
Table 3 Table 3
[RFC Editor: Please replace RFCthis with the published RFC number for
this document.]
3.1.1. CDNI FCI Telemetry Payload Type 3.1.1. CDNI FCI Telemetry Payload Type
Purpose: The purpose of this Payload Type is to list the supported Purpose: The purpose of this Payload Type is to list the supported
telemetry sources and the metrics made available by each source. telemetry sources and the metrics made available by each source.
Interface: FCI. Interface: FCI.
Encoding: See Section 2.1. Encoding: See Section 2.1.
3.1.2. CDNI FCI Capacity Limits Payload Type 3.1.2. CDNI FCI Capacity Limits Payload Type
Purpose: The purpose of this Payload Type is to define Capacity Purpose: The purpose of this Payload Type is to define Capacity
Limits based on utilization metrics corresponding to telemetry Limits based on utilization metrics corresponding to telemetry
sources provided by the dCDN. sources provided by the dCDN.
Interface: FCI. Interface: FCI.
Encoding: See Section 2.2. Encoding: See Section 2.2.
3.2. "CDNI Telemetry Source Types" Registry 3.2. CDNI Telemetry Source Types Registry
IANA will add the following new registry to the "Content Delivery IANA has added the following new registry within the "Content
Network Interconnection (CDNI) Parameters" group at Delivery Network Interconnection (CDNI) Parameters" registry group at
https://www.iana.org/assignments/cdni-parameters: <https://www.iana.org/assignments/cdni-parameters>:
Registry Name: CDNI Telemetry Source Types Registry Name: CDNI Telemetry Source Types
Registry Description: The CDNI Telemetry Source Types registry Registry Description: The "CDNI Telemetry Source Types" registry
defines the valid values for the "type" property of the Telemetry defines the valid values for the "type" property of the Telemetry
Source object defined in Section 2.1.1. Source object defined in Section 2.1.1.
Registration Procedure: The registry follows the Specification Registration Procedure: The registry follows the Specification
Required policy as defined in [RFC8126]. The Designated Expert Required policy as defined in [RFC8126]. The designated expert
should consider the following guidelines when evaluating registration should consider the following guidelines when evaluating
requests: registration requests:
* The new type definition does not duplicate existing types. * The new type definition does not duplicate existing types.
* The review should verify that the telemetry source is applicable * The review should verify that the telemetry source is
to the CDNI use cases and that the description is clear and applicable to the CDNI use cases and that the description is
unambiguous. clear and unambiguous.
* The registration is applicable for general use and not * The registration is applicable for general use and is not
proprietary. proprietary.
* The "configuration" property has a fully specified object * The "configuration" property has a fully specified object
definition with a description of each defined property. definition with a description of each defined property.
The following values will be registered: The following value has been registered:
+=============+===============+ +=============+===========+
| Source Type | Specification | | Source Type | Reference |
+=============+===============+ +=============+===========+
| generic | RFCthis | | generic | RFC 9808 |
+-------------+---------------+ +-------------+-----------+
Table 4 Table 4
3.2.1. CDNI Generic Telemetry Source Type 3.2.1. CDNI Generic Telemetry Source Type
Purpose: The purpose of this Telemetry Source Type is to provide a Purpose: The purpose of this Telemetry Source Type is to provide a
source-agnostic telemetry type that may be used for generic source-agnostic telemetry type that may be used for generic
telemetry source advertisement. telemetry source advertisement.
Usage: See Section 2.1.1. Usage: See Section 2.1.1.
3.3. "CDNI Capacity Limit Types" Registry 3.3. CDNI Capacity Limit Types Registry
IANA will add the following new registry to the "Content Delivery IANA has added the following new registry within the "Content
Network Interconnection (CDNI) Parameters" group at Delivery Network Interconnection (CDNI) Parameters" registry group at
https://www.iana.org/assignments/cdni-parameters: <https://www.iana.org/assignments/cdni-parameters>:
Registry Name: CDNI Capacity Limit Types Registry Name: CDNI Capacity Limit Types
Registry Description: The CDNI Capacity Limit Types registry defines Registry Description: The "CDNI Capacity Limit Types" registry
the valid values of the "limit-type" property of a CapacityLimit defines the valid values of the "limit-type" property of a
object defined in Section 2.2.1. CapacityLimit object defined in Section 2.2.1.
Registration Procedure: The registry follows the Specification Registration Procedure: The registry follows the Specification
Required policy as defined in [RFC8126]. The Designated Expert Required policy as defined in [RFC8126]. The designated expert
should consider the following guidelines when evaluating registration should consider the following guidelines when evaluating
requests: registration requests:
* The new capacity limit type does not duplicate existing entries. * The new capacity limit type does not duplicate existing
entries.
* The submission has a defined purpose. The newly defined capacity * The submission has a defined purpose. The newly defined
limit type should be clearly justified in the context of one or capacity limit type should be clearly justified in the context
more CDNI use cases. of one or more CDNI use cases.
* The description of the capacity limit type is well-documented and * The description of the capacity limit type is well-documented
unambiguous. and unambiguous.
The following values will be registered: The following values have been registered:
+=====================+=====================+===============+ +=====================+=====================+===========+
| Capacity Limit Type | Units | Specification | | Capacity Limit Type | Units | Reference |
+=====================+=====================+===============+ +=====================+=====================+===========+
| egress | Bits per second | RFCthis | | egress | Bits per second | RFC 9808 |
+---------------------+---------------------+---------------+ +---------------------+---------------------+-----------+
| requests | Requests per second | RFCthis | | requests | Requests per second | RFC 9808 |
+---------------------+---------------------+---------------+ +---------------------+---------------------+-----------+
| storage-size | Total bytes | RFCthis | | storage-size | Total bytes | RFC 9808 |
+---------------------+---------------------+---------------+ +---------------------+---------------------+-----------+
| storage-objects | Count | RFCthis | | storage-objects | Count | RFC 9808 |
+---------------------+---------------------+---------------+ +---------------------+---------------------+-----------+
| sessions | Count | RFCthis | | sessions | Count | RFC 9808 |
+---------------------+---------------------+---------------+ +---------------------+---------------------+-----------+
| cache-size | Total bytes | RFCthis | | cache-size | Total bytes | RFC 9808 |
+---------------------+---------------------+---------------+ +---------------------+---------------------+-----------+
Table 5 Table 5
Usage: See Section 2.2.1.1. Usage: See Section 2.2.1.1.
4. Security Considerations 4. Security Considerations
This specification is in accordance with the CDNI Request Routing: This specification is in accordance with the CDNI Request Routing:
Footprint and Capabilities Semantics. As such, it is subject to the Footprint and Capabilities Semantics. As such, it is subject to the
security and privacy considerations as defined in Section 7 of security and privacy considerations as defined in Section 7 of
[RFC8008]. [RFC8008].
5. Acknowledgements 5. References
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.
6. References
6.1. Normative References 5.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC8008] Seedorf, J., Peterson, J., Previdi, S., van Brandenburg, [RFC8008] Seedorf, J., Peterson, J., Previdi, S., van Brandenburg,
R., and K. Ma, "Content Delivery Network Interconnection R., and K. Ma, "Content Delivery Network Interconnection
(CDNI) Request Routing: Footprint and Capabilities (CDNI) Request Routing: Footprint and Capabilities
Semantics", RFC 8008, DOI 10.17487/RFC8008, December 2016, Semantics", RFC 8008, DOI 10.17487/RFC8008, December 2016,
skipping to change at page 16, line 14 skipping to change at line 698
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26, Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017, RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>. <https://www.rfc-editor.org/info/rfc8126>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
6.2. Informative References 5.2. Informative References
[OC-CII] Ryan, A., Ed., Rosenblum, B., Goldstein, G., Roskin, R.,
and G. Bichot, "Open Caching Capacity Insights -
Functional Specification (Placeholder before
publication)", <https://www.svta.org/document/open-
caching-capacity-interface/>.
[OC-RR] Finkelman, O., Ed., Hofmann, J., Klein, E., Mishra, S.,
Ma, K., Sahar, D., and B. Zurat, "Open Caching Request
Routing - Functional Specification", Version 1.1, 4
October 2019, <https://www.svta.org/product/open-cache-
request-routing-functional-specification/>.
[OCWG] "Open Caching Home Page", <https://opencaching.svta.org/>.
[RFC6707] Niven-Jenkins, B., Le Faucheur, F., and N. Bitar, "Content [RFC6707] Niven-Jenkins, B., Le Faucheur, F., and N. Bitar, "Content
Distribution Network Interconnection (CDNI) Problem Distribution Network Interconnection (CDNI) Problem
Statement", RFC 6707, DOI 10.17487/RFC6707, September Statement", RFC 6707, DOI 10.17487/RFC6707, September
2012, <https://www.rfc-editor.org/info/rfc6707>. 2012, <https://www.rfc-editor.org/info/rfc6707>.
[RFC8006] Niven-Jenkins, B., Murray, R., Caulfield, M., and K. Ma, [RFC8006] Niven-Jenkins, B., Murray, R., Caulfield, M., and K. Ma,
"Content Delivery Network Interconnection (CDNI) "Content Delivery Network Interconnection (CDNI)
Metadata", RFC 8006, DOI 10.17487/RFC8006, December 2016, Metadata", RFC 8006, DOI 10.17487/RFC8006, December 2016,
<https://www.rfc-editor.org/info/rfc8006>. <https://www.rfc-editor.org/info/rfc8006>.
[SVTA] "Streaming Video Technology Alliance Home Page", [SVTA] "Streaming Video Technology Alliance Home Page",
<https://www.svta.org>. <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.
Authors' Addresses Authors' Addresses
Andrew Ryan Andrew Ryan
Disney Streaming Disney Streaming
1211 Avenue of the Americas 1211 Avenue of the Americas
New York New York, NY 10036
, NY 10036
United States of America United States of America
Email: andrew@andrewnryan.com Email: andrew@andrewnryan.com
Ben Rosenblum Ben Rosenblum
Vecima Vecima
4375 River Green Pkwy #100 4375 River Green Pkwy #100
Duluth Duluth, GA 30096
, GA 30096
United States of America United States of America
Email: ben@rosenblum.dev Email: ben@rosenblum.dev
Nir B. Sopher Nir B. Sopher
Qwilt Qwilt
6, Ha'harash 6, Ha'harash
Hod HaSharon Hod HaSharon 4524079
4524079
Israel Israel
Email: nir@apache.org Email: nir@apache.org
 End of changes. 142 change blocks. 
312 lines changed or deleted 291 lines changed or added

This html diff was produced by rfcdiff 1.48.