rfc9388xml2.original.xml   rfc9388.xml 
<?xml version="1.0" encoding="US-ASCII"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?> <!DOCTYPE rfc [
<?rfc tocompact="yes"?> <!ENTITY nbsp "&#160;">
<?rfc tocdepth="4"?> <!ENTITY zwsp "&#8203;">
<?rfc tocindent="yes"?> <!ENTITY nbhy "&#8209;">
<?rfc symrefs="yes"?> <!ENTITY wj "&#8288;">
<?rfc sortrefs="yes"?> ]>
<?rfc comments="yes"?>
<?rfc inline="yes"?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-cdni-additio
<?rfc compact="yes"?> nal-footprint-types-11" number="9388" submissionType="IETF" category="std" conse
<rfc category="std" docName="draft-ietf-cdni-additional-footprint-types-11" upda nsus="true" updates="8008" obsoletes="" ipr="trust200902" xml:lang="en" tocInclu
tes='8008' ipr="trust200902"> de="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
<front>
<title abbrev="CDNI Additional Footprint Types"> <!-- xml2rfc v2v3 conversion 3.16.0 -->
Content Delivery Network Interconnection (CDNI) Footprint Types: S <front>
ubdivision Code and Footprint Union <title abbrev="CDNI Additional Footprint Types">Content Delivery Network Int
</title> erconnection (CDNI) Footprint Types: Country Subdivision Code and Footprint Unio
<author fullname="Nir B. Sopher" initials="N." surname="Sopher"> n</title>
<organization> <seriesInfo name="RFC" value="9388"/>
Qwilt <author fullname="Nir B. Sopher" initials="N." surname="Sopher">
</organization> <organization>Qwilt</organization>
<address> <address>
<postal> <postal>
<street> <street>6, Ha'harash</street>
6, Ha'harash <city>Hod HaSharon</city>
</street> <region></region>
<city> <code>4524079</code>
Hod HaSharon <country>Israel</country>
</city> </postal>
<region> <email>nir@apache.org</email>
</region> </address>
<code> </author>
4524079
</code>
<country>
Israel
</country>
</postal>
<email>
nir@apache.org
</email>
</address>
</author>
<author fullname="Sanjay Mishra" initials="S." surname="Mishra"> <author fullname="Sanjay Mishra" initials="S." surname="Mishra">
<organization>Verizon</organization> <organization>Verizon</organization>
<address> <address>
<postal> <postal>
<street>13100 Columbia Pike</street> <street>13100 Columbia Pike</street>
<city>Silver Spring</city> <city>Silver Spring</city>
<region>MD</region> <region>MD</region>
<code>20904</code> <code>20904</code>
<country>United States of America</country>
<country>USA</country>
</postal> </postal>
<phone/>
<phone></phone>
<email>sanjay.mishra@verizon.com</email> <email>sanjay.mishra@verizon.com</email>
</address> </address>
</author> </author>
<date year="2023" month="July"/>
<area>art</area>
<workgroup>cdni</workgroup>
<date /> <abstract>
<abstract> <t>
<t> Open Caching architecture is a use case of Content Delivery Network
Open Caching architecture is a use case of Content Delivery Netw Interconnection (CDNI) in which the commercial Content Delivery Network (CDN)
orks Interconnection (CDNI) in which the is the upstream CDN (uCDN) and the ISP caching layer serves as the downstream
commercial Content Delivery Network (CDN) is the upstream CDN (u CDN (dCDN). RFC 8006 defines footprint types that are used for footprint
CDN) and the ISP caching layer serves as the objects as part of the Metadata interface (MI). The footprint types are also
downstream CDN (dCDN). This document supplements the CDNI Metada used for the Footprint &amp; Capabilities Advertisement interface (FCI) as defin
ta Footprint Types defined in RFC 8006. ed
The Footprint Types defined in this document can be used for Foo in RFC 8008. This document defines two new footprint types. The first
tprint objects as part of footprint type defined is an ISO 3166-2 country subdivision code. Defining this
the Metadata interface (MI) defined in RFC 8006 and for country
the Footprint &amp; Capabilities Advertisement interface (FCI) d subdivision code improves granularity for delegation as compared to the ISO 3166
efined in RFC 8008. By defining the footprint union Footprint Type, -1 country
this document updates RFC 8008, allowing an additive semantic ov code footprint type defined in RFC 8006. The ISO 3166-2 country subdivision
er the narrowing semantics defined in Appendix B of RFC 8008. code is also added as a new entity domain type in the "ALTO Entity Domain
This document also supplements RFC 9241 with relevant ALTO entit Types" registry defined in Section 7.4 of RFC 9241. The second footprint
y domain types. type defines a footprint union to aggregate footprint objects. This allows for
The defined Footprint Types are derived from requirements raised additive semantics over the narrowing semantics defined in Appendix B of
by Open Caching but are also applicable to CDNI use cases in general. RFC 8008 and therefore updates RFC 8008. The two new footprint types are based o
</t> n the
</abstract> requirements raised by Open Caching but are also applicable to CDNI use cases
in general.
</t>
</abstract>
<note title="Requirements Language"> </front>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL <middle>
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", <section numbered="true" toc="default">
"MAY", and "OPTIONAL" in this document are to be interpreted as <name>Introduction</name>
described in BCP 14 <xref target="RFC2119"></xref> <t>The Streaming Video Technology Alliance <xref target="SVTA"
<xref target="RFC8174"></xref> when, and only when, they format="default"/> is a global association that works to solve streaming
appear in all capitals, as shown here.</t> video challenges in an effort to improve end-user experience and
</note> adoption. The Open Caching Working Group <xref target="OCWG"
</front> format="default"/> of the SVTA is focused on the delegation of video
<middle> delivery requests from commercial Content Delivery Networks (CDNs) to a
<section title="Introduction"> caching layer at the ISP's network. Open Caching architecture is a
<t> specific use case of Content Delivery Network Interconnection (CDNI)
The Streaming Video Technology Alliance <xref target="SVTA" form where the commercial CDN is the upstream CDN (uCDN) and the ISP caching
at="default" /> is a global association layer is the downstream CDN (dCDN). The <xref target="OC-RR"
that works to solve streaming video challenges in an effort to i format="default">"Open Caching Request Routing Functional Specification"</
mprove end-user experience xref>
and adoption. The Open Caching Working Group <xref target="OCWG" defines the Request Routing process and the interfaces that are required
format="default" /> of the for its provisioning. This document defines and registers CDNI
SVTA is focused on the delegation Footprint and Capabilities objects <xref target="RFC8008"
of video delivery requests from commercial Content Delivery Netw format="default"/> that are required for Open Caching Request Routing.
orks (CDNs) to a caching layer at the ISP's network. </t>
Open Caching architecture is a specific use case of Content Deli <t>For consistency with other CDNI documents, this document follows the
very Networks Interconnection (CDNI) CDNI convention of using "uCDN" and "dCDN" to represent the commercial CDN
where the commercial CDN is the and ISP
upstream CDN (uCDN) and the ISP caching layer is the downstream caching layer, respectively.
CDN (dCDN). </t>
The <xref target="OC-RR"> Open Caching Request Routing Specifica <t>This document registers two CDNI Metadata footprint types (<xref
tion </xref> target="RFC8006" sectionFormat="of" section="7.2"/>) for the defined
defines the Request Routing process and the interfaces that are objects:
required for its provisioning. </t>
This document defines and registers CDNI Footprint and Capabilit <ul spacing="normal">
ies objects <xref target="RFC8008" /> <li>Country subdivision code footprint type (e.g., for a dCDN advertisin
that are required for Open Caching Request Routing. g a
</t> footprint that is specific to a state in the United States of
<t> America)</li>
For consistency with other CDNI documents this document follows <li>Footprint union footprint type (for a dCDN advertising a footprint
the that consists of a group built from multiple footprint types, e.g.,
CDNI convention of uCDN (upstream CDN) and dCDN (downstream CDN) both IPv4 and IPv6 client subnets)</li>
to represent the commercial CDN and ISP caching </ul>
layer respectively. <section anchor="terminology" numbered="true" toc="default">
</t> <name>Terminology</name>
<t> <t>The following terms are used throughout this document:</t>
This document registers two CDNI Metadata Footprint Types (secti <dl spacing="normal" newline="false">
on 7.2 of <dt>CDN:</dt>
<xref target="RFC8006" />) for the defined objects: <dd>Content Delivery Network</dd>
<list style="symbols"> </dl>
<t> <t>Additionally, this document reuses the terminology defined in <xref
Subdivision Code Footprint Type (e.g., for a dCDN advert target="RFC6707" format="default"/>, <xref target="RFC7336"
ising a footprint that is specific to format="default"/>, <xref target="RFC8006" format="default"/>, and
a State in the USA) <xref target="RFC8008" format="default"/>. Specifically, we use the
</t> following CDNI abbreviations:
<t> </t>
Union Footprint Type (for a dCDN advertising a footprint <dl spacing="normal" newline="false">
that consists of a group built <dt>uCDN:</dt>
from multiple Footprints Types, e.g., both IPv4 and IPv6 <dd>upstream CDN (see <xref target="RFC7336" format="default"/>)</dd>
client subnets) <dt>dCDN:</dt>
</t> <dd>downstream CDN (see <xref target="RFC7336"
</list> format="default"/>)</dd>
</t> </dl>
<section anchor="terminology" title="Terminology">
<t>
The following terms are used throughout this document:
<list style="symbols">
<t>
CDN - Content Delivery Network
</t>
</list>
</t>
<t>
Additionally, this document reuses the terminology defined i
n
<xref target="RFC6707" />,
<xref target="RFC7336" />,
<xref target="RFC8006" />, and
<xref target="RFC8008" />.
Specifically, we use the following CDNI acronyms:
<list style="symbols">
<t>
uCDN, dCDN - Upstream CDN and Downstream CDN respect
ively (see
<xref target="RFC7336" />
)
</t>
</list>
</t>
</section>
</section> </section>
<section anchor="cdni-metadata-additional-footprint-types" title="CDNI M <section anchor="requirements-lang" numbered="true" toc="default">
etadata Additional Footprint Types"> <name>Requirements Language</name>
<t> <t>
Section 5 of <xref target="RFC8008" /> describes the Footprint & The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
amp; Capabilities Advertisement interface (FCI) Capability Advertisement Object, "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
which NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
includes an array of CDNI Footprint Objects. Each such object h "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
as a footprint-type and "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are
a footprint-value, as described in section 4.2.2.2 of <xref targ to be interpreted as described in BCP&nbsp;14 <xref target="RFC2119"/>
et="RFC8006" />. <xref target="RFC8174"/> when, and only when, they appear in all capitals,
This document defines additional footprint types, beyond those m as shown here.
entioned in CDNI metadata </t>
<xref target="RFC8006" />. </section>
</section>
<section anchor="cdni-metadata-additional-footprint-types" numbered="true" t
oc="default">
<name>CDNI Metadata Additional Footprint Types</name>
<t><xref target="RFC8008" sectionFormat="of" section="5"/> describes the
Footprint &amp; 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 <xref target="RFC8006" sectionFormat="of"
section="4.2.2.2"/>. This document defines additional footprint types,
beyond those mentioned in <xref target="RFC8006"
format="default"/>.
</t>
<section anchor="cdni-metadata-subdivisioncode-footprint-type" numbered="t
rue" toc="default">
<name>CDNI Metadata "subdivisioncode" Footprint Type</name>
<t><xref target="RFC8006" sectionFormat="of" section="4.3.8"/>
specifies the "countrycode" footprint type for listing <xref
target="ISO3166-1" format="default"/> 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 <xref
target="ISO3166-2" format="default"/> country subdivision codes.
</t>
<section anchor="cdni-metadata-subdivisioncode-data-type" numbered="true
" toc="default">
<name>CDNI Metadata "subdivisioncode" Data Type</name>
<t>The "subdivisioncode" data type specified in <xref
target="cdni-metadata-subdivisioncode-data-type-description"
format="default"/> describes a country-specific subdivision using
a code as defined in <xref target="ISO3166-2" format="default"/>. The
data type
is added to the list of data types described in <xref
target="RFC8006" sectionFormat="of" section="4.3"/> that are used as
properties of CDNI Metadata objects.
</t>
<section anchor="cdni-metadata-subdivisioncode-data-type-description"
numbered="true" toc="default">
<name>CDNI Metadata "subdivisioncode" Data Type Description</name>
<t>An <xref target="ISO3166-2" format="default"/> code in
lowercase. Each code consists of two parts separated by a hyphen.
As per <xref target="ISO3166-2" format="default"/>, the first part
is the <xref target="ISO3166-1" format="default"/> code of the
country and the second part is a string of up to three
alphanumeric characters.
</t> </t>
<section anchor="cdni-metadata-subdivisioncode-footprint-type" title <dl spacing="normal" newline="false">
="CDNI Metadata Subdivision Code Footprint Type"> <dt>Type:</dt>
<t> <dd>String</dd>
Section 4.3.8 of <xref target="RFC8006" /> <dt>Example country subdivision codes:</dt>
specifies the "Country Code" footprint type <dd><ul>
for listing <xref target="ISO3166-1"/> alpha-2 codes. Using <li>"ca-on"</li>
Footprint Objects of this type, one can define an <li>"us-ny"</li>
FCI Capability Advertisement Object footprint constraint tha </ul></dd>
t matches a specific country. </dl>
Herein is defined the subdivisioncode simple data type, as w </section>
ell as a footprint type </section>
allowing the dCDN to define constraints matching geographic <section anchor="cdni-metadata-subdivisioncode-footprint-type-descriptio
areas n" numbered="true" toc="default">
with better granularity, specifically using the <xref target <name>CDNI Metadata "subdivisioncode" Footprint Type
="ISO3166-2"/> Country Subdivision codes. Description</name>
</t> <t>The "subdivisioncode" simple data type specified in <xref
<section anchor="cdni-metadata-subdivisioncode-data-type" title= target="cdni-metadata-subdivisioncode-data-type" format="default"/>
"CDNI Metadata Subdivision Code Data Type"> is added to the data types listed as footprint types in <xref
<t> target="RFC8006" sectionFormat="of" section="4.2.2.2"/>.
The "subdivisioncode" data type specified in </t>
<xref target="cdni-metadata-subdivisioncode-data-type-de <t><xref target="subdivision-code-footprint" format="default"/> is
scription" />, an example using a footprint object of type "subdivisioncode". The
describes a country specific subdivision using an <xref footprint object in this example creates a constraint that matches
target="ISO3166-2"/> code. clients in the state of either New Jersey or New York, USA (ISO <xref
The data type is added to the list of data types descri target="ISO3166-2" format="default"/> codes "US-NJ" and "US-NY",
bed in section 4.3 of respectively).
<xref target="RFC8006" /> that are used as properties of </t>
CDNI Metadata objects.
</t> <figure anchor="subdivision-code-footprint">
<section anchor="cdni-metadata-subdivisioncode-data-type-des <name>Illustration of Country Subdivision Code Footprint
cription" title="CDNI Metadata Subdivision Code Data Type Description"> Advertisement</name>
<t> <artwork name="" type="" align="left" alt=""><![CDATA[
An <xref target="ISO3166-2"/> code in lowercase. Each co
de consists of two parts separated by a hyphen.
As per <xref target="ISO3166-2"/>, the first part is the
<xref target="ISO3166-1"/> code of the country,
and the second part is a string of up to three alpha
numeric characters.
</t>
<t>
<list style="empty">
<t>
Type: String
</t>
<t>
Example Subdivision Codes:
</t>
<t>"ca-on"</t>
<t>"us-ny"</t>
</list>
</t>
</section>
</section>
<section anchor="cdni-metadata-subdivisioncode-footprint-type-de
scription" title="CDNI Metadata Subdivision Code Footprint Type Description">
<t>
The "subdivisioncode" simple data type specified in
<xref target="cdni-metadata-subdivisioncode-data-type" /
>, is added
to the data types listed as footprint types in section 4
.2.2.2 of
<xref target="RFC8006" />.
</t>
<t>
Below is an example using a footprint object of type "su
bdivisioncode".
The Footprint Object in this example creates a constrain
t matching clients in the
states of New Jersey and New York, USA (ISO <xref target
="ISO3166-2"/> codes "US-NJ" and "US-NY" respectively).
</t>
<figure title="Illustration of subdivision-code footprint ad
vertisement">
<artwork>
<![CDATA[
{ {
"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"]
} }
] ]
} }
] ]
} }
]]> ]]></artwork>
</artwork> </figure>
</figure>
</section>
</section> </section>
<section anchor="cdni-metadata-footprint-union-footprint-type" title </section>
="CDNI Metadata Footprint Union Footprint Type"> <section anchor="cdni-metadata-footprint-union-footprint-type" numbered="t
<t> rue" toc="default">
As described in section 5 of <xref target="RFC8008" />, <name>CDNI Metadata "footprintunion" Footprint Type</name>
the FCI Capability Advertisement Object includes an array of <t>As described in <xref target="RFC8008" sectionFormat="of"
CDNI Footprint Objects. section="5"/>, the FCI Capability Advertisement object includes an
Appendix B of <xref target="RFC8008" /> specifies the array of CDNI footprint objects. Appendix B of <xref target="RFC8008"
semantics of a Footprint Objects array as a multiple, additi format="default"/> specifies the semantics for Footprint Advertisement
ve, footprint constraints. such that multiple footprint constraints are additive. This implies
This implies that the advertisement of different footprint t that the advertisement of different footprint types narrows the dCDN's
ypes narrows candidacy cumulatively.
the dCDN's candidacy cumulatively. </t>
</t> <t>Sections <xref target="RFC8006" section="4.3.5"
<t> sectionFormat="bare"/> and <xref target="RFC8006" section="4.3.6"
Sections 4.3.5 and 4.3.6 of <xref target="RFC8006" /> specif sectionFormat="bare"/> of <xref target="RFC8006"/> specify the "ipv4cidr
y the "IPv4CIDR" and "IPv6CIDR" " and the "ipv6cidr" footprint types, respectively, for listing IP
footprint types, respectively, for listing IP unscoped addre unscoped address blocks. Using footprint objects of these types, one
ss blocks. Using Footprint Objects of these can define FCI Capability Advertisement object footprint constraints
types, one can define FCI Capability Advertisement Object fo that match either IPv4 or IPv6 clients, but not both. This is due to the
otprint constraints that match IPv4 described "narrowing"
or IPv6 clients. However, the described "narrowing" semantic semantic of the Footprint Objects array, as described in Appendix B of
of the Footprint Objects array, as described <xref target="RFC8008" format="default"/>, that prevents the usage of th
in Appendix B of <xref target="RFC8008" />, prevents ese
the usage of these objects together to create a footprint co objects together to create a footprint constraint that matches IPv4
nstraint that matches IPv4 clients with IPv6 clients.
clients together with IPv6 clients. </t>
</t>
<t> <t><xref target="fig2" format="default"/> is an example attempting
Below is an example for an attempt at creating an object mat to create an object that matches IPv4 clients of subnet "192.0.2.0/24"
ching as well as IPv6 clients of subnet "2001:db8::/32". Such a definition
IPv4 clients of subnet "192.0.2.0/24", as well as IPv6 clien results in an empty list of clients, as the constraints are additives
ts of subnet "2001:db8::/32". and a client address cannot be both IPv4 and IPv6.
Such a definition results in an empty list of clients, as th </t>
e constraints are additives and
a client address cannot be both IPv4 and IPv6. <figure anchor="fig2">
</t> <name>Example of Narrowing Semantic Illustrating Advertisement of a
<figure title="Example of narrowing semantic illustrating advert Null Footprint</name>
isement of a null footprint"> <artwork name="" type="" align="left" alt=""><![CDATA[
<artwork>
<![CDATA[
{ {
"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": "ipv4cidr", "footprint-type": "ipv4cidr",
"footprint-value": ["192.0.2.0/24"] "footprint-value": ["192.0.2.0/24"]
}, },
{ {
"footprint-type": "ipv6cidr", "footprint-type": "ipv6cidr",
"footprint-value": ["2001:db8::/32"] "footprint-value": ["2001:db8::/32"]
} }
] ]
} }
] ]
} }
]]> ]]></artwork>
</artwork> </figure>
</figure>
<t> <t>To overcome the described limitation and allow a list of footprint
To overcome the described limitation and allow a list of foo constraints that match both IPv4 and IPv6 client subnets, this
tprint constraints that document defines the "footprintunion" footprint type. This footprint
match both IPv4 and IPv6 client subnets, this document defin type allows the collection of multiple footprint-objects into a
es the "footprintunion" footprint type. unified object. Therefore, it resolves the above limitation and can be
This footprint type allows the collection of multiple footpr particularly applicable to unify semantically related objects: for
int-objects into a unified object. example, an IPv4 CIDR together with an IPv6 CIDR or a country code
Therefore it resolves the above limitation and can be partic together with a country subdivision code.
ularly applicable to unify semantically related objects, </t>
for example, an ipv4cidr together with an ipv6cidr or a coun <t>Note: to avoid implementation complexity, a "footprintunion"
trycode together with a subdivisoncode. <bcp14>MUST NOT</bcp14> list any "footprintunion" as a value. As a
</t> union of unions is simply a union, this syntactic restriction does not
<t> result with any semantic limitation.
Note: to avoid implementation complexity, a "footprintunion" </t>
MUST NOT list any "footprintunion" as a value. <section anchor="cdni-metadata-footprint-union-data-type" numbered="true
As a union of unions is simply a union, this syntactic restr " toc="default">
iction does not result with any semantic limitation. <name>CDNI Metadata "footprintunion" Data Type</name>
</t> <t>The "footprintunion" data type is based on the footprint object
<section anchor="cdni-metadata-footprint-union-data-type" title= already defined in <xref target="RFC8006" sectionFormat="of"
"CDNI Metadata Footprint Union Data Type"> section="4.2.2.2"/>. The footprint value for a "footprintunion"
<t> object is an array of footprint objects, where the footprint objects
The "footprintunion" data type is based on the Footprint <bcp14>MUST</bcp14> be of any footprint type other than
Object already defined in "footprintunion".
section 4.2.2.2 of <xref target="RFC8006" />. The footpr </t>
int-value for a "footprintunion" object </section>
is an array of Footprint objects, where the Footprint ob <section anchor="cdni-metadata-footprint-union-footprint-type-descriptio
jects MUST be of any Footprint Type n" numbered="true" toc="default">
other than "footprintunion". <name>CDNI Metadata "footprintunion" Footprint Type
</t> Description</name>
</section> <t>The "footprintunion" data type specified in <xref
<section anchor="cdni-metadata-footprint-union-footprint-type-de target="cdni-metadata-footprint-union-data-type" format="default"/>
scription" title="CDNI Metadata FootprintUnion Footprint Type Description"> is added to the data types listed as footprint types in <xref
<t> target="RFC8006" sectionFormat="of" section="4.2.2.2"/>.
The "footprintunion" data type specified in <xref target </t>
="cdni-metadata-footprint-union-data-type" />, <t><xref target="fig3" format="default"/> is an example using a
is added to the data types listed as footprint types in footprint union combining both IPv4 and IPv6 client subnets.
section 4.2.2.2 of <xref target="RFC8006" />. </t>
</t>
<t> <figure anchor="fig3">
Below is an example using a footprint object of type "fo <name>Example of an Advertisement of Footprint Union for Multiple
otprintunion" combining both IPv4 and IPv6 client subnets. Classless Inter-Domain Routing (CIDR) Footprint Types</name>
</t> <artwork name="" type="" align="left" alt=""><![CDATA[
<figure title="Example of an advertisement of footprint unio
n for multiple CIDR footprint types">
<artwork>
<![CDATA[
{ {
"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 line 333 skipping to change at line 350
{ {
"footprint-type": "ipv6cidr", "footprint-type": "ipv6cidr",
"footprint-value": ["2001:db8::/32"] "footprint-value": ["2001:db8::/32"]
} }
] ]
} }
] ]
} }
] ]
} }
]]> ]]></artwork>
</artwork> </figure>
</figure>
<t> <t>The footprint union also enables composing of footprint
The footprint union also enables composing a countrycode and objects based on the country code and country subdivision code. In <xr
subdivisioncode based footprint objects. ef
In the example below target="fig4" format="default"/>, we create a constraint covering
we create a constraint covering autonomous system 64496 with autonomous system 64496 within the USA (ISO alpha-2 code "US" as descr
in the US (ISO <xref target="ISO3166-1"/> alpha-2 code "US") ibed in <xref target="ISO3166-1"
and the Ontario province of Canada (ISO <xref target="ISO316 format="default"/>) and the Ontario province of
6-2"/> code "CA-ON"). Canada (ISO code "CA-ON" as described in <xref target="ISO3166-2" form
</t> at="default"/>).
<figure title="Example of an advertisement of footprint unio </t>
n for multiple geographical footprint types">
<artwork> <figure anchor="fig4">
<![CDATA[ <name>Example of an Advertisement of Footprint Union for Multiple
Geographical Footprint Types</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
{ {
"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 line 372 skipping to change at line 392
{ {
"footprint-type": "subdivisioncode", "footprint-type": "subdivisioncode",
"footprint-value": ["ca-on"] "footprint-value": ["ca-on"]
} }
] ]
} }
] ]
} }
] ]
} }
]]> ]]></artwork>
</artwork> </figure>
</figure>
</section>
</section>
</section>
<section anchor="cdni-metadata-alto-property-map-service-entity" title="
ALTO Property Map Service Entity">
<t>
Section 6 of <xref target="RFC9241" /> describes how to repre
sent 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. <x
ref target="RFC9241" /> further refers to the representation of footprint object
s
of types "asn" and "countrycode". Here we extend this definit
ion to the "subdivisioncode" footprint-type.
</t>
<section anchor="cdni-metadata-subdivisioncode-alto-property-map
-service-entity-domain" title="SUBDIVISIONCODE Domain">
<t>
The SUBDIVISIONCODE domain associates property values that d
efines codes for the names of the principal subdivisions.
</t>
<section anchor="cdni-metadata-subdivisioncode-alto-property-map
-service-entity-domain-type" title="Entity Domain Type">
<t>
The entity domain type of the SUBDIVISIONCODE domain is "sub
divisioncode" (in lowercase).
</t>
</section>
<section anchor="cdni-metadata-subdivisioncode-alto-property-map
-service-entity-domain-identifiers" title="Domain-Specific Entity Identifiers">
<t>
The entity identifier of an entity in a SUBDIVISIONCODE is e
ncoded as an alpha-2 <xref target="ISO3166-1"/> Country Code, followed by a sep
arator
and up to three alphanumeric characters.
</t>
</section>
<section anchor="cdni-metadata-subdivisioncode-alto-property-map
-service-entity-hierarchy-and-inheritance" title="Hierarchy and Inheritance">
<t>
There is no hierarchy or inheritance for properties associat
ed with subdivision codes.
</t>
</section>
</section>
</section>
<section anchor="IANA" title="IANA Considerations">
<section anchor="IANA.cdni.metadata.footprint.types" title="CDNI Met
adata Footprint Types">
<t>
Section 7.2 of <xref target="RFC8006" /> specifies
the "CDNI Metadata Footprint Types" subregistry
within the "Content Delivery Network Interconnection (CDNI)
Parameters" registry.
</t>
<t>
This document requests the registration of the two additiona
l Footprint Types
as defined in
<xref target="cdni-metadata-subdivisioncode-footprint-type"
/>
and
<xref target="cdni-metadata-footprint-union-footprint-type"
/>
:
</t>
<texttable>
<ttcol align="left">
Footprint Type
</ttcol>
<ttcol align="left">
Description
</ttcol>
<ttcol align="left">
Reference
</ttcol>
<c>
subdivisioncode
</c>
<c>
<xref target="ISO3166-2"/> ISO 3166-2 country subdivisio
n 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.
</c>
<c>
RFCthis
</c>
<c>
footprintunion
</c>
<c>
A combination of other Footprint Objects
</c>
<c>
RFCthis
</c>
</texttable>
<t>
[RFC Editor: Please replace RFCthis with the published RFC
number for this document.]
</t>
</section>
<section anchor="IANA.ALTO.entity.domain.types" title="ALTO Entity
Domain Types">
<t>
Section 12.3 of <xref target="RFC9240" /> creates
the "ALTO Entity Domain Types" registry.
</t>
<t>
This document requests the registration of an additional ALT
O Entity Domain Types:
</t>
<texttable>
<ttcol align="left">
Identifier
</ttcol>
<ttcol align="left">
Entity Identifier Encoding
</ttcol>
<ttcol align="left">
Hierarchy and Inheritance
</ttcol>
<ttcol align="left">
Media Type of Defining Resource
</ttcol>
<ttcol align="left">
Mapping to ALTO Address Type
</ttcol>
<c>
subdivisioncode
</c>
<c>
See RFCthis, <xref target="cdni-metadata-subdivisioncode
-alto-property-map-service-entity-domain-identifiers" />
</c>
<c>
None
</c>
<c>
None
</c>
<c>
false
</c>
</texttable> </section>
<t> </section>
[RFC Editor: Please replace RFCthis with the published RFC </section>
number for this document.] <section anchor="cdni-metadata-alto-property-map-service-entity" numbered="t
</t> rue" toc="default">
<name>ALTO Property Map Service Entity</name>
<t><xref target="RFC9241" sectionFormat="of" section="6"/> 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. <xref target="RFC9241" format="default"/> further refers to
the representation of footprint objects of types "asn" and
"countrycode". Here, we extend this definition to the "subdivisioncode"
footprint type.
</t>
<section anchor="cdni-metadata-subdivisioncode-alto-property-map-service-e
ntity-domain" numbered="true" toc="default">
<name>SUBDIVISIONCODE Domain</name>
</section> <t>The SUBDIVISIONCODE domain associates property values that define cod
es for the names of the principal subdivisions.
</t>
<section anchor="cdni-metadata-subdivisioncode-alto-property-map-service
-entity-domain-type" numbered="true" toc="default">
<name>Entity Domain Type</name>
<t>
The entity domain type of the SUBDIVISIONCODE domain is "sub
divisioncode" (in lowercase).
</t>
</section> </section>
<section anchor="Security" title="Security Considerations"> <section anchor="cdni-metadata-subdivisioncode-alto-property-map-service
<t> -entity-domain-identifiers" numbered="true" toc="default">
This specification is in accordance with the CDNI Metadata and t <name>Domain-Specific Entity Identifiers</name>
he CDNI Request Routing: <t>The entity identifier of an entity in a SUBDIVISIONCODE is
Footprint and Capabilities Semantics. As such, it is subject to encoded as an alpha-2 <xref target="ISO3166-1" format="default"/>
the security and confidentiality considerations as country code, followed by a separator and up to three alphanumeric
defined in Section 8 of characters.
<xref target="RFC8006" /> </t>
and in Section 7 of
<xref target="RFC8008" />
respectively.
</t>
</section> </section>
<section anchor="Acknowledgements" title="Acknowledgements"> <section anchor="cdni-metadata-subdivisioncode-alto-property-map-service
<t> -entity-hierarchy-and-inheritance" numbered="true" toc="default">
The authors would like to express their gratitude to Ori Finkelm <name>Hierarchy and Inheritance</name>
an and <t> There is no hierarchy or inheritance for properties associated
Kevin J. Ma for their guidance and reviews throughout the develo with country subdivision codes.
pment of this </t>
document. We would also like to thank all the Area Directors for
their review and feedback in improving this document.
</t>
</section> </section>
</middle> </section>
<back> </section>
<references title="Normative References"> <section anchor="IANA" numbered="true" toc="default">
<?rfc include="reference.RFC.2119"?> <name>IANA Considerations</name>
<?rfc include="reference.RFC.8006"?> <section anchor="IANA.cdni.metadata.footprint.types" numbered="true" toc="
<?rfc include="reference.RFC.8008"?> default">
<?rfc include="reference.RFC.8174"?> <name>CDNI Metadata Footprint Types</name>
<?rfc include="reference.RFC.9240"?> <t><xref target="RFC8006" sectionFormat="of" section="7.2"/> specifies
<?rfc include="reference.RFC.9241"?> the "CDNI Metadata Footprint Types" subregistry within the "Content
<reference anchor="ISO3166-1" target="https://www.iso.org/standard/7 Delivery Network Interconnection (CDNI) Parameters" registry.
2482.html"> </t>
<front> <t>This document registers two footprint types in that subregistry as
<title> defined in Sections <xref
Codes for the representation of names of countries and their target="cdni-metadata-subdivisioncode-footprint-type"
subdivisions -- Part 1: Country code format="counter"/> and <xref
</title> target="cdni-metadata-footprint-union-footprint-type"
<author> format="counter"/>:
<organization>ISO</organization> </t>
</author>
<date month="08" year="2020"/>
</front>
<seriesInfo name="ISO" value="3166-1:2020"/>
<seriesInfo name="Edition" value="4"/>
</reference>
<reference anchor="ISO3166-2" target="https://www.iso.org/standard/7 <table align="center">
2483.html"> <name>Additions to the CDNI Metadata Footprint Types Subregistry</name>
<front> <thead>
<title> <tr>
Codes for the representation of names of countries and their <th align="left">Footprint Type</th>
subdivisions -- Part 2: Country subdivision code <th align="left">Description</th>
</title> <th align="left">Reference</th>
<author> </tr>
<organization>ISO</organization> </thead>
</author> <tbody>
<date month="08" year="2020"/> <tr>
</front> <td align="left">subdivisioncode</td>
<seriesInfo name="ISO" value="3166-2:2020"/> <td align="left">
<seriesInfo name="Edition" value="4"/> ISO 3166-2 country
</reference> subdivision code: alpha-2 country code, followed by a
</references> hyphen-minus and up to 3 characters from A-Z;0-9 as a code
within the country</td>
<td align="left">RFC 9388</td>
</tr>
<tr>
<td align="left">footprintunion</td>
<td align="left">A combination of other footprint objects</td>
<td align="left">RFC 9388</td>
</tr>
</tbody>
</table>
</section>
<section anchor="IANA.ALTO.entity.domain.types" numbered="true" toc="defau
lt">
<name>ALTO Entity Domain Types</name>
<t><xref target="RFC9240" sectionFormat="of" section="12.3"/> creates
the "ALTO Entity Domain Types" subregistry within the "Application-Layer
Traffic Optimization (ALTO) Protocol" registry.
</t>
<t>This document registers an additional ALTO
Entity Domain Type within that subregistry:
</t>
<table align="center">
<name>Additions to the ALTO Entity Domain Types Subregistry</name>
<thead>
<tr>
<th align="left">Identifier</th>
<th align="left">Entity Identifier Encoding</th>
<th align="left">Hierarchy and Inheritance</th>
<th align="left">Media Type of Defining Resource</th>
<th align="left">Mapping to ALTO Address Type</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">subdivisioncode</td>
<td align="left">See RFC 9388, <xref target="cdni-metadata-subdivi
sioncode-alto-property-map-service-entity-domain-identifiers"
format="default"/>
</td>
<td align="left">None</td>
<td align="left">None</td>
<td align="left">false</td>
</tr>
</tbody>
</table>
</section>
</section>
<section anchor="Security" numbered="true" toc="default">
<name>Security Considerations</name>
<t>This specification is in accordance with "<xref target="RFC8006" format
="title"/>" and "<xref target="RFC8008" format="title"/>". As such, it
is subject to the security and confidentiality considerations as defined
in <xref target="RFC8006" sectionFormat="of" section="8"/> and in <xref
target="RFC8008" sectionFormat="of" section="7"/>, respectively.
</t>
</section>
</middle>
<back>
<references>
<name>References</name>
<references>
<name>Normative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
119.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
006.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
008.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
174.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
240.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
241.xml"/>
<reference anchor="ISO3166-1" target="https://www.iso.org/standard/72482
.html">
<front>
<title>Codes for the representation of names of countries and their
subdivisions -- Part 1: Country code</title>
<author>
<organization>ISO</organization>
</author>
<date month="08" year="2020"/>
</front>
<seriesInfo name="ISO" value="3166-1:2020"/>
<seriesInfo name="Edition" value="4"/>
</reference>
<reference anchor="ISO3166-2" target="https://www.iso.org/standard/72483
.html">
<front>
<title>Codes for the representation of names of countries and their
subdivisions -- Part 2: Country subdivision code</title>
<author>
<organization>ISO</organization>
</author>
<date month="08" year="2020"/>
</front>
<seriesInfo name="ISO" value="3166-2:2020"/>
<seriesInfo name="Edition" value="4"/>
</reference>
</references>
<references>
<name>Informative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6
707.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
336.xml"/>
<reference anchor="SVTA" target="https://www.svta.org/">
<front>
<title>Streaming Video Technology Alliance</title>
<author>
<organization>SVTA</organization>
</author>
<date/>
</front>
</reference>
<reference anchor="OCWG" target="https://opencaching.svta.org/">
<front>
<title>Open Caching</title>
<author>
<organization>SVTA</organization>
</author>
<date/>
</front>
</reference>
<reference anchor="OC-RR" target="https://www.svta.org/product/open-cach
e-request-routing-functional-specification/">
<front>
<title>Open Caching - Request Routing Functional
Specification</title>
<author initials="O." surname="Finkelman" fullname="Ori Finkelman" r
ole="editor">
<organization>Qwilt</organization>
</author>
<author initials="B." surname="Zurat" fullname="Bill Zurat">
<organization>Disney Streaming Services</organization>
</author>
<author initials="D." surname="Sahar" fullname="Dan Sahar">
<organization>Qwilt</organization>
</author>
<author initials="E." surname="Klein" fullname="Eric Klein">
<organization>SiriusXM</organization>
</author>
<author initials="J." surname="Hofmann" fullname="Jason Hofmann">
<organization>Limelight Networks</organization>
</author>
<author initials="K.J." surname="Ma" fullname="Kevin J. Ma">
<organization>Ericsson</organization>
</author>
<author initials="M." surname="Stock" fullname="Matt Stock">
<organization>Viasat</organization>
</author>
<author initials="S." surname="Mishra" fullname="Sanjay Mishra">
<organization>Verizon</organization>
</author>
<author initials="Y." surname="Gressel" fullname="Yoav Gressel">
<organization>Qwilt</organization>
</author>
<date day="15" month="January" year="2021"/>
</front>
<seriesInfo name="Version" value="2.0"/>
</reference>
</references>
</references>
<section anchor="Acknowledgements" numbered="false" toc="default">
<name>Acknowledgements</name>
<t>The authors would like to express their gratitude to <contact
fullname="Ori Finkelman"/> and <contact fullname="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.
</t>
</section>
</back>
<references title="Informative References">
<?rfc include="reference.RFC.6707"?>
<?rfc include="reference.RFC.7336"?>
<reference anchor="SVTA" target="https://www.svta.org/">
<front>
<title>
Streaming Video Technology Alliance Home Page
</title>
<author />
<date />
</front>
</reference>
<reference anchor="OCWG" target="https://opencaching.svta.org/">
<front>
<title>
Open Caching Home Page
</title>
<author />
<date />
</front>
</reference>
<reference anchor="OC-RR" target="https://www.svta.org/product/open-
cache-request-routing-functional-specification/">
<front>
<title>
Open Caching - Request Routing Functional Specification
</title>
<author initials="O." surname="Finkelman" fullname="Ori Fink
elman" role="editor">
<organization>
Qwilt
</organization>
</author>
<author initials="J." surname="Hofmann" fullname="Jason Hofm
ann">
<organization>
Limelight Networks
</organization>
</author>
<author initials="E." surname="Klein" fullname="Eric Klein">
<organization>
Disney Streaming Services
</organization>
</author>
<author initials="S." surname="Mishra" fullname="Sanjay Mish
ra">
<organization>
Verizon
</organization>
</author>
<author initials="K." surname="Ma" fullname="Kevin J. Ma">
<organization>
Disney Streaming Services
</organization>
</author>
<author initials="D." surname="Sahar" fullname="Dan Sahar">
<organization>
Qwilt
</organization>
</author>
<author initials="B." surname="Zurat" fullname="Bill Zurat">
<organization>
Disney Streaming Services
</organization>
</author>
<date day="15" month="January" year="2021" />
</front>
<seriesInfo name="Version" value="2.0" />
</reference>
</references>
</back>
</rfc> </rfc>
 End of changes. 24 change blocks. 
645 lines changed or deleted 582 lines changed or added

This html diff was produced by rfcdiff 1.48.