<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.6 -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc iprnotified="no"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-alto-cdni-request-routing-alto-21" category="std" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.6.0 -->
  <front>
    <title abbrev="CDNI FCI using ALTO">Content Delivery Network Interconnection (CDNI) Request Routing: CDNI Footprint and Capabilities Advertisement using ALTO</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-alto-cdni-request-routing-alto-21"/>
    <author initials="J." surname="Seedorf" fullname="Jan Seedorf">
      <organization>HFT Stuttgart - Univ. of Applied Sciences</organization>
      <address>
        <postal>
          <street>Schellingstrasse 24</street>
          <city>Stuttgart</city>
          <code>70174</code>
          <country>Germany</country>
        </postal>
        <phone>+49-0711-8926-2801</phone>
        <email>jan.seedorf@hft-stuttgart.de</email>
      </address>
    </author>
    <author initials="Y." surname="Yang" fullname="Y. Richard Yang">
      <organization>Yale University</organization>
      <address>
        <postal>
          <street>51 Prospect Street</street>
          <city>New Haven</city>
          <code>CT 06511</code>
          <country>USA</country>
        </postal>
        <phone>+1-203-432-6400</phone>
        <email>yry@cs.yale.edu</email>
        <uri>http://www.cs.yale.edu/~yry/</uri>
      </address>
    </author>
    <author initials="K." surname="Ma" fullname="Kevin J. Ma">
      <organization>Ericsson</organization>
      <address>
        <postal>
          <street>43 Nagog Park</street>
          <city>Acton</city>
          <code>MA 01720</code>
          <country>USA</country>
        </postal>
        <phone>+1-978-844-5100</phone>
        <email>kevin.j.ma.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="J." surname="Peterson" fullname="Jon Peterson">
      <organization>NeuStar</organization>
      <address>
        <postal>
          <street>1800 Sutter St Suite 570</street>
          <city>Concord</city>
          <code>CA 94520</code>
          <country>USA</country>
        </postal>
        <email>jon.peterson@neustar.biz</email>
      </address>
    </author>
    <author initials="J." surname="Zhang" fullname="Jingxuan Jensen Zhang">
      <organization>Tongji University</organization>
      <address>
        <postal>
          <street>4800 Cao'an Hwy</street>
          <city>Shanghai</city>
          <code>201804</code>
          <country>China</country>
        </postal>
        <email>jingxuan.zhang@tongji.edu.cn</email>
      </address>
    </author>
    <date year="2022" month="February" day="16"/>
    <area>Networks</area>
    <workgroup>ALTO &amp; CDNI WGs</workgroup>
    <keyword>ALTO</keyword>
    <abstract>
      <!-- Skip header line -->

<t>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.</t>
      <!--
The Content Delivery Networks Interconnection (CDNI) framework
defines a set of protocols to interconnect CDNs, to achieve multiple
goals such as extending the reach of a given CDN to areas that are
not covered by that particular CDN. One component that is needed to
achieve the goal of CDNI described in CDNI framework is the CDNI
Request Routing Footprint &amp; Capabilities Advertisement interface
(FCI). RFC 8008 defines precisely the semantics of FCI and provides
guidelines on the FCI protocol, but the exact protocol is explicitly
outside the scope of that document. 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.
-->



    </abstract>
  </front>
  <middle>
    <!-- Skip header line -->

<section anchor="intro" numbered="true" toc="default">
      <name>Introduction</name>
      <t>The ability to interconnect multiple content delivery networks (CDNs)
has many benefits, including increased coverage, capability, and
reliability. The Content Delivery Networks Interconnection (CDNI)
framework <xref target="RFC6707" format="default"/> defines four interfaces to
interconnect CDNs: (1) the CDNI Request Routing
Interface, (2) the CDNI Metadata Interface, (3) the CDNI Logging
Interface, and (4) the CDNI Control Interface.</t>
      <t>Among these four interfaces, the CDNI Request Routing Interface
provides key functions, as specified in <xref target="RFC6707" format="default"/>:
"The CDNI Request Routing interface enables a Request Routing
function in an Upstream CDN to query a Request Routing function in a
Downstream CDN to determine if the Downstream CDN is able (and
willing) to accept the delegated Content Request. It also allows the
Downstream CDN to control what should be returned to the User Agent
in the redirection message by the upstream Request Routing function."
At a high level, the scope of the CDNI Request Routing Interface,
therefore, contains two main tasks: (1) determining if the dCDN
(downstream CDN) is willing to accept a delegated content request,
and (2) redirecting the content request coming from a uCDN (upstream
CDN) to the proper entry point or entity in the dCDN.</t>
      <t>Correspondingly, the Request Routing Interface is broadly divided
into two functionalities: (1) the CDNI Footprint &amp; Capabilities
Advertisement interface (FCI) defined in <xref target="RFC8008" format="default"/>,
and (2) the CDNI Request Routing Redirection interface (RI) defined
in <xref target="RFC7975" format="default"/>. This document focuses on the
first functionality (CDNI FCI).</t>
      <t>Specifically, CDNI FCI allows both an advertisement from a dCDN to a
uCDN (push) and a query from a uCDN to a dCDN (pull) so that the uCDN
knows whether it can redirect a particular user request to that dCDN.</t>
      <t>A key component in defining CDNI FCI is defining objects describing the
footprints and capabilities of a dCDN. Such objects are already defined in
Section 5 of <xref target="RFC8008" format="default"/>. However, no protocol is defined to transport and
update such objects between a uCDN and a dCDN.</t>
      <t>To define such a protocol, this document specifies an extension of the
Application-Layer Traffic Optimization (ALTO) <xref target="RFC7285" format="default"/> protocol by
introducing a new ALTO service called "CDNI Advertisement Service".</t>
      <t><xref target="bgALTO" format="default"/> discusses the benefits in using ALTO as a transport protocol.</t>
      <!--
The rest of this document is organized as follows. [](#background) provides
non-normative background on both CDNI FCI and ALTO. [](#cdnifci) introduces the
most basic service, called "CDNI Advertisement Service", to realize CDNI FCI
using ALTO. [](#cdnifcinetworkmap) demonstrates a key benefit of using ALTO: the
ability to integrate CDNI FCI with ALTO network maps. Such integration provides
new granularity to describe footprints. [](#filteredcdnifci) introduces
"Filtered CDNI Advertisement Service" to allow a uCDN to get footprints with
given capabilities instead of getting the full resource, which can be large.
[](#unifiedpropertymap) further shows another benefit of using ALTO: the ability
to query footprint properties using ALTO entity property map extension. In this
way, a uCDN can effectively fetch capabilities of footprints in which it is
interested. IANA and security considerations are discussed in [](#iana) and
[](#security) respectively.
-->

<!-- Skip header line -->

</section>
    <section anchor="background" numbered="true" toc="default">
      <name>Terminology and Background</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119" format="default"/><xref target="RFC8174" format="default"/>
when, and only when, they appear in all capitals, as shown here.</t>
      <t>The design of CDNI FCI transport using ALTO assumes an understanding of both
FCI semantics and ALTO. Hence, this document starts with a non-normative review
for both.</t>
      <section anchor="term" numbered="true" toc="default">
        <name>Terminology</name>
        <t>The document uses the CDNI terms defined in <xref target="RFC6707" format="default"/>, <xref target="RFC8006" format="default"/> and
<xref target="RFC8008" format="default"/>. Also, the document uses the ALTO terms defined in <xref target="RFC7285" format="default"/> and
<xref target="I-D.ietf-alto-unified-props-new" format="default"/>. This document uses the following
abbreviations:</t>
        <ul spacing="normal">
          <li>ALTO: Application-Layer Traffic Optimization</li>
          <li>ASN: Autonomous System Number</li>
          <li>CDN: Content Delivery Network</li>
          <li>CDNI: CDN Interconnection</li>
          <li>dCDN: Downstream CDN</li>
          <li>FCI: CDNI FCI, CDNI Request Routing Footprint &amp; Capabilities Advertisement interface</li>
          <li>IRD: Information Resource Directory in ALTO</li>
          <li>PID: Provider-defined Identifier in ALTO</li>
          <li>uCDN: Upstream CDN</li>
        </ul>
      </section>
      <section anchor="bgSemantics" numbered="true" toc="default">
        <name>Semantics of FCI Advertisement</name>
        <t><xref target="RFC8008" format="default"/> defines the semantics
of CDNI FCI, provides guidance on what Footprint and Capabilities mean in a CDNI
context, and specifies the requirements on the CDNI FCI transport protocol. The
definitions in <xref target="RFC8008" format="default"/> depend on <xref target="RFC8006" format="default"/>. Below is a non-normative
review of key related points of <xref target="RFC8008" format="default"/> and <xref target="RFC8006" format="default"/>. For detailed
information and normative specification, the reader should refer to these two
RFCs.</t>
        <ul spacing="normal">
          <li>Multiple types of mandatory-to-implement footprints (i.e., ipv4cidr, ipv6cidr, asn,
and countrycode) are defined in <xref target="RFC8006" format="default"/>. A "Set of IP-prefixes" can
contain both full IP addresses (i.e., a /32 for IPv4 or a /128 for IPv6) and
IP prefixes with an arbitrary prefix length. There must also be support for
multiple IP address versions, i.e., IPv4 and IPv6, in such a footprint.</li>
          <li>Multiple initial types of capabilities are defined in <xref target="RFC8008" format="default"/> including
(1) Delivery Protocol, (2) Acquisition Protocol, (3) Redirection Mode, (4)
Capabilities related to CDNI Logging, and (5) Capabilities related to CDNI
Metadata. They are required in all cases and, therefore, considered as
mandatory-to-implement capabilities for all CDNI FCI implementations.</li>
          <li>Footprint and capabilities are defined together and cannot be interpreted
independently from each other. Specifically, <xref target="RFC8008" format="default"/> integrates footprint
and capabilities with an approach of "capabilities with footprint
restrictions", by expressing capabilities on a per footprint basis.</li>
          <li>Specifically, for all mandatory-to-implement footprint types, footprints can
be viewed as constraints for delegating requests to a dCDN: A dCDN footprint
advertisement tells the uCDN the limitations for delegating a request to the
dCDN. For IP prefixes or Autonomous System Numbers (ASNs), the footprint signals to the uCDN that it
should consider the dCDN a candidate only if the IP address of the request
routing source falls within the prefix set or ASN, respectively. The CDNI
specifications do not define how a given uCDN determines what address ranges
are in a particular ASN. Similarly, for country codes, a uCDN should only
consider the dCDN a candidate if it covers the country of the request routing
source. The CDNI specifications do not define how a given uCDN determines the
country of the request routing source. Different types of footprint
constraints can be combined together to narrow the dCDN candidacy, i.e., the
uCDN should consider the dCDN a candidate only if the request routing source
satisfies all the types of footprint constraints in the advertisement.</li>
          <li>Given that a large part of Footprint and Capabilities Advertisement may
happen in contractual agreements, the semantics of CDNI Footprint and
Capabilities advertisement refers to answering the following question: what
exactly still needs to be advertised by the CDNI FCI? For instance, updates
about temporal failures of part of a footprint can be useful information to
convey via the CDNI FCI. Such information would provide updates on information
previously agreed in contracts between the participating CDNs. In other words,
the CDNI FCI is a means for a dCDN to provide changes/updates
regarding a footprint and/or capabilities that it has previously agreed to serve in
a contract with a uCDN. Hence, server push and incremental
encoding will be necessary techniques.</li>
        </ul>
      </section>
      <section anchor="bgALTO" numbered="true" toc="default">
        <name>ALTO Background and Benefits</name>
        <t>Application-Layer Traffic Optimization (ALTO) <xref target="RFC7285" format="default"/> defines an approach
for conveying network layer (topology) information to "guide" the resource
provider selection process in distributed applications that can choose among
several candidate resources providers to retrieve a given resource. Usually, it
is assumed that an ALTO server conveys information that these applications
cannot measure or have difficulty measuring themselves <xref target="RFC5693" format="default"/>.</t>
        <t>Originally, ALTO was motivated by optimizing cross-ISP traffic generated by P2P
applications <xref target="RFC5693" format="default"/>. However, ALTO can also be used for improving the
request routing in CDNs. In particular, Section 5 of <xref target="RFC7971" format="default"/>
explicitly mentions ALTO as a candidate protocol to improve the selection of a
CDN surrogate or origin.</t>
        <t>The following reasons make ALTO a suitable candidate protocol for dCDN
selection as part of CDNI request routing and, in particular,
for an FCI protocol:</t>
        <ul spacing="normal">
          <li>Application Layer-oriented: ALTO is a protocol specifically designed to
improve application layer traffic (and application layer connections among
hosts on the Internet) by providing additional information to applications
that these applications could not easily retrieve themselves. This matches the
need of CDNI, where a uCDN wants to improve application layer CDN request routing by
using information (provided by a dCDN) that the uCDN could not easily obtain
otherwise. Hence, ALTO can help a uCDN to select a proper dCDN by first
providing dCDNs' capabilities as well as footprints (see <xref target="cdnifci" format="default"/>) and
then providing costs of surrogates in a dCDN by ALTO cost maps.</li>
          <li>Security: The identification between uCDNs and dCDNs is an important
requirement (see <xref target="security" format="default"/>). ALTO maps can be signed and hence provide
inherent origin protection. Please see Section 15.1.2 of <xref target="RFC7285" format="default"/> for
detailed protection strategies.</li>
          <li>RESTful design: The ALTO protocol has undergone extensive revisions in order
to provide a RESTful design regarding the client-server interaction specified
by the protocol. It is flexible and extensible enough to handle existing and
potential future data formats defined by CDNI. It can provide the consistent
client-server interaction model for other existing CDNI interfaces or
potential future extensions and therefore reduce the learning cost for both
users and developers, although they are not in the scope of this
document. A CDNI FCI interface based on ALTO would inherit this RESTful
design. Please see <xref target="cdnifci" format="default"/>.</li>
          <li>Error-handling: The ALTO protocol provides extensive error-handling in the
whole request and response process (see Section 8.5 of <xref target="RFC7285" format="default"/>). A CDNI
FCI interface based on ALTO would inherit this extensive error-handling
framework. Please see <xref target="filteredcdnifci" format="default"/>.</li>
          <li>Map Service: The semantics of an ALTO network map is an exact match for the
needed information to convey a footprint by a dCDN, in
particular, if such a footprint is being expressed by IP-prefix
ranges. Please see <xref target="cdnifcinetworkmap" format="default"/>.</li>
          <li>Filtered Map Service: The ALTO map filtering service would allow a uCDN to
query only for parts of an ALTO map. For example, the ALTO filtered property
map service can enable a uCDN to query properties of a part of footprints
efficiently. Please see <xref target="unifiedpropertymap" format="default"/>.</li>
          <li>Server-initiated notifications and incremental updates: When the footprint or
the capabilities of a dCDN change (i.e., unexpectedly from the perspective of
a uCDN), server-initiated notifications would enable a dCDN to inform a uCDN
about such changes directly. Consider the case where - due to failure - part
of the footprint of the dCDN is not functioning, i.e., the CDN cannot serve
content to such clients with reasonable QoS. Without server-initiated
notifications, the uCDN might still use a recent network and cost map from the
dCDN, and therefore redirect requests to the dCDN which it cannot serve.
Similarly, the possibility for incremental updates would enable efficient
conveyance of the aforementioned (or similar) status changes by the dCDN to
the uCDN. The newest design of ALTO supports server pushed incremental updates
<xref target="RFC8895" format="default"/>.</li>
          <li>Content availability on hosts: A dCDN might want to express CDN capabilities
in terms of certain content types (e.g., codecs/ formats, or content from
certain content providers). ALTO Entity Property Map
<xref target="I-D.ietf-alto-unified-props-new" format="default"/> would enable a dCDN to make such
information available to a uCDN. This would enable a uCDN to access whether
a dCDN has the capabilities for a given type of content requested.</li>
          <li>Resource availability on hosts or links: The capabilities on links (e.g.,
maximum bandwidth) or caches (e.g., average load) might be useful information
for a uCDN for optimized dCDN selection. For instance, if a uCDN receives a
streaming request for content with a certain bitrate, it needs to know if it
is likely that a dCDN can fulfill such stringent application-level
requirements (i.e., can be expected to have enough consistent bandwidth)
before it redirects the request. In general, if ALTO could convey such
information via ALTO Entity Property Map <xref target="I-D.ietf-alto-unified-props-new" format="default"/>,
it would enable more sophisticated means for dCDN selection with ALTO. ALTO
Path Vector Extension <xref target="I-D.ietf-alto-path-vector" format="default"/> is designed to allow ALTO
clients to query information such as capacity regions for a given set of
flows.
<!-- Skip header line -->
          </li>
        </ul>
      </section>
    </section>
    <section anchor="cdnifci" numbered="true" toc="default">
      <name>CDNI Advertisement Service</name>
      <t>The ALTO protocol relies upon the ALTO Information Service framework which
consists of multiple services. All ALTO services are "provided through a
common transport protocol, messaging structure and encoding, and transaction
model" <xref target="RFC7285" format="default"/>. The ALTO protocol specification defines multiple
initial services, e.g., the ALTO network map service and cost map service.</t>
      <t>This document defines a new ALTO service, called "CDNI Advertisement Service",
which conveys JSON <xref target="RFC8259" format="default"/> objects of media type "application/alto-cdni+json". These
JSON objects are used to transport BaseAdvertisementObject objects defined in
<xref target="RFC8008" format="default"/>. This document specifies how to transport such
BaseAdvertisementObject objects via the ALTO protocol with the ALTO "CDNI
Advertisement Service". Similar to other ALTO services, this document defines
the ALTO information resource for the "CDNI Advertisement Service" as follows.</t>
      <t>Note that the encoding of BaseAdvertisementObject reuses the one
defined in <xref target="RFC8008" format="default"/> and therefore also follows the recommendations of I-JSON
(Internet JSON) <xref target="RFC7493" format="default"/>, which is required by <xref target="RFC8008" format="default"/>.</t>
      <section anchor="cdnifcimediatype" numbered="true" toc="default">
        <name>Media Type</name>
        <t>The media type of the CDNI Advertisement resource is
"application/alto-cdni+json" (see <xref target="iana" format="default"/>).</t>
      </section>
      <section anchor="cdnifcimethod" numbered="true" toc="default">
        <name>HTTP Method</name>
        <t>A CDNI Advertisement resource is requested using the HTTP GET method.</t>
      </section>
      <section anchor="cdnifciinput" numbered="true" toc="default">
        <name>Accept Input Parameters</name>
        <t>There are no applicable Accept Input parameters.</t>
      </section>
      <section anchor="cdnifcicap" numbered="true" toc="default">
        <name>Capabilities</name>
        <t>There are no applicable capabilities.</t>
      </section>
      <section anchor="cdnifciuses" numbered="true" toc="default">
        <name>Uses</name>
        <t>The "uses" field MUST NOT appear unless the CDNI Advertisement resource
depends on other ALTO information resources. If the CDNI Advertisement
resource has dependent resources, the resource IDs of its
dependent resources MUST be included into the "uses" field. This
document only defines one potential dependent resource for the CDNI
Advertisement resource. See <xref target="cdnifcinetworkmap" format="default"/> for details
of when and how to use it. Future documents may extend the CDNI Advertisement
resource and allow other dependent resources.</t>
      </section>
      <section anchor="cdnifciencoding" numbered="true" toc="default">
        <name>Response</name>
        <t>The "meta" field of a CDNI Advertisement response MUST include the "vtag"
field defined in Section 10.3 of <xref target="RFC7285" format="default"/>. This
field provides the version of the retrieved CDNI FCI resource.</t>
        <t>If a CDNI Advertisement response depends on other ALTO information resources, it
MUST include the "dependent-vtags" field, whose value is an array to indicate
the version tags of the resources used, where each resource is specified in
"uses" of its Information Resource Directory (IRD) entry.</t>
        <t>The data component of an ALTO CDNI Advertisement response is named
"cdni-advertisement", which is a JSON object of type CDNIAdvertisementData:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
    object {
      CDNIAdvertisementData cdni-advertisement;
    } InfoResourceCDNIAdvertisement : ResponseEntityBase;

    object {
      BaseAdvertisementObject capabilities-with-footprints<0..*>;
    } CDNIAdvertisementData;
]]></artwork>
        <t>Specifically, a CDNIAdvertisementData object is a JSON object that includes
only one property named "capabilities-with-footprints", whose value is an array
of BaseAdvertisementObject objects. It provides capabilities with footprint
restrictions for uCDN to decide the dCDN selection. If the value of this
property is an empty array, it means the corresponding dCDN cannot provide any
mandatory-to-implement CDNI capabilities for any footprints.</t>
        <t>The syntax and semantics of BaseAdvertisementObject are well defined in Section
5.1 of <xref target="RFC8008" format="default"/>. A BaseAdvertisementObject object includes multiple
properties, including capability-type, capability-value, and footprints, where
footprints are defined in Section 4.2.2.2 of <xref target="RFC8006" format="default"/>.</t>
        <t>To be self-contained, below is an equivalent specification of
BaseAdvertisementObject described in the ALTO-style notation (see Section 8.2
of <xref target="RFC7285" format="default"/>). As mentioned above, the normative specification of
BaseAdvertisementObject is in <xref target="RFC8008" format="default"/>.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
    object {
      JSONString capability-type;
      JSONValue capability-value;
      Footprint footprints<0..*>;
    } BaseAdvertisementObject;

    object {
      JSONString footprint-type;
      JSONString footprint-value<1..*>;
    } Footprint;
]]></artwork>
        <t>For each BaseAdvertisementObject, the ALTO client MUST interpret footprints
appearing multiple times as if they appeared only once. If footprints in a
BaseAdvertisementObject is null or empty or not appearing, the ALTO client MUST
understand that the capabilities in this BaseAdvertisementObject have the
"global" coverage, i.e., the corresponding dCDN can provide them for any
request routing source.</t>
        <t>Note: Further optimization of BaseAdvertisement objects to effectively provide
the advertisement of capabilities with footprint restrictions is certainly
possible. For example, these two examples below both describe that the dCDN can
provide capabilities ["http/1.1", "https/1.1"] for the same footprints. However,
the latter one is smaller in its size.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
EXAMPLE 1
    {
      "meta": {...},
      "cdni-advertisement": {
        "capabilities-with-footprints": [
          {
            "capability-type": "FCI.DeliveryProtocol",
            "capability-value": {
              "delivery-protocols": [
                "http/1.1"
              ]
            },
            "footprints": [
              <Footprint objects>
            ]
          },
          {

            "capability-type": "FCI.DeliveryProtocol",
            "capability-value": {
              "delivery-protocols": [
                "https/1.1"
              ]
            },
            "footprints": [
              <Footprint objects>
            ]
          }
        ]
      }
    }

EXAMPLE 2
    {
      "meta": {...},
      "cdni-advertisement": {
        "capabilities-with-footprints": [
          {
            "capability-type": "FCI.DeliveryProtocol",
            "capability-value": {
              "delivery-protocols": [
                "https/1.1",
                "http/1.1"
              ]
            },
            "footprints": [
              <Footprint objects>
            ]
          }
        ]
      }
    }
]]></artwork>
        <t>Since such optimizations are not required for the basic interconnection of CDNs,
the specifics of such mechanisms are outside the scope of this document.</t>
        <t>This document only requires the ALTO server to provide the initial FCI-specific
CDNI Payload Types defined in <xref target="RFC8008" format="default"/> as the mandatory-to-implement CDNI
capabilities.</t>
        <!--
There may be other documents extending BaseAdvertisementObject and
additional CDNI capabilities. They are outside the scope of this document. To
support them, future documents can extend the specification defined in this
document.
-->

</section>
      <section anchor="cdnifciexamples" numbered="true" toc="default">
        <name>Examples</name>
        <section anchor="IRDexample" numbered="true" toc="default">
          <name>IRD</name>
          <t>Below is the IRD of a simple, example ALTO
server. The server provides both base ALTO information resources (e.g., network
maps) and CDNI FCI related information resources (e.g., CDNI Advertisement
resources), demonstrating a single, integrated environment.</t>
          <t>Specifically, the IRD announces nine information resources as follows:</t>
          <ul spacing="normal">
            <li>two network maps,</li>
            <li>one CDNI Advertisement resource without dependency,</li>
            <li>one CDNI Advertisement resource depending on a network map,</li>
            <li>one filtered CDNI Advertisement resource to be defined in <xref target="filteredcdnifci" format="default"/>,</li>
            <li>one property map including "cdni-capabilities" as its entity property,</li>
            <li>one filtered property map including "cdni-capabilities" and "pid" as its entity properties, and</li>
            <li>
              <t>two update stream services:
              </t>
              <ul spacing="normal">
                <li>one for updating CDNI Advertisement resources,</li>
                <li>one for updating property maps</li>
              </ul>
            </li>
          </ul>
          <artwork name="" type="" align="left" alt=""><![CDATA[
 GET /directory HTTP/1.1
 Host: alto.example.com
 Accept: application/alto-directory+json,application/alto-error+json

 HTTP/1.1 200 OK
 Content-Length: 3531
 Content-Type: application/alto-directory+json

 {
   "meta": {
     "default-alto-network-map": "my-default-network-map"
   },
   "resources": {
     "my-default-network-map": {
       "uri": "https://alto.example.com/networkmap",
       "media-type": "application/alto-networkmap+json"
     },
     "my-eu-netmap": {
       "uri": "https://alto.example.com/myeunetmap",
       "media-type": "application/alto-networkmap+json"
     },
     "my-default-cdnifci": {
       "uri": "https://alto.example.com/cdnifci",
       "media-type": "application/alto-cdni+json"
     },
     "my-cdnifci-with-pid-footprints": {
       "uri": "https://alto.example.com/networkcdnifci",
       "media-type": "application/alto-cdni+json",
       "uses": [ "my-eu-netmap" ]
     },
     "my-filtered-cdnifci": {
       "uri": "https://alto.example.com/cdnifci/filtered",
       "media-type": "application/alto-cdni+json",
       "accepts": "application/alto-cdnifilter+json"
     },
     "cdnifci-property-map": {
       "uri": "https://alto.example.com/propmap/full/cdnifci",
       "media-type": "application/alto-propmap+json",
       "uses": [ "my-default-cdni" ],
       "capabilities": {
         "mappings": {
           "ipv4": [ "my-default-cdni.cdni-capabilities" ],
           "ipv6": [ "my-default-cdni.cdni-capabilities" ],
           "countrycode": [
             "my-default-cdni.cdni-capabilities" ],
           "asn": [ "my-default-cdni.cdni-capabilities" ]
         }
       }
     },
     "filtered-cdnifci-property-map": {
       "uri": "https://alto.example.com/propmap/lookup/cdnifci-pid",
       "media-type": "application/alto-propmap+json",
       "accepts": "application/alto-propmapparams+json",
       "uses": [ "my-default-cdni", "my-default-network-map" ],
       "capabilities": {
         "mappings": {
           "ipv4": [ "my-default-cdni.cdni-capabilities",
                     "my-default-network-map.pid" ],
           "ipv6": [ "my-default-cdni.cdni-capabilities",
                     "my-default-network-map.pid" ],
           "countrycode": [
             "my-default-cdni.cdni-capabilities" ],
           "asn": [ "my-default-cdni.cdni-capabilities" ]
         }
       }
     },
     "update-my-cdni-fci": {
       "uri": "https://alto.example.com/updates/cdnifci",
       "media-type": "text/event-stream",
       "accepts": "application/alto-updatestreamparams+json",
       "uses": [
         "my-default-network-map",
         "my-eu-netmap",
         "my-default-cdnifci",
         "my-filtered-cdnifci",
         "my-cdnifci-with-pid-footprints"
       ],
       "capabilities": {
         "incremental-change-media-types": {
          "my-default-network-map": "application/json-patch+json",
          "my-eu-netmap": "application/json-patch+json",
          "my-default-cdnifci":
          "application/merge-patch+json,application/json-patch+json",
          "my-filtered-cdnifci":
          "application/merge-patch+json,application/json-patch+json",
          "my-cdnifci-with-pid-footprints":
          "application/merge-patch+json,application/json-patch+json"
         }
       }
     },
     "update-my-props": {
       "uri": "https://alto.example.com/updates/properties",
       "media-type": "text/event-stream",
       "uses": [
         "cdnifci-property-map",
         "filtered-cdnifci-property-map"
       ],
       "capabilities": {
         "incremental-change-media-types": {
          "cdnifci-property-map":
          "application/merge-patch+json,application/json-patch+json",
          "filtered-cdnifci-property-map":
          "application/merge-patch+json,application/json-patch+json"
         }
       }
     }
   }
 }
]]></artwork>
        </section>
        <section anchor="fullcdnifciexample" numbered="true" toc="default">
          <name>A Basic Example</name>
          <t>This basic example demonstrates a simple CDNI Advertisement resource, which does
not depend on other resources. There are three BaseAdvertisementObjects in this
resource and these objects' capabilities are http/1.1 delivery protocol,
[http/1.1, https/1.1] delivery protocol, and https/1.1 acquisition protocol,
respectively.</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
  GET /cdnifci HTTP/1.1
  Host: alto.example.com
  Accept: application/alto-cdni+json,application/alto-error+json

  HTTP/1.1 200 OK
  Content-Length: 1411
  Content-Type: application/alto-cdni+json

  {
    "meta": {
      "vtag": {
        "resource-id": "my-default-cdnifci",
        "tag": "da65eca2eb7a10ce8b059740b0b2e3f8eb1d4785"
      }
    },
    "cdni-advertisement": {
      "capabilities-with-footprints": [
        {
          "capability-type": "FCI.DeliveryProtocol",
          "capability-value": {
            "delivery-protocols": [
              "http/1.1"
            ]
          },
          "footprints": [
            {
              "footprint-type": "ipv4cidr",
              "footprint-value": [ "192.0.2.0/24" ]
            },
            {
              "footprint-type": "ipv6cidr",
              "footprint-value": [ "2001:db8::/32" ]
            }
          ]
        },
        {
          "capability-type": "FCI.DeliveryProtocol",
          "capability-value": {
            "delivery-protocols": [
              "https/1.1",
              "http/1.1"
            ]
          },
          "footprints": [
            {
              "footprint-type": "ipv4cidr",
              "footprint-value": [ "198.51.100.0/24" ]
            }
          ]
        },
        {
          "capability-type": "FCI.AcquisitionProtocol",
          "capability-value": {
            "acquisition-protocols": [
              "https/1.1"
            ]
          },
          "footprints": [
            {
              "footprint-type": "ipv4cidr",
              "footprint-value": [ "203.0.113.0/24" ]
            }
          ]
        }
      ]
    }
  }
]]></artwork>
        </section>
        <section anchor="incremental-updates" numbered="true" toc="default">
          <name>Incremental Updates</name>
          <t>A benefit of using ALTO to provide CDNI Advertisement resources is that such
resources can be updated using ALTO incremental updates <xref target="RFC8895" format="default"/>. Below is
an example that also shows the benefit of having both JSON merge patch and JSON
patch to encode updates.</t>
          <t>At first, an ALTO client requests updates for "my-default-cdnifci", and the ALTO
server returns the "control-uri" followed by the full CDNI Advertisement
response. Then when there is a change in the delivery-protocols in that http/1.1
is removed (from [http/1.1, https/1.1] to only https/1.1) due to maintenance of
the http/1.1 clusters, the ALTO server regenerates the new CDNI Advertisement
resource and pushes the full replacement to the ALTO client. Later on, the ALTO
server notifies the ALTO client that "192.0.2.0/24" is added into the "ipv4"
footprint object for delivery-protocol https/1.1 by sending the change encoded
by JSON patch to the ALTO client.</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
 POST /updates/cdnifci HTTP/1.1
 Host: alto.example.com
 Accept: text/event-stream,application/alto-error+json
 Content-Type: application/alto-updatestreamparams+json
 Content-Length: 94

 {
   "add": {
     "my-cdnifci-stream": {
       "resource-id": "my-default-cdnifci"
     }
   }
 }

 HTTP/1.1 200 OK
 Connection: keep-alive
 Content-Type: text/event-stream

 event: application/alto-updatestreamcontrol+json
 data: {"control-uri":
 data: "https://alto.example.com/updates/streams/3141592653589"}

 event: application/alto-cdni+json,my-cdnifci-stream
 data: { ... full CDNI Advertisement resource ... }

 event: application/alto-cdni+json,my-cdnifci-stream
 data: {
 data:   "meta": {
 data:     "vtag": {
 data:       "tag": "dasdfa10ce8b059740bddsfasd8eb1d47853716"
 data:     }
 data:   },
 data:   "cdni-advertisement": {
 data:     "capabilities-with-footprints": [
 data:       {
 data:         "capability-type": "FCI.DeliveryProtocol",
 data:         "capability-value": {
 data:           "delivery-protocols": [
 data:             "https/1.1"
 data:           ]
 data:         },
 data:         "footprints": [
 data:           { "footprint-type": "ipv4cidr",
 data:             "footprint-value": [ "203.0.113.0/24" ]
 data:           }
 data:         ]
 data:       },
 data:       { ... other CDNI advertisement object ... }
 data:     ]
 data:   }
 data: }

 event: application/json-patch+json,my-cdnifci-stream
 data: [
 data:   { "op": "replace",
 data:     "path": "/meta/vtag/tag",
 data:     "value": "a10ce8b059740b0b2e3f8eb1d4785acd42231bfe"
 data:   },
 data:   { "op": "add",
 data:     "path": "/cdni-advertisement/capabilities-with-footprints
 /0/footprints/0/footprint-value/-",
 data:     "value": "192.0.2.0/24"
 data:   }
 data: ]
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="cdnifcinetworkmap" numbered="true" toc="default">
      <name>CDNI Advertisement Service using ALTO Network Map</name>
      <section anchor="network-map-footprint-type-altopid" numbered="true" toc="default">
        <name>Network Map Footprint Type: altopid</name>
        <t>The ALTO protocol defines a concept called Provider-defined Identifier (PID) to
represent a group of IPv4 or IPv6 addresses which can be applied the same
management policy. The PID is an alternative to the pre-defined CDNI footprint
types (i.e., ipv4cidr, ipv6cidr, asn, and countrycode).</t>
        <t>To leverage this concept, this document defines a new CDNI Footprint Type called
"altopid". A CDNI Advertisement resource can depend on an ALTO network map
resource and use "altopid" footprints to compress its CDNI Footprint Payload.</t>
        <t>Specifically, the "altopid" footprint type indicates that the corresponding
footprint value is a list of PIDNames as defined in <xref target="RFC7285" format="default"/>.
These PIDNames are references of PIDs in a network map resource. Hence a CDNI
Advertisement resource using "altopid" footprints depends on a network map. For
such a CDNI Advertisement resource, the resource id of its dependent network map
MUST be included in the "uses" field of its IRD entry, and the "dependent-vtags"
field with a reference to this network map MUST be included in its response (see
the example in <xref target="networkmapfootprint" format="default"/>).</t>
      </section>
      <section anchor="examples" numbered="true" toc="default">
        <name>Examples</name>
        <t>The following examples use the same IRD given in <xref target="IRDexample" format="default"/>.</t>
        <section anchor="networkmapexample" numbered="true" toc="default">
          <name>ALTO Network Map for CDNI Advertisements</name>
          <t>Below provides a sample network map whose resource id is "my-eu-netmap". This
map is referenced by the CDNI Advertisement example in <xref target="networkmapfootprint" format="default"/>.</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
 GET /myeunetmap HTTP/1.1
 Host: alto.example.com
 Accept: application/alto-networkmap+json,application/alto-error+json

 HTTP/1.1 200 OK
 Content-Length: 344
 Content-Type: application/alto-networkmap+json

 {
   "meta": {
     "vtag": [
       { "resource-id": "my-eu-netmap",
         "tag": "3ee2cb7e8d63d9fab71b9b34cbf764436315542e"
       }
     ]
   },
   "network-map": {
     "south-france" : {
       "ipv4": [ "192.0.2.0/24", "198.51.100.0/25" ],
       "ipv6": [ "2001:db8::/32" ]
     },
     "germany": {
       "ipv4": [ "203.0.113.0/24" ]
     }
   }
 }
]]></artwork>
        </section>
        <section anchor="networkmapfootprint" numbered="true" toc="default">
          <name>ALTO PID Footprints in CDNI Advertisements</name>
          <t>This example shows a CDNI Advertisement resource that depends on a network map
described in <xref target="networkmapexample" format="default"/>.</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
 GET /networkcdnifci HTTP/1.1
 Host: alto.example.com
 Accept: application/alto-cdni+json,application/alto-error+json

 HTTP/1.1 200 OK
 Content-Length: 736
 Content-Type: application/alto-cdni+json

 {
   "meta": {
     "dependent-vtags": [
       {
         "resource-id": "my-eu-netmap",
         "tag": "3ee2cb7e8d63d9fab71b9b34cbf764436315542e"
       }
     ]
   },
   "cdni-advertisement": {
     "capabilities-with-footprints": [
       { "capability-type": "FCI.DeliveryProtocol",
         "capability-value": [ "https/1.1" ],
         "footprints": [
           { "footprint-type": "altopid",
             "footprint-value": [ "south-france" ]
           }
         ]
       },
       { "capability-type": "FCI.AcquisitionProtocol",
         "capability-value": [ "https/1.1" ],
         "footprints": [
           { "footprint-type": "altopid",
             "footprint-value": [ "germany", "south-france" ]
           }
         ]
       }
     ]
   }
 }
]]></artwork>
        </section>
        <section anchor="incremental-updates-1" numbered="true" toc="default">
          <name>Incremental Updates</name>
          <t>In this example, the ALTO client is interested in changes of
"my-cdnifci-with-pid-footprints" and its dependent network map "my-eu-netmap".
Considering two changes, the first one is to change footprints of the https/1.1
delivery protocol capability, and the second one is to remove the
"south-france" PID from the footprints of the https/1.1 acquisition protocol
capability.</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
  POST /updates/cdnifci HTTP/1.1
  Host: alto.example.com
  Accept: text/event-stream,application/alto-error+json
  Content-Type: application/alto-updatestreamparams+json
  Content-Length: 185

  {
    "add": {
      "my-eu-netmap-stream": {
        "resource-id": "my-eu-netmap"
      },
      "my-netmap-cdnifci-stream": {
        "resource-id": "my-cdnifci-with-pid-footprints"
      }
    }
  }

  HTTP/1.1 200 OK
  Connection: keep-alive
  Content-Type: text/event-stream

  event: application/alto-updatestreamcontrol+json
  data: {"control-uri":
  data: "https://alto.example.com/updates/streams/3141592653590"}

  event: application/alto-networkmap+json,my-eu-netmap-stream
  data: { ... full Network Map of my-eu-netmap ... }

  event: application/alto-cdnifci+json,my-netmap-cdnifci-stream
  data: { ... full CDNI Advertisement resource ... }

  event: application/json-patch+json,my-netmap-cdnifci-stream
  data: [
  data:   { "op": "replace",
  data:     "path": "/meta/vtag/tag",
  data:     "value": "dasdfa10ce8b059740bddsfasd8eb1d47853716"
  data:   },
  data:   { "op": "add",
  data:     "path":
  data:     "/cdni-advertisement/capabilities-with-footprints
  /0/footprints/0/footprint-value/-",
  data:     "value": "germany"
  data:   }
  data: ]

  event: application/json-patch+json,my-netmap-cdnifci-stream
  data: [
  data:   { "op": "replace",
  data:     "path": "/meta/vtag/tag",
  data:     "value": "a10ce8b059740b0b2e3f8eb1d4785acd42231bfe"
  data:   },
  data:   { "op": "remove",
  data:     "path":
  data:     "/cdni-advertisement/capabilities-with-footprints
  /1/footprints/0/footprint-value/1"
  data:   }
  data: ]
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="filteredcdnifci" numbered="true" toc="default">
      <name>Filtered CDNI Advertisement using CDNI Capabilities</name>
      <t><xref target="cdnifci" format="default">Sections 3</xref> and <xref target="cdnifcinetworkmap" format="default">4</xref> describe CDNI Advertisement Service
which can be used to enable a uCDN to get capabilities with footprint
restrictions from dCDNs. However, since always getting full CDNI Advertisement
resources from dCDNs is inefficient, this document introduces a new service
named "Filtered CDNI Advertisement Service", to allow a client to filter a CDNI
Advertisement resource using a client-given set of CDNI capabilities. For each
entry of the CDNI Advertisement response, an entry will only be returned to the
client if it contains at least one of the client given CDNI capabilities. The
relationship between a filtered CDNI Advertisement resource and a CDNI
Advertisement resource is similar to the relationship between a filtered
network/cost map and a network/cost map.</t>
      <section anchor="media-type" numbered="true" toc="default">
        <name>Media Type</name>
        <t>A filtered CDNI Advertisement resource uses the same media type defined for the
CDNI Advertisement resource in <xref target="cdnifcimediatype" format="default"/>: "application/alto-cdni+json".</t>
      </section>
      <section anchor="http-method" numbered="true" toc="default">
        <name>HTTP Method</name>
        <t>A filtered CDNI Advertisement resource is requested using the HTTP POST method.</t>
      </section>
      <section anchor="filteredcdnifciinputs" numbered="true" toc="default">
        <name>Accept Input Parameters</name>
        <t>The input parameters for a filtered CDNI Advertisement resource are supplied in
the entity body of the POST request. This document specifies the input
parameters with a data format indicated by the media type
"application/alto-cdnifilter+json" which is a JSON object of type
ReqFilteredCDNIAdvertisement, where:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
   object {
       JSONString capability-type;
       JSONValue capability-value;
   } CDNICapability;

   object {
       CDNICapability cdni-capabilities<0..*>;
   } ReqFilteredCDNIAdvertisement;

]]></artwork>
        <t>with fields:</t>
        <dl>
          <dt>
capability-type:  </dt>
          <dd>
            <t>The same as Base Advertisement Object's capability-type defined in Section 5.1
of <xref target="RFC8008" format="default"/>.</t>
          </dd>
          <dt>
capability-value:  </dt>
          <dd>
            <t>The same as Base Advertisement Object's capability-value defined in Section
5.1 of <xref target="RFC8008" format="default"/>.</t>
          </dd>
          <dt>
cdni-capabilities:  </dt>
          <dd>
            <t>A list of CDNI capabilities defined in Section 5.1 of <xref target="RFC8008" format="default"/> for which
footprints are to be returned. If this list is empty, the ALTO
server MUST interpret it as a request for the full CDNI Advertisement
resource. The ALTO server MUST interpret entries appearing in this list multiple
times as if they appeared only once. If the ALTO server does not define any
footprints for a CDNI capability, it MUST omit this capability from the
response.</t>
          </dd>
        </dl>
      </section>
      <section anchor="capabilities" numbered="true" toc="default">
        <name>Capabilities</name>
        <t>There are no applicable capabilities.</t>
      </section>
      <section anchor="uses" numbered="true" toc="default">
        <name>Uses</name>
        <t>Same to the "uses" field of the CDNI Advertisement resource (see
<xref target="cdnifciuses" format="default"/>).</t>
      </section>
      <section anchor="response" numbered="true" toc="default">
        <name>Response</name>
        <t>If the request is invalid, the response MUST indicate an error, using ALTO
protocol error handling specified in Section 8.5 of <xref target="RFC7285" format="default"/>.</t>
        <t>Specifically, a filtered CDNI Advertisement request is invalid if:</t>
        <ul spacing="normal">
          <li>the value of "capability-type" is null;</li>
          <li>the value of "capability-value" is null;</li>
          <li>the value of "capability-value" is inconsistent with "capability-type".</li>
        </ul>
        <t>When a request is invalid, the ALTO server MUST return an
"E_INVALID_FIELD_VALUE" error defined in Section 8.5.2 of <xref target="RFC7285" format="default"/>, and the
"value" field of the error message SHOULD indicate this CDNI capability.</t>
        <t>The ALTO server returns a filtered CDNI Advertisement resource for a valid
request. The format of a filtered CDNI Advertisement resource is the same as a
full CDNI Advertisement resource (See <xref target="cdnifciencoding" format="default"/>.)</t>
        <!--
The returned CDNI Advertisement resource MUST contain only
BaseAdvertisementObject objects whose CDNI capability object is the superset of
one of CDNI capability object in "cdni-fci-capabilities". Specifically, that a
CDNI capability object A is the superset of another CDNI capability object B
means that these two CDNI capability objects have the same capability type and
mandatory properties in capability value of A MUST include mandatory properties
in capability value of B semantically.
-->

<t>The returned filtered CDNI Advertisement resource MUST contain all the
BaseAdvertisementObject objects satisfying the following condition: The CDNI
capability object of each included BaseAdvertisementObject object MUST follow
two constraints:</t>
        <ul spacing="normal">
          <li>The "cdni-capabilities" field of the input includes a CDNI capability object
X having the same capability type as it.</li>
          <li>All the mandatory properties in its capability value is a superset of
mandatory properties in capability value of X semantically.</li>
        </ul>
        <t>See <xref target="filteredcdnifciexample" format="default"/> for a concrete example.</t>
        <t>The version tag included in the "vtag" field of the response MUST correspond to
the full CDNI Advertisement resource from which the filtered CDNI Advertisement
resource is provided. This ensures that a single, canonical version tag is used
independently of any filtering that is requested by an ALTO client.</t>
      </section>
      <section anchor="examples-1" numbered="true" toc="default">
        <name>Examples</name>
        <t>The following examples use the same IRD example as in <xref target="IRDexample" format="default"/>.</t>
        <section anchor="filteredcdnifciexample" numbered="true" toc="default">
          <name>A Basic Example</name>
          <t>This example filters the full CDNI Advertisement resource in
<xref target="fullcdnifciexample" format="default"/> by selecting only the http/1.1 delivery protocol
capability. Only the second BaseAdvertisementObjects in the full resource will
be returned because the second object's capability is http/1.1 and https/1.1
delivery protocols which is the superset of https/1.1 delivery protocol.</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
  POST /cdnifci/filtered HTTP/1.1
  Host: alto.example.com
  Accept: application/alto-cdni+json
  Content-Type: application/cdnifilter+json
  Content-Length: 176

  {
    "cdni-capabilities": [
      {
        "capability-type": "FCI.DeliveryProtocol",
        "capability-value": {
          "delivery-protocols": [ "https/1.1" ]
        }
      }
    ]
  }

  HTTP/1.1 200 OK
  Content-Length: 570
  Content-Type: application/alto-cdni+json

  {
    "meta": {
      "vtag": {
        "resource-id": "my-filtered-cdnifci",
        "tag": "da65eca2eb7a10ce8b059740b0b2e3f8eb1d4785"
      }
    },
    "cdni-advertisement": {
      "capabilities-with-footprints": [
        {
          "capability-type": "FCI.DeliveryProtocol",
          "capability-value": {
            "delivery-protocols": [
              "https/1.1",
              "http/1.1"
            ]
          },
          "footprints": [
            {
              "footprint-type": "ipv4cidr",
              "footprint-value": [ "198.51.100.0/24" ]
            }
          ]
        }
      ]
    }
  }
]]></artwork>
        </section>
        <section anchor="incremental-updates-2" numbered="true" toc="default">
          <name>Incremental Updates</name>
          <t>In this example, the ALTO client only cares about the updates of one
advertisement object for delivery protocol capability whose value includes
"https/1.1". Thus, it adds its limitation of capabilities in "input" field of the
POST request.</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
  POST /updates/cdnifci HTTP/1.1
  Host: fcialtoupdate.example.com
  Accept: text/event-stream,application/alto-error+json
  Content-Type: application/alto-updatestreamparams+json
  Content-Length: 346

  {
    "add": {
      "my-filtered-fci-stream": {
        "resource-id": "my-filtered-cdnifci",
        "input": {
          "cdni-capabilities": [
            {
              "capability-type": "FCI.DeliveryProtocol",
              "capability-value": {
                "delivery-protocols": [ "https/1.1" ]
              }
            }
          ]
        }
      }
    }
  }

  HTTP/1.1 200 OK
  Connection: keep-alive
  Content-Type: text/event-stream

  event: application/alto-updatestreamcontrol+json
  data: {"control-uri":
  data: "https://alto.example.com/updates/streams/3141592653590"}

  event: application/alto-cdni+json,my-filtered-fci-stream
  data: { ... filtered CDNI Advertisement resource ... }

  event: application/json-patch+json,my-filtered-fci-stream
  data: [
  data:   {
  data:     "op": "replace",
  data:     "path": "/meta/vtag/tag",
  data:     "value": "a10ce8b059740b0b2e3f8eb1d4785acd42231bfe"
  data:   },
  data:   { "op": "add",
  data:     "path":
  data:     "/cdni-advertisement/capabilities-with-footprints
  /0/footprints/0/footprint-value/-",
  data:     "value": "192.0.2.0/24"
  data:   }
  data: ]
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="unifiedpropertymap" numbered="true" toc="default">
      <name>Query Footprint Properties using ALTO Property Map Service</name>
      <t>Besides the requirement of retrieving footprints of given capabilities, another
common requirement for uCDN is to query CDNI capabilities of given footprints.</t>
      <t>Considering each footprint as an entity with properties including CDNI
capabilities, a natural way to satisfy this requirement is to use the ALTO
property map as defined in <xref target="I-D.ietf-alto-unified-props-new" format="default"/>. This section
describes how ALTO clients look up properties for individual footprints. First,
it describes how to represent footprint objects as entities in the ALTO property
map. Then it describes how to represent footprint capabilities as entity
properties in the ALTO property map. Finally, it provides examples of the full
property map and the filtered property map supporting CDNI capabilities, and
their incremental updates.</t>
      <section anchor="footprinttoentities" numbered="true" toc="default">
        <name>Representing Footprint Objects as Property Map Entities</name>
        <t>A footprint object has two properties: footprint-type and footprint-value. A
footprint-value is an array of footprint values conforming to the specification
associated with the registered footprint type ("ipv4cidr", "ipv6cidr", "asn",
"countrycode", and "altopid"). Considering each ALTO entity defined in
<xref target="I-D.ietf-alto-unified-props-new" format="default"/> also has two properties: entity domain type
and domain-specific identifier, a straightforward approach to represent a
footprint as an ALTO entity is to represent its footprint-type as an entity
domain type, and its footprint value as a domain-specific identifier.</t>
        <t>Each existing footprint type can be represented as an entity domain type as
follows:</t>
        <ul spacing="normal">
          <li>According to <xref target="I-D.ietf-alto-unified-props-new" format="default"/>, "ipv4" and "ipv6" are two
predefined entity domain types, which can be used to represent "ipv4cidr" and
"ipv6cidr" footprints respectively. Note that both "ipv4" and "ipv6" domains
can include not only hierarchical addresses but also individual addresses.
Therefore, a "ipv4cidr" or "ipv6cidr" footprint with the longest prefix can
also be represented by an individual address entity. When the uCDN receives a
property map with individual addresses in an "ipv4" or "ipv6" domain, it can
translate them as corresponding "ipv4cidr" or "ipv6cidr" footprints with the
longest prefix.</li>
          <li>"pid" is also a predefined entity domain type, which can be used to represent
"altopid" footprints. Note that "pid" is a resource-specific entity domain. To
represent an "altopid" footprint, the specifying information resource of the
corresponding "pid" entity domain MUST be the dependent network map used by
the CDNI Advertisement resource providing this "altopid" footprint.</li>
          <li>However, no existing entity domain type can represent "asn" and "countrycode"
footprints. To represent footprint-type "asn" and "countrycode", this document
registers two new entity domains in <xref target="iana" format="default"/> in addition to the ones in
<xref target="I-D.ietf-alto-unified-props-new" format="default"/>.</li>
        </ul>
        <t>Here is an example of representing a footprint object of "ipv4cidr" type as a
set of "ipv4" entities in the ALTO property map. The representation of the
footprint object of "ipv6cidr" type is similar.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
{ "footprint-type": "ipv4cidr",
  "footprint-value": ["192.0.2.0/24", "198.51.100.0/24"]
} --> "ipv4:192.0.2.0/24", "ipv4:198.51.100.0/24"
]]></artwork>
        <t>And here is an example of corresponding footprint object of "ipv4cidr" type
represented by an individual address in an "ipv4" domain in the ALTO property
map. The translation of the entities in an "ipv6" domain is similar.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
"ipv4:203.0.113.100" --> {
  "footprint-type": "ipv4cidr",
  "footprint-value": ["203.0.113.100/32"]
}
]]></artwork>
        <section anchor="asn-domain" numbered="true" toc="default">
          <name>ASN Domain</name>
          <t>The ASN domain associates property values with Autonomous Systems in the
Internet.</t>
          <section anchor="entity-domain-type" numbered="true" toc="default">
            <name>Entity Domain Type</name>
            <t>The entity domain type of the ASN domain is "asn" (in lowercase).</t>
          </section>
          <section anchor="asn-entity-id" numbered="true" toc="default">
            <name>Domain-Specific Entity Identifiers</name>
            <t>The entity identifier of an entity in an ASN domain MUST be encoded as a string
consisting of the characters "as" (in lowercase) followed by the ASN
<xref target="RFC6793" format="default"/> as a decimal number without leading zeros.</t>
          </section>
          <section anchor="hierarchy-and-inheritance" numbered="true" toc="default">
            <name>Hierarchy and Inheritance</name>
            <t>There is no hierarchy or inheritance for properties associated with ASN.</t>
          </section>
        </section>
        <section anchor="countrycode-domain" numbered="true" toc="default">
          <name>COUNTRYCODE Domain</name>
          <t>The COUNTRYCODE domain associates property values with countries.</t>
          <section anchor="entity-domain-type-1" numbered="true" toc="default">
            <name>Entity Domain Type</name>
            <t>The entity domain type of the COUNTRYCODE domain is "countrycode" (in lowercase).</t>
          </section>
          <section anchor="countrycode-entity-id" numbered="true" toc="default">
            <name>Domain-Specific Entity Identifiers</name>
            <t>The entity identifier of an entity in a COUNTRYCODE domain is encoded as an ISO
3166-1 alpha-2 code <xref target="ISO3166-1" format="default"/> in lowercase.</t>
          </section>
          <section anchor="hierarchy-and-inheritance-1" numbered="true" toc="default">
            <name>Hierarchy and Inheritance</name>
            <t>There is no hierarchy or inheritance for properties associated with country
codes.</t>
          </section>
        </section>
      </section>
      <section anchor="capabilitytoproperties" numbered="true" toc="default">
        <name>Representing CDNI Capabilities as Property Map Entity Properties</name>
        <t>This document defines a new entity property type called "cdni-capabilities". An
ALTO server can provide a property map resource mapping the "cdni-capablities"
entity property type for a CDNI Advertisement resource that it provides to an
"ipv4", "ipv6", "asn" or "countrycode" entity domain.</t>
        <section anchor="defining-information-resource-media-type-for-property-type-cdni-capabilities" numbered="true" toc="default">
          <name>Defining Information Resource Media Type for Property Type cdni-capabilities</name>
          <t>The entity property type "cdni-capabilities" allows defining resource-specific
entity properties. When resource-specific entity properties are defined with
entity property type "cdni-capabilities", the defining information resource for
a "cdni-capabilities" property MUST be a CDNI Advertisement resource provided by
the ALTO server. The media type of the defining information resource for a
"cdni-capabilities" property is therefore:</t>
          <t>application/alto-cdni+json</t>
        </section>
        <section anchor="intended-semantics-of-property-type-cdni-capabilities" numbered="true" toc="default">
          <name>Intended Semantics of Property Type cdni-capabilities</name>
          <t>A "cdni-capabilities" property for an entity is to indicate all the CDNI
capabilities that a corresponding CDNI Advertisement resource provides for the
footprint represented by this entity. Thus, the value of a "cdni-capabilities"
property MUST be a JSON array. Each element in a "cdni-capabilities" property
MUST be an JSON object as format of CDNICapability (see
<xref target="filteredcdnifciinputs" format="default"/>). The value of a "cdni-capabilities" property for an
"ipv4", "ipv6", "asn", "countrycode" or "altopid" entity MUST include all the
CDNICapability objects satisfying the following conditions: (1) they are
provided by the defining CDNI Advertisement resource; and (2) the represented
footprint object of this entity is in their footprint restrictions.</t>
        </section>
      </section>
      <section anchor="examples-2" numbered="true" toc="default">
        <name>Examples</name>
        <t>The following examples use the same IRD example given by <xref target="IRDexample" format="default"/>.</t>
        <section anchor="property-map" numbered="true" toc="default">
          <name>Property Map</name>
          <t>This example shows a full property map in which entities are footprints and
entities' property is "cdni-capabilities".</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
 GET /propmap/full/cdnifci HTTP/1.1
 Host: alto.example.com
 Accept: application/alto-propmap+json,application/alto-error+json

 HTTP/1.1 200 OK
 Content-Length: 1522
 Content-Type: application/alto-propmap+json

 {
   "property-map": {
     "meta": {
       "dependent-vtags": [
         { "resource-id": "my-default-cdnifci",
           "tag": "7915dc0290c2705481c491a2b4ffbec482b3cf62"}
       ]
     },
     "countrycode:us": {
       "my-default-cdnifci.cdni-capabilities": [
         { "capability-type": "FCI.DeliveryProtocol",
           "capability-value": {
             "delivery-protocols": ["http/1.1"]}}]
     },
     "ipv4:192.0.2.0/24": {
       "my-default-cdnifci.cdni-capabilities": [
         { "capability-type": "FCI.DeliveryProtocol",
           "capability-value": {
             "delivery-protocols": ["http/1.1"]}}]
     },
     "ipv4:198.51.100.0/24": {
       "my-default-cdnifci.cdni-capabilities": [
         { "capability-type": "FCI.DeliveryProtocol",
           "capability-value": {
             "delivery-protocols": ["https/1.1", "http/1.1"]}}]
     },
     "ipv4:203.0.113.0/24": {
       "my-default-cdnifci.cdni-capabilities": [
         { "capability-type": "FCI.AcquisitionProtocol",
           "capability-value": {
             "acquisition-protocols": ["http/1.1"]}}]
     },
     "ipv6:2001:db8::/32": {
       "my-default-cdnifci.cdni-capabilities": [
         { "capability-type": "FCI.DeliveryProtocol",
           "capability-value": {
             "delivery-protocols": ["http/1.1"]}}]
     },
     "asn:as64496": {
       "my-default-cdnifci.cdni-capabilities": [
         { "capability-type": "FCI.DeliveryProtocol",
           "capability-value": {
             "delivery-protocols": ["https/1.1", "http/1.1"]}}]
     }
   }
 }
]]></artwork>
        </section>
        <section anchor="filtered-property-map" numbered="true" toc="default">
          <name>Filtered Property Map</name>
          <t>This example uses the filtered property map service to get "pid" and
"cdni-capabilities" properties for two footprints "ipv4:192.0.2.0/24" and
"ipv6:2001:db8::/32".</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
   POST /propmap/lookup/cdnifci-pid HTTP/1.1
   Host: alto.example.com
   Content-Type: application/alto-propmapparams+json
   Accept: application/alto-propmap+json,application/alto-error+json
   Content-Length: 181

   {
     "entities": [
       "ipv4:192.0.2.0/24",
       "ipv6:2001:db8::/32"
     ],
     "properties": [ "my-default-cdnifci.cdni-capabilities",
                     "my-default-networkmap.pid" ]
   }

 HTTP/1.1 200 OK
 Content-Length: 796
 Content-Type: application/alto-propmap+json

 {
   "property-map": {
     "meta": {
       "dependent-vtags": [
          {"resource-id": "my-default-cdnifci",
            "tag": "7915dc0290c2705481c491a2b4ffbec482b3cf62"},
          {"resource-id": "my-default-networkmap",
            "tag": "7915dc0290c2705481c491a2b4ffbec482b3cf63"}
       ]
     },
     "ipv4:192.0.2.0/24": {
       "my-default-cdnifci.cdni-capabilities": [
         {"capability-type": "FCI.DeliveryProtocol",
          "capability-value": {"delivery-protocols": ["http/1.1"]}}],
       "my-default-networkmap.pid": "pid1"
     },
     "ipv6:2001:db8::/32": {
       "my-default-cdnifci.cdni-capabilities": [
         {"capability-type": "FCI.DeliveryProtocol",
          "capability-value": {"delivery-protocols": ["http/1.1"]}}],
       "my-default-networkmap.pid": "pid3"
     }
   }
 }
]]></artwork>
        </section>
        <section anchor="incremental-updates-3" numbered="true" toc="default">
          <name>Incremental Updates</name>
          <t>In this example, the ALTO client is interested in updates for the properties
