rfc9388.original | rfc9388.txt | |||
---|---|---|---|---|
Network Working Group N. Sopher | Internet Engineering Task Force (IETF) N. Sopher | |||
Internet-Draft Qwilt | Request for Comments: 9388 Qwilt | |||
Updates: 8008 (if approved) S. Mishra | Updates: 8008 S. Mishra | |||
Intended status: Standards Track Verizon | Category: Standards Track Verizon | |||
Expires: 27 July 2023 23 January 2023 | ISSN: 2070-1721 July 2023 | |||
Content Delivery Network Interconnection (CDNI) Footprint Types: | Content Delivery Network Interconnection (CDNI) Footprint Types: Country | |||
Subdivision Code and Footprint Union | Subdivision Code and Footprint Union | |||
draft-ietf-cdni-additional-footprint-types-11 | ||||
Abstract | Abstract | |||
Open Caching architecture is a use case of Content Delivery Networks | Open Caching architecture is a use case of Content Delivery Network | |||
Interconnection (CDNI) in which the commercial Content Delivery | Interconnection (CDNI) in which the commercial Content Delivery | |||
Network (CDN) is the upstream CDN (uCDN) and the ISP caching layer | Network (CDN) is the upstream CDN (uCDN) and the ISP caching layer | |||
serves as the downstream CDN (dCDN). This document supplements the | serves as the downstream CDN (dCDN). RFC 8006 defines footprint | |||
CDNI Metadata Footprint Types defined in RFC 8006. The Footprint | types that are used for footprint objects as part of the Metadata | |||
Types defined in this document can be used for Footprint objects as | interface (MI). The footprint types are also used for the Footprint | |||
part of the Metadata interface (MI) defined in RFC 8006 and for the | & Capabilities Advertisement interface (FCI) as defined in RFC 8008. | |||
Footprint & Capabilities Advertisement interface (FCI) defined in RFC | This document defines two new footprint types. The first footprint | |||
8008. By defining the footprint union Footprint Type, this document | type defined is an ISO 3166-2 country subdivision code. Defining | |||
updates RFC 8008, allowing an additive semantic over the narrowing | this country subdivision code improves granularity for delegation as | |||
semantics defined in Appendix B of RFC 8008. This document also | compared to the ISO 3166-1 country code footprint type defined in RFC | |||
supplements RFC 9241 with relevant ALTO entity domain types. The | 8006. The ISO 3166-2 country subdivision code is also added as a new | |||
defined Footprint Types are derived from requirements raised by Open | entity domain type in the "ALTO Entity Domain Types" registry defined | |||
Caching but are also applicable to CDNI use cases in general. | in Section 7.4 of RFC 9241. The second footprint type defines a | |||
footprint union to aggregate footprint objects. This allows for | ||||
Requirements Language | additive semantics over the narrowing semantics defined in Appendix B | |||
of RFC 8008 and therefore updates RFC 8008. The two new footprint | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | types are based on the requirements raised by Open Caching but are | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | also applicable to CDNI use cases in general. | |||
"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. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
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 | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 27 July 2023. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9388. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2023 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology | |||
2. CDNI Metadata Additional Footprint Types . . . . . . . . . . 4 | 1.2. Requirements Language | |||
2.1. CDNI Metadata Subdivision Code Footprint Type . . . . . . 4 | 2. CDNI Metadata Additional Footprint Types | |||
2.1.1. CDNI Metadata Subdivision Code Data Type . . . . . . 4 | 2.1. CDNI Metadata "subdivisioncode" Footprint Type | |||
2.1.1.1. CDNI Metadata Subdivision Code Data Type | 2.1.1. CDNI Metadata "subdivisioncode" Data Type | |||
Description . . . . . . . . . . . . . . . . . . . . 4 | 2.1.1.1. CDNI Metadata "subdivisioncode" Data Type | |||
2.1.2. CDNI Metadata Subdivision Code Footprint Type | Description | |||
Description . . . . . . . . . . . . . . . . . . . . . 4 | 2.1.2. CDNI Metadata "subdivisioncode" Footprint Type | |||
2.2. CDNI Metadata Footprint Union Footprint Type . . . . . . 5 | Description | |||
2.2.1. CDNI Metadata Footprint Union Data Type . . . . . . . 6 | 2.2. CDNI Metadata "footprintunion" Footprint Type | |||
2.2.2. CDNI Metadata FootprintUnion Footprint Type | 2.2.1. CDNI Metadata "footprintunion" Data Type | |||
Description . . . . . . . . . . . . . . . . . . . . . 7 | 2.2.2. CDNI Metadata "footprintunion" Footprint Type | |||
3. ALTO Property Map Service Entity . . . . . . . . . . . . . . 8 | Description | |||
3.1. SUBDIVISIONCODE Domain . . . . . . . . . . . . . . . . . 8 | 3. ALTO Property Map Service Entity | |||
3.1.1. Entity Domain Type . . . . . . . . . . . . . . . . . 9 | 3.1. SUBDIVISIONCODE Domain | |||
3.1.2. Domain-Specific Entity Identifiers . . . . . . . . . 9 | 3.1.1. Entity Domain Type | |||
3.1.3. Hierarchy and Inheritance . . . . . . . . . . . . . . 9 | 3.1.2. Domain-Specific Entity Identifiers | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 3.1.3. Hierarchy and Inheritance | |||
4.1. CDNI Metadata Footprint Types . . . . . . . . . . . . . . 9 | 4. IANA Considerations | |||
4.2. ALTO Entity Domain Types . . . . . . . . . . . . . . . . 10 | 4.1. CDNI Metadata Footprint Types | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 4.2. ALTO Entity Domain Types | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 | 5. Security Considerations | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 6. References | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 10 | 6.1. Normative References | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 11 | 6.2. Informative References | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | Acknowledgements | |||
Authors' Addresses | ||||
1. Introduction | 1. Introduction | |||
The Streaming Video Technology Alliance [SVTA] is a global | The Streaming Video Technology Alliance [SVTA] is a global | |||
association that works to solve streaming video challenges in an | association that works to solve streaming video challenges in an | |||
effort to improve end-user experience and adoption. The Open Caching | effort to improve end-user experience and adoption. The Open Caching | |||
Working Group [OCWG] of the SVTA is focused on the delegation of | Working Group [OCWG] of the SVTA is focused on the delegation of | |||
video delivery requests from commercial Content Delivery Networks | video delivery requests from commercial Content Delivery Networks | |||
(CDNs) to a caching layer at the ISP's network. Open Caching | (CDNs) to a caching layer at the ISP's network. Open Caching | |||
architecture is a specific use case of Content Delivery Networks | architecture is a specific use case of Content Delivery Network | |||
Interconnection (CDNI) where the commercial CDN is the upstream CDN | Interconnection (CDNI) where the commercial CDN is the upstream CDN | |||
(uCDN) and the ISP caching layer is the downstream CDN (dCDN). The | (uCDN) and the ISP caching layer is the downstream CDN (dCDN). The | |||
Open Caching Request Routing Specification [OC-RR] defines the | "Open Caching Request Routing Functional Specification" [OC-RR] | |||
Request Routing process and the interfaces that are required for its | defines the Request Routing process and the interfaces that are | |||
provisioning. This document defines and registers CDNI Footprint and | required for its provisioning. This document defines and registers | |||
Capabilities objects [RFC8008] that are required for Open Caching | CDNI Footprint and Capabilities objects [RFC8008] that are required | |||
Request Routing. | for Open Caching Request Routing. | |||
For consistency with other CDNI documents this document follows the | For consistency with other CDNI documents, this document follows the | |||
CDNI convention of uCDN (upstream CDN) and dCDN (downstream CDN) to | CDNI convention of using "uCDN" and "dCDN" to represent the | |||
represent the commercial CDN and ISP caching layer respectively. | commercial CDN and ISP caching layer, respectively. | |||
This document registers two CDNI Metadata Footprint Types (section | This document registers two CDNI Metadata footprint types | |||
7.2 of [RFC8006]) for the defined objects: | (Section 7.2 of [RFC8006]) for the defined objects: | |||
* Subdivision Code Footprint Type (e.g., for a dCDN advertising a | * Country subdivision code footprint type (e.g., for a dCDN | |||
footprint that is specific to a State in the USA) | advertising a footprint that is specific to a state in the United | |||
States of America) | ||||
* Union Footprint Type (for a dCDN advertising a footprint that | * Footprint union footprint type (for a dCDN advertising a footprint | |||
consists of a group built from multiple Footprints Types, e.g., | that consists of a group built from multiple footprint types, | |||
both IPv4 and IPv6 client subnets) | e.g., both IPv4 and IPv6 client subnets) | |||
1.1. Terminology | 1.1. Terminology | |||
The following terms are used throughout this document: | The following terms are 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 | |||
[RFC6707], [RFC7336], [RFC8006], and [RFC8008]. Specifically, we use | [RFC6707], [RFC7336], [RFC8006], and [RFC8008]. Specifically, we use | |||
the following CDNI acronyms: | the following CDNI abbreviations: | |||
* uCDN, dCDN - Upstream CDN and Downstream CDN respectively (see | uCDN: upstream CDN (see [RFC7336]) | |||
[RFC7336] ) | ||||
dCDN: downstream CDN (see [RFC7336]) | ||||
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. | ||||
2. CDNI Metadata Additional Footprint Types | 2. CDNI Metadata Additional Footprint Types | |||
Section 5 of [RFC8008] describes the Footprint & Capabilities | Section 5 of [RFC8008] describes the Footprint & Capabilities | |||
Advertisement interface (FCI) Capability Advertisement Object, which | Advertisement interface (FCI) Capability Advertisement object, which | |||
includes an array of CDNI Footprint Objects. Each such object has a | 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 | footprint type and a footprint value, as described in Section 4.2.2.2 | |||
of [RFC8006]. This document defines additional footprint types, | of [RFC8006]. This document defines additional footprint types, | |||
beyond those mentioned in CDNI metadata [RFC8006]. | beyond those mentioned in [RFC8006]. | |||
2.1. CDNI Metadata Subdivision Code Footprint Type | 2.1. CDNI Metadata "subdivisioncode" Footprint Type | |||
Section 4.3.8 of [RFC8006] specifies the "Country Code" footprint | Section 4.3.8 of [RFC8006] specifies the "countrycode" footprint type | |||
type for listing [ISO3166-1] alpha-2 codes. Using Footprint Objects | for listing [ISO3166-1] alpha-2 codes. Using footprint objects of | |||
of this type, one can define an FCI Capability Advertisement Object | this type, one can define an FCI Capability Advertisement object | |||
footprint constraint that matches a specific country. Herein is | footprint constraint that matches a specific country. This document | |||
defined the subdivisioncode simple data type, as well as a footprint | defines the "subdivisioncode" simple data type as well as a footprint | |||
type allowing the dCDN to define constraints matching geographic | type, allowing the dCDN to define constraints that match geographic | |||
areas with better granularity, specifically using the [ISO3166-2] | areas with better granularity, specifically using the [ISO3166-2] | |||
Country Subdivision codes. | country subdivision codes. | |||
2.1.1. CDNI Metadata Subdivision Code Data Type | 2.1.1. CDNI Metadata "subdivisioncode" Data Type | |||
The "subdivisioncode" data type specified in Section 2.1.1.1, | The "subdivisioncode" data type specified in Section 2.1.1.1 | |||
describes a country specific subdivision using an [ISO3166-2] code. | describes a country-specific subdivision using a code as defined in | |||
The data type is added to the list of data types described in section | [ISO3166-2]. The data type is added to the list of data types | |||
4.3 of [RFC8006] that are used as properties of CDNI Metadata | described in Section 4.3 of [RFC8006] that are used as properties of | |||
objects. | CDNI Metadata objects. | |||
2.1.1.1. CDNI Metadata Subdivision Code Data Type Description | 2.1.1.1. CDNI Metadata "subdivisioncode" Data Type Description | |||
An [ISO3166-2] code in lowercase. Each code consists of two parts | An [ISO3166-2] code in lowercase. Each code consists of two parts | |||
separated by a hyphen. As per [ISO3166-2], the first part is the | separated by a hyphen. As per [ISO3166-2], the first part is the | |||
[ISO3166-1] code of the country, and the second part is a string of | [ISO3166-1] code of the country and the second part is a string of up | |||
up to three alphanumeric characters. | to three alphanumeric characters. | |||
Type: String | ||||
Example Subdivision Codes: | Type: String | |||
"ca-on" | Example country subdivision codes: | |||
* "ca-on" | ||||
"us-ny" | * "us-ny" | |||
2.1.2. CDNI Metadata Subdivision Code Footprint Type Description | 2.1.2. CDNI Metadata "subdivisioncode" Footprint Type Description | |||
The "subdivisioncode" simple data type specified in Section 2.1.1, is | The "subdivisioncode" simple data type specified in Section 2.1.1 is | |||
added to the data types listed as footprint types in section 4.2.2.2 | added to the data types listed as footprint types in Section 4.2.2.2 | |||
of [RFC8006]. | of [RFC8006]. | |||
Below is an example using a footprint object of type | Figure 1 is an example using a footprint object of type | |||
"subdivisioncode". The Footprint Object in this example creates a | "subdivisioncode". The footprint object in this example creates a | |||
constraint matching clients in the states of New Jersey and New York, | constraint that matches clients in the state of either New Jersey or | |||
USA (ISO [ISO3166-2] codes "US-NJ" and "US-NY" respectively). | New York, USA (ISO [ISO3166-2] codes "US-NJ" and "US-NY", | |||
respectively). | ||||
{ | { | |||
"capabilities": [ | "capabilities": [ | |||
{ | { | |||
"capability-type": <CDNI capability object type>, | "capability-type": <CDNI capability object type>, | |||
"capability-value": <CDNI capability object>, | "capability-value": <CDNI capability object>, | |||
"footprints": [ | "footprints": [ | |||
{ | { | |||
"footprint-type": "subdivisioncode", | "footprint-type": "subdivisioncode", | |||
"footprint-value": ["us-nj", "us-ny"] | "footprint-value": ["us-nj", "us-ny"] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
Figure 1: Illustration of subdivision-code footprint advertisement | Figure 1: Illustration of Country Subdivision Code Footprint | |||
Advertisement | ||||
2.2. CDNI Metadata Footprint Union Footprint Type | 2.2. CDNI Metadata "footprintunion" Footprint Type | |||
As described in section 5 of [RFC8008], the FCI Capability | As described in Section 5 of [RFC8008], the FCI Capability | |||
Advertisement Object includes an array of CDNI Footprint Objects. | Advertisement object includes an array of CDNI footprint objects. | |||
Appendix B of [RFC8008] specifies the semantics of a Footprint | Appendix B of [RFC8008] specifies the semantics for Footprint | |||
Objects array as a multiple, additive, footprint constraints. This | Advertisement such that multiple footprint constraints are additive. | |||
implies that the advertisement of different footprint types narrows | This implies that the advertisement of different footprint types | |||
the dCDN's candidacy cumulatively. | narrows the dCDN's candidacy cumulatively. | |||
Sections 4.3.5 and 4.3.6 of [RFC8006] specify the "IPv4CIDR" and | Sections 4.3.5 and 4.3.6 of [RFC8006] specify the "ipv4cidr" and the | |||
"IPv6CIDR" footprint types, respectively, for listing IP unscoped | "ipv6cidr" footprint types, respectively, for listing IP unscoped | |||
address blocks. Using Footprint Objects of these types, one can | address blocks. Using footprint objects of these types, one can | |||
define FCI Capability Advertisement Object footprint constraints that | define FCI Capability Advertisement object footprint constraints that | |||
match IPv4 or IPv6 clients. However, the described "narrowing" | match either IPv4 or IPv6 clients, but not both. This is due to the | |||
semantic of the Footprint Objects array, as described in Appendix B | described "narrowing" semantic of the Footprint Objects array, as | |||
of [RFC8008], prevents the usage of these objects together to create | described in Appendix B of [RFC8008], that prevents the usage of | |||
a footprint constraint that matches IPv4 clients together with IPv6 | these objects together to create a footprint constraint that matches | |||
clients. | IPv4 clients with IPv6 clients. | |||
Below is an example for an attempt at creating an object matching | Figure 2 is an example attempting to create an object that matches | |||
IPv4 clients of subnet "192.0.2.0/24", as well as IPv6 clients of | IPv4 clients of subnet "192.0.2.0/24" as well as IPv6 clients of | |||
subnet "2001:db8::/32". Such a definition results in an empty list | subnet "2001:db8::/32". Such a definition results in an empty list | |||
of clients, as the constraints are additives and a client address | of clients, as the constraints are additives and a client address | |||
cannot be both IPv4 and IPv6. | cannot be both IPv4 and IPv6. | |||
{ | { | |||
"capabilities": [ | "capabilities": [ | |||
{ | { | |||
"capability-type": <CDNI capability object type>, | "capability-type": <CDNI capability object type>, | |||
"capability-value": <CDNI capability object>, | "capability-value": <CDNI capability object>, | |||
"footprints": [ | "footprints": [ | |||
skipping to change at page 6, line 24 ¶ | skipping to change at line 263 ¶ | |||
}, | }, | |||
{ | { | |||
"footprint-type": "ipv6cidr", | "footprint-type": "ipv6cidr", | |||
"footprint-value": ["2001:db8::/32"] | "footprint-value": ["2001:db8::/32"] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
Figure 2: Example of narrowing semantic illustrating | Figure 2: Example of Narrowing Semantic Illustrating | |||
advertisement of a null footprint | Advertisement of a Null Footprint | |||
To overcome the described limitation and allow a list of footprint | To overcome the described limitation and allow a list of footprint | |||
constraints that match both IPv4 and IPv6 client subnets, this | constraints that match both IPv4 and IPv6 client subnets, this | |||
document defines the "footprintunion" footprint type. This footprint | document defines the "footprintunion" footprint type. This footprint | |||
type allows the collection of multiple footprint-objects into a | type allows the collection of multiple footprint-objects into a | |||
unified object. Therefore it resolves the above limitation and can | unified object. Therefore, it resolves the above limitation and can | |||
be particularly applicable to unify semantically related objects, for | be particularly applicable to unify semantically related objects: for | |||
example, an ipv4cidr together with an ipv6cidr or a countrycode | example, an IPv4 CIDR together with an IPv6 CIDR or a country code | |||
together with a subdivisoncode. | together with a country subdivision code. | |||
Note: to avoid implementation complexity, a "footprintunion" MUST NOT | Note: to avoid implementation complexity, a "footprintunion" MUST NOT | |||
list any "footprintunion" as a value. As a union of unions is simply | list any "footprintunion" as a value. As a union of unions is simply | |||
a union, this syntactic restriction does not result with any semantic | a union, this syntactic restriction does not result with any semantic | |||
limitation. | limitation. | |||
2.2.1. CDNI Metadata Footprint Union Data Type | 2.2.1. CDNI Metadata "footprintunion" Data Type | |||
The "footprintunion" data type is based on the Footprint Object | The "footprintunion" data type is based on the footprint object | |||
already defined in section 4.2.2.2 of [RFC8006]. The footprint-value | already defined in Section 4.2.2.2 of [RFC8006]. The footprint value | |||
for a "footprintunion" object is an array of Footprint objects, where | for a "footprintunion" object is an array of footprint objects, where | |||
the Footprint objects MUST be of any Footprint Type other than | the footprint objects MUST be of any footprint type other than | |||
"footprintunion". | "footprintunion". | |||
2.2.2. CDNI Metadata FootprintUnion Footprint Type Description | 2.2.2. CDNI Metadata "footprintunion" Footprint Type Description | |||
The "footprintunion" data type specified in Section 2.2.1, is added | The "footprintunion" data type specified in Section 2.2.1 is added to | |||
to the data types listed as footprint types in section 4.2.2.2 of | the data types listed as footprint types in Section 4.2.2.2 of | |||
[RFC8006]. | [RFC8006]. | |||
Below is an example using a footprint object of type "footprintunion" | Figure 3 is an example using a footprint union combining both IPv4 | |||
combining both IPv4 and IPv6 client subnets. | and IPv6 client subnets. | |||
{ | { | |||
"capabilities": [ | "capabilities": [ | |||
{ | { | |||
"capability-type": <CDNI capability object type>, | "capability-type": <CDNI capability object type>, | |||
"capability-value": <CDNI capability object>, | "capability-value": <CDNI capability object>, | |||
"footprints": [ | "footprints": [ | |||
{ | { | |||
"footprint-type": "footprintunion", | "footprint-type": "footprintunion", | |||
"footprint-value": [ | "footprint-value": [ | |||
skipping to change at page 7, line 38 ¶ | skipping to change at line 321 ¶ | |||
"footprint-type": "ipv6cidr", | "footprint-type": "ipv6cidr", | |||
"footprint-value": ["2001:db8::/32"] | "footprint-value": ["2001:db8::/32"] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
Figure 3: Example of an advertisement of footprint union for | Figure 3: Example of an Advertisement of Footprint Union for | |||
multiple CIDR footprint types | Multiple Classless Inter-Domain Routing (CIDR) Footprint Types | |||
The footprint union also enables composing a countrycode and | The footprint union also enables composing of footprint objects based | |||
subdivisioncode based footprint objects. In the example below we | on the country code and country subdivision code. In Figure 4, we | |||
create a constraint covering autonomous system 64496 within the US | create a constraint covering autonomous system 64496 within the USA | |||
(ISO [ISO3166-1] alpha-2 code "US") and the Ontario province of | (ISO alpha-2 code "US" as described in [ISO3166-1]) and the Ontario | |||
Canada (ISO [ISO3166-2] code "CA-ON"). | province of Canada (ISO code "CA-ON" as described in [ISO3166-2]). | |||
{ | { | |||
"capabilities": [ | "capabilities": [ | |||
{ | { | |||
"capability-type": <CDNI capability object type>, | "capability-type": <CDNI capability object type>, | |||
"capability-value": <CDNI capability object>, | "capability-value": <CDNI capability object>, | |||
"footprints": [ | "footprints": [ | |||
{ | { | |||
"footprint-type": "asn", | "footprint-type": "asn", | |||
"footprint-value": ["as64496"] | "footprint-value": ["as64496"] | |||
skipping to change at page 8, line 33 ¶ | skipping to change at line 358 ¶ | |||
"footprint-type": "subdivisioncode", | "footprint-type": "subdivisioncode", | |||
"footprint-value": ["ca-on"] | "footprint-value": ["ca-on"] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
Figure 4: Example of an advertisement of footprint union for multiple | Figure 4: Example of an Advertisement of Footprint Union for Multiple | |||
geographical footprint types | Geographical Footprint Types | |||
3. ALTO Property Map Service Entity | 3. ALTO Property Map Service Entity | |||
Section 6 of [RFC9241] describes how to represent footprint objects | Section 6 of [RFC9241] describes how to represent footprint objects | |||
as entities in the ALTO property map. The approach is to represent | as entities in the ALTO property map. The approach is to represent | |||
the "footprint-type" as an entity domain type of the ALTO entity, and | the footprint type as an entity domain type of the ALTO entity and | |||
the footprint value as its domain-specific identifier. [RFC9241] | the footprint value as its domain-specific identifier. [RFC9241] | |||
further refers to the representation of footprint objects of types | further refers to the representation of footprint objects of types | |||
"asn" and "countrycode". Here we extend this definition to the | "asn" and "countrycode". Here, we extend this definition to the | |||
"subdivisioncode" footprint-type. | "subdivisioncode" footprint type. | |||
3.1. SUBDIVISIONCODE Domain | 3.1. SUBDIVISIONCODE Domain | |||
The SUBDIVISIONCODE domain associates property values that defines | The SUBDIVISIONCODE domain associates property values that define | |||
codes for the names of the principal subdivisions. | codes for the names of the principal subdivisions. | |||
3.1.1. Entity Domain Type | 3.1.1. Entity Domain Type | |||
The entity domain type of the SUBDIVISIONCODE domain is | The entity domain type of the SUBDIVISIONCODE domain is | |||
"subdivisioncode" (in lowercase). | "subdivisioncode" (in lowercase). | |||
3.1.2. Domain-Specific Entity Identifiers | 3.1.2. Domain-Specific Entity Identifiers | |||
The entity identifier of an entity in a SUBDIVISIONCODE is encoded as | The entity identifier of an entity in a SUBDIVISIONCODE is encoded as | |||
an alpha-2 [ISO3166-1] Country Code, followed by a separator and up | an alpha-2 [ISO3166-1] country code, followed by a separator and up | |||
to three alphanumeric characters. | to three alphanumeric characters. | |||
3.1.3. Hierarchy and Inheritance | 3.1.3. Hierarchy and Inheritance | |||
There is no hierarchy or inheritance for properties associated with | There is no hierarchy or inheritance for properties associated with | |||
subdivision codes. | country subdivision codes. | |||
4. IANA Considerations | 4. IANA Considerations | |||
4.1. CDNI Metadata Footprint Types | 4.1. CDNI Metadata Footprint Types | |||
Section 7.2 of [RFC8006] specifies the "CDNI Metadata Footprint | Section 7.2 of [RFC8006] specifies the "CDNI Metadata Footprint | |||
Types" subregistry within the "Content Delivery Network | Types" subregistry within the "Content Delivery Network | |||
Interconnection (CDNI) Parameters" registry. | Interconnection (CDNI) Parameters" registry. | |||
This document requests the registration of the two additional | This document registers two footprint types in that subregistry as | |||
Footprint Types as defined in Section 2.1 and Section 2.2 : | defined in Sections 2.1 and 2.2: | |||
+=================+=====================================+===========+ | ||||
| Footprint Type | Description | Reference | | ||||
+=================+=====================================+===========+ | ||||
| subdivisioncode | [ISO3166-2] ISO 3166-2 country | RFCthis | | ||||
| | subdivision code: alpha-2 | | | ||||
| | country code, followed by a | | | ||||
| | hyphen-minus, and up to 3 | | | ||||
| | characters from A-Z;0-9 as a | | | ||||
| | code within the country. | | | ||||
+-----------------+-------------------------------------+-----------+ | ||||
| footprintunion | A combination of other | RFCthis | | ||||
| | Footprint Objects | | | ||||
+-----------------+-------------------------------------+-----------+ | ||||
Table 1 | +=================+=================================+===========+ | |||
| Footprint Type | Description | Reference | | ||||
+=================+=================================+===========+ | ||||
| subdivisioncode | ISO 3166-2 country subdivision | RFC 9388 | | ||||
| | code: alpha-2 country code, | | | ||||
| | followed by a hyphen-minus and | | | ||||
| | up to 3 characters from A-Z;0-9 | | | ||||
| | as a code within the country | | | ||||
+-----------------+---------------------------------+-----------+ | ||||
| footprintunion | A combination of other | RFC 9388 | | ||||
| | footprint objects | | | ||||
+-----------------+---------------------------------+-----------+ | ||||
[RFC Editor: Please replace RFCthis with the published RFC number for | Table 1: Additions to the CDNI Metadata Footprint Types | |||
this document.] | Subregistry | |||
4.2. ALTO Entity Domain Types | 4.2. ALTO Entity Domain Types | |||
Section 12.3 of [RFC9240] creates the "ALTO Entity Domain Types" | Section 12.3 of [RFC9240] creates the "ALTO Entity Domain Types" | |||
registry. | subregistry within the "Application-Layer Traffic Optimization (ALTO) | |||
Protocol" registry. | ||||
This document requests the registration of an additional ALTO Entity | This document registers an additional ALTO Entity Domain Type within | |||
Domain Types: | that subregistry: | |||
+=================+============+=============+==========+=========+ | +=================+============+=============+==========+=========+ | |||
| Identifier | Entity | Hierarchy | Media | Mapping | | | Identifier | Entity | Hierarchy | Media | Mapping | | |||
| | Identifier | and | Type of | to ALTO | | | | Identifier | and | Type of | to ALTO | | |||
| | Encoding | Inheritance | Defining | Address | | | | Encoding | Inheritance | Defining | Address | | |||
| | | | Resource | Type | | | | | | Resource | Type | | |||
+=================+============+=============+==========+=========+ | +=================+============+=============+==========+=========+ | |||
| subdivisioncode | See | None | None | false | | | subdivisioncode | See RFC | None | None | false | | |||
| | RFCthis, | | | | | | | 9388, | | | | | |||
| | Section | | | | | | | Section | | | | | |||
| | 3.1.2 | | | | | | | 3.1.2 | | | | | |||
+-----------------+------------+-------------+----------+---------+ | +-----------------+------------+-------------+----------+---------+ | |||
Table 2 | Table 2: Additions to the ALTO Entity Domain Types Subregistry | |||
[RFC Editor: Please replace RFCthis with the published RFC number for | ||||
this document.] | ||||
5. Security Considerations | 5. Security Considerations | |||
This specification is in accordance with the CDNI Metadata and the | This specification is in accordance with "Content Delivery Network | |||
CDNI Request Routing: Footprint and Capabilities Semantics. As such, | Interconnection (CDNI) Metadata" and "Content Delivery Network | |||
it is subject to the security and confidentiality considerations as | Interconnection (CDNI) Request Routing: Footprint and Capabilities | |||
defined in Section 8 of [RFC8006] and in Section 7 of [RFC8008] | Semantics". As such, it is subject to the security and | |||
respectively. | confidentiality considerations as defined in Section 8 of [RFC8006] | |||
and in Section 7 of [RFC8008], respectively. | ||||
6. Acknowledgements | ||||
The authors would like to express their gratitude to Ori Finkelman | ||||
and Kevin J. Ma for their guidance and reviews throughout the | ||||
development of this document. We would also like to thank all the | ||||
Area Directors for their review and feedback in improving this | ||||
document. | ||||
7. References | 6. References | |||
7.1. Normative References | 6.1. Normative References | |||
[ISO3166-1] | [ISO3166-1] | |||
ISO, "Codes for the representation of names of countries | ISO, "Codes for the representation of names of countries | |||
and their subdivisions -- Part 1: Country code", | and their subdivisions -- Part 1: Country code", | |||
ISO 3166-1:2020, Edition 4, August 2020, | ISO 3166-1:2020, Edition 4, August 2020, | |||
<https://www.iso.org/standard/72482.html>. | <https://www.iso.org/standard/72482.html>. | |||
[ISO3166-2] | [ISO3166-2] | |||
ISO, "Codes for the representation of names of countries | ISO, "Codes for the representation of names of countries | |||
and their subdivisions -- Part 2: Country subdivision | and their subdivisions -- Part 2: Country subdivision | |||
skipping to change at page 11, line 50 ¶ | skipping to change at line 500 ¶ | |||
DOI 10.17487/RFC9240, July 2022, | DOI 10.17487/RFC9240, July 2022, | |||
<https://www.rfc-editor.org/info/rfc9240>. | <https://www.rfc-editor.org/info/rfc9240>. | |||
[RFC9241] Seedorf, J., Yang, Y., Ma, K., Peterson, J., and J. Zhang, | [RFC9241] Seedorf, J., Yang, Y., Ma, K., Peterson, J., and J. Zhang, | |||
"Content Delivery Network Interconnection (CDNI) Footprint | "Content Delivery Network Interconnection (CDNI) Footprint | |||
and Capabilities Advertisement Using Application-Layer | and Capabilities Advertisement Using Application-Layer | |||
Traffic Optimization (ALTO)", RFC 9241, | Traffic Optimization (ALTO)", RFC 9241, | |||
DOI 10.17487/RFC9241, July 2022, | DOI 10.17487/RFC9241, July 2022, | |||
<https://www.rfc-editor.org/info/rfc9241>. | <https://www.rfc-editor.org/info/rfc9241>. | |||
7.2. Informative References | 6.2. Informative References | |||
[OC-RR] Finkelman, O., Ed., Hofmann, J., Klein, E., Mishra, S., | [OC-RR] Finkelman, O., Ed., Zurat, B., Sahar, D., Klein, E., | |||
Ma, K., Sahar, D., and B. Zurat, "Open Caching - Request | Hofmann, J., Ma, K.J., Stock, M., Mishra, S., and Y. | |||
Routing Functional Specification", Version 2.0, 15 January | Gressel, "Open Caching - Request Routing Functional | |||
2021, <https://www.svta.org/product/open-cache-request- | Specification", Version 2.0, 15 January 2021, | |||
routing-functional-specification/>. | <https://www.svta.org/product/open-cache-request-routing- | |||
functional-specification/>. | ||||
[OCWG] "Open Caching Home Page", <https://opencaching.svta.org/>. | [OCWG] SVTA, "Open Caching", <https://opencaching.svta.org/>. | |||
[RFC6707] Niven-Jenkins, B., Le Faucheur, F., and N. Bitar, "Content | [RFC6707] Niven-Jenkins, B., Le Faucheur, F., and N. Bitar, "Content | |||
Distribution Network Interconnection (CDNI) Problem | Distribution Network Interconnection (CDNI) Problem | |||
Statement", RFC 6707, DOI 10.17487/RFC6707, September | Statement", RFC 6707, DOI 10.17487/RFC6707, September | |||
2012, <https://www.rfc-editor.org/info/rfc6707>. | 2012, <https://www.rfc-editor.org/info/rfc6707>. | |||
[RFC7336] Peterson, L., Davie, B., and R. van Brandenburg, Ed., | [RFC7336] Peterson, L., Davie, B., and R. van Brandenburg, Ed., | |||
"Framework for Content Distribution Network | "Framework for Content Distribution Network | |||
Interconnection (CDNI)", RFC 7336, DOI 10.17487/RFC7336, | Interconnection (CDNI)", RFC 7336, DOI 10.17487/RFC7336, | |||
August 2014, <https://www.rfc-editor.org/info/rfc7336>. | August 2014, <https://www.rfc-editor.org/info/rfc7336>. | |||
[SVTA] "Streaming Video Technology Alliance Home Page", | [SVTA] SVTA, "Streaming Video Technology Alliance", | |||
<https://www.svta.org/>. | <https://www.svta.org/>. | |||
Acknowledgements | ||||
The authors would like to express their gratitude to Ori Finkelman | ||||
and Kevin J. Ma for their guidance and reviews throughout the | ||||
development of this document. We would also like to thank all the | ||||
Area Directors for their review and feedback in improving this | ||||
document. | ||||
Authors' Addresses | Authors' Addresses | |||
Nir B. Sopher | Nir B. Sopher | |||
Qwilt | Qwilt | |||
6, Ha'harash | 6, Ha'harash | |||
Hod HaSharon | Hod HaSharon 4524079 | |||
4524079 | ||||
Israel | Israel | |||
Email: nir@apache.org | Email: nir@apache.org | |||
Sanjay Mishra | Sanjay Mishra | |||
Verizon | Verizon | |||
13100 Columbia Pike | 13100 Columbia Pike | |||
Silver Spring, MD 20904 | Silver Spring, MD 20904 | |||
United States of America | United States of America | |||
Email: sanjay.mishra@verizon.com | Email: sanjay.mishra@verizon.com | |||
End of changes. 70 change blocks. | ||||
229 lines changed or deleted | 231 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |