Content Delivery Network Interconnection (CDNI) Named Footprints
Viasat1295 Beacon street, Unit 249BrooklineMA02446USAalan.arolovitch@gmail.com
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.
The Streaming Video Technology Alliance 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 of the
Streaming Video Technology Alliance 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 reads:
Generally speaking, one can imagine two categories of footprints to be advertised by a dCDN:
A footprint could be defined based on coverage/reachability, where
"coverage/reachability" refers to a set of prefixes, a geographic
region, or similar boundary. The dCDN claims that it can
cover/reach "end user requests coming from this footprint".
A footprint could be defined based on resources, where "resources"
refers to Surrogates a dCDN claims to have (e.g., the location of
Surrogates/resources). The dCDN claims that "from this footprint"
it can serve incoming end user requests.
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:
Disaggregated - CDN spanning disparate coverage regions, which lie in different geographies and/or jurisdictions,
yet share common management.
Regional - Different coverage regions within contiguous coverage, that have distinct properties,
yet users within one region may be served from other CDN regions, for example in case of failure or overload
Functional - CDN regions with different functional and capacity characteristics, e.g. highly distributed CDN
with limited storage capacity at each node
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 provides an interface,
allowing uCDNs to query dCDN capabilities, published via object-based data model in compliance with
and .
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 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 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 , combination of multiple footprint types is to be understood as additive or, in other words,
as an implicit boolean OR operation.
Neither nor 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.
The following terms are used throughout this document:
CDN - Content Delivery NetworkCIDR - Classless Internet-Domain Routing
Additionally, this document reuses the terminology defined in
,
, and
.
Specifically, we use the following CDNI acronyms:
uCDN, dCDN - Upstream CDN and Downstream CDN respectively (see )
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 ,
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 .
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
ep.asn - Endpoint AS number
ep.ipv4addr - Endpoint IPv4 address
ep.ipv6addr - Endpoint IPv6 address
ep.country - Endpoint country code
ep.subdivision - Endpoint subdivision code
Thus, the following MEL expressions can be used for footprint advertisement:
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 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 .
This document defines additional footprint types, beyond those mentioned in CDNI metadata
.
The "expr" footprint type specified in describes a footprint
using CDNI Metadata Expression Language as defined in Section 3 of .
The data type is added to the list of data types described in section 4.3 of .
This data type may supersede the "footprintunion" datatype proposed in
The footprint value is a CDNI Metadata Expression Language expression,
as defined in Section 3 of .
Type: StringExamples:( $ep.country == "us" ) and not $ep.ipv4addr ipmatch ( "10.1.1/24" or "10.1.2.0/24" )"( $ep.asn = 1234 ) or ( $ep.ipv4addr ipmatch "192.168.1/24" ) or ( $ep.ipv6addr ipmatch "2001:db8:3333:4444/48" )
The "named" footprint type specified in 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 ".
The data type is added to the list of data types described in section 4.3 of .
The footprint value is the URI of named footprint advertised via the FCI footprint advertised as described in Type: StringExample:"https://oc.dcdn.com/FCI/footprints/live/us"
As indicated in , 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 , as well as "subdivisioncode" footprint type,
proposed in
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 .
The changes are limited to introduction of new objects and thus backward compatibility with is preserved
NamedFootprint is a new GenericMetadata object that defined a named footprint that can be explicitly referenced by the CDNI Metadata objects.
- Property: footprint-defDescription: Footprint definitionType: JSON-encoded MI Footprint object as defined in Section 4.2.2.2 of Mandatory: Yes- Property: subfootprintsDescription: List of descendant footprints in the footprint hierarchyType: Array of MI NamedFootprint objects as defined in Mandatory: No- Property: footprint-nameDescription: Footprint name, must be unique in same footprint namespaceType: StringMandatory: Yes- Property: footprint-uriDescription: URI pointing to the footprint definition. Can be queried by uCDN separatelyType: StringMandatory: Yes- Property: footprint-expiresDescription: Timestamp for footprint definition expiration, should be used for caching and refreshing of the footprint definition.Type: Date-timeMandatory: Yes
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.
- Property: footprint-namespaceDescription: Footprint namespace nameType: StringMandatory: Yes- Property: footprint-typeDescription: Definition of footprint type advertised in the namespace as defined in Appendix B of Type: One of "coverage" or "resource"Mandatory: Yes- Property: footprintsDescription: List of root footprints included in the namespaceType: Array of MI NamedFootprint objects as defined in Mandatory: Yes
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 .
This document proposes the following change to the CDNI operation:
dCDN advertises the capabilities and footprints via the FCI interface. The footprint advertisement consists of MI NamedFootprint objects,
as defined in , in one or more namespaces.
The footprint advertisement contains expiration information and URIs for every named footprint.
The capabilities advertised may be scoped to the named footprints advertised.
uCDN retrieves the dCDN advertised capabiities via FCI.
uCDN retrieves and caches the dCDN advertised footprints via FCI.
uCDN configures dCDN using CDNI Metadata over MI interface.
The metadata may optionally reference the footprints advertised by dCDN.
uCDN receives content request from a user agent.
uCDN matches user agent IP address against the cached copy of footprint advertisement made by the dCDN and makes decision to delegate the request to the dCDN
uCDN redirects the request to the dCDN by sending a response to the user agent (either DNS or HTTP).
At any time following the initial retrieval of the footprint advertisement,
uCDN may refresh all or part of the cached footprint advertisement, subject to the expiration information provided with every footprint.
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:
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 would use the named footprint advertisement as follows:
Section 7.2 of 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"
TBD
Streaming Video Technology Alliance Home PageOpen Caching Home PageCDNI Metadata Model Extensions - Metadata Expression LanguageContent Delivery Network Interconnection (CDNI) Footprint Types: Subdivision Code and Union