"cdni-capabilities" and "pid" of two footprints "ipv4:192.0.2.0/24" and
"countrycode:fr".</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
  POST /updates/properties HTTP/1.1
  Host: alto.example.com
  Accept: text/event-stream,application/alto-error+json
  Content-Type: application/alto-updatestreamparams+json
  Content-Length: 339

  {
    "add": {
      "fci-propmap-stream": {
        "resource-id": "filtered-cdnifci-property-map",
        "input": {
          "properties": [ "my-default-cdnifci.cdni-capabilities",
                          "my-default-networkmap.pid" ],
          "entities": [ "ipv4:192.0.2.0/24",
                        "ipv6:2001:db8::/32" ]
        }
      }
    }
  }

  HTTP/1.1 200 OK
  Connection: keep-alive
  Content-Type: text/event-stream

  event: application/alto-updatestreamcontrol+json
  data: {"control-uri":
  data: "https://alto.example.com/updates/streams/1414213562373"}

  event: application/alto-cdni+json,fci-propmap-stream
  data: { ... filtered property map ... }

  event: application/merge-patch+json,fci-propmap-stream
  data: {
  data:   "property-map": {
  data:     "meta": {
  data:       "dependent-vtags": [
  data:         { "resource-id": "my-default-cdnifci",
  data:           "tag": "2beeac8ee23c3dd1e98a73fd30df80ece9fa5627"},
  data:         { "resource-id": "my-default-networkmap",
  data:           "tag": "7915dc0290c2705481c491a2b4ffbec482b3cf63"}
  data:       ]
  data:     },
  data:     "ipv4:192.0.2.0/24": {
  data:       "my-default-cdnifci.cdni-capabilities": [
  data:         { "capability-type": "FCI.DeliveryProtocol",
  data:           "capability-value": {
  data:             "delivery-protocols": ["http/1.1", "https/1.1"]}}]
  data:     }
  data:   }
  data: }

  event: application/json-patch+json,fci-propmap-stream
  data: [
  data:   { "op": "replace",
  data:     "path": "/meta/dependent-vtags/0/tag",
  data:     "value": "61b23185a50dc7b334577507e8f00ff8c3b409e4"
  data:   },
  data:   { "op": "replace",
  data:     "path":
  data:     "/property-map/countrycode:fr/my-default-networkmap.pid",
  data:     "value": "pid5"
  data:   }
  data: ]
]]></artwork>
          <!-- Skip header line -->

</section>
      </section>
    </section>
    <section anchor="iana" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document defines two new media types: "application/alto-cdni+json", as
described in <xref target="iana-cdni" format="default"/>, and "application/cdnifilter+json", as described in
<xref target="iana-cdnifilter" format="default"/>. It also defines a new CDNI metadata footprint type
(<xref target="iana-footprint-type" format="default"/>), two new ALTO entity domain types
(<xref target="iana-entity-domain-type" format="default"/>), and a new ALTO entity property type
(<xref target="iana-entity-prop-type" format="default"/>).</t>
      <section anchor="iana-cdni" numbered="true" toc="default">
        <name>application/alto-cdni+json Media Type</name>
        <dl newline="true">
          <dt>
Type name:  </dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>
Subtype name:  </dt>
          <dd>
            <t>alto-cdni+json</t>
          </dd>
          <dt>
Required parameters:  </dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>
Optional parameters:  </dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>
Encoding considerations:  </dt>
          <dd>
            <t>Encoding considerations are identical to those specified for the
"application/json" media type. See <xref target="RFC8259" format="default"/>.</t>
          </dd>
          <dt>
Security considerations:  </dt>
          <dd>
            <t>Security considerations related to the generation and consumption of ALTO
Protocol messages are discussed in Section 15 of <xref target="RFC7285" format="default"/>.</t>
          </dd>
          <dt>
Interoperability considerations:  </dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>
Published specification:  </dt>
          <dd>
            <t><xref target="cdnifci" format="default"/> of RFCthis</t>
          </dd>
          <dt>
Applications that use this media type:  </dt>
          <dd>
            <t>ALTO servers and ALTO clients <xref target="RFC7285" format="default"/> either stand alone or are embedded within other
applications that provides CDNI interfaces for uCDNs or dCDNs.</t>
          </dd>
          <dt>
Fragment identifier considerations:  </dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>
Additional information:  </dt>
          <dd>
            <dl>
              <dt>
Magic number(s):      </dt>
              <dd>
                <t>N/A</t>
              </dd>
              <dt>
File extension(s):      </dt>
              <dd>
                <t>N/A</t>
              </dd>
              <dt>
Macintosh file type code(s):      </dt>
              <dd>
                <t>N/A</t>
              </dd>
            </dl>
          </dd>
          <dt>
Person &amp; email address to contact for further information:  </dt>
          <dd>
            <t>See Authors' Addresses section.</t>
          </dd>
          <dt>
Intended usage:  </dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>
Restrictions on usage:  </dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>
Author:  </dt>
          <dd>
            <t>See Authors' Addresses section.</t>
          </dd>
          <dt>
Change controller:  </dt>
          <dd>
            <t>Internet Engineering Task Force (mailto:iesg@ietf.org).</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-cdnifilter" numbered="true" toc="default">
        <name>application/alto-cdnifilter+json Media Type</name>
        <dl newline="true">
          <dt>
Type name:  </dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>
Subtype name:  </dt>
          <dd>
            <t>alto-cdnifilter+json</t>
          </dd>
          <dt>
Required parameters:  </dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>
Optional parameters:  </dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>
Encoding considerations:  </dt>
          <dd>
            <t>Encoding considerations are identical to those specified for the
"application/json" media type. See <xref target="RFC8259" format="default"/>.</t>
          </dd>
          <dt>
Security considerations:  </dt>
          <dd>
            <t>Security considerations related to the generation and consumption of ALTO
Protocol messages are discussed in Section 15 of <xref target="RFC7285" format="default"/>.</t>
          </dd>
          <dt>
Interoperability considerations:  </dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>
Published specification:  </dt>
          <dd>
            <t><xref target="filteredcdnifci" format="default"/> of RFCthis</t>
          </dd>
          <dt>
Applications that use this media type:  </dt>
          <dd>
            <t>ALTO servers and ALTO clients <xref target="RFC7285" format="default"/> either stand alone or are embedded
within other applications that provides CDNI interfaces for uCDNs or dCDNs
and supports CDNI capability-based filtering.</t>
          </dd>
          <dt>
Fragment identifier considerations:  </dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>
Additional information:  </dt>
          <dd>
            <dl>
              <dt>
Magic number(s):      </dt>
              <dd>
                <t>N/A</t>
              </dd>
              <dt>
File extension(s):      </dt>
              <dd>
                <t>N/A</t>
              </dd>
              <dt>
Macintosh file type code(s):      </dt>
              <dd>
                <t>N/A</t>
              </dd>
            </dl>
          </dd>
          <dt>
Person &amp; email address to contact for further information:  </dt>
          <dd>
            <t>See Authors' Addresses section.</t>
          </dd>
          <dt>
Intended usage:  </dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>
Restrictions on usage:  </dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>
Author:  </dt>
          <dd>
            <t>See Authors' Addresses section.</t>
          </dd>
          <dt>
Change controller:  </dt>
          <dd>
            <t>Internet Engineering Task Force (mailto:iesg@ietf.org).</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-footprint-type" numbered="true" toc="default">
        <name>CDNI Metadata Footprint Type Registry</name>
        <t>This document updates the CDNI Metadata Footprint Types Registry created by
Section 7.2 of <xref target="RFC8006" format="default"/>. A new footprint type is to be registered, listed in
<xref target="tbl_footprint-type" format="default"/>.</t>
        <table anchor="tbl_footprint-type" align="center">
          <name>CDNI Metadata Footprint Type</name>
          <thead>
            <tr>
              <th align="left">Footprint Type</th>
              <th align="left">Description</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">altopid</td>
              <td align="left">A list of PID names</td>
              <td align="left">
                <xref target="cdnifcinetworkmap" format="default"/> of RFCthis</td>
            </tr>
          </tbody>
        </table>
        <t>[RFC Editor: Please replace RFCthis with the published RFC number for this
document.]</t>
      </section>
      <section anchor="iana-entity-domain-type" numbered="true" toc="default">
        <name>ALTO Entity Domain Type Registry</name>
        <t>This document updates the ALTO Entity Domain Type Registry created by Section
11.2 of <xref target="I-D.ietf-alto-unified-props-new" format="default"/>. Two new entity domain types are to
be registered, listed in <xref target="tbl_entity-domain" format="default"/>.</t>
        <table anchor="tbl_entity-domain" align="center">
          <name>Additional ALTO Entity Domain Types</name>
          <thead>
            <tr>
              <th align="left">Identifier</th>
              <th align="left">Entity Address Encoding</th>
              <th align="left">Hierarchy &amp; Inheritance</th>
              <th align="left">Media Type of Defining Resource</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">asn</td>
              <td align="left">See <xref target="asn-entity-id" format="default"/> of RFCthis</td>
              <td align="left">None</td>
              <td align="left">None</td>
            </tr>
            <tr>
              <td align="left">countrycode</td>
              <td align="left">See <xref target="countrycode-entity-id" format="default"/> of RFCthis</td>
              <td align="left">None</td>
              <td align="left">None</td>
            </tr>
          </tbody>
        </table>
        <t>[RFC Editor: Please replace RFCthis with the published RFC number for this
document.]</t>
      </section>
      <section anchor="iana-entity-prop-type" numbered="true" toc="default">
        <name>ALTO Entity Property Type Registry</name>
        <t>This document updates the ALTO Entity Property Type Registry created by Section
11.3 of <xref target="I-D.ietf-alto-unified-props-new" format="default"/>. A new entity property type is to
be registered, listed in <xref target="tbl_prop-type-register" format="default"/>.</t>
        <table anchor="tbl_prop-type-register" align="center">
          <name>Additional ALTO Entity Property Type</name>
          <thead>
            <tr>
              <th align="left">Identifier</th>
              <th align="left">Intended Semantics</th>
              <th align="left">Media Type of Defining Resource</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">cdni-capabilities</td>
              <td align="left">
                <xref target="capabilitytoproperties" format="default"/> of RFCthis</td>
              <td align="left">application/alto-cdni+json</td>
            </tr>
          </tbody>
        </table>
        <t>[RFC Editor: Please replace RFCthis with the published RFC number for this
document.]</t>
      </section>
    </section>
    <section anchor="security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>As an extension of the base ALTO protocol <xref target="RFC7285" format="default"/>, this document fits into
the architecture of the base protocol. And hence Security Considerations of the
base protocol (Section 15 of <xref target="RFC7285" format="default"/>) fully apply when this extension is
provided by an ALTO server.</t>
      <t>In the context of CDNI Advertisement, the following security risk scenarios
should be considered:</t>
      <ul spacing="normal">
        <li>For authenticity and integrity of ALTO information, an attacker may disguise
itself as an ALTO server for a dCDN (e.g., by starting a man-in-the-middle
attack), and provide false capabilities and footprints to a uCDN using the
CDNI Advertisement service. Such false information may lead a uCDN to (1)
select an incorrect dCDN to serve user requests, or (2) skip uCDNs in good
conditions. To address this risk, protection strategies in Section 15.1.2 of
<xref target="RFC7285" format="default"/> can be applied.</li>
        <li>For potential undesirable guidance from authenticated ALTO information, a dCDN
can provide a uCDN with limited capabilities and smaller footprint coverage so
that the dCDN can avoid transferring traffic for a uCDN which they should have
to transfer. To reduce this risk, the protection strategies in Section 15.2.2
of <xref target="RFC7285" format="default"/> can be considered.</li>
        <li>For confidentiality and privacy of ALTO information, footprint properties
integrated with ALTO property maps may expose network location identifiers
(e.g., IP addresses or fine-grained PIDs). To address this risk, the
protection strategy for risk types (1) and (3) as described in Section 15.3 of
<xref target="RFC7285" format="default"/> can be considered.</li>
        <li>For availability of ALTO services, an attacker may conduct service degradation
attacks using services defined in this document to disable ALTO services of a
network. It may request potentially large, full CDNI Advertisement resources
from an ALTO server in a dCDN continuously, to consume the bandwidth resources
of that ALTO server. It may also query filtered property map services with
many smaller individual footprints, to consume the computation resources of
the ALTO server. To mitigate these risks, the protection strategies in
Section 15.5.2 of <xref target="RFC7285" format="default"/> can be applied.</li>
      </ul>
      <t>Although protection strategies as described in Section 15 of <xref target="RFC7285" format="default"/> should
