<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" docName="draft-ietf-cdni-additional-footprint-types-11" number="9388" submissionType="IETF" category="std" consensus="true" updates="8008" obsoletes="" ipr="trust200902" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" prepTime="2023-07-20T16:44:38" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-cdni-additional-footprint-types-11" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9388" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="CDNI Additional Footprint Types">Content Delivery Network Interconnection (CDNI) Footprint Types: Country Subdivision Code and Footprint Union</title>
    <seriesInfo name="RFC" value="9388" stream="IETF"/>
    <author fullname="Nir B. Sopher" initials="N." surname="Sopher">
      <organization showOnFrontPage="true">Qwilt</organization>
      <address>
        <postal>
          <street>6, Ha'harash</street>
          <city>Hod HaSharon</city>
          <region/>
          <code>4524079</code>
          <country>Israel</country>
        </postal>
        <email>nir@apache.org</email>
      </address>
    </author>
    <author fullname="Sanjay Mishra" initials="S." surname="Mishra">
      <organization showOnFrontPage="true">Verizon</organization>
      <address>
        <postal>
          <street>13100 Columbia Pike</street>
          <city>Silver Spring</city>
          <region>MD</region>
          <code>20904</code>
          <country>United States of America</country>
        </postal>
        <phone/>
        <email>sanjay.mishra@verizon.com</email>
      </address>
    </author>
    <date month="07" year="2023"/>
    <area>art</area>
    <workgroup>cdni</workgroup>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">
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 &amp; 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.
      </t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            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.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9388" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2023 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) 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.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.2">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.2.1"><xref derivedContent="1.2" format="counter" sectionFormat="of" target="section-1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cdni-metadata-additional-fo">CDNI Metadata Additional Footprint Types</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cdni-metadata-subdivisionco">CDNI Metadata "subdivisioncode" Footprint Type</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2.1.2">
                  <li pn="section-toc.1-1.2.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.2.2.1.2.1.1"><xref derivedContent="2.1.1" format="counter" sectionFormat="of" target="section-2.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cdni-metadata-subdivisioncod">CDNI Metadata "subdivisioncode" Data Type</xref></t>
                    <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2.1.2.1.2">
                      <li pn="section-toc.1-1.2.2.1.2.1.2.1">
                        <t indent="0" pn="section-toc.1-1.2.2.1.2.1.2.1.1"><xref derivedContent="2.1.1.1" format="counter" sectionFormat="of" target="section-2.1.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cdni-metadata-subdivisioncode">CDNI Metadata "subdivisioncode" Data Type Description</xref></t>
                      </li>
                    </ul>
                  </li>
                  <li pn="section-toc.1-1.2.2.1.2.2">
                    <t indent="0" pn="section-toc.1-1.2.2.1.2.2.1"><xref derivedContent="2.1.2" format="counter" sectionFormat="of" target="section-2.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cdni-metadata-subdivisioncode-">CDNI Metadata "subdivisioncode" Footprint Type
          Description</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cdni-metadata-footprintunio">CDNI Metadata "footprintunion" Footprint Type</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2.2.2">
                  <li pn="section-toc.1-1.2.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.2.2.2.2.1.1"><xref derivedContent="2.2.1" format="counter" sectionFormat="of" target="section-2.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cdni-metadata-footprintunion">CDNI Metadata "footprintunion" Data Type</xref></t>
                  </li>
                  <li pn="section-toc.1-1.2.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.2.2.2.2.2.1"><xref derivedContent="2.2.2" format="counter" sectionFormat="of" target="section-2.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cdni-metadata-footprintunion-">CDNI Metadata "footprintunion" Footprint Type
          Description</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-alto-property-map-service-e">ALTO Property Map Service Entity</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-subdivisioncode-domain">SUBDIVISIONCODE Domain</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.1.2">
                  <li pn="section-toc.1-1.3.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.3.2.1.2.1.1"><xref derivedContent="3.1.1" format="counter" sectionFormat="of" target="section-3.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-entity-domain-type">Entity Domain Type</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.1.2.2">
                    <t indent="0" pn="section-toc.1-1.3.2.1.2.2.1"><xref derivedContent="3.1.2" format="counter" sectionFormat="of" target="section-3.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-domain-specific-entity-iden">Domain-Specific Entity Identifiers</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.1.2.3">
                    <t indent="0" pn="section-toc.1-1.3.2.1.2.3.1"><xref derivedContent="3.1.3" format="counter" sectionFormat="of" target="section-3.1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-hierarchy-and-inheritance">Hierarchy and Inheritance</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cdni-metadata-footprint-typ">CDNI Metadata Footprint Types</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-alto-entity-domain-types">ALTO Entity Domain Types</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">The Streaming Video Technology Alliance <xref target="SVTA" format="default" sectionFormat="of" derivedContent="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 <xref target="OCWG" format="default" sectionFormat="of" derivedContent="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 <xref target="OC-RR" format="default" sectionFormat="of" derivedContent="OC-RR">"Open Caching Request Routing Functional Specification"</xref>
      defines the Request Routing process and the interfaces that are required
      for its provisioning.  This document defines and registers CDNI
      Footprint and Capabilities objects <xref target="RFC8008" format="default" sectionFormat="of" derivedContent="RFC8008"/> that are required for Open Caching Request Routing.
      </t>
      <t indent="0" pn="section-1-2">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.
      </t>
      <t indent="0" pn="section-1-3">This document registers two CDNI Metadata footprint types (<xref target="RFC8006" sectionFormat="of" section="7.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8006#section-7.2" derivedContent="RFC8006"/>) for the defined
      objects:
      </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1-4">
        <li pn="section-1-4.1">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)</li>
        <li pn="section-1-4.2">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)</li>
      </ul>
      <section anchor="terminology" numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-terminology">Terminology</name>
        <t indent="0" pn="section-1.1-1">The following terms are used throughout this document:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-1.1-2">
          <dt pn="section-1.1-2.1">CDN:</dt>
          <dd pn="section-1.1-2.2">Content Delivery Network</dd>
        </dl>
        <t indent="0" pn="section-1.1-3">Additionally, this document reuses the terminology defined in <xref target="RFC6707" format="default" sectionFormat="of" derivedContent="RFC6707"/>, <xref target="RFC7336" format="default" sectionFormat="of" derivedContent="RFC7336"/>, <xref target="RFC8006" format="default" sectionFormat="of" derivedContent="RFC8006"/>, and
        <xref target="RFC8008" format="default" sectionFormat="of" derivedContent="RFC8008"/>.  Specifically, we use the
        following CDNI abbreviations:
        </t>
        <dl spacing="normal" newline="false" indent="3" pn="section-1.1-4">
          <dt pn="section-1.1-4.1">uCDN:</dt>
          <dd pn="section-1.1-4.2">upstream CDN (see <xref target="RFC7336" format="default" sectionFormat="of" derivedContent="RFC7336"/>)</dd>
          <dt pn="section-1.1-4.3">dCDN:</dt>
          <dd pn="section-1.1-4.4">downstream CDN (see <xref target="RFC7336" format="default" sectionFormat="of" derivedContent="RFC7336"/>)</dd>
        </dl>
      </section>
      <section anchor="requirements-lang" numbered="true" toc="include" removeInRFC="false" pn="section-1.2">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-1.2-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
    "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
    "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are
    to be interpreted as described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/>
          <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals,
    as shown here.
        </t>
      </section>
    </section>
    <section anchor="cdni-metadata-additional-footprint-types" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-cdni-metadata-additional-fo">CDNI Metadata Additional Footprint Types</name>
      <t indent="0" pn="section-2-1"><xref target="RFC8008" sectionFormat="of" section="5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8008#section-5" derivedContent="RFC8008"/> 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" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8006#section-4.2.2.2" derivedContent="RFC8006"/>.  This document defines additional footprint types,
      beyond those mentioned in <xref target="RFC8006" format="default" sectionFormat="of" derivedContent="RFC8006"/>.
      </t>
      <section anchor="cdni-metadata-subdivisioncode-footprint-type" numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-cdni-metadata-subdivisionco">CDNI Metadata "subdivisioncode" Footprint Type</name>
        <t indent="0" pn="section-2.1-1"><xref target="RFC8006" sectionFormat="of" section="4.3.8" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8006#section-4.3.8" derivedContent="RFC8006"/>
        specifies the "countrycode" footprint type for listing <xref target="ISO3166-1" format="default" sectionFormat="of" derivedContent="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 <xref target="ISO3166-2" format="default" sectionFormat="of" derivedContent="ISO3166-2"/> country subdivision codes.
        </t>
        <section anchor="cdni-metadata-subdivisioncode-data-type" numbered="true" toc="include" removeInRFC="false" pn="section-2.1.1">
          <name slugifiedName="name-cdni-metadata-subdivisioncod">CDNI Metadata "subdivisioncode" Data Type</name>
          <t indent="0" pn="section-2.1.1-1">The "subdivisioncode" data type specified in <xref target="cdni-metadata-subdivisioncode-data-type-description" format="default" sectionFormat="of" derivedContent="Section 2.1.1.1"/> describes a country-specific subdivision using
          a code as defined in <xref target="ISO3166-2" format="default" sectionFormat="of" derivedContent="ISO3166-2"/>.  The data type
          is added to the list of data types described in <xref target="RFC8006" sectionFormat="of" section="4.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8006#section-4.3" derivedContent="RFC8006"/> that are used as
          properties of CDNI Metadata objects.
          </t>
          <section anchor="cdni-metadata-subdivisioncode-data-type-description" numbered="true" toc="include" removeInRFC="false" pn="section-2.1.1.1">
            <name slugifiedName="name-cdni-metadata-subdivisioncode">CDNI Metadata "subdivisioncode" Data Type Description</name>
            <t indent="0" pn="section-2.1.1.1-1">An <xref target="ISO3166-2" format="default" sectionFormat="of" derivedContent="ISO3166-2"/> code in
            lowercase. Each code consists of two parts separated by a hyphen.
            As per <xref target="ISO3166-2" format="default" sectionFormat="of" derivedContent="ISO3166-2"/>, the first part
            is the <xref target="ISO3166-1" format="default" sectionFormat="of" derivedContent="ISO3166-1"/> code of the
            country and the second part is a string of up to three
            alphanumeric characters.
            </t>
            <dl spacing="normal" newline="false" indent="3" pn="section-2.1.1.1-2">
              <dt pn="section-2.1.1.1-2.1">Type:</dt>
              <dd pn="section-2.1.1.1-2.2">String</dd>
              <dt pn="section-2.1.1.1-2.3">Example country subdivision codes:</dt>
              <dd pn="section-2.1.1.1-2.4">
                <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-2.1.1.1-2.4.1">
                  <li pn="section-2.1.1.1-2.4.1.1">"ca-on"</li>
                  <li pn="section-2.1.1.1-2.4.1.2">"us-ny"</li>
                </ul>
              </dd>
            </dl>
          </section>
        </section>
        <section anchor="cdni-metadata-subdivisioncode-footprint-type-description" numbered="true" toc="include" removeInRFC="false" pn="section-2.1.2">
          <name slugifiedName="name-cdni-metadata-subdivisioncode-">CDNI Metadata "subdivisioncode" Footprint Type
          Description</name>
          <t indent="0" pn="section-2.1.2-1">The "subdivisioncode" simple data type specified in <xref target="cdni-metadata-subdivisioncode-data-type" format="default" sectionFormat="of" derivedContent="Section 2.1.1"/>
          is added to the data types listed as footprint types in <xref target="RFC8006" sectionFormat="of" section="4.2.2.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8006#section-4.2.2.2" derivedContent="RFC8006"/>.
          </t>
          <t indent="0" pn="section-2.1.2-2"><xref target="subdivision-code-footprint" format="default" sectionFormat="of" derivedContent="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 <xref target="ISO3166-2" format="default" sectionFormat="of" derivedContent="ISO3166-2"/> codes "US-NJ" and "US-NY",
          respectively).
          </t>
          <figure anchor="subdivision-code-footprint" align="left" suppress-title="false" pn="figure-1">
            <name slugifiedName="name-illustration-of-country-sub">Illustration of Country Subdivision Code Footprint
            Advertisement</name>
            <artwork name="" type="" align="left" alt="" pn="section-2.1.2-3.1">
{
  "capabilities": [
    {
      "capability-type": &lt;CDNI capability object type&gt;,
      "capability-value": &lt;CDNI capability object&gt;,
      "footprints": [
          {
              "footprint-type": "subdivisioncode",
              "footprint-value": ["us-nj", "us-ny"]
          }
      ]
    }
  ]
}
</artwork>
          </figure>
        </section>
      </section>
      <section anchor="cdni-metadata-footprint-union-footprint-type" numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-cdni-metadata-footprintunio">CDNI Metadata "footprintunion" Footprint Type</name>
        <t indent="0" pn="section-2.2-1">As described in <xref target="RFC8008" sectionFormat="of" section="5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8008#section-5" derivedContent="RFC8008"/>, the FCI Capability Advertisement object includes an
        array of CDNI footprint objects.  Appendix B of <xref target="RFC8008" format="default" sectionFormat="of" derivedContent="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.
        </t>
        <t indent="0" pn="section-2.2-2">Sections <xref target="RFC8006" section="4.3.5" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8006#section-4.3.5" derivedContent="RFC8006"/> and <xref target="RFC8006" section="4.3.6" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8006#section-4.3.6" derivedContent="RFC8006"/> of <xref target="RFC8006" format="default" sectionFormat="of" derivedContent="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
        <xref target="RFC8008" format="default" sectionFormat="of" derivedContent="RFC8008"/>, that prevents the usage of these
        objects together to create a footprint constraint that matches IPv4
        clients with IPv6 clients.
        </t>
        <t indent="0" pn="section-2.2-3"><xref target="fig2" format="default" sectionFormat="of" derivedContent="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.
        </t>
        <figure anchor="fig2" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-example-of-narrowing-semant">Example of Narrowing Semantic Illustrating Advertisement of a
          Null Footprint</name>
          <artwork name="" type="" align="left" alt="" pn="section-2.2-4.1">
{
  "capabilities": [
    {
      "capability-type": &lt;CDNI capability object type&gt;,
      "capability-value": &lt;CDNI capability object&gt;,
      "footprints": [
          {
              "footprint-type": "ipv4cidr",
              "footprint-value": ["192.0.2.0/24"]
          },
          {
              "footprint-type": "ipv6cidr",
              "footprint-value": ["2001:db8::/32"]
          }
      ]
    }
  ]
}
</artwork>
        </figure>
        <t indent="0" pn="section-2.2-5">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.
        </t>
        <t indent="0" pn="section-2.2-6">Note: to avoid implementation complexity, a "footprintunion"
        <bcp14>MUST NOT</bcp14> 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.
        </t>
        <section anchor="cdni-metadata-footprint-union-data-type" numbered="true" toc="include" removeInRFC="false" pn="section-2.2.1">
          <name slugifiedName="name-cdni-metadata-footprintunion">CDNI Metadata "footprintunion" Data Type</name>
          <t indent="0" pn="section-2.2.1-1">The "footprintunion" data type is based on the footprint object
          already defined in <xref target="RFC8006" sectionFormat="of" section="4.2.2.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8006#section-4.2.2.2" derivedContent="RFC8006"/>. The footprint value for a "footprintunion"
          object is an array of footprint objects, where the footprint objects
          <bcp14>MUST</bcp14> be of any footprint type other than
          "footprintunion".
          </t>
        </section>
        <section anchor="cdni-metadata-footprint-union-footprint-type-description" numbered="true" toc="include" removeInRFC="false" pn="section-2.2.2">
          <name slugifiedName="name-cdni-metadata-footprintunion-">CDNI Metadata "footprintunion" Footprint Type
          Description</name>
          <t indent="0" pn="section-2.2.2-1">The "footprintunion" data type specified in <xref target="cdni-metadata-footprint-union-data-type" format="default" sectionFormat="of" derivedContent="Section 2.2.1"/>
          is added to the data types listed as footprint types in <xref target="RFC8006" sectionFormat="of" section="4.2.2.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8006#section-4.2.2.2" derivedContent="RFC8006"/>.
          </t>
          <t indent="0" pn="section-2.2.2-2"><xref target="fig3" format="default" sectionFormat="of" derivedContent="Figure 3"/> is an example using a
          footprint union combining both IPv4 and IPv6 client subnets.
          </t>
          <figure anchor="fig3" align="left" suppress-title="false" pn="figure-3">
            <name slugifiedName="name-example-of-an-advertisement">Example of an Advertisement of Footprint Union for Multiple
            Classless Inter-Domain Routing (CIDR) Footprint Types</name>
            <artwork name="" type="" align="left" alt="" pn="section-2.2.2-3.1">
{
  "capabilities": [
    {
      "capability-type": &lt;CDNI capability object type&gt;,
      "capability-value": &lt;CDNI capability object&gt;,
      "footprints": [
        {
          "footprint-type": "footprintunion",
          "footprint-value": [
            {
              "footprint-type": "ipv4cidr",
              "footprint-value": ["192.0.2.0/24"]
            },
            {
              "footprint-type": "ipv6cidr",
              "footprint-value": ["2001:db8::/32"]
            }
          ]
        }
      ]
    }
  ]
}
</artwork>
          </figure>
          <t indent="0" pn="section-2.2.2-4">The footprint union also enables composing of footprint
          objects based on the country code and country subdivision code. In <xref target="fig4" format="default" sectionFormat="of" derivedContent="Figure 4"/>, we create a constraint covering
          autonomous system 64496 within the USA (ISO alpha-2 code "US" as described in <xref target="ISO3166-1" format="default" sectionFormat="of" derivedContent="ISO3166-1"/>) and the Ontario province of
          Canada (ISO code "CA-ON" as described in <xref target="ISO3166-2" format="default" sectionFormat="of" derivedContent="ISO3166-2"/>).
          </t>
          <figure anchor="fig4" align="left" suppress-title="false" pn="figure-4">
            <name slugifiedName="name-example-of-an-advertisement-">Example of an Advertisement of Footprint Union for Multiple
            Geographical Footprint Types</name>
            <artwork name="" type="" align="left" alt="" pn="section-2.2.2-5.1">
{
  "capabilities": [
    {
      "capability-type": &lt;CDNI capability object type&gt;,
      "capability-value": &lt;CDNI capability object&gt;,
      "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"]
            }
          ]
        }
      ]
    }
  ]
}
</artwork>
          </figure>
        </section>
      </section>
    </section>
    <section anchor="cdni-metadata-alto-property-map-service-entity" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-alto-property-map-service-e">ALTO Property Map Service Entity</name>
      <t indent="0" pn="section-3-1"><xref target="RFC9241" sectionFormat="of" section="6" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9241#section-6" derivedContent="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. <xref target="RFC9241" format="default" sectionFormat="of" derivedContent="RFC9241"/> 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-entity-domain" numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-subdivisioncode-domain">SUBDIVISIONCODE Domain</name>
        <t indent="0" pn="section-3.1-1">The SUBDIVISIONCODE domain associates property values that define codes for the names of the principal subdivisions.
        </t>
        <section anchor="cdni-metadata-subdivisioncode-alto-property-map-service-entity-domain-type" numbered="true" toc="include" removeInRFC="false" pn="section-3.1.1">
          <name slugifiedName="name-entity-domain-type">Entity Domain Type</name>
          <t indent="0" pn="section-3.1.1-1">
                    The entity domain type of the SUBDIVISIONCODE domain is "subdivisioncode" (in lowercase).
          </t>
        </section>
        <section anchor="cdni-metadata-subdivisioncode-alto-property-map-service-entity-domain-identifiers" numbered="true" toc="include" removeInRFC="false" pn="section-3.1.2">
          <name slugifiedName="name-domain-specific-entity-iden">Domain-Specific Entity Identifiers</name>
          <t indent="0" pn="section-3.1.2-1">The entity identifier of an entity in a SUBDIVISIONCODE is
          encoded as an alpha-2 <xref target="ISO3166-1" format="default" sectionFormat="of" derivedContent="ISO3166-1"/>
          country code, followed by a separator and up to three alphanumeric
          characters.
          </t>
        </section>
        <section anchor="cdni-metadata-subdivisioncode-alto-property-map-service-entity-hierarchy-and-inheritance" numbered="true" toc="include" removeInRFC="false" pn="section-3.1.3">
          <name slugifiedName="name-hierarchy-and-inheritance">Hierarchy and Inheritance</name>
          <t indent="0" pn="section-3.1.3-1"> There is no hierarchy or inheritance for properties associated
          with country subdivision codes.
          </t>
        </section>
      </section>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section anchor="IANA.cdni.metadata.footprint.types" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-cdni-metadata-footprint-typ">CDNI Metadata Footprint Types</name>
        <t indent="0" pn="section-4.1-1"><xref target="RFC8006" sectionFormat="of" section="7.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8006#section-7.2" derivedContent="RFC8006"/> specifies
        the "CDNI Metadata Footprint Types" subregistry within the "Content
        Delivery Network Interconnection (CDNI) Parameters" registry.
        </t>
        <t indent="0" pn="section-4.1-2">This document registers two footprint types in that subregistry as
        defined in Sections <xref target="cdni-metadata-subdivisioncode-footprint-type" format="counter" sectionFormat="of" derivedContent="2.1"/> and <xref target="cdni-metadata-footprint-union-footprint-type" format="counter" sectionFormat="of" derivedContent="2.2"/>:
        </t>
        <table align="center" pn="table-1">
          <name slugifiedName="name-additions-to-the-cdni-metad">Additions to the CDNI Metadata Footprint Types Subregistry</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Footprint Type</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">subdivisioncode</td>
              <td align="left" colspan="1" rowspan="1">
                ISO 3166-2 country
                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</td>
              <td align="left" colspan="1" rowspan="1">RFC 9388</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">footprintunion</td>
              <td align="left" colspan="1" rowspan="1">A combination of other footprint objects</td>
              <td align="left" colspan="1" rowspan="1">RFC 9388</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="IANA.ALTO.entity.domain.types" numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-alto-entity-domain-types">ALTO Entity Domain Types</name>
        <t indent="0" pn="section-4.2-1"><xref target="RFC9240" sectionFormat="of" section="12.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9240#section-12.3" derivedContent="RFC9240"/> creates
        the "ALTO Entity Domain Types" subregistry within the "Application-Layer Traffic Optimization (ALTO) Protocol" registry.
        </t>
        <t indent="0" pn="section-4.2-2">This document registers an additional ALTO
        Entity Domain Type within that subregistry:
        </t>
        <table align="center" pn="table-2">
          <name slugifiedName="name-addition-to-the-alto-entity">Addition to the ALTO Entity Domain Types Subregistry</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Identifier</th>
              <th align="left" colspan="1" rowspan="1">Entity Identifier Encoding</th>
              <th align="left" colspan="1" rowspan="1">Hierarchy and Inheritance</th>
              <th align="left" colspan="1" rowspan="1">Media Type of Defining Resource</th>
              <th align="left" colspan="1" rowspan="1">Mapping to ALTO Address Type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">subdivisioncode</td>
              <td align="left" colspan="1" rowspan="1">See RFC 9388, <xref target="cdni-metadata-subdivisioncode-alto-property-map-service-entity-domain-identifiers" format="default" sectionFormat="of" derivedContent="Section 3.1.2"/>
              </td>
              <td align="left" colspan="1" rowspan="1">None</td>
              <td align="left" colspan="1" rowspan="1">None</td>
              <td align="left" colspan="1" rowspan="1">false</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="Security" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-5-1">This specification is in accordance with "<xref target="RFC8006" format="title" sectionFormat="of" derivedContent="Content Delivery Network Interconnection (CDNI) Metadata"/>" and "<xref target="RFC8008" format="title" sectionFormat="of" derivedContent="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 <xref target="RFC8006" sectionFormat="of" section="8" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8006#section-8" derivedContent="RFC8006"/> and in <xref target="RFC8008" sectionFormat="of" section="7" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8008#section-7" derivedContent="RFC8008"/>, respectively.
      </t>
    </section>
  </middle>
  <back>
    <references pn="section-6">
      <name slugifiedName="name-references">References</name>
      <references pn="section-6.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="ISO3166-1" target="https://www.iso.org/standard/72482.html" quoteTitle="true" derivedAnchor="ISO3166-1">
          <front>
            <title>Codes for the representation of names of countries and their subdivisions -- Part 1: Country code</title>
            <author>
              <organization showOnFrontPage="true">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" quoteTitle="true" derivedAnchor="ISO3166-2">
          <front>
            <title>Codes for the representation of names of countries and their subdivisions -- Part 2: Country subdivision code</title>
            <author>
              <organization showOnFrontPage="true">ISO</organization>
            </author>
            <date month="08" year="2020"/>
          </front>
          <seriesInfo name="ISO" value="3166-2:2020"/>
          <seriesInfo name="Edition" value="4"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8006" target="https://www.rfc-editor.org/info/rfc8006" quoteTitle="true" derivedAnchor="RFC8006">
          <front>
            <title>Content Delivery Network Interconnection (CDNI) Metadata</title>
            <author fullname="B. Niven-Jenkins" initials="B." surname="Niven-Jenkins"/>
            <author fullname="R. Murray" initials="R." surname="Murray"/>
            <author fullname="M. Caulfield" initials="M." surname="Caulfield"/>
            <author fullname="K. Ma" initials="K." surname="Ma"/>
            <date month="December" year="2016"/>
            <abstract>
              <t indent="0">The Content Delivery Network Interconnection (CDNI) Metadata interface enables interconnected Content Delivery Networks (CDNs) to exchange content distribution metadata in order to enable content acquisition and delivery. The CDNI Metadata associated with a piece of content provides a downstream CDN with sufficient information for the downstream CDN to service content requests on behalf of an upstream CDN. This document describes both a base set of CDNI Metadata and the protocol for exchanging that metadata.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8006"/>
          <seriesInfo name="DOI" value="10.17487/RFC8006"/>
        </reference>
        <reference anchor="RFC8008" target="https://www.rfc-editor.org/info/rfc8008" quoteTitle="true" derivedAnchor="RFC8008">
          <front>
            <title>Content Delivery Network Interconnection (CDNI) Request Routing: Footprint and Capabilities Semantics</title>
            <author fullname="J. Seedorf" initials="J." surname="Seedorf"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="R. van Brandenburg" initials="R." surname="van Brandenburg"/>
            <author fullname="K. Ma" initials="K." surname="Ma"/>
            <date month="December" year="2016"/>
            <abstract>
              <t indent="0">&lt;p&gt;This document captures the semantics of the "Footprint and Capabilities Advertisement" part of the Content Delivery Network Interconnection (CDNI) Request Routing interface, i.e., the desired meaning of "Footprint" and "Capabilities" in the CDNI context and what the "Footprint &amp; Capabilities Advertisement interface (FCI)" offers within CDNI. The document also provides guidelines for the CDNI FCI protocol. It further defines a Base Advertisement Object, the necessary registries for capabilities and footprints, and guidelines on how these registries can be extended in the future.&lt;/p&gt;</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8008"/>
          <seriesInfo name="DOI" value="10.17487/RFC8008"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9240" target="https://www.rfc-editor.org/info/rfc9240" quoteTitle="true" derivedAnchor="RFC9240">
          <front>
            <title>An Extension for Application-Layer Traffic Optimization (ALTO): Entity Property Maps</title>
            <author fullname="W. Roome" initials="W." surname="Roome"/>
            <author fullname="S. Randriamasy" initials="S." surname="Randriamasy"/>
            <author fullname="Y. Yang" initials="Y." surname="Yang"/>
            <author fullname="J. Zhang" initials="J." surname="Zhang"/>
            <author fullname="K. Gao" initials="K." surname="Gao"/>
            <date month="July" year="2022"/>
            <abstract>
              <t indent="0">This document specifies an extension to the base Application-Layer Traffic Optimization (ALTO) Protocol that generalizes the concept of "endpoint properties", which have been tied to IP addresses so far, to entities defined by a wide set of objects. Further, these properties are presented as maps, similar to the network and cost maps in the base ALTO Protocol. While supporting the endpoints and related Endpoint Property Service defined in RFC 7285, the ALTO Protocol is extended in two major directions. First, from endpoints restricted to IP addresses to entities covering a wider and extensible set of objects; second, from properties for specific endpoints to entire entity property maps. These extensions introduce additional features that allow entities and property values to be specific to a given information resource. This is made possible by a generic and flexible design of entity and property types.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9240"/>
          <seriesInfo name="DOI" value="10.17487/RFC9240"/>
        </reference>
        <reference anchor="RFC9241" target="https://www.rfc-editor.org/info/rfc9241" quoteTitle="true" derivedAnchor="RFC9241">
          <front>
            <title>Content Delivery Network Interconnection (CDNI) Footprint and Capabilities Advertisement Using Application-Layer Traffic Optimization (ALTO)</title>
            <author fullname="J. Seedorf" initials="J." surname="Seedorf"/>
            <author fullname="Y. Yang" initials="Y." surname="Yang"/>
            <author fullname="K. Ma" initials="K." surname="Ma"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Zhang" initials="J." surname="Zhang"/>
            <date month="July" year="2022"/>
            <abstract>
              <t indent="0">&lt;p&gt;The Content Delivery Networks Interconnection (CDNI) framework in RFC 6707 defines a set of protocols to interconnect CDNs to achieve multiple goals, including extending the reach of a given CDN. A CDNI Request Routing Footprint &amp; Capabilities Advertisement interface (FCI) is needed to achieve the goals of a CDNI. RFC 8008 defines the FCI semantics and provides guidelines on the FCI protocol, but the exact protocol is not specified. This document defines a new Application-Layer Traffic Optimization (ALTO) service, called "CDNI Advertisement Service", that provides an implementation of the FCI, following the guidelines defined in RFC 8008.&lt;/p&gt;</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9241"/>
          <seriesInfo name="DOI" value="10.17487/RFC9241"/>
        </reference>
      </references>
      <references pn="section-6.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="OC-RR" target="https://www.svta.org/product/open-cache-request-routing-functional-specification/" quoteTitle="true" derivedAnchor="OC-RR">
          <front>
            <title>Open Caching - Request Routing Functional Specification</title>
            <author initials="O." surname="Finkelman" fullname="Ori Finkelman" role="editor">
              <organization showOnFrontPage="true">Qwilt</organization>
            </author>
            <author initials="B." surname="Zurat" fullname="Bill Zurat">
              <organization showOnFrontPage="true">Disney Streaming Services</organization>
            </author>
            <author initials="D." surname="Sahar" fullname="Dan Sahar">
              <organization showOnFrontPage="true">Qwilt</organization>
            </author>
            <author initials="E." surname="Klein" fullname="Eric Klein">
              <organization showOnFrontPage="true">SiriusXM</organization>
            </author>
            <author initials="J." surname="Hofmann" fullname="Jason Hofmann">
              <organization showOnFrontPage="true">Limelight Networks</organization>
            </author>
            <author initials="K.J." surname="Ma" fullname="Kevin J. Ma">
              <organization showOnFrontPage="true">Ericsson</organization>
            </author>
            <author initials="M." surname="Stock" fullname="Matt Stock">
              <organization showOnFrontPage="true">Viasat</organization>
            </author>
            <author initials="S." surname="Mishra" fullname="Sanjay Mishra">
              <organization showOnFrontPage="true">Verizon</organization>
            </author>
            <author initials="Y." surname="Gressel" fullname="Yoav Gressel">
              <organization showOnFrontPage="true">Qwilt</organization>
            </author>
            <date day="15" month="January" year="2021"/>
          </front>
          <seriesInfo name="Version" value="2.0"/>
        </reference>
        <reference anchor="OCWG" target="https://opencaching.svta.org/" quoteTitle="true" derivedAnchor="OCWG">
          <front>
            <title>Open Caching</title>
            <author>
              <organization showOnFrontPage="true">SVTA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC6707" target="https://www.rfc-editor.org/info/rfc6707" quoteTitle="true" derivedAnchor="RFC6707">
          <front>
            <title>Content Distribution Network Interconnection (CDNI) Problem Statement</title>
            <author fullname="B. Niven-Jenkins" initials="B." surname="Niven-Jenkins"/>
            <author fullname="F. Le Faucheur" initials="F." surname="Le Faucheur"/>
            <author fullname="N. Bitar" initials="N." surname="Bitar"/>
            <date month="September" year="2012"/>
            <abstract>
              <t indent="0">Content Delivery Networks (CDNs) provide numerous benefits for cacheable content: reduced delivery cost, improved quality of experience for End Users, and increased robustness of delivery. For these reasons, they are frequently used for large-scale content delivery. As a result, existing CDN Providers are scaling up their infrastructure, and many Network Service Providers (NSPs) are deploying their own CDNs. It is generally desirable that a given content item can be delivered to an End User regardless of that End User's location or attachment network. This is the motivation for interconnecting standalone CDNs so they can interoperate as an open content delivery infrastructure for the end-to-end delivery of content from Content Service Providers (CSPs) to End Users. However, no standards or open specifications currently exist to facilitate such CDN Interconnection.</t>
              <t indent="0">The goal of this document is to outline the problem area of CDN Interconnection for the IETF CDNI (CDN Interconnection) working group. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6707"/>
          <seriesInfo name="DOI" value="10.17487/RFC6707"/>
        </reference>
        <reference anchor="RFC7336" target="https://www.rfc-editor.org/info/rfc7336" quoteTitle="true" derivedAnchor="RFC7336">
          <front>
            <title>Framework for Content Distribution Network Interconnection (CDNI)</title>
            <author fullname="L. Peterson" initials="L." surname="Peterson"/>
            <author fullname="B. Davie" initials="B." surname="Davie"/>
            <author fullname="R. van Brandenburg" initials="R." role="editor" surname="van Brandenburg"/>
            <date month="August" year="2014"/>
            <abstract>
              <t indent="0">This document presents a framework for Content Distribution Network Interconnection (CDNI). The purpose of the framework is to provide an overall picture of the problem space of CDNI and to describe the relationships among the various components necessary to interconnect CDNs. CDNI requires the specification of interfaces and mechanisms to address issues such as request routing, distribution metadata exchange, and logging information exchange across CDNs. The intent of this document is to outline what each interface needs to accomplish and to describe how these interfaces and mechanisms fit together, while leaving their detailed specification to other documents. This document, in combination with RFC 6707, obsoletes RFC 3466.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7336"/>
          <seriesInfo name="DOI" value="10.17487/RFC7336"/>
        </reference>
        <reference anchor="SVTA" target="https://www.svta.org/" quoteTitle="true" derivedAnchor="SVTA">
          <front>
            <title>Streaming Video Technology Alliance</title>
            <author>
              <organization showOnFrontPage="true">SVTA</organization>
            </author>
            <date/>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="Acknowledgements" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">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>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Nir B. Sopher" initials="N." surname="Sopher">
        <organization showOnFrontPage="true">Qwilt</organization>
        <address>
          <postal>
            <street>6, Ha'harash</street>
            <city>Hod HaSharon</city>
            <region/>
            <code>4524079</code>
            <country>Israel</country>
          </postal>
          <email>nir@apache.org</email>
        </address>
      </author>
      <author fullname="Sanjay Mishra" initials="S." surname="Mishra">
        <organization showOnFrontPage="true">Verizon</organization>
        <address>
          <postal>
            <street>13100 Columbia Pike</street>
            <city>Silver Spring</city>
            <region>MD</region>
            <code>20904</code>
            <country>United States of America</country>
          </postal>
          <phone/>
          <email>sanjay.mishra@verizon.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
