| rfc9808v1.txt | rfc9808.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) A. Ryan | Internet Engineering Task Force (IETF) A. Ryan | |||
| Request for Comments: 9808 Disney Streaming | Request for Comments: 9808 Disney Streaming | |||
| Category: Standards Track B. Rosenblum | Category: Standards Track B. Rosenblum | |||
| ISSN: 2070-1721 Vecima | ISSN: 2070-1721 Vecima | |||
| N. Sopher | N. Sopher | |||
| Qwilt | Qwilt | |||
| June 2025 | July 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 | Description | 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. 78 change blocks. | ||||
| 113 lines changed or deleted | 106 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||