summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc9388.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc9388.txt')
-rw-r--r--doc/rfc/rfc9388.txt551
1 files changed, 551 insertions, 0 deletions
diff --git a/doc/rfc/rfc9388.txt b/doc/rfc/rfc9388.txt
new file mode 100644
index 0000000..35e05e4
--- /dev/null
+++ b/doc/rfc/rfc9388.txt
@@ -0,0 +1,551 @@
+
+
+
+
+Internet Engineering Task Force (IETF) N. Sopher
+Request for Comments: 9388 Qwilt
+Updates: 8008 S. Mishra
+Category: Standards Track Verizon
+ISSN: 2070-1721 July 2023
+
+
+Content Delivery Network Interconnection (CDNI) Footprint Types: Country
+ Subdivision Code and Footprint Union
+
+Abstract
+
+ Open Caching architecture is a use case of Content Delivery Network
+ 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). RFC 8006 defines footprint
+ types that are used for footprint objects as part of the Metadata
+ interface (MI). The footprint types are also used for the Footprint
+ & Capabilities Advertisement interface (FCI) as defined in RFC 8008.
+ This document defines two new footprint types. The first footprint
+ type defined is an ISO 3166-2 country subdivision code. Defining
+ this country subdivision code improves granularity for delegation as
+ compared to the ISO 3166-1 country code footprint type defined in RFC
+ 8006. The ISO 3166-2 country subdivision code is also added as a new
+ entity domain type in the "ALTO Entity Domain Types" registry defined
+ in Section 7.4 of RFC 9241. The second footprint type defines a
+ footprint union to aggregate footprint objects. This allows for
+ additive semantics over the narrowing semantics defined in Appendix B
+ of RFC 8008 and therefore updates RFC 8008. The two new footprint
+ types are based on the requirements raised by Open Caching but are
+ also applicable to CDNI use cases in general.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 7841.
+
+ 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 (c) 2023 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Revised BSD License text as described in Section 4.e of the
+ Trust Legal Provisions and are provided without warranty as described
+ in the Revised BSD License.
+
+Table of Contents
+
+ 1. Introduction
+ 1.1. Terminology
+ 1.2. Requirements Language
+ 2. CDNI Metadata Additional Footprint Types
+ 2.1. CDNI Metadata "subdivisioncode" Footprint Type
+ 2.1.1. CDNI Metadata "subdivisioncode" Data Type
+ 2.1.1.1. CDNI Metadata "subdivisioncode" Data Type
+ Description
+ 2.1.2. CDNI Metadata "subdivisioncode" Footprint Type
+ Description
+ 2.2. CDNI Metadata "footprintunion" Footprint Type
+ 2.2.1. CDNI Metadata "footprintunion" Data Type
+ 2.2.2. CDNI Metadata "footprintunion" Footprint Type
+ Description
+ 3. ALTO Property Map Service Entity
+ 3.1. SUBDIVISIONCODE Domain
+ 3.1.1. Entity Domain Type
+ 3.1.2. Domain-Specific Entity Identifiers
+ 3.1.3. Hierarchy and Inheritance
+ 4. IANA Considerations
+ 4.1. CDNI Metadata Footprint Types
+ 4.2. ALTO Entity Domain Types
+ 5. Security Considerations
+ 6. References
+ 6.1. Normative References
+ 6.2. Informative References
+ Acknowledgements
+ Authors' Addresses
+
+1. Introduction
+
+ The Streaming Video Technology Alliance [SVTA] is a global
+ association that works to solve streaming video challenges in an
+ effort to improve end-user experience and adoption. The Open Caching
+ Working Group [OCWG] of the SVTA is focused on the delegation of
+ video delivery requests from commercial Content Delivery Networks
+ (CDNs) to a caching layer at the ISP's network. Open Caching
+ architecture is a specific use case of Content Delivery Network
+ Interconnection (CDNI) where the commercial CDN is the upstream CDN
+ (uCDN) and the ISP caching layer is the downstream CDN (dCDN). The
+ "Open Caching Request Routing Functional Specification" [OC-RR]
+ defines the Request Routing process and the interfaces that are
+ required for its provisioning. This document defines and registers
+ CDNI Footprint and Capabilities objects [RFC8008] that are required
+ for Open Caching Request Routing.
+
+ For consistency with other CDNI documents, this document follows the
+ CDNI convention of using "uCDN" and "dCDN" to represent the
+ commercial CDN and ISP caching layer, respectively.
+
+ This document registers two CDNI Metadata footprint types
+ (Section 7.2 of [RFC8006]) for the defined objects:
+
+ * Country subdivision code footprint type (e.g., for a dCDN
+ advertising a footprint that is specific to a state in the United
+ States of America)
+
+ * Footprint union footprint type (for a dCDN advertising a footprint
+ that consists of a group built from multiple footprint types,
+ e.g., both IPv4 and IPv6 client subnets)
+
+1.1. Terminology
+
+ The following terms are used throughout this document:
+
+ CDN: Content Delivery Network
+
+ Additionally, this document reuses the terminology defined in
+ [RFC6707], [RFC7336], [RFC8006], and [RFC8008]. Specifically, we use
+ the following CDNI abbreviations:
+
+ uCDN: upstream CDN (see [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
+
+ Section 5 of [RFC8008] describes the Footprint & Capabilities
+ Advertisement interface (FCI) Capability Advertisement object, which
+ includes an array of CDNI footprint objects. Each such object has a
+ footprint type and a footprint value, as described in Section 4.2.2.2
+ of [RFC8006]. This document defines additional footprint types,
+ beyond those mentioned in [RFC8006].
+
+2.1. CDNI Metadata "subdivisioncode" Footprint Type
+
+ Section 4.3.8 of [RFC8006] specifies the "countrycode" footprint type
+ for listing [ISO3166-1] alpha-2 codes. Using footprint objects of
+ this type, one can define an FCI Capability Advertisement object
+ footprint constraint that matches a specific country. This document
+ defines the "subdivisioncode" simple data type as well as a footprint
+ type, allowing the dCDN to define constraints that match geographic
+ areas with better granularity, specifically using the [ISO3166-2]
+ country subdivision codes.
+
+2.1.1. CDNI Metadata "subdivisioncode" Data Type
+
+ The "subdivisioncode" data type specified in Section 2.1.1.1
+ describes a country-specific subdivision using a code as defined in
+ [ISO3166-2]. The data type is added to the list of data types
+ described in Section 4.3 of [RFC8006] that are used as properties of
+ CDNI Metadata objects.
+
+2.1.1.1. CDNI Metadata "subdivisioncode" Data Type Description
+
+ 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
+ [ISO3166-1] code of the country and the second part is a string of up
+ to three alphanumeric characters.
+
+ Type: String
+
+ Example country subdivision codes:
+ * "ca-on"
+
+ * "us-ny"
+
+2.1.2. CDNI Metadata "subdivisioncode" Footprint Type Description
+
+ 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
+ of [RFC8006].
+
+ Figure 1 is an example using a footprint object of type
+ "subdivisioncode". The footprint object in this example creates a
+ constraint that matches clients in the state of either New Jersey or
+ New York, USA (ISO [ISO3166-2] codes "US-NJ" and "US-NY",
+ respectively).
+
+ {
+ "capabilities": [
+ {
+ "capability-type": <CDNI capability object type>,
+ "capability-value": <CDNI capability object>,
+ "footprints": [
+ {
+ "footprint-type": "subdivisioncode",
+ "footprint-value": ["us-nj", "us-ny"]
+ }
+ ]
+ }
+ ]
+ }
+
+ Figure 1: Illustration of Country Subdivision Code Footprint
+ Advertisement
+
+2.2. CDNI Metadata "footprintunion" Footprint Type
+
+ As described in Section 5 of [RFC8008], the FCI Capability
+ Advertisement object includes an array of CDNI footprint objects.
+ Appendix B of [RFC8008] specifies the semantics for Footprint
+ Advertisement such that multiple footprint constraints are additive.
+ This implies that the advertisement of different footprint types
+ narrows the dCDN's candidacy cumulatively.
+
+ Sections 4.3.5 and 4.3.6 of [RFC8006] specify the "ipv4cidr" and the
+ "ipv6cidr" footprint types, respectively, for listing IP unscoped
+ address blocks. Using footprint objects of these types, one can
+ define FCI Capability Advertisement object footprint constraints that
+ match either IPv4 or IPv6 clients, but not both. This is due to the
+ described "narrowing" semantic of the Footprint Objects array, as
+ described in Appendix B of [RFC8008], that prevents the usage of
+ these objects together to create a footprint constraint that matches
+ IPv4 clients with IPv6 clients.
+
+ 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
+ subnet "2001:db8::/32". Such a definition results in an empty list
+ of clients, as the constraints are additives and a client address
+ cannot be both IPv4 and IPv6.
+
+ {
+ "capabilities": [
+ {
+ "capability-type": <CDNI capability object type>,
+ "capability-value": <CDNI capability object>,
+ "footprints": [
+ {
+ "footprint-type": "ipv4cidr",
+ "footprint-value": ["192.0.2.0/24"]
+ },
+ {
+ "footprint-type": "ipv6cidr",
+ "footprint-value": ["2001:db8::/32"]
+ }
+ ]
+ }
+ ]
+ }
+
+ Figure 2: Example of Narrowing Semantic Illustrating
+ Advertisement of a Null Footprint
+
+ To overcome the described limitation and allow a list of footprint
+ constraints that match both IPv4 and IPv6 client subnets, this
+ document defines the "footprintunion" footprint type. This footprint
+ type allows the collection of multiple footprint-objects into a
+ unified object. Therefore, it resolves the above limitation and can
+ be particularly applicable to unify semantically related objects: for
+ example, an IPv4 CIDR together with an IPv6 CIDR or a country code
+ together with a country subdivision code.
+
+ Note: to avoid implementation complexity, a "footprintunion" MUST NOT
+ list any "footprintunion" as a value. As a union of unions is simply
+ a union, this syntactic restriction does not result with any semantic
+ limitation.
+
+2.2.1. CDNI Metadata "footprintunion" Data Type
+
+ The "footprintunion" data type is based on the footprint object
+ already defined in Section 4.2.2.2 of [RFC8006]. The footprint value
+ for a "footprintunion" object is an array of footprint objects, where
+ the footprint objects MUST be of any footprint type other than
+ "footprintunion".
+
+2.2.2. CDNI Metadata "footprintunion" Footprint Type Description
+
+ The "footprintunion" data type specified in Section 2.2.1 is added to
+ the data types listed as footprint types in Section 4.2.2.2 of
+ [RFC8006].
+
+ Figure 3 is an example using a footprint union combining both IPv4
+ and IPv6 client subnets.
+
+ {
+ "capabilities": [
+ {
+ "capability-type": <CDNI capability object type>,
+ "capability-value": <CDNI capability object>,
+ "footprints": [
+ {
+ "footprint-type": "footprintunion",
+ "footprint-value": [
+ {
+ "footprint-type": "ipv4cidr",
+ "footprint-value": ["192.0.2.0/24"]
+ },
+ {
+ "footprint-type": "ipv6cidr",
+ "footprint-value": ["2001:db8::/32"]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+
+ Figure 3: Example of an Advertisement of Footprint Union for
+ Multiple Classless Inter-Domain Routing (CIDR) Footprint Types
+
+ The footprint union also enables composing of footprint objects based
+ on the country code and country subdivision code. In Figure 4, we
+ create a constraint covering autonomous system 64496 within the USA
+ (ISO alpha-2 code "US" as described in [ISO3166-1]) and the Ontario
+ province of Canada (ISO code "CA-ON" as described in [ISO3166-2]).
+
+ {
+ "capabilities": [
+ {
+ "capability-type": <CDNI capability object type>,
+ "capability-value": <CDNI capability object>,
+ "footprints": [
+ {
+ "footprint-type": "asn",
+ "footprint-value": ["as64496"]
+ },
+ {
+ "footprint-type": "footprintunion",
+ "footprint-value": [
+ {
+ "footprint-type": "countrycode",
+ "footprint-value": ["us"]
+ },
+ {
+ "footprint-type": "subdivisioncode",
+ "footprint-value": ["ca-on"]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+
+ Figure 4: Example of an Advertisement of Footprint Union for Multiple
+ Geographical Footprint Types
+
+3. ALTO Property Map Service Entity
+
+ Section 6 of [RFC9241] describes how to represent footprint objects
+ 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 value as its domain-specific identifier. [RFC9241]
+ further refers to the representation of footprint objects of types
+ "asn" and "countrycode". Here, we extend this definition to the
+ "subdivisioncode" footprint type.
+
+3.1. SUBDIVISIONCODE Domain
+
+ The SUBDIVISIONCODE domain associates property values that define
+ codes for the names of the principal subdivisions.
+
+3.1.1. Entity Domain Type
+
+ The entity domain type of the SUBDIVISIONCODE domain is
+ "subdivisioncode" (in lowercase).
+
+3.1.2. Domain-Specific Entity Identifiers
+
+ 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
+ to three alphanumeric characters.
+
+3.1.3. Hierarchy and Inheritance
+
+ There is no hierarchy or inheritance for properties associated with
+ country subdivision codes.
+
+4. IANA Considerations
+
+4.1. CDNI Metadata Footprint Types
+
+ Section 7.2 of [RFC8006] specifies the "CDNI Metadata Footprint
+ Types" subregistry within the "Content Delivery Network
+ Interconnection (CDNI) Parameters" registry.
+
+ This document registers two footprint types in that subregistry as
+ defined in Sections 2.1 and 2.2:
+
+ +=================+=================================+===========+
+ | 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 | |
+ +-----------------+---------------------------------+-----------+
+
+ Table 1: Additions to the CDNI Metadata Footprint Types
+ Subregistry
+
+4.2. ALTO Entity Domain Types
+
+ Section 12.3 of [RFC9240] creates the "ALTO Entity Domain Types"
+ subregistry within the "Application-Layer Traffic Optimization (ALTO)
+ Protocol" registry.
+
+ This document registers an additional ALTO Entity Domain Type within
+ that subregistry:
+
+ +=================+============+=============+==========+=========+
+ | Identifier | Entity | Hierarchy | Media | Mapping |
+ | | Identifier | and | Type of | to ALTO |
+ | | Encoding | Inheritance | Defining | Address |
+ | | | | Resource | Type |
+ +=================+============+=============+==========+=========+
+ | subdivisioncode | See RFC | None | None | false |
+ | | 9388, | | | |
+ | | Section | | | |
+ | | 3.1.2 | | | |
+ +-----------------+------------+-------------+----------+---------+
+
+ Table 2: Addition to the ALTO Entity Domain Types Subregistry
+
+5. Security Considerations
+
+ This specification is in accordance with "Content Delivery Network
+ Interconnection (CDNI) Metadata" and "Content Delivery Network
+ Interconnection (CDNI) Request Routing: Footprint and Capabilities
+ Semantics". As such, it is subject to the security and
+ confidentiality considerations as defined in Section 8 of [RFC8006]
+ and in Section 7 of [RFC8008], respectively.
+
+6. References
+
+6.1. Normative References
+
+ [ISO3166-1]
+ ISO, "Codes for the representation of names of countries
+ and their subdivisions -- Part 1: Country code",
+ ISO 3166-1:2020, Edition 4, August 2020,
+ <https://www.iso.org/standard/72482.html>.
+
+ [ISO3166-2]
+ ISO, "Codes for the representation of names of countries
+ and their subdivisions -- Part 2: Country subdivision
+ code", ISO 3166-2:2020, Edition 4, August 2020,
+ <https://www.iso.org/standard/72483.html>.
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <https://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC8006] Niven-Jenkins, B., Murray, R., Caulfield, M., and K. Ma,
+ "Content Delivery Network Interconnection (CDNI)
+ Metadata", RFC 8006, DOI 10.17487/RFC8006, December 2016,
+ <https://www.rfc-editor.org/info/rfc8006>.
+
+ [RFC8008] Seedorf, J., Peterson, J., Previdi, S., van Brandenburg,
+ R., and K. Ma, "Content Delivery Network Interconnection
+ (CDNI) Request Routing: Footprint and Capabilities
+ Semantics", RFC 8008, DOI 10.17487/RFC8008, December 2016,
+ <https://www.rfc-editor.org/info/rfc8008>.
+
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+ 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+ May 2017, <https://www.rfc-editor.org/info/rfc8174>.
+
+ [RFC9240] Roome, W., Randriamasy, S., Yang, Y., Zhang, J., and K.
+ Gao, "An Extension for Application-Layer Traffic
+ Optimization (ALTO): Entity Property Maps", RFC 9240,
+ DOI 10.17487/RFC9240, July 2022,
+ <https://www.rfc-editor.org/info/rfc9240>.
+
+ [RFC9241] Seedorf, J., Yang, Y., Ma, K., Peterson, J., and J. Zhang,
+ "Content Delivery Network Interconnection (CDNI) Footprint
+ and Capabilities Advertisement Using Application-Layer
+ Traffic Optimization (ALTO)", RFC 9241,
+ DOI 10.17487/RFC9241, July 2022,
+ <https://www.rfc-editor.org/info/rfc9241>.
+
+6.2. Informative References
+
+ [OC-RR] Finkelman, O., Ed., Zurat, B., Sahar, D., Klein, E.,
+ Hofmann, J., Ma, K.J., Stock, M., Mishra, S., and Y.
+ Gressel, "Open Caching - Request Routing Functional
+ Specification", Version 2.0, 15 January 2021,
+ <https://www.svta.org/product/open-cache-request-routing-
+ functional-specification/>.
+
+ [OCWG] SVTA, "Open Caching", <https://opencaching.svta.org/>.
+
+ [RFC6707] Niven-Jenkins, B., Le Faucheur, F., and N. Bitar, "Content
+ Distribution Network Interconnection (CDNI) Problem
+ Statement", RFC 6707, DOI 10.17487/RFC6707, September
+ 2012, <https://www.rfc-editor.org/info/rfc6707>.
+
+ [RFC7336] Peterson, L., Davie, B., and R. van Brandenburg, Ed.,
+ "Framework for Content Distribution Network
+ Interconnection (CDNI)", RFC 7336, DOI 10.17487/RFC7336,
+ August 2014, <https://www.rfc-editor.org/info/rfc7336>.
+
+ [SVTA] SVTA, "Streaming Video Technology Alliance",
+ <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
+
+ Nir B. Sopher
+ Qwilt
+ 6, Ha'harash
+ Hod HaSharon 4524079
+ Israel
+ Email: nir@apache.org
+
+
+ Sanjay Mishra
+ Verizon
+ 13100 Columbia Pike
+ Silver Spring, MD 20904
+ United States of America
+ Email: sanjay.mishra@verizon.com