| 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. | ||||