be applied to address aforementioned security and privacy considerations,
two special cases need to be included as follows:</t>
      <ul spacing="normal">
        <li>
          <t>As required by section 7 of <xref target="RFC8008" format="default"/>,  </t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
"All protocols that implement these capabilities and footprint
advertisement objects are REQUIRED to provide integrity and
authentication services."
]]></artwork>
          <t>
Therefore, the uCDN (ALTO Client)
MUST be authenticated to the dCDN (ALTO Server). And the dCDN (ALTO Server)
MUST support HTTP Digest Authentication and MAY also support TLS mutual
authentication. The authentication method will need to be negotiated out of
band and is out of scope for this document, as is the approach for
provisioning and managing these credentials.</t>
        </li>
        <li>
          <t>One specific information leakage risk introduced by this document could not
be addressed by these strategies. In particular, if a dCDN signs agreements
with multiple uCDNs without any isolation, this dCDN may disclose extra
information of one uCDN to another one. In that case, one uCDN may redirect
requests which should not have to be served by this dCDN to it.  </t>
          <t>
To reduce the risk, a dCDN SHOULD isolate full/filtered CDNI Advertisement
resources for different uCDNs. It could consider generating URIs of different
full/filtered CDNI Advertisement resources by hashing its company ID, a
uCDN's company ID as well as their agreements. A dCDN SHOULD avoid exposing
all full/filtered CDNI Advertisement resources in one of its IRDs.</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="ISO3166-1">
          <front>
            <title>ISO 3166-1: Codes for the representation of names of countries and their subdivisions -- Part 1: Country codes</title>
            <author initials="." surname="ISO (International Organization for Standardization)" fullname="ISO (International Organization for Standardization)">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-alto-unified-props-new">
          <front>
            <title>An ALTO Extension: Entity Property Maps</title>
            <author fullname="Wendy Roome">
              <organization>Nokia Bell Labs</organization>
            </author>
            <author fullname="Sabine Randriamasy">
              <organization>Nokia Bell Labs</organization>
            </author>
            <author fullname="Y. Richard Yang">
              <organization>Yale University</organization>
            </author>
            <author fullname="Jingxuan Jensen Zhang">
              <organization>Tongji University</organization>
            </author>
            <author fullname="Kai Gao">
              <organization>Sichuan University</organization>
            </author>
            <date day="25" month="January" year="2022"/>
            <abstract>
              <t>   This document specifies an extension to the base Application-Layer
   Traffic Optimization (ALTO) protocol that generalizes the concept of
   "endpoint properties", which were so far tied to IP addresses, 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 RFC7285, 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 on specific endpoints to entire
   entity property maps.  These extensions introduce additional features
   allowing 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="Internet-Draft" value="draft-ietf-alto-unified-props-new-22"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>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="RFC6793">
          <front>
            <title>BGP Support for Four-Octet Autonomous System (AS) Number Space</title>
            <author fullname="Q. Vohra" initials="Q." surname="Vohra">
              <organization/>
            </author>
            <author fullname="E. Chen" initials="E." surname="Chen">
              <organization/>
            </author>
            <date month="December" year="2012"/>
            <abstract>
              <t>The Autonomous System number is encoded as a two-octet entity in the base BGP specification.  This document describes extensions to BGP to carry the Autonomous System numbers as four-octet entities.  This document obsoletes RFC 4893 and updates RFC 4271.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6793"/>
          <seriesInfo name="DOI" value="10.17487/RFC6793"/>
        </reference>
        <reference anchor="RFC7285">
          <front>
            <title>Application-Layer Traffic Optimization (ALTO) Protocol</title>
            <author fullname="R. Alimi" initials="R." role="editor" surname="Alimi">
              <organization/>
            </author>
            <author fullname="R. Penno" initials="R." role="editor" surname="Penno">
              <organization/>
            </author>
            <author fullname="Y. Yang" initials="Y." role="editor" surname="Yang">
              <organization/>
            </author>
            <author fullname="S. Kiesel" initials="S." surname="Kiesel">
              <organization/>
            </author>
            <author fullname="S. Previdi" initials="S." surname="Previdi">
              <organization/>
            </author>
            <author fullname="W. Roome" initials="W." surname="Roome">
              <organization/>
            </author>
            <author fullname="S. Shalunov" initials="S." surname="Shalunov">
              <organization/>
            </author>
            <author fullname="R. Woundy" initials="R." surname="Woundy">
              <organization/>
            </author>
            <date month="September" year="2014"/>
            <abstract>
              <t>Applications using the Internet already have access to some topology information of Internet Service Provider (ISP) networks.  For example, views to Internet routing tables at Looking Glass servers are available and can be practically downloaded to many network application clients.  What is missing is knowledge of the underlying network topologies from the point of view of ISPs.  In other words, what an ISP prefers in terms of traffic optimization -- and a way to distribute it.</t>
              <t>The Application-Layer Traffic Optimization (ALTO) services defined in this document provide network information (e.g., basic network location structure and preferences of network paths) with the goal of modifying network resource consumption patterns while maintaining or improving application performance.  The basic information of ALTO is based on abstract maps of a network.  These maps provide a simplified view, yet enough information about a network for applications to effectively utilize them.  Additional services are built on top of the maps.</t>
              <t>This document describes a protocol implementing the ALTO services. Although the ALTO services would primarily be provided by ISPs, other entities, such as content service providers, could also provide ALTO services.  Applications that could use the ALTO services are those that have a choice to which end points to connect.  Examples of such applications are peer-to-peer (P2P) and content delivery networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7285"/>
          <seriesInfo name="DOI" value="10.17487/RFC7285"/>
        </reference>
        <reference anchor="RFC7493">
          <front>
            <title>The I-JSON Message Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray">
              <organization/>
            </author>
            <date month="March" year="2015"/>
            <abstract>
              <t>I-JSON (short for "Internet JSON") is a restricted profile of JSON designed to maximize interoperability and increase confidence that software can process it successfully with predictable results.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7493"/>
          <seriesInfo name="DOI" value="10.17487/RFC7493"/>
        </reference>
        <reference anchor="RFC8006">
          <front>
            <title>Content Delivery Network Interconnection (CDNI) Metadata</title>
            <author fullname="B. Niven-Jenkins" initials="B." surname="Niven-Jenkins">
              <organization/>
            </author>
            <author fullname="R. Murray" initials="R." surname="Murray">
              <organization/>
            </author>
            <author fullname="M. Caulfield" initials="M." surname="Caulfield">
              <organization/>
            </author>
            <author fullname="K. Ma" initials="K." surname="Ma">
              <organization/>
            </author>
            <date month="December" year="2016"/>
            <abstract>
              <t>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">
          <front>
            <title>Content Delivery Network Interconnection (CDNI) Request Routing: Footprint and Capabilities Semantics</title>
            <author fullname="J. Seedorf" initials="J." surname="Seedorf">
              <organization/>
            </author>
            <author fullname="J. Peterson" initials="J." surname="Peterson">
              <organization/>
            </author>
            <author fullname="S. Previdi" initials="S." surname="Previdi">
              <organization/>
            </author>
            <author fullname="R. van Brandenburg" initials="R." surname="van Brandenburg">
              <organization/>
            </author>
            <author fullname="K. Ma" initials="K." surname="Ma">
              <organization/>
            </author>
            <date month="December" year="2016"/>
            <abstract>
              <t>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.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8008"/>
          <seriesInfo name="DOI" value="10.17487/RFC8008"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray">
              <organization/>
            </author>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format.  It was derived from the ECMAScript Programming Language Standard.  JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>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="RFC8895">
          <front>
            <title>Application-Layer Traffic Optimization (ALTO) Incremental Updates Using Server-Sent Events (SSE)</title>
            <author fullname="W. Roome" initials="W." surname="Roome">
              <organization/>
            </author>
            <author fullname="Y. Yang" initials="Y." surname="Yang">
              <organization/>
            </author>
            <date month="November" year="2020"/>
            <abstract>
              <t>The Application-Layer Traffic Optimization (ALTO) protocol (RFC 7285) provides network-related information, called network information resources, to client applications so that clients can make informed decisions in utilizing network resources. This document presents a mechanism to allow an ALTO server to push updates to ALTO clients to achieve two benefits: (1) updates can be incremental, in that if only a small section of an information resource changes, the ALTO server can send just the changes and (2) updates can be immediate, in that the ALTO server can send updates as soon as they are available.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8895"/>
          <seriesInfo name="DOI" value="10.17487/RFC8895"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="I-D.ietf-alto-path-vector">
          <front>
            <title>An ALTO Extension: Path Vector</title>
            <author fullname="Kai Gao">
              <organization>Sichuan University</organization>
            </author>
            <author fullname="Young Lee">
              <organization>Samsung</organization>
            </author>
            <author fullname="Sabine Randriamasy">
              <organization>Nokia Bell Labs</organization>
            </author>
            <author fullname="Yang Richard Yang">
              <organization>Yale University</organization>
            </author>
            <author fullname="Jingxuan Jensen Zhang">
              <organization>Tongji University</organization>
            </author>
            <date day="2" month="February" year="2022"/>
            <abstract>
              <t>   This document is an extension to the base Application-Layer Traffic
   Optimization (ALTO) protocol.  It extends the ALTO Cost Map and ALTO
   Property Map services so that an application can decide which
   endpoint(s) to connect based on not only numerical/ordinal cost
   values but also details of the paths.  This is useful for
   applications whose performance is impacted by specified components of
   a network on the end-to-end paths, e.g., they may infer that several
   paths share common links and prevent traffic bottlenecks by avoiding
   such paths.  This extension introduces a new abstraction called
   Abstract Network Element (ANE) to represent these components and
   encodes a network path as a vector of ANEs.  Thus, it provides a more
   complete but still abstract graph representation of the underlying
   network(s) for informed traffic optimization among endpoints.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-alto-path-vector-21"/>
        </reference>
        <reference anchor="RFC5693">
          <front>
            <title>Application-Layer Traffic Optimization (ALTO) Problem Statement</title>
            <author fullname="J. Seedorf" initials="J." surname="Seedorf">
              <organization/>
            </author>
            <author fullname="E. Burger" initials="E." surname="Burger">
              <organization/>
            </author>
            <date month="October" year="2009"/>
            <abstract>
              <t>Distributed applications -- such as file sharing, real-time communication, and live and on-demand media streaming -- prevalent on the Internet use a significant amount of network resources.  Such applications often transfer large amounts of data through connections established between nodes distributed across the Internet with little knowledge of the underlying network topology.  Some applications are so designed that they choose a random subset of peers from a larger set with which to exchange data.  Absent any topology information guiding such choices, or acting on suboptimal or local information obtained from measurements and statistics, these applications often make less than desirable choices.</t>
              <t>This document discusses issues related to an information-sharing service that enables applications to perform better-than-random peer selection.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5693"/>
          <seriesInfo name="DOI" value="10.17487/RFC5693"/>
        </reference>
        <reference anchor="RFC6707">
          <front>
            <title>Content Distribution Network Interconnection (CDNI) Problem Statement</title>
            <author fullname="B. Niven-Jenkins" initials="B." surname="Niven-Jenkins">
              <organization/>
            </author>
            <author fullname="F. Le Faucheur" initials="F." surname="Le Faucheur">
              <organization/>
            </author>
            <author fullname="N. Bitar" initials="N." surname="Bitar">
              <organization/>
            </author>
            <date month="September" year="2012"/>
            <abstract>
              <t>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>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="RFC7971">
          <front>
            <title>Application-Layer Traffic Optimization (ALTO) Deployment Considerations</title>
            <author fullname="M. Stiemerling" initials="M." surname="Stiemerling">
              <organization/>
            </author>
            <author fullname="S. Kiesel" initials="S." surname="Kiesel">
              <organization/>
            </author>
            <author fullname="M. Scharf" initials="M." surname="Scharf">
              <organization/>
            </author>
            <author fullname="H. Seidel" initials="H." surname="Seidel">
              <organization/>
            </author>
            <author fullname="S. Previdi" initials="S." surname="Previdi">
              <organization/>
            </author>
            <date month="October" year="2016"/>
            <abstract>
              <t>Many Internet applications are used to access resources such as pieces of information or server processes that are available in several equivalent replicas on different hosts.  This includes, but is not limited to, peer-to-peer file sharing applications.  The goal of Application-Layer Traffic Optimization (ALTO) is to provide guidance to applications that have to select one or several hosts from a set of candidates capable of providing a desired resource. This memo discusses deployment-related issues of ALTO.  It addresses different use cases of ALTO such as peer-to-peer file sharing and Content Delivery Networks (CDNs) and presents corresponding examples. The document also includes recommendations for network administrators and application designers planning to deploy ALTO, such as recommendations on how to generate ALTO map information.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7971"/>
          <seriesInfo name="DOI" value="10.17487/RFC7971"/>
        </reference>
        <reference anchor="RFC7975">
          <front>
            <title>Request Routing Redirection Interface for Content Delivery Network (CDN) Interconnection</title>
            <author fullname="B. Niven-Jenkins" initials="B." role="editor" surname="Niven-Jenkins">
              <organization/>
            </author>
            <author fullname="R. van Brandenburg" initials="R." role="editor" surname="van Brandenburg">
              <organization/>
            </author>
            <date month="October" year="2016"/>
            <abstract>
              <t>The Request Routing interface comprises (1) the asynchronous advertisement of footprint and capabilities by a downstream Content Delivery Network (CDN) that allows an upstream CDN to decide whether to redirect particular user requests to that downstream CDN; and (2) the synchronous operation of an upstream CDN requesting whether a downstream CDN is prepared to accept a user request and of a downstream CDN responding with how to actually redirect the user request.  This document describes an interface for the latter part, i.e., the CDNI Request Routing Redirection interface.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7975"/>
          <seriesInfo name="DOI" value="10.17487/RFC7975"/>
        </reference>
      </references>
    </references>
    <!-- Skip header line -->

