rfc9808v1.txt | rfc9808.txt | |||
---|---|---|---|---|
skipping to change at line 15 ¶ | skipping to change at line 15 ¶ | |||
ISSN: 2070-1721 Vecima | ISSN: 2070-1721 Vecima | |||
N. Sopher | N. Sopher | |||
Qwilt | Qwilt | |||
June 2025 | June 2025 | |||
Content Delivery Network Interconnection (CDNI) Capacity Capability | Content Delivery Network Interconnection (CDNI) Capacity Capability | |||
Advertisement Extensions | Advertisement Extensions | |||
Abstract | Abstract | |||
The Content Delivery Network Interconnection (CDNI) Capacity | This specification defines a set of additional Capability Objects | |||
Capability Advertisement Extensions define a set of additional | that provide information about current downstream CDN (dCDN) | |||
Capability Objects that provide information about current downstream | utilization and specified usage limits to the delegating upstream CDN | |||
CDN (dCDN) utilization and specified usage limits to the delegating | (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 Footprint & 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 is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
skipping to change at line 74 ¶ | skipping to change at line 73 ¶ | |||
2.1.1.1. Telemetry Source Types | 2.1.1.1. Telemetry Source Types | |||
2.1.1.2. Telemetry Source Metric Object | 2.1.1.2. Telemetry Source Metric Object | |||
2.1.2. Telemetry Capability Object Serialization | 2.1.2. Telemetry Capability Object Serialization | |||
2.2. CapacityLimits Capability Object | 2.2. CapacityLimits Capability Object | |||
2.2.1. CapacityLimit Object | 2.2.1. CapacityLimit Object | |||
2.2.1.1. CapacityLimit Types | 2.2.1.1. CapacityLimit Types | |||
2.2.1.2. CapacityLimitTelemetrySource Object | 2.2.1.2. CapacityLimitTelemetrySource Object | |||
2.2.2. CapacityLimit Object Serialization | 2.2.2. CapacityLimit Object Serialization | |||
3. IANA Considerations | 3. IANA Considerations | |||
3.1. CDNI Payload Types | 3.1. CDNI Payload Types | |||
3.1.1. CDNI FCI Telemetry Payload Type | 3.1.1. CDNI FCI.Telemetry Payload Type | |||
3.1.2. CDNI FCI Capacity Limits Payload Type | 3.1.2. CDNI FCI.CapacityLimits Payload Type | |||
3.2. CDNI Telemetry Source Types Registry | 3.2. CDNI Telemetry Source Types Registry | |||
3.2.1. CDNI Generic Telemetry Source Type | 3.2.1. CDNI Generic Telemetry Source Type | |||
3.3. CDNI Capacity Limit Types Registry | 3.3. CDNI Capacity Limit Types Registry | |||
4. Security Considerations | 4. Security Considerations | |||
5. References | 5. References | |||
5.1. Normative References | 5.1. Normative References | |||
5.2. Informative References | 5.2. Informative References | |||
Acknowledgements | Acknowledgements | |||
Authors' Addresses | Authors' Addresses | |||
skipping to change at line 99 ¶ | skipping to change at line 98 ¶ | |||
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 in | 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, which are added to those defined in Section 4 of | Capability Objects, which are added to those defined in Section 4 of | |||
[RFC8008]. | [RFC8008]. | |||
1.1. Terminology | 1.1. Terminology | |||
The following term is 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 | |||
skipping to change at line 137 ¶ | skipping to change at line 136 ¶ | |||
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 | interface, to collect and understand any limits that a dCDN has | |||
set forth for traffic delegation from a uCDN. These limits will | set forth for traffic delegation from a uCDN. These limits will | |||
come in the form of metrics such as bits per second, requests per | 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 | second, etc. These limits can be thought of as Not to Exceed | |||
(NTE) limits. | (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 | time metrics that the uCDN can use to track current usage. The | |||
uCDN should compare its current usage to the limits the dCDN has | uCDN should compare its current usage to the limits the dCDN has | |||
put forth and adjust traffic delegation decisions accordingly to | put forth and adjust traffic delegation decisions accordingly to | |||
keep current 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 Time to Live (TTL) 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 agreed upon | 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-type (a CDNI Payload Type). The section also defines the | |||
defines the Capability Objects per such type. Below, we define two | Capability Objects per such type. Below, we define two additional | |||
additional Capability Objects. | Capability Objects. | |||
Note: In the following sections, the term "mandatory-to-specify" is | | Note: In the following sections, the term "mandatory-to- | |||
used to convey which properties MUST be included when serializing a | | specify" is used to convey which properties MUST be included | |||
given capability object. When mandatory-to-specify is defined as a | | when serializing a given capability object. When mandatory-to- | |||
"Yes" for an individual property, it means that if the object | | specify is defined as a "Yes" for an individual property, it | |||
containing that property is included in an FCI message, then the | | means that if the object containing that property is included | |||
mandatory-to-specify property MUST be included. | | in an FCI message, then the mandatory-to-specify property MUST | |||
| be included. | ||||
2.1. Telemetry Capability Object | 2.1. Telemetry Capability Object | |||
The Telemetry Capability Object advertises a list of telemetry | The Telemetry Capability Object advertises a list of Telemetry | |||
sources made available to the uCDN by the dCDN. In this document, | Sources made available to the uCDN by the dCDN. In this document, | |||
telemetry data is being defined as near real-time aggregated metrics | telemetry data is being defined as near real-time aggregated metrics | |||
of dCDN utilization, such as bits per second egress, and is specific | of dCDN utilization, such as bits per second egress, and is specific | |||
to the uCDN and dCDN traffic delegation relationship. | to the uCDN and dCDN traffic delegation relationship. | |||
Telemetry data is uniquely defined by a source ID, a metric name, and | Telemetry data is uniquely defined by a source ID, a metric name, and | |||
the footprints that are associated with an FCI.Capability | the footprints that are associated with an FCI Capabilities | |||
advertisement. When defining a CapacityLimit, the meaning of a limit | advertisement. When defining a CapacityLimit, the meaning of a limit | |||
might be ambiguous if the uCDN and dCDN are observing telemetry via | might be ambiguous if the uCDN and dCDN are observing telemetry via | |||
different data sources. A dCDN-provided telemetry source that both | different data sources. A dCDN-provided Telemetry Source that both | |||
parties reference serves as a non-ambiguous metric for use when | parties reference serves as a non-ambiguous metric for use when | |||
comparing current usage to a limit. | comparing current usage to a limit. | |||
Telemetry data is important for making informed traffic delegation | Telemetry data is important for making informed traffic delegation | |||
decisions. Additionally, it is essential in providing visibility of | decisions. Additionally, it is essential in providing visibility of | |||
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 made 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 string | Description: An identifier of a telemetry source. The ID string | |||
assigned to this Telemetry Source MUST be unique across all | assigned to this Telemetry Source MUST be unique across all | |||
Telemetry Source objects in the advertisement containing this | Telemetry Source objects in the advertisement containing this | |||
Telemetry Source Object. The ID string MUST remain consistent | Telemetry Source Object. The ID string MUST remain 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 Section 2.1.1.1). | Description: A valid Telemetry Source Type (see 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. | Description: The metrics exposed by this source. | |||
Type: A JSON array of Telemetry Source Metric objects (see | 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 as out-of-band. For other | configuration format is defined as out-of-band. For other | |||
types, the configuration format will be specified in a yet-to- | types, the configuration format will be specified in a yet-to- | |||
be-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 "CDNI Telemetry Source Types" | |||
Types is limited to a single type: generic (see Section 3.2.1). | registry is limited to a single type: generic (see Table 3 in | |||
Section 3.2.1). | ||||
+=============+=======================================+ | ||||
| Source Type | Description | | ||||
+=============+=======================================+ | ||||
| generic | An object that allows for | | ||||
| | advertisement of generic data sources | | ||||
+-------------+---------------------------------------+ | ||||
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 data. | Description: The time, in seconds, representing the metric data. | |||
For example, a value representing the last 5 minutes would have | For example, a value representing the last 5 minutes 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 a Telemetry Capability Object, | |||
metrics for a source, that is scoped to a footprint. | including two metrics for a source, that is scoped to a footprint. | |||
{ | { | |||
"capabilities": [ | "capabilities": [ | |||
{ | { | |||
"capability-type": "FCI.Telemetry", | "capability-type": "FCI.Telemetry", | |||
"capability-value": { | "capability-value": { | |||
"sources": [ | "sources": [ | |||
{ | { | |||
"id": "capacity_metrics_region1", | "id": "capacity_metrics_region1", | |||
"type": "generic", | "type": "generic", | |||
skipping to change at line 365 ¶ | skipping to change at line 357 ¶ | |||
"footprints": [ | "footprints": [ | |||
<footprint objects> | <footprint objects> | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
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 NTE limits. 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 | should be based on near real-time telemetry data that the dCDN | |||
provides to the uCDN. In other words, for each limit that is | provides to the uCDN. In other words, for each limit that is | |||
advertised, there should also exist a telemetry source that provides | advertised, there should also exist a Telemetry Source that provides | |||
current utilization data against the particular advertised limit. | current utilization data against the particular advertised 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 Section 2.2.1). | Type: A JSON array of CapacityLimit Objects (see 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 Capabilities | |||
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. It | Description: Specifies the current usage value of the limit. 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: The 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 Section 2.2.1.2). | Type: CapacityLimitTelemetrySource object (see 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 limit-type entries registered in the "CDNI | |||
"CDNI Capacity Limit Types" registry. The values specified here | Capacity Limit Types" registry. The values specified here represent | |||
represent the types that were identified as being the most relevant | the types that were identified as being the most relevant metrics for | |||
metrics for the purposes of traffic delegation between CDNs. | the purposes of traffic delegation between CDNs. | |||
+=====================+=====================+ | +=====================+=====================+ | |||
| Capacity 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 1 | |||
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 defined | Description: Reference to the "id" of a Telemetry Source defined | |||
by a Telemetry Capability object as defined in Section 2.1. | by a Telemetry Capability Object as defined in 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 defined | Description: Reference to the "name" property of a metric defined | |||
within a telemetry source of a Telemetry Capability object. | within a Telemetry Source of a Telemetry Capability 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 line 550 ¶ | skipping to change at line 542 ¶ | |||
Network Interconnection (CDNI) Parameters" registry group: | Network Interconnection (CDNI) Parameters" registry group: | |||
+====================+===========+ | +====================+===========+ | |||
| Payload Type | Reference | | | Payload Type | Reference | | |||
+====================+===========+ | +====================+===========+ | |||
| FCI.Telemetry | RFC 9808 | | | FCI.Telemetry | RFC 9808 | | |||
+--------------------+-----------+ | +--------------------+-----------+ | |||
| FCI.CapacityLimits | RFC 9808 | | | FCI.CapacityLimits | RFC 9808 | | |||
+--------------------+-----------+ | +--------------------+-----------+ | |||
Table 3 | Table 2 | |||
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.CapacityLimits 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 has added the following new registry within the "Content | IANA has added the following new registry within the "Content | |||
Delivery Network Interconnection (CDNI) Parameters" registry 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 | |||
skipping to change at line 590 ¶ | skipping to change at line 582 ¶ | |||
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 | should consider the following guidelines when evaluating | |||
registration 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 | * The review should verify that the Telemetry Source is | |||
applicable to the CDNI use cases and that the description is | applicable to the CDNI use cases and that the description is | |||
clear and unambiguous. | clear and unambiguous. | |||
* The registration is applicable for general use and is 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 value has been registered: | The following value has been registered: | |||
+=============+===========+ | +=============+=======================================+===========+ | |||
| Source Type | Reference | | | Source Type | Decription | Reference | | |||
+=============+===========+ | +=============+=======================================+===========+ | |||
| generic | RFC 9808 | | | generic | An object that allows for | RFC 9808 | | |||
+-------------+-----------+ | | | advertisement of generic data sources | | | |||
+-------------+---------------------------------------+-----------+ | ||||
Table 4 | Table 3 | |||
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 has added the following new registry within the "Content | IANA has added the following new registry within the "Content | |||
Delivery Network Interconnection (CDNI) Parameters" registry 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 | Registry Description: The "CDNI Capacity Limit Types" registry | |||
defines the valid values of the "limit-type" property of a | defines the valid values of the "limit-type" property of a | |||
CapacityLimit 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 | should consider the following guidelines when evaluating | |||
registration requests: | registration requests: | |||
* The new capacity limit type does not duplicate existing | * The new capacity limit-type does not duplicate existing | |||
entries. | entries. | |||
* The submission has a defined purpose. The newly defined | * The submission has a defined purpose. The newly defined | |||
capacity limit type should be clearly justified in the context | capacity limit-type should be clearly justified in the context | |||
of one or more CDNI use cases. | of one or more CDNI use cases. | |||
* The description of the capacity limit type is well-documented | * The description of the capacity limit-type is well-documented | |||
and unambiguous. | and unambiguous. | |||
The following values have been registered: | The following values have been registered: | |||
+=====================+=====================+===========+ | +=====================+=====================+===========+ | |||
| Capacity Limit Type | Units | Reference | | | Capacity Limit Type | Units | Reference | | |||
+=====================+=====================+===========+ | +=====================+=====================+===========+ | |||
| egress | Bits per second | RFC 9808 | | | egress | Bits per second | RFC 9808 | | |||
+---------------------+---------------------+-----------+ | +---------------------+---------------------+-----------+ | |||
| requests | Requests per second | RFC 9808 | | | requests | Requests per second | RFC 9808 | | |||
+---------------------+---------------------+-----------+ | +---------------------+---------------------+-----------+ | |||
| storage-size | Total bytes | RFC 9808 | | | storage-size | Total bytes | RFC 9808 | | |||
+---------------------+---------------------+-----------+ | +---------------------+---------------------+-----------+ | |||
| storage-objects | Count | RFC 9808 | | | storage-objects | Count | RFC 9808 | | |||
+---------------------+---------------------+-----------+ | +---------------------+---------------------+-----------+ | |||
| sessions | Count | RFC 9808 | | | sessions | Count | RFC 9808 | | |||
+---------------------+---------------------+-----------+ | +---------------------+---------------------+-----------+ | |||
| cache-size | Total bytes | RFC 9808 | | | cache-size | Total bytes | RFC 9808 | | |||
+---------------------+---------------------+-----------+ | +---------------------+---------------------+-----------+ | |||
Table 5 | Table 4 | |||
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]. | |||
End of changes. 77 change blocks. | ||||
112 lines changed or deleted | 105 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |