CDNI Capacity Capability Advertisement Extensions
draft-ietf-cdni-capacity-insights-extensions-06
The information below is for an old version of the document.
| Document | Type |
This is an older version of an Internet-Draft that was ultimately published as RFC 9808.
|
|
|---|---|---|---|
| Authors | Andrew Ryan , Ben Rosenblum , Nir Baruch Sopher | ||
| Last updated | 2024-06-18 (Latest revision 2024-05-26) | ||
| Replaces | draft-cdni-capacity-insights-extensions, draft-ryan-cdni-capacity-insights-extensions | ||
| RFC stream | Internet Engineering Task Force (IETF) | ||
| Formats | |||
| Reviews |
GENART IETF Last Call review
by Peter Yee
Ready w/nits
ARTART IETF Last Call review
by Carsten Bormann
Ready w/nits
TSVART IETF Last Call review
by Yoshifumi Nishida
Almost ready
|
||
| Additional resources | Mailing list discussion | ||
| Stream | WG state | Submitted to IESG for Publication | |
| Document shepherd | Sanjay Mishra | ||
| Shepherd write-up | Show Last changed 2024-05-28 | ||
| IESG | IESG state | Became RFC 9808 (Proposed Standard) | |
| Consensus boilerplate | Yes | ||
| Telechat date | (None) | ||
| Responsible AD | Francesca Palombini | ||
| Send notices to | sanjay.mishra@verizon.com | ||
| IANA | IANA review state | IANA OK - Actions Needed | |
| IANA expert review state | Expert Reviews OK |
draft-ietf-cdni-capacity-insights-extensions-06
Content Delivery Networks Interconnection A. Ryan
Internet-Draft Disney Streaming
Intended status: Standards Track B. Rosenblum
Expires: 27 November 2024 Vecima
N. Sopher
Qwilt
26 May 2024
CDNI Capacity Capability Advertisement Extensions
draft-ietf-cdni-capacity-insights-extensions-06
Abstract
The CDNI Capacity Capability Advertisement Extensions define a set of
additional Capability Objects that provide information about current
dCDN utilization and specified usage limits to the delegating uCDN in
order to inform traffic delegation decisions.
This document supplements the CDNI Capability Objects defined in RFC
8008 with two additional Capability Objects: FCI.CapacityLimits and
FCI.Telemetry.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
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
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 27 November 2024.
Copyright Notice
Copyright (c) 2024 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Ryan, et al. Expires 27 November 2024 [Page 1]
Internet-Draft CDNI Capacity Capability Advertisement E May 2024
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Requirements Language . . . . . . . . . . . . . . . . . . 3
1.3. Objectives . . . . . . . . . . . . . . . . . . . . . . . 3
2. CDNI Additional Capability Objects . . . . . . . . . . . . . 4
2.1. Telemetry Capability Object . . . . . . . . . . . . . . . 4
2.1.1. Telemetry Source Object . . . . . . . . . . . . . . . 5
2.1.1.1. Telemetry Source Types . . . . . . . . . . . . . 6
2.1.1.2. Telemetry Source Metric Object . . . . . . . . . 7
2.1.2. Telemetry Capability Object Serialization . . . . . . 8
2.2. CapacityLimits Capability Object . . . . . . . . . . . . 9
2.2.1. CapacityLimit Object . . . . . . . . . . . . . . . . 9
2.2.1.1. CapacityLimit Types . . . . . . . . . . . . . . . 11
2.2.1.2. CapacityLimitTelemetrySource Object . . . . . . . 11
2.2.2. CapacityLimit Object Serialization . . . . . . . . . 12
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
3.1. CDNI Payload Types . . . . . . . . . . . . . . . . . . . 12
3.1.1. CDNI FCI Telemetry Payload Type . . . . . . . . . . . 13
3.1.2. CDNI FCI Capacity Limits Payload Type . . . . . . . . 13
4. Security Considerations . . . . . . . . . . . . . . . . . . . 13
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.1. Normative References . . . . . . . . . . . . . . . . . . 13
6.2. Informative References . . . . . . . . . . . . . . . . . 14
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15
1. Introduction
The Streaming Video Technology Alliance [SVTA] is a global
association that works to solve streaming video challenges in an
effort to improve end-user experience and adoption. The Open Caching
Working Group [OCWG] of the Streaming Video Technology Alliance
[SVTA] is focused on the delegation of video delivery requests from
commercial CDNs to a caching layer at the ISP's network. Open
Caching architecture is a specific use case of CDNI where the
commercial CDN is the upstream CDN (uCDN) and the ISP caching layer
is the downstream CDN (dCDN).
Ryan, et al. Expires 27 November 2024 [Page 2]
Internet-Draft CDNI Capacity Capability Advertisement E May 2024
While delegating traffic from one CDN to the other, it is important
to ensure that an appropriate amount of traffic is delegated. To
achieve that, the SVTA Open Caching Capacity Insight Specification
[OC-CII] defines a feedback mechanism to inform the delegator how
much traffic may be delegated. The traffic level information
provided by that interface will be consumed by services, such as the
Open Caching Request router [OC-RR], to inform that service's traffic
delegation decisions.
The provided information is advisory and does not represent a
guarantee, commitment, or reservation of capacity. This document
defines and registers CDNI Payload Types (as defined at section 7.1
of [RFC8006]). These Payload types are used for Capability Objects
added to those defined at section 4 of [RFC8008], which are required
for the Open Caching Capacity Insights Interface [OC-CII].
For consistency with other CDNI documents this document follows the
CDNI convention of uCDN (upstream CDN) and dCDN (downstream CDN) to
represent the commercial CDN and ISP caching layer respectively.
1.1. Terminology
The following terms are used throughout this document:
* CDN - Content Delivery Network
Additionally, this document reuses the terminology defined in
[RFC6707]. Specifically, we use the following CDNI acronyms:
* uCDN, dCDN - Upstream CDN and Downstream CDN, respectively
1.2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
1.3. Objectives
To enable information exchange between a uCDN and a dCDN regarding
acceptable levels of traffic delegation, the following process has
been defined:
Ryan, et al. Expires 27 November 2024 [Page 3]
Internet-Draft CDNI Capacity Capability Advertisement E May 2024
In normal operation a uCDN will communicate with a dCDN, via an
interface, to collect and understand any limits that a dCDN has set
forth for traffic delegation from a uCDN. These limits will come in
the form of metrics such as bits per second, requests per second,
etc. These limits can be thought of as Not to Exceed (NTE) limits.
The dCDN should provide access to a telemetry source of near real-
time metrics that the uCDN can use to track current usage. The uCDN
should compare its current usage to the limits the dCDN has put forth
and adjust traffic delegation decisions accordingly to keep current
usage under the specified limits.
In summary, the dCDN will inform the uCDN of the amount of traffic
may be delegated. Additionally, it will provide a telemetry source
aligned with this limit, allowing the uCDN to monitor its current
usage against the advertised value. Having a limit and a
corresponding telemetry source creates an unambiguous definition
understood by both parties.
Limits that are communicated from the dCDN to the uCDN should be
considered valid based on the TTL (Time To Live) provided by a
mechanism of the underlying transport, e.g., an HTTP Cache-Control
header. The intention is that the limits would have a long lived TTL
and would represent a reasonable peak utilization limit that the uCDN
should target.
2. CDNI Additional Capability Objects
Section 5 of [RFC8008] describes the FCI Capability Advertisement
Object, which contains a CDNI Capability Object as well as the
capability object type (a CDNI Payload Type). The section also
defines the Capability Objects per such type. Below, we define two
additional Capability Objects.
Note: In the following sections, the term "mandatory-to-specify" is
used to convey which properties MUST be included when serializing a
given capability object. When mandatory-to-specify is defined as a
"Yes" for an individual property, it means that if the object
containing that property is included in an FCI message, then the
mandatory-to-specify property MUST be included.
2.1. Telemetry Capability Object
The Telemetry Capability Object advertises a list of telemetry
sources made available to the uCDN by the dCDN. In this document,
Telemetry data is being defined as near real-time aggregated metrics
of dCDN utilization, such as bits per second egress, and is specific
to the uCDN and dCDN traffic delegation relationship.
Ryan, et al. Expires 27 November 2024 [Page 4]
Internet-Draft CDNI Capacity Capability Advertisement E May 2024
Telemetry data is uniquely defined by a source ID, a metric name, and
the footprints that are associated with an FCI.Capability
advertisement. When defining a CapacityLimit, the meaning of a limit
might be ambiguous if the uCDN and dCDN are observing telemetry via
different data sources. A dCDN provided telemetry source that both
parties reference serves as a non-ambiguous metric for use when
comparing current usage to a limit.
Telemetry data is important for making informed traffic delegation
decisions. Additionally, it is essential in providing visibility of
traffic that has been delegated. In situations where there are
multiple CDN delegations, a uCDN will need to aggregate the usage
information from any dCDNs to which it delegated when asked to
provide usage information, otherwise the traffic may seem unaccounted
for.
Example: A Content Provider delegates traffic directly to a uCDN, and
that uCDN delegates that traffic to a dCDN. When the Content
Provider polls the uCDN Telemetry interface, any of the traffic the
uCDN delegated to the dCDN would become invisible to the Content
Provider unless the uCDN aggregates the dCDN Telemetry with its own
metrics.
Property: sources
Description: Telemetry sources made available to the uCDN.
Type: A JSON array of Telemetry Source objects (see
Section 2.1.1).
Mandatory-to-Specify: Yes.
2.1.1. Telemetry Source Object
The Telemetry Source Object is built of an associated type, a list of
exposed metrics, and type-specific configuration data.
Property: id
Description: An identifier of a telemetry source. The ID
string assigned to this Telemetry Source MUST be unique across
all Telemetry Source objects in the advertisement. The ID
string SHOULD remain consistent for the same source reference
across advertisements.
Type: String.
Mandatory-to-Specify: Yes.
Ryan, et al. Expires 27 November 2024 [Page 5]
Internet-Draft CDNI Capacity Capability Advertisement E May 2024
Property: type
Description: A valid telemetry source type. See
Section 2.1.1.1.
Type: String.
Mandatory-to-Specify: Yes.
Property: metrics
Description: The metrics exposed by this source.
Type: A JSON array of Telemetry Source Metric objects (see
Section 2.1.1.2).
Mandatory-to-Specify: Yes.
Property: configuration
Description: a source-specific representation of the Telemetry
source configuration. For the generic source type, this
configuration format is defined out-of-band. For other types,
the configuration format will be specified in a yet to be
defined Telemetry Interface specification. The goal of this
element is to allow for forward compatibility with a formal
Telemetry interface.
Type: A JSON object, the structure of which is specific to the
Telemetry source and outside the scope of this document.
Mandatory-to-Specify: No.
2.1.1.1. Telemetry Source Types
At the time of this draft, the registry of valid Telemetry Source
Object types is limited to a single type: Generic. The intention of
this type registry is to allow for to reference a to another
specification, e.g. a future CDNI Telemetry interface, which would
standardize the definition and format of Telemetry data between
participants of a CDNI workflow.
Ryan, et al. Expires 27 November 2024 [Page 6]
Internet-Draft CDNI Capacity Capability Advertisement E May 2024
+=============+======================================+
| Source Type | Description |
+=============+======================================+
| generic | An object which allows for |
| | advertisement of generic datasources |
+-------------+--------------------------------------+
Table 1
2.1.1.2. Telemetry Source Metric Object
The Telemetry Source Metric Object describes the metric to be
exposed.
Property: name
Description: An identifier for this metric. This ID string
MUST be unique among metric objects within the containing
Telemetry Source. The ID string SHOULD remain consistent for
the same source reference across advertisements.
Type: String.
Mandatory-to-Specify: Yes.
Property: time-granularity
Description: Represents the time frame that the data represents
in seconds. e.g., is this a data set over 300 seconds (i.e., 5
minutes), 3600 seconds (i.e., one hour), etc.
Type: Integer.
Mandatory-to-Specify: No.
Property: data-percentile
Description: The percentile calculation the data represents,
i.e., 50 percentile would equate to the median over the time-
granularity. Lack of a data-percentile will mean that the data
is the average over the time representation.
Type: Integer.
Mandatory-to-Specify: No.
Property: latency
Ryan, et al. Expires 27 November 2024 [Page 7]
Internet-Draft CDNI Capacity Capability Advertisement E May 2024
Description: Time in seconds that the data is behind real-time.
This is important to specify to help the uCDN understand how
long it might take to reflect traffic adjustments in the
metrics.
Type: Integer.
Mandatory-to-Specify: No.
2.1.2. Telemetry Capability Object Serialization
The following shows an example of Telemetry Capability including two
metrics for a source, that is scoped to a footprint.
"capabilities": [
{
"capability-type": "FCI.Telemetry",
"capability-value": {
"sources": [
{
"id": "capacity_metrics_region1",
"type": "generic",
"metrics": [
{
"name": "egress_5m",
"time-granularity": 300,
"data-percentile": 50,
"latency": 1500
},
{
"name": "requests_5m",
...
}
]
}
]
},
"footprints": [
<footprint objects>
]
}
]
Ryan, et al. Expires 27 November 2024 [Page 8]
Internet-Draft CDNI Capacity Capability Advertisement E May 2024
2.2. CapacityLimits Capability Object
The CapacityLimits Capability Object enables the dCDN to specify
traffic delegation limits to a uCDN within an FCI.Capabilities
advertisement. The limits specified by the dCDN will inform the uCDN
on how much traffic may be delegated to the dCDN. The limits
specified by the dCDN should be considered Not To Exceed (NTE)
limits. The limits should be based on near real-time telemetry data
that the dCDN provides to the uCDN. In other words, for each limit
that is advertised, there should also exist a telemetry source which
provides current utilization data against the particular advertised
limit.
Property: limits
Description: A collection of CapacityLimit objects.
Type: A JSON array of CapacityLimit objects (see
Section 2.2.1).
Mandatory-to-Specify: Yes.
2.2.1. CapacityLimit Object
A CapacityLimit object is used to represent traffic limits for
delegation from the uCDN towards the dCDN. The limit object is
scoped to the footprint associated with the FCI capability
advertisement encompassing this object. Limits will be considered
using a logical "AND": a uCDN will need to ensure that all limits are
considered rather than choosing only the most specific.
Property: limit-type
Description: The units of maximum-hard and maximum-soft.
Type: String. One of the values listed in Section 2.2.1.1.
Mandatory-to-Specify: Yes.
Property: id
Description: Specifies an identifier associated with a limit.
This MAY be used as a relational identifier to a specific
CapacityLimit Object. If specified, this identifier MUST be
unique among specified identifiers associated with any other
CapacityLimit objects in the advertisement.
Type: String.
Ryan, et al. Expires 27 November 2024 [Page 9]
Internet-Draft CDNI Capacity Capability Advertisement E May 2024
Mandatory-to-Specify: No.
Property: maximum-hard
Description: The maximum unit of capacity that is available for
use.
Type: Integer.
Mandatory-to-Specify: Yes.
Property: maximum-soft
Description: A soft limit at which a uCDN SHOULD reduce traffic
before hitting the hard limit. This value SHOULD be less than
the value of maximum-hard. If this value is not specified, it
is equal to the value of maximum-hard.
Type: Integer.
Mandatory-to-Specify: No.
Property: current
Description: Specifies the current usage value of the limit.
It is NOT RECOMMENDED to specify the current usage value inline
with the FCI.CapacityLimits advertisements as it will reduce
the ability to cache the response, but this mechanism exists
for simple use cases where an external telemetry source cannot
be feasibly implemented. The intended method for providing
telemetry data is to reference a Telemetry Source object
Section 2.2.1.2 to poll for the current usage.
Type: Integer.
Mandatory-to-Specify: No.
Property: telemetry-source
Description: Mapping of each particular limit to a specific
metric with relevant real-time data provided by a telemetry
source.
Type: CapacityLimitTelemetrySource object (see
Section 2.2.1.2).
Mandatory-to-Specify: No.
Ryan, et al. Expires 27 November 2024 [Page 10]
Internet-Draft CDNI Capacity Capability Advertisement E May 2024
2.2.1.1. CapacityLimit Types
Below are listed the valid capacity limit types. Additional limits
would need to be specified and extended into this list. The values
specified here represent the types that were identified as being the
most relevant metrics for the purposes of traffic delegation between
CDNs.
+=================+=====================+
| Limit Type | Units |
+=================+=====================+
| egress | Bits per second |
+-----------------+---------------------+
| requests | Requests per second |
+-----------------+---------------------+
| storage-size | Total bytes |
+-----------------+---------------------+
| storage-objects | Count |
+-----------------+---------------------+
| sessions | Count |
+-----------------+---------------------+
| cache-size | Total bytes |
+-----------------+---------------------+
Table 2
2.2.1.2. CapacityLimitTelemetrySource Object
The CapacityLimitTelemetrySource Object refers to a specific metric
within a Telemetry Source.
Property: id
Description: Reference to the "id" of a telemetry source
defined by a Telemetry Capability object as defined in
Section 2.1.
Type: String.
Mandatory-to-Specify: Yes.
Property: metric
Description: Reference to the "name" property of a metric
defined within a telemetry source of an Telemetry Capability
object.
Type: String.
Ryan, et al. Expires 27 November 2024 [Page 11]
Internet-Draft CDNI Capacity Capability Advertisement E May 2024
Mandatory-to-Specify: Yes.
2.2.2. CapacityLimit Object Serialization
The following shows an example of an FCI.CapacityLimits object.
"capabilities":[
{
"capability-type":"FCI.CapacityLimits",
"capability-value":{
"limits":[
{
"id":"capacity_limit_region1",
"limit-type":"egress",
"maximum-hard":50000000000,
"maximum-soft":25000000000,
"telemetry-source":{
"id":"capacity_metrics_region1",
"metric":"egress_5m"
}
}
]
},
"footprints":[
"<footprint objects>"
]
}
]
3. IANA Considerations
3.1. CDNI Payload Types
This document requests the registration of the two additional payload
types:
+====================+===============+
| Payload Type | Specification |
+====================+===============+
| FCI.Telemetry | RFCthis |
+--------------------+---------------+
| FCI.CapacityLimits | RFCthis |
+--------------------+---------------+
Table 3
Ryan, et al. Expires 27 November 2024 [Page 12]
Internet-Draft CDNI Capacity Capability Advertisement E May 2024
[RFC Editor: Please replace RFCthis with the published RFC number for
this document.]
3.1.1. CDNI FCI Telemetry Payload Type
Purpose: The purpose of this Payload Type is to list the supported
telemetry sources and the metrics made available by each source.
Interface: FCI.
Encoding: See section Section 2.1.
3.1.2. CDNI FCI Capacity Limits Payload Type
Purpose: The purpose of this Payload Type is to define Capacity
Limits based on a utilization metrics corresponding to telemetry
sources provided by the dCDN.
Interface: FCI.
Encoding: See section Section 2.2.
4. Security Considerations
This specification is in accordance with the CDNI Request Routing:
Footprint and Capabilities Semantics. As such, it is subject to the
security and privacy considerations as defined in Section 7 of
[RFC8008].
5. 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.
6. References
6.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
Ryan, et al. Expires 27 November 2024 [Page 13]
Internet-Draft CDNI Capacity Capability Advertisement E May 2024
[RFC8008] Seedorf, J., Peterson, J., Previdi, S., van Brandenburg,
R., and K. Ma, "Content Delivery Network Interconnection
(CDNI) Request Routing: Footprint and Capabilities
Semantics", RFC 8008, DOI 10.17487/RFC8008, December 2016,
<https://www.rfc-editor.org/info/rfc8008>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
6.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
Distribution Network Interconnection (CDNI) Problem
Statement", RFC 6707, DOI 10.17487/RFC6707, September
2012, <https://www.rfc-editor.org/info/rfc6707>.
[RFC7336] Peterson, L., Davie, B., and R. van Brandenburg, Ed.,
"Framework for Content Distribution Network
Interconnection (CDNI)", RFC 7336, DOI 10.17487/RFC7336,
August 2014, <https://www.rfc-editor.org/info/rfc7336>.
[RFC8006] Niven-Jenkins, B., Murray, R., Caulfield, M., and K. Ma,
"Content Delivery Network Interconnection (CDNI)
Metadata", RFC 8006, DOI 10.17487/RFC8006, December 2016,
<https://www.rfc-editor.org/info/rfc8006>.
[RFC8007] Murray, R. and B. Niven-Jenkins, "Content Delivery Network
Interconnection (CDNI) Control Interface / Triggers",
RFC 8007, DOI 10.17487/RFC8007, December 2016,
<https://www.rfc-editor.org/info/rfc8007>.
Ryan, et al. Expires 27 November 2024 [Page 14]
Internet-Draft CDNI Capacity Capability Advertisement E May 2024
[RFC8804] Finkelman, O. and S. Mishra, "Content Delivery Network
Interconnection (CDNI) Request Routing Extensions",
RFC 8804, DOI 10.17487/RFC8804, September 2020,
<https://www.rfc-editor.org/info/rfc8804>.
[SVTA] "Streaming Video Technology Alliance Home Page",
<https://www.svta.org>.
Authors' Addresses
Andrew Ryan
Disney Streaming
1211 Avenue of the Americas
New York
, NY 10036
United States of America
Email: andrew@andrewnryan.com
Ben Rosenblum
Vecima
4375 River Green Pkwy #100
Duluth
, GA 30096
United States of America
Email: ben@rosenblum.dev
Nir B. Sopher
Qwilt
6, Ha'harash
Hod HaSharon
4524079
Israel
Email: nir@apache.org
Ryan, et al. Expires 27 November 2024 [Page 15]