Internet-Draft | Content Delivery Network Interconnection | March 2023 |
Arolovitch | Expires 29 September 2023 | [Page] |
Open Caching architecture is a use case of Content Delivery Networks Interconnection (CDNI) in which the commercial Content Delivery Network (CDN) is the upstream CDN (uCDN) and the ISP caching layer serves as the downstream CDN (dCDN). This document extends the Footprint & Capabilities Advertisement Interface (FCI) defined in RFC8008, to allow advertising of named footprint objects, that can be referenced in a consistent manner from Metadata Interface (MI), also defined in RFC8006, as well as from the FCI itself as well as additional interfaces in the Open Caching architecture. This document also supplements the CDNI Metadata Footprint Types defined in RFC8006 and modifies the CDNI operation as described in RFC7336.¶
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 29 September 2023.¶
Copyright (c) 2023 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. 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.¶
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).¶
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.¶
The definition of footprint within existing CDNi and open caching architecture literature remains ambiguous. Appendix B "Semantics for Footprint Advertisement" of RFC8006 [RFC8006] reads:¶
Generally speaking, one can imagine two categories of footprints to be advertised by a dCDN:¶
Within the open caching architecture the use of footprints revolves around uCDN handling an end user request. Therefore this document is going to focus on the coverage footprints - a collection of end users that dCDN is willing and able to serve, while leaving the room for future use of footprints for management of dCDN cache resources. The coverage footprint is defined through end user IP address (IPv4 and/or IPv6 CIDRs), or attributes that can be derived from this address (BGP autonomous system number, country code, subdivision code)¶
Several types of CDN footprints may be be defined:¶
Furthermore, dCDN may manage different footprint break-down for various traffic subsets it carries - by CDN tenant, type of traffic, hostname, service identifier etc.¶
The Footprint and Capabilities Interface (FCI), as specified in [RFC8006] provides an interface, allowing uCDNs to query dCDN capabilities, published via object-based data model in compliance with [RFC8006] and [RFC8008]. The dCDN capabilities objects published by FCI may optionally be associated with one or more footprint, via the "footprints" property, which is an array of MI Footprint objects.¶
The MI Footprint objects are encoded in compliance with [RFC8006] and contain two properties: "footprint-type" and "footprint-value". They are declarative and are scoped within their parent capability object. The footprint types specified in [RFC8006] include IPv4 CIDR block ("ipv4cidr"), IPv6 CIDR block ("ipv6cidr"), BGP autonomous system number ("asn") and country ("countrycode"). The footprint value property is an array of one or more footprint values of the same type.¶
According to [RFC8008], combination of multiple footprint types is to be understood as additive or, in other words, as an implicit boolean OR operation.¶
Neither [RFC8006] nor [RFC8008] provide instruction on how uCDN is to match end user requests with higher-level footprint types like country.¶
A need exists for dCDN to advertise footprints for use across multiple dCDN interfaces in a way that is consistent, flexible and can support complex footprint structure in a computationally efficient way. Various motivations for having such capability include:¶
By creating addressable footprints resources, it becomes possible for all open caching interfaces to associate interface operations and responses with specific footprints, including but not limited to: CDN configuration by footprint, request routing methods by footprint, cache management operations by footprint, logging by footprint, capacity management and monitoring by footprint.¶
In several cases use of footprints may affect multiple interfaces. For example, differentiated CDN configuration may trigger logging by footprint or affect footprint-specific cache management operations. In these cases common footprint definition that is external to individual interfaces is required to assure consistency.¶
In some cases, CDN providers may want to operate CDN footprints as fully autonomous virtual CDNs, with their own configuration, management and reporting as well as a distinct set of content provider tenants. This capability is particularly useful for CDN providers that manage disaggregated CDN footprints across different geographies. In the CDN slicing scenario, the footprints may optionally share some aspects of operation (i.e. have common tenants), while differing in every other aspect, for operational reasons. It is the duty of the uCDN to consistently use the footprint across different interfaces, once advertised.¶
Some types of footprints (e.g. distributed last-mile footprint) can be highly dynamic and large in volume. Because of that they would require high-frequency querying and benefit from caching support, unlike capabilities advertisement which is relatively static in nature. Because of this, it would be beneficial to allow querying of individual footprint resources separately from capabilities advertisement, which tends to be mostly static.¶
Some of the uses of footprint advertisements are tied to uCDN request handling, and should be as computationally efficient as possible.¶
dCDN must advertise its footprints via FCI as named resources, separately from the capabilities advertised in the same interface. dCDN is solely responsible for the footprints it advertises. This footprint advertisement will provide a source of truth as to what footprints are available from dCDN and be referenceable from FCI capabilities and other open caching interfaces exposed by the same dCDN.¶
uCDNs must authenticate themselves when accessing the footprint advertising, subject to open caching authentication and authorization framework. dCDN is at freedom to advertise different footprints to different uCDN tenants. dCDN may change the content of footprint advertisements, including publishing footprints without any footprint values, however it is not at liberty to retire a footprint once advertised as long as there are resources associated with it.¶
The footprints advertisement will provide mechanisms allowing uCDN to manage a local cached copy of advertising, and differentiated querying of individual, more dynamic footprints, while at the same time allowing for the whole footprint advertisement to be captured. The footprint advertising is to support both "coverage" and "resource" footprints.¶
The dCDN advertisement must support explicit hierarchy, in which footprints resources may include sub-footprints, e.g. specific subdivision code within a country, list of IPv4 CIDRs within specific ISP defined by one or more ASN etc. A footprint resource encompasses all of the footprint values and sub-footprints within it, so interface resources (e.g. logging, configuration hostnames, cache management buckets) associated with a footprint apply to all of it, including sub-footprints.¶
In case of conflict between interface resources of lower-level footprint and higher-level footprint, the resources associated with the lower-level footprint take priority. It is dCDN responsibility to make sure that sub-footprints are indeed included in their parent footprint scope. When matching an IP address against footprint hierarchy, the lowest level footprint takes priority as well.¶
The footprint definition must be backwards compatible with MI Footprint encoding as specified in Section 4.2.2.2 of [RFC8006], as well as all registered footprint types "CDNI Metadata Footprint Types" sub-registry in the "Content Delivery Network Interconnection (CDNI) Parameters". To enhance computability, consistency and business logic of footprint advertisement, the specification may introduce new footprint types as well as footprint properties, in addition to footprint type and value.¶
In some cases, CDNs require complex footprints definitions, that include inclusion and exclusion of specific footprint values from footprint definitions (e.g. country code, exclusive of some ISPs and that country but inclusive of some IPv4 or IPv6 CIDRs that are not included in the current country definition). To support that, footprint definitions to support Metadata Expression Language exressions as defined in Section 3 of [CDNI-Metadata-Model-Extensions]. The new footprint type "expr" is to be introduced to the "CDNI Metadata Footprint Types" registry.¶
To accommodate footprint logic, the following MEL expression variables are hereby introduced¶
Thus, the following MEL expressions can be used for footprint advertisement:¶
{ "footprint-type": "expr", "footprint-value": " ( $ep.country == "us" ) and not $ep.ipv4addr ipmatch ( "10.1.1/24" or "10.1.2.0/24" )" } { "footprint-type": "expr", "footprint-value": "( $ep.asn = 1234 ) or ( $ep.ipv4addr ipmatch "192.168.1/24" ) or ( $ep.ipv6addr ipmatch "2001:db8:3333:4444/48" )" } { "footprint-type": "expr", "footprint-value": "( $ep.country == "us" ) and not ( $ep.subdivision=="us-ny" )" }¶
While IP-based footprint types like "ipv4cidr", "ipv6cidr" and "asn" are unambiguous, higher level footprints types like "country" rely on external databases for lookup. Multiple databases for IP address intelligence are in use in the industry today. To assure consistent interpretation of these footprint types, footprint value should include datasource, e.g. "maxmind-01012023:us" or "maxmind-latest:br"¶
dCDN may utilize different footprint break-down for different uCDN traffic subsets it carries. There are multiple ways that dCDN may identify such traffic, including hostname, type of traffic, service identifiers etc. Additionally, there is a need to accommodate both "resource" and "coverage" footprints.¶
To allow such differentiated break-down in an open way, footprint namespaces are introduced, allowing dCDN to publish more than one footprint break-down advertisement to each uCDN tenant. Matching of IP address to footprint is unique within each namespace.¶
Need exists to provide differentiated capabilities by traffic subset, e.g. type of traffic, hostname, service identiers or combination thereof, which may not be related to "coverage" footprint as defined above. It is to be determined whether this requirement is best addressed by scoping such capabilities in a footprint, which would be extended to refer to traffic subsets, or through a new scoping object that defines named traffic classes in a manner similar to named footprints.¶
Section 5 of [RFC8008] describes the FCI Capability Advertisement Object, which includes an array of CDNI Footprint Objects. Each such object has a footprint-type and a footprint-value, as described in section 4.2.2.2 of [RFC8006]. This document defines additional footprint types, beyond those mentioned in CDNI metadata [RFC8006].¶
The "expr" footprint type specified in Section 3.1.1.1 describes a footprint using CDNI Metadata Expression Language as defined in Section 3 of [CDNI-Metadata-Model-Extensions]. The data type is added to the list of data types described in section 4.3 of [RFC8006]. This data type may supersede the "footprintunion" datatype proposed in [cdni-additional-footprint-types]¶
The footprint value is a CDNI Metadata Expression Language expression, as defined in Section 3 of [CDNI-Metadata-Model-Extensions].¶
The "named" footprint type specified in Section 3.1.2.1 describes an addressable footprint, that can be referenced by other CDNI Metadata objects as well as used within CDNI interfaces using CDNI Metadata Expression Language "[CDNI-Metadata-Model-Extensions]. The data type is added to the list of data types described in section 4.3 of [RFC8006].¶
The footprint value is the URI of named footprint advertised via the FCI footprint advertised as described in Section 4.2¶
As indicated in Section 2.5, resolution of complex footprint datatypes, relies on 3rd party datasources and maybe ambiguous. Such footprint types include "asn" and "country" defined in Section 4.2.2.2 of [RFC8006], as well as "subdivisioncode" footprint type, proposed in [cdni-additional-footprint-types]¶
It is hereby proposed to change footprint values for these datatypes to include an optional column-separated datasource, e.g. "maxmind-latest:us" or "bgpview:1234" Mechanism for defining standard naming convention for GeoIP datasource is beyond of the scope of this document. It is therefore assumed that uCDN and dCDN may agree on common datasource format.¶
This section details proposed changes to the CDNI Metadata model, as defined in Section 4 of [RFC8006]. The changes are limited to introduction of new objects and thus backward compatibility with [RFC8006] is preserved¶
NamedFootprint is a new GenericMetadata object that defined a named footprint that can be explicitly referenced by the CDNI Metadata objects.¶
NamedFootprintName is a new GenericMetadata object that defines a namespace containing footprints. Footprints should have unique name within each namespace. dCDN should advertise footprints so that each endpoint resolves unambiguously to a footprint within each namespace.¶
The CDNI framework presumes that uCDN consumes dCDN capabilities with footprint restrictions at the outset of uCDN delegating traffic to dCDN. The capabilities discovered in this way are subsequently used for metadata-driven configuration of dCDN and request routing. As an option, uCDN and dCDN may refresh the capabilities information via the FCI interface on periodic basis. This process is outlined in Section 3 of [RFC7336].¶
This document proposes the following change to the CDNI operation:¶
The FCI footprint advertisement allows for some footprints to be updated more frequently than others. uCDN will require to query the frequently changing footprint definitions only in case these footprints affect uCDN handling of the user agent requests. Thus, it is expected that the dCDN will not advertise high-level footprints with low time-to-live (TTL).¶
The example of named footprint advertisement is as follows:¶
[ { "footprint-namespace": "default", "footprint-type": "coverage", "footprints": [ { "footprint-name": "default/us", "footprint-expires": "2023-02-09T17:32:28Z", "footprint-uri": "https://oc.dcdn.com/FCI/footprints/default/us", "footprint-def": { "footprint-type": "asn", "footprint-value": "1234:1" } "footprints": [ { "footprint-name": "default:us/us-edge", "footprint-expires": "2023-02-09T17:32:28Z", "footprint-uri": "https://oc.dcdn.com/FCI/footprints/default/us/us-edge", "footprint-def": { "footprint-type": "expr", "footprint-value": "$ep.asn = 1234:1 and ( $ep.ipv4addr ipmatch "192.168.1/24" or $ep.ipv6addr ipmatch "2001:db8:3333:4444/48" ) " } ] }, { "footprint-name": "default/brasil", "footprint-expires": "2023-02-09T17:32:28Z", "footprint-uri": "https://oc.dcdn.com/FCI/footprints/default/brasil", "footprint-def": { "footprint-type": "asn", "footprint-value": "1234:2" } } ] }, { "footprint-namespace": "live", "footprint-type": "coverage", "footprints": [ { "footprint-name": "live/us", "footprint-expires": "2023-02-09T17:32:28Z", "footprint-uri": "https://oc.dcdn.com/FCI/footprints/live/us", "footprint-def": { "footprint-type": "asn", "footprint-value": "1234:1" } }, { "footprint-name": "live/brasil", "footprint-expires": "2023-02-09T17:32:28Z", "footprint-uri": "https://oc.dcdn.com/FCI/footprints/live/brasil", "footprint-def": { "footprint-type": "asn", "footprint-value": "1234:2" } } ] } ]¶
The named footprints can be used in both FCI and MI footprints in the places where CDNI Metadata objects are scoped by footprint. Thus, the MI PrivateFeature object described in Section 2.5.2.1 of [CDNI-Metadata-Model-Extensions] would use the named footprint advertisement as follows:¶
{ "generic-metadata-type": "MI.PrivateFeatureList", "generic-metadata-value": { "feature": { "feature-oid": "Broadpeak", "feature-type": "S4Streaming", "feature-value": { "footprint": { "footprint-type": "named", "footprint-value": "https://oc.dcdn.com/FCI/footprints/live/us", } "activation": "ON", "mode": "transparent", "policy": "bandwidth-max" } } } }¶
Section 7.2 of [RFC8006] creates the "CDNI Metadata Footprint Types" subregistry within the "Content Delivery Network Interconnection (CDNI) Parameters" registry.¶
This document requests the registration of the two additional Footprint Types: "expr" and "named"¶