<section anchor="ack" numbered="false" toc="default">
      <name>Acknowledgments</name>
      <t>The authors thank Matt Caulfield, Danny Alex Lachos Perez, Daryl Malas and
Sanjay Mishra for their timely reviews and invaluable comments. Big thanks also
to ALTO WG Chairs (Qin Wu and Vijay Gurbani), and all the directorate reviewers
and IESG reviewers (Martin Duke, Erik Kline, Martin Vigoureux, Murray
Kucherawy, Roman Danyliw, Zaheduzzaman Sarker, Eric Vyncke, and Francesca
Palombini), for their thorough reviews, discussions, guidance and shepherding,
that further improve this document.</t>
      <t>Jan Seedorf has been partially supported by the GreenICN project (GreenICN:
Architecture and Applications of Green Information Centric Networking), a
research project supported jointly by the European Commission under its 7th
Framework Program (contract no. 608518) and the National Institute of
Information and Communications Technology (NICT) in Japan (contract no. 167).
The views and conclusions contained herein are those of the authors and should
not be interpreted as necessarily representing the official policies or
endorsements, either expressed or implied, of the GreenICN project, the European
Commission, or NICT.</t>
      <t>This document has also been supported by the Coordination Support Action
entitled 'Supporting European Experts Presence in lnternational Standardisation
Activities in ICT' ("StandlCT.eu") funded by the European Commission under the
Horizon 2020 Programme with Grant Agreement no. 780439. The views and
conclusions contained herein are those of the authors and should not be
interpreted as necessarily representing the official policies or endorsements,
either expressed or implied, of the European Commission.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="X." surname="Lin" fullname="Xiao Shawn Lin">
        <organization>Huawei</organization>
        <address>
          <postal>
            <street>2222 Newjinqiao Rd</street>
            <city>Shanghai</city>
            <code>200125</code>
            <country>China</country>
          </postal>
          <phone>+86-15316812351</phone>
          <email>x.shawn.lin@gmail.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
q+97OXSuFSDh+v1RfYc009ih2bcaeK5I3a+y0t0YL5/fvjURCu4xXyxkrijK
qYY6nD+E69zcTN8S/JZ0AjsW60em3XbZCRkjG8crI7QfUioMA+nf1HYMpjWo
7UAbmjBxKrWRW/nT9Gc9t/1sXZWy7uoSRO4Vgy2NwihDgV+mC8coRD+MJNNA
2oyCIqWVSbk9kfoFAUgKvEVD1DqZTN7kldYXUgdU/IuHOouX5paYcLtCVmqe
1woz7P1h+4iy07B1vkCwe880ieVJyo/LnTQx22WrNZvmoOSbc9psal+tvmui
tf1l4rYsNL07d9sL0SptN7dedFu7TdJ7t+u3WWI51HdTN7qMS901pcnydniQ
8U3Lc2mzx61aqVJ4mI4N7tNKTUPspn63hV5M4CxGXL3OFTfGS2/ck/YsG5qh
uuV9G9ruBW+if2h+Umk2Jx2/bBO+UqOoLZpXbepexe3wjMRYc0eq8jz+O6pS
AuQ0u3pUbTv6ircSMM9H5zqW1pfWfhHI/S1IOCG3aSphBCd0f5mXt13XDe2Y
jLJSHzdvUgLHR87KgZma5nFK1bSPg2nLsMN5L01Qp9rprn5H5TvikYi4Ebhy
jVzKiU9d5i59/KitfU6eAuqt5WQ7KZ1tVWr+BUKAruZz2+q3pZ0pJ4xkIqT1
Q6MwonR701RMt+iiRZpOemrrHmPlzDEsI3Cv7MWmXB6kmAv54OcehrTWdKHv
K7K/uteImBy7Sq/gp3YHDoJbxMCaHrnbNGimIJMjMvBzHU3SLTapE2th7wxg
dQgQOR6beJvXPJb5H2kN6JboOlH0wLhp6CdlLpdy26G2XBxVCZhukgTlFQMi
0EWKXmvKii9R95L7qu1NNiee+CroovamBmJrlclhj3SlUNgI8AppMLUCxIPO
879dv/rj5Yvrq799c/38xdXf4O+3zzsC7hrmADCu3GxnHGeB2Ew+QvFY3N0/
UrffvX774soeO2F9iTD6TtJDKU91S1HO9EYwCBxRHWmpy9cWb6mzFA7fDoON
ToedUito3WB5t79rWwtZdbhtKDot0Y35MvJNDfM5PlqCp9NSlvaywsui+MIJ
UbObPkgk9IAGt1fg1lflTARMfw4axrmsmRqQxkmOqn7zdaDbu5r7PdEDXP92
broq8kk5L5Dgxu4upgGUeyUYeq/tu4YaL/3O1nWfBg2ffm06wyJkpMGSd+Jb
4Z139HLl+cbT50vS19VbwtGfHbPL8k53Mq+CHFZPDTxNksGGZrS0Rp4kIO+8
vX6dWhrdUVJ5taLbYw+ssZu+thUpKZOBFPyzzqJvPmbMnsFLRC/ljvimM4+L
vHp4pEW7xKEav687+D+XDj64rb9OUIdUhUlhrhKghkncEObn9AqvJpxQfN4H
oy9VbaIPZny16FEOy0R1g80JDq40ImngMkd9x4tYQlGSrzKdcmT7Z42A2BME
jL8vbnoOlGSiQfM1s4a1c68gN752bUe8FTEp5aF/VEKLjqGHeUtWS7UstfZA
y3F5fsupDWg3xUmvqha87nKGPvXJpo5d87WJLNXXjbpRJfVavy8xrfbiVVPE
YPqLzeeB67sZRqPQAFGiZFWzBQ/LrM+rTK0G4HJrwpYFhA2eVb4qhcvK/XU+
UyFra3CsZIrXxcNOT5x4WJUP2hBxXevMrSP0m+rNGhK2/Si2eV8HkPn//tAa
BvN2e3y6vzmY+LlKdlu6V/y7ZvffFZ1PLzLcmPRAjHcUomzjq1DxBV1zB8wK
L2mqzfB3C7Dq0g78Gxn09Q7OeaFkXdGVJJiYzfnB83gRF6aRd7n9eId0Kl9B
CDy35ROzDeAhki+/93NLOzg8OmlNOzC8Yvs0gTb2wrCt6dnRxNwbKOPjOh1v
wxHorScx/SotbaKsf2dJ+JVnNUhWTlbYxup7YsJC26xeQNwPLv88g+M/x9yF
UlFQW/j8D3Txp1OzYQ1GpyzIu/vUXtpZvWOc8uFzcxWWc8crMnS5Csu7o4PE
EAdJXXh0taNF373pDmUu54mdy0urUQIzsHchjpucR34DW1AS5hIFJgGHfkvP
ftbNeivNt9FDm4RgbIBsfuAbtMSnweLZXTsvWVsj2l1sewKXC1c23jMrJmwu
IRadlMB3Vzq6AIjfNH0Hwt/dFN/BPY7BGF7B4t0bJb6hwv0gtnfZmOswbS1W
uXCbwhAEQHOniC0Do00GVOlCRffbDu13H9J9kAPft1GZSEpq4oRdfbFzC5Sx
rPV97mA+lk5Bcirr+zZLT3OTXFJG3DH6LuLa28111EF2iUNY4nttYehR3HMN
UDDi9ctFqsFM90VWKujpauyH1Dnsi9LNOf5VSsxU+uoyKD3y7oZLnZtqWPmj
sjX0T5PPI612cQ/CPE9HdFe9vQIVLxPOGbKl+q8dR9V2G9lw98Vu4DV1ZB++
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
tZ1sX0d4e/d/1Mtw/xKIrf0VlWs0RLoeDKMoHJ1F0cHh6HA8HkTnZ+Hp4WR8
uD+enO1Ho+h8EgLgTzuP1VFaJy/J9ab5nyTd3UF+8P5dWl2jyPcA/ATpV9n4
U6RgZe8NVk/NbSGbRGTXragQ48e7BqYmZXzbBP8W7P74bnclpN7bb83uPxkM
Dw4HZ8fh8f54dDo8PDw6Pj093j+Nzib7+5PJ2ehweLR/Hh1t0/quZXH+sz2X
XPd8gbzXzO2b9gC/Hbfl7mNLBnX7Ll6qWRSOo0zNsYULle2D5nL56tKkwnLH
L/WBMpMaY6M6qclGnPL2hlp4sUW1BzfOQS/t6tzc5uJTGkK5QwTeEPzqbl9d
SzZkzU0YiB3SmMrNSg12zEh+mssurEtv1UsNdlJFnY8lTi/ZsXoA3RXNH8IL
LVbHwJ9lBA4cNMPWDbx+sPCAs/twgdPiUf+6U2SAKY8BvYVd+LBpkjNmENyu
hoX3Yym894bLEsZO4zF87dXeZRC8XuIYoPjW/PZcWoNQ5wSLYfh7w08UhODk
Bkx0pYQ4LB+0DXF0fE5VLz7vODjZV9iegJs8HRyfc6+caAQqArbgqiyn4Sfu
g2ea+im5QC+my1DG9PJqsdR5V9IASvNm3RNGYsxxPlrlud9uZlDT0YfSmBBB
TMOwymoJuDer4TzOZzCgl0WPv3/vNqaECWB4urk5uLQQkxgpx5yAzi3oqKeW
jS9TJMivD3EWrKKYupzkBeH6nBquZLTjaAG0Opaweiw3TwN8wsoiTPCVKJWM
okk4EktoRU0nscqUOlkGwTdZOOU4qU2CaYDRpWRWAio5UXD8+WU4jUeS47ST
7yKLlm8U+vGwXQVorNjKofzry3CEtxLm2IINL8akuDZwb/+9GwAcHPB/gNb5
FUAijG1+H12GA7aiFM9OVhlBsLRARN/LFWB/ln+pLk0qtFTvCJ5QvH2FSIaf
PHv98uXrV0iuThNQWIR5gWFCg241xTPuOC769Tyir3SaHZDwFNgLV1Dchfk7
7KWJ/YFws0V6AcrN9LeYutpPs2kbJ3MYfQM/4zc+G1dz2xr8m7f9AnlbKYXh
Z8DjADQul/s0Hoc8EiaS4rFK+7DeMMxNmyVAs3+zxF8yS6TDfamV09J9bW+o
lCBba2boq6gVFV07EE2hRcO4uR14BHYXJzYFmnBPnQ54Z/v7J1g5eklKbPkG
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
AQA=

-->

</rfc>
