<?xml version="1.0" encoding="US-ASCII"?> version='1.0' encoding='UTF-8'?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="4"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?> [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-cdni-capacity-insights-extensions-12" ipr="trust200902"> number="9808" consensus="true" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">

  <front>
    <title abbrev="CDNI Capacity Capability Advertisement Extensions">
            CDNI Extensions">Content Delivery Network Interconnection (CDNI)
    Capacity Capability Advertisement Extensions
        </title> Extensions</title>
    <seriesInfo name="RFC" value="9808"/>
    <author fullname="Andrew Ryan" initials="A." surname="Ryan">
            <organization>
                Disney Streaming
            </organization>
      <organization>Disney Streaming</organization>
      <address>
        <postal>
                    <street>
                    1211
          <street>1211 Avenue of the Americas
                    </street>
                    <city>
                    New York
                    </city>
                    <region>
                    NY
                    </region>
                    <code>
                    10036
                    </code>
                    <country>
                    US
                    </country> Americas</street>
          <city>New York</city>
          <region>NY</region>
          <code>10036</code>
          <country>United States of America</country>
        </postal>
                <email>
                    andrew@andrewnryan.com
                </email>
        <email>andrew@andrewnryan.com</email>
      </address>
    </author>
    <author fullname="Ben Rosenblum" initials="B." surname="Rosenblum">
            <organization>
                Vecima
            </organization>
      <organization>Vecima</organization>
      <address>
        <postal>
                    <street>
                    4375
          <street>4375 River Green Pkwy #100
                    </street>
                    <city>
                    Duluth
                    </city>
                    <region>
                    GA
                    </region>
                    <code>
                        30096
                    </code>
                    <country>
                        US
                    </country> #100</street>
          <city>Duluth</city>
          <region>GA</region>
          <code>30096</code>
          <country>United States of America</country>
        </postal>
                <email>
                   ben@rosenblum.dev
                </email>
        <email>ben@rosenblum.dev</email>
      </address>
    </author>
    <author fullname="Nir B. Sopher" initials="N." surname="Sopher">
            <organization>
                Qwilt
            </organization>
      <organization>Qwilt</organization>
      <address>
        <postal>
                    <street>
                        6, Ha'harash
                    </street>
                    <city>
                        Hod HaSharon
                    </city>
                    <region>
                    </region>
                    <code>
                        4524079
                    </code>
                    <country>
                        Israel
                    </country>
          <street>6, Ha'harash</street>
          <city>Hod HaSharon</city>
          <code>4524079</code>
          <country>Israel</country>
        </postal>
                <email>
                    nir@apache.org
                </email>
        <email>nir@apache.org</email>
      </address>
    </author>
    <date />
        <workgroup>Content month="June" year="2025"/>

    <area>WIT</area>
    <workgroup>cdni</workgroup>

<!-- [rfced] Please insert any keywords (beyond those that appear in
the title) for use on https://www.rfc-editor.org/search. -->

<keyword>example</keyword>

<!-- [rfced] Do the extensions define or does this specification define "a set
of additional Capability Objects..."?

Current:
   The Content Delivery Networks Interconnection</workgroup> Network Interconnection (CDNI) Capacity
   Capability Advertisement Extensions define a set of additional
   Capability Objects that provide information about current downstream
   CDN (dCDN) utilization and specified usage limits to the delegating
   upstream CDN (uCDN) in order to inform traffic delegation decisions.

Perhaps:
   This specification defines a set of additional
   Capability Objects that provide information about current downstream
   CDN (dCDN) utilization and specified usage limits to the delegating
   upstream CDN (uCDN) in order to inform traffic delegation decisions.
-->

    <abstract>
            <t>
                The
      <t>The Content Delivery Networks Network Interconnection (CDNI) Capacity
      Capability Advertisement Extensions define a set of additional
      Capability Objects that provide information about current downstream CDN
      (dCDN) utilization and specified usage limits to the delegating upstream
      CDN (uCDN) in order to inform traffic delegation decisions.
      </t>
            <t>
                This
      <t>This document supplements the CDNI Capability Objects, defined in
      RFC 8008 as part of the Footprints Footprint &amp; Capabilities Advertisement
      Interface (FCI), with two additional Capability Objects:
      FCI.CapacityLimits and FCI.Telemetry.
      </t>
    </abstract>
  </front>
  <middle>
    <section title="Introduction"> numbered="true" toc="default">
      <name>Introduction</name>
      <t>
                While delegating traffic from an upstream CDN (uCDN) to a
                downstream CDN (dCDN), it is important to ensure that an
                appropriate amount of traffic is delegated. To achieve that,
                this specification defines a feedback mechanism to inform the
                delegator how much traffic may be delegated. The traffic
                level information provided by that interface will be consumed
                by services, such as a request router, to inform that
                service's traffic delegation decisions. The provided information is advisory and does not represent a
                guarantee, commitment, or reservation of capacity.
      </t>
      <t>
                This document defines and registers CDNI Payload Types (as defined
                at section 7.1 of in <xref section="7.1" target="RFC8006" />). format="default"/>). These Payload types
                are used for Capability Objects Objects, which are added to those defined at section 4
                of in <xref section="4" target="RFC8008" />. format="default"/>.
      </t>
      <section anchor="terminology" title="Terminology">
                <t>
                    The numbered="true" toc="default">
        <name>Terminology</name>
        <t>The following terms are term is used throughout this document:
                    <list style="symbols">
                        <t>
                            CDN - Content document:</t>
        <dl spacing="normal" newline="false">
	  <dt>CDN:</dt><dd>Content Delivery Network
                        </t>
                    </list>
                </t>
                <t>
                    Additionally, Network</dd>
	</dl>
        <t>Additionally, this document reuses the terminology defined in <xref
        target="RFC6707" />. format="default"/>.  Specifically, we use the
        following CDNI acronyms:
                    <list style="symbols">
                        <t>
                            uCDN, dCDN - Upstream CDN and Downstream CDN, respectively
                        </t>
                    </list>
                </t> acronyms are used:</t>
        <dl spacing="normal" newline="false">
	  <dt>uCDN:</dt><dd>upstream CDN</dd>
	  <dt>dCDN:</dt><dd>downstream CDN</dd>
	</dl>

      </section>
      <section title="Requirements Language">
                <t>
                    The numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
                    "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
        "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
        NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
        "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
        "<bcp14>MAY</bcp14>", and "OPTIONAL" "<bcp14>OPTIONAL</bcp14>" in this document
        are to be interpreted as described in BCP 14 BCP&nbsp;14 <xref target="RFC2119" />
        target="RFC2119"/> <xref target="RFC8174" /> target="RFC8174"/> when, and only when, they
        appear in all capitals, as shown here.
        </t>
      </section>
      <section title="Objectives"> numbered="true" toc="default">
        <name>Objectives</name>
        <t>
                 To enable information exchange between a uCDN and a dCDN regarding acceptable levels of
                 traffic delegation, the following process has been defined:
        </t>

                <t>
        <t indent="3">
                 In normal operation operation, a uCDN will communicate with a dCDN, via an interface, to collect and
                 understand any limits that a dCDN has set forth for traffic delegation from a uCDN.  These limits
                 will come in the form of metrics such as bits per second, requests per second, etc.  These limits
                 can be thought of as Not to Exceed (NTE) limits.
        </t>

                <t>
        <t indent="3">
                 The dCDN should provide access to a telemetry source of near real-time metrics that the uCDN can
                 use to track current usage. The uCDN should compare its current usage to the limits the dCDN has
                 put forth and adjust traffic delegation decisions accordingly to keep current usage under the specified
                 limits.
        </t>

                <t>
        <t indent="3">
                 In summary, the dCDN will inform the uCDN of the amount of
                 traffic that may be delegated. Additionally, it will provide a
                 telemetry source aligned with this limit, allowing the uCDN to
                 monitor its current usage against the advertised value. Having
                 a limit and a corresponding telemetry source creates an
                 unambiguous definition understood by both parties.
        </t>
        <t>
                 Limits that are communicated from the dCDN to the uCDN should
                 be considered valid based on the TTL (Time To Live) Time to Live (TTL) provided by
                 a mechanism of the underlying transport, e.g., an HTTP
                 Cache-Control header. The intention is that the limits would
                 have a long-lived TTL and would represent a reasonable peak
                 utilization limit that the uCDN should target. If the
                 underlying transport does not provide a mechanism for the dCDN
                 to communicate the TTL of the limits, the TTL should be
                 communicated through an out-of-band mechanism agrred agreed upon between
                 the dCDN and uCDN.
        </t>
      </section>
    </section>
    <section anchor="cdni-additional-capability-objects" title="CDNI numbered="true" toc="default">
      <name>CDNI Additional Capability Objects"> Objects</name>
      <t>
                Section 5 of
                <xref section="5" target="RFC8008" /> format="default"/> describes the FCI Capability Advertisement Object, which
                contains a CDNI Capability Object as well as the capability object type (a CDNI Payload Type).
                The section also defines the Capability Objects per such type. Below, we define two additional Capability Objects.
      </t>
      <t>
                Note: In the following sections, the term "mandatory-to-specify"
                is used to convey which properties MUST <bcp14>MUST</bcp14> be included when
                serializing a given capability object.  When
                mandatory-to-specify is defined as a "Yes" for an individual
                property, it means that if the object containing that property
                is included in an FCI message, then the mandatory-to-specify
                property MUST <bcp14>MUST</bcp14> be included.
      </t>
      <section anchor="telemetry-capability-object" title="Telemetry numbered="true" toc="default">
        <name>Telemetry Capability Object"> Object</name>
        <t>
                    The Telemetry Capability Object advertises a list of
                    telemetry sources made available to the uCDN by the dCDN. In
                    this document, telemetry data is being defined as near
                    real-time aggregated metrics of dCDN utilization, such as
                    bits per second egress, and is specific to the uCDN and dCDN
                    traffic delegation relationship.
        </t>
        <t>
                    Telemetry data is uniquely defined by a source ID, a metric
                    name, and the footprints that are associated with an
                    FCI.Capability advertisement.  When defining a
                    CapacityLimit, the meaning of a limit might be ambiguous if
                    the uCDN and dCDN are observing telemetry via different data
                    sources. A dCDN-provided telemetry source that both parties
                    reference serves as a non-ambiguous metric for use when
                    comparing current usage to a limit.
        </t>
        <t>
                    Telemetry data is important for making informed traffic
                    delegation decisions. Additionally, it is essential in
                    providing visibility of traffic that has been delegated. In
                    situations where there are multiple CDN delegations, a uCDN
                    will need to aggregate the usage information from any dCDNs
                    to which it delegated when asked to provide usage
                    information, otherwise the traffic may seem unaccounted for.
        </t>
        <t>
                    Example: A Content Provider
                    delegates traffic directly to a uCDN, and that uCDN
                    delegates that traffic to a dCDN. When the Content Provider
                    polls the uCDN telemetry interface, any of the traffic the
                    uCDN delegated to the dCDN would
                    become invisible to the Content Provider Provider, unless the uCDN
                    aggregates the dCDN telemetry with its own metrics.
        </t>

                <t><list style="empty">
                    <t>Property: sources<list style="empty">
                        <t>Description: Telemetry

<!--[rfced] There are several lists for properties throughout the
document. If the "Type" and "Mandatory-to-Specify" fields only
contain one word and a period, may we remove the period? We note
that this document follows the formatting style in RFC 8008;
however, our current practice is to remove the punctuation if a
description only contains one word (see similar examples in RFCs
9538 and 9677). Please let us know your preference.

One example

Current:
   Property:  type

      Description:  A valid telemetry source type (see Section 2.1.1.1).

      Type:  String.

      Mandatory-to-Specify:  Yes.

Perhaps:
   Property:  type

      Description:  A valid telemetry source type (see Section 2.1.1.1).

      Type:  String

      Mandatory-to-Specify:  Yes
-->

	<dl spacing="normal" newline="false">
          <dt>Property:</dt><dd><t>sources</t>
	  <dl spacing="normal" newline="false">
            <dt>Description:</dt><dd>Telemetry sources made available to the uCDN.</t>
                        <t>Type: A uCDN.</dd>
            <dt>Type:</dt><dd>A JSON array of Telemetry Source objects (see
            <xref target="telemetry-source-object"/>).</t>
                        <t>Mandatory-to-Specify: Yes.</t>
                    </list></t>
                </list></t> target="telemetry-source-object" format="default"/>).</dd>
            <dt>Mandatory-to-Specify:</dt><dd>Yes.</dd>
	  </dl>
	</dd>
	</dl>

        <section anchor="telemetry-source-object" title="Telemetry numbered="true" toc="default">
          <name>Telemetry Source Object">
                    <t>
                        The Object</name>
          <t>The Telemetry Source Object is built made of an associated type, a
          list of exposed metrics, and type-specific configuration data.
          </t>

                    <t><list style="empty">
                        <t>Property: id<list style="empty">
                            <t>Description: An

	<dl spacing="normal" newline="false">
          <dt>Property:</dt><dd><t>id</t>
	  <dl spacing="normal" newline="false">
            <dt>Description:</dt><dd>An identifier of a telemetry source.  The
            ID string assigned to this Telemetry Source MUST <bcp14>MUST</bcp14> be
            unique across all Telemetry Source objects in the advertisement containining
            containing this Telemetry Source Object. The ID string MUST
            <bcp14>MUST</bcp14> remain consistent for the same source
            reference across advertisements.</t>
                            <t>Type: String.</t>
                            <t>Mandatory-to-Specify: Yes.</t>
                        </list></t>

                        <t>Property: type<list style="empty">
                            <t>Description: A advertisements.</dd>
            <dt>Type:</dt><dd>String.</dd>
            <dt>Mandatory-to-Specify:</dt><dd>Yes.</dd>
          </dl>
        </dd>
        <dt>Property:</dt><dd><t>type</t>
	  <dl spacing="normal" newline="false">
            <dt>Description:</dt><dd>A valid telemetry source type. See type (see <xref target="telemetry-source-type"/>.</t>
                            <t>Type: String.</t>
                            <t>Mandatory-to-Specify: Yes.</t>
                        </list></t>

                        <t>Property: metrics<list style="empty">
                            <t>Description: The
            target="telemetry-source-type" format="default"/>).</dd>
            <dt>Type:</dt><dd>String.</dd>
            <dt>Mandatory-to-Specify:</dt><dd>Yes.</dd>
	  </dl>
	</dd>
        <dt>Property:</dt><dd><t>metrics</t>
	  <dl spacing="normal" newline="false">
            <dt>Description:</dt><dd>The metrics exposed by this source.</t>
                            <t>Type: A source.</dd>
            <dt>Type:</dt><dd>A JSON array of Telemetry Source Metric objects
            (see <xref target="telemetry-source-metric-object"/>).</t>
                            <t>Mandatory-to-Specify: Yes.</t>
                        </list></t>

                        <t>Property: configuration<list style="empty">
                            <t>Description: a target="telemetry-source-metric-object"
            format="default"/>).</dd>
            <dt>Mandatory-to-Specify:</dt><dd>Yes.</dd>
	  </dl>
        </dd>
        <dt>Property:</dt><dd><t>configuration</t>
	  <dl spacing="normal" newline="false">
            <dt>Description:</dt><dd>a source-specific representation of the
            Telemetry Source configuration. For the generic source type, this
            configuration format is defined as out-of-band. For other types, the
            configuration format will be specified in a yet to be defined yet-to-be-defined
            telemetry interface specification.  The goal of this element is to
            allow for forward compatibility with a formal telemetry interface.</t>
                            <t>Type: A
            interface.</dd>
            <dt>Type:</dt><dd>A JSON object, the structure of which is
            specific to the Telemetry Source and outside the scope of this document.</t>
                            <t>Mandatory-to-Specify: No.</t>
                        </list></t>
                    </list></t>
            document.</dd>
            <dt>Mandatory-to-Specify:</dt><dd>No.</dd>
          </dl>
	</dd>
	</dl>

          <section anchor="telemetry-source-type" title="Telemetry numbered="true" toc="default">
            <name>Telemetry Source Types"> Types</name>
            <t>
                            At the time of this writing, the registry of valid
                            Telemetry Source Object types Types is limited to a single
                            type: Generic generic (see <xref target="IANA.cdni.telemetry.generic"/>). target="IANA.cdni.telemetry.generic" format="default"/>).
            </t>
                        <texttable>
                            <ttcol
            <table align="center">
              <thead>
                <tr>
                  <th align="left">
                                Source Type
                            </ttcol>
                            <ttcol
                            </th>
                  <th align="left">
                                Description
                            </ttcol>
                            <c>generic</c><c>An
                            </th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">generic</td>
                  <td align="left">An object which that allows for advertisement of generic data sources</c>
                        </texttable> sources</td>
                </tr>
              </tbody>
            </table>
          </section>
          <section anchor="telemetry-source-metric-object" title="Telemetry numbered="true" toc="default">
            <name>Telemetry Source Metric Object"> Object</name>
            <t> The Telemetry Source Metric Object describes the metric to be
            exposed.
            </t>
                        <t><list style="empty">
                            <t>Property: name<list style="empty">
                                <t>Description: An

	    <dl spacing="normal" newline="false">
              <dt>Property:</dt><dd><t>name</t>
	      <dl spacing="normal" newline="false">
                <dt>Description:</dt><dd>An identifier for this metric. This
                name MUST <bcp14>MUST</bcp14> be unique among metric objects within
                the containing Telemetry Source.  The name MUST <bcp14>MUST</bcp14>
                remain consistent for the same source reference across advertisements.</t>
                                <t>Type: String.</t>
                                <t>Mandatory-to-Specify: Yes.</t>
                            </list></t>

                            <t>Property: time-granularity<list style="empty">
                                <t>Description:  The
                advertisements.</dd>
                <dt>Type:</dt><dd>String.</dd>
                <dt>Mandatory-to-Specify:</dt><dd>Yes.</dd>
	      </dl>
	    </dd>
            <dt>Property:</dt><dd><t>time-granularity</t>
	      <dl spacing="normal" newline="false">
                <dt>Description:</dt><dd>The time, in seconds, representing
                the metric data. For example, a value representing the last 5
                minutes would have a time-granularity of 300.</t>
                                <t>Type: Unsigned Integer.</t>
                                <t>Mandatory-to-Specify: No.</t>
                            </list></t>

                            <t>Property: data-percentile<list style="empty">
                                <t>Description: The 300.</dd>
                <dt>Type:</dt><dd>Unsigned Integer.</dd>
                <dt>Mandatory-to-Specify:</dt><dd>No.</dd>
	      </dl>
	    </dd>
            <dt>Property:</dt><dd><t>data-percentile</t>
	      <dl spacing="normal" newline="false">
                <dt>Description:</dt><dd>The percentile calculation the data
                represents, i.e., 50 percentile would equate to the median
                over the time-granularity.  Lack of a data-percentile
                indicates that the data MUST <bcp14>MUST</bcp14> be the mean over
                the time representation.</t>
                                <t>Type: Unsigned Integer.</t>
                                <t>Mandatory-to-Specify: No.</t>
                            </list></t>

                            <t>Property: latency<list style="empty">
                                <t>Description: Time representation.</dd>
		<dt>Type:</dt><dd>Unsigned Integer.</dd>
                <dt>Mandatory-to-Specify:</dt><dd>No.</dd>
              </dl>
            </dd>
            <dt>Property:</dt><dd><t>latency</t>
	      <dl spacing="normal" newline="false">
                <dt>Description:</dt><dd>Time in seconds that the data is
                behind real-time.  This is important to specify to help the
                uCDN understand how long it might take to reflect traffic
                adjustments in the metrics.</t>
                                <t>Type: Unsigned Integer.</t>
                                <t>Mandatory-to-Specify: No.</t>
                            </list></t>
                        </list></t> metrics.</dd>
                <dt>Type:</dt><dd>Unsigned Integer.</dd>
                <dt>Mandatory-to-Specify:</dt><dd>No.</dd>
              </dl>
	    </dd>
	    </dl>

          </section>
        </section>
        <section anchor="telemetry-capability-object-serialization" title="Telemetry numbered="true" toc="default">
          <name>Telemetry Capability Object Serialization"> Serialization</name>

<!--[rfced] For consistency, should "Telemetry Capability" be updated
as "the Telemetry Capability Object" in the following sentence?

Original:
   The following shows an example of a Telemetry Capability
   including two metrics for a source, that is scoped to
   a footprint.

Perhaps:
   The following shows an example of a Telemetry Capability Object,
   including two metrics for a source, that is scoped to
   a footprint.
-->

          <t> The following shows an example of Telemetry Capability including
          two metrics for a source, that is scoped to a footprint.
          </t>
                    <figure>
                        <sourcecode>
<![CDATA[
          <sourcecode type=""><![CDATA[
{
  "capabilities": [
    {
      "capability-type": "FCI.Telemetry",
      "capability-value": {
        "sources": [
          {
            "id": "capacity_metrics_region1",
            "type": "generic",
            "metrics": [
              {
                "name": "egress_5m",
                "time-granularity": 300,
                "data-percentile": 50,
                "latency": 1500
              },
              {
                "name": "requests_5m",
                 ...
              }
            ]
          }
        ]
      },
      "footprints": [
        <footprint objects>
      ]
    }
  ]
}
]]>
                        </sourcecode>
                    </figure>
}]]></sourcecode>
        </section>
      </section>
      <section anchor="capacity-limits-capability-object" title="CapacityLimits numbered="true" toc="default">
        <name>CapacityLimits Capability Object">
                <t>
                    The Object</name>
        <t>The CapacityLimits Capability Object enables the dCDN to specify
        traffic delegation limits to a uCDN within an FCI.Capabilities
        advertisement.  The limits specified by the dCDN will inform the uCDN
        on how much traffic may be delegated to the dCDN. The limits specified
        by the dCDN should be considered Not To Exceed (NTE) NTE limits. The
        limits should be based on near real-time telemetry data that the dCDN
        provides to the uCDN. In other words, for each limit that is
        advertised, there should also exist a telemetry source which that provides
        current utilization data against the particular advertised limit.
                </t>
                <t><list style="empty">
                    <t>Property: limits<list style="empty">
                        <t>Description: A limit.</t>

        <dl spacing="normal" newline="false">
          <dt>Property:</dt><dd><t>limits</t>
            <dl spacing="normal" newline="false">
              <dt>Description:</dt><dd>A collection of CapacityLimit objects.</t>
                        <t>Type: A objects.</dd>
              <dt>Type:</dt><dd>A JSON array of CapacityLimit objects (see
              <xref target="capacity-limit-object"/>).</t>
                        <t>Mandatory-to-Specify: Yes.</t>
                    </list></t>
                </list></t> target="capacity-limit-object" format="default"/>).</dd>
              <dt>Mandatory-to-Specify:</dt><dd>Yes.</dd>
	    </dl>
	  </dd>
	</dl>

        <section anchor="capacity-limit-object" title="CapacityLimit Object">
                    <t>
                        A numbered="true" toc="default">
          <name>CapacityLimit Object</name>
          <t>A CapacityLimit object is used to represent traffic limits for
          delegation from the uCDN towards the dCDN.  The limit object is
          scoped to the footprint associated with the FCI capability
          advertisement encompassing this object. Limits MUST <bcp14>MUST</bcp14>
          be considered using a logical "AND":
                        a A uCDN will need to ensure that
          all limits are considered rather than choosing only the most
          specific.
          </t>
                    <t><list style="empty">
                        <t>Property: limit-type<list style="empty">
                            <t>Description: The

        <dl spacing="normal" newline="false">
          <dt>Property:</dt><dd><t>limit-type</t>
            <dl spacing="normal" newline="false">
              <dt>Description:</dt><dd>The units of maximum-hard and maximum-soft.</t>
                            <t>Type: String. maximum-soft.</dd>
              <dt>Type:</dt><dd>String. One of the values listed in <xref target="capacity-limit-type"/>.</t>
                            <t>Mandatory-to-Specify: Yes.</t>
                        </list></t>

                        <t>Property: id<list style="empty">
                            <t>Description: Specifies target="capacity-limit-type" format="default"/>.</dd>
              <dt>Mandatory-to-Specify:</dt><dd>Yes.</dd>
            </dl>
          </dd>
          <dt>Property:</dt><dd><t>id</t>
            <dl spacing="normal" newline="false">
              <dt>Description:</dt><dd>Specifies an identifier associated with
              a limit. This MAY <bcp14>MAY</bcp14> be used as a relational
              identifier to a specific CapacityLimit Object. If specified,
              this identifier MUST <bcp14>MUST</bcp14> be unique among specified
              identifiers associated with any other CapacityLimit objects in
              the advertisement containing this CapacityLimit Object.</t>
                            <t>Type: String.</t>
                            <t>Mandatory-to-Specify: No.</t>
                        </list></t>

                        <t>Property: maximum-hard<list style="empty">
                            <t>Description: The Object.</dd>
              <dt>Type:</dt><dd>String.</dd>
              <dt>Mandatory-to-Specify:</dt><dd>No.</dd>
            </dl>
          </dd>
          <dt>Property:</dt><dd><t>maximum-hard</t>
            <dl spacing="normal" newline="false">
              <dt>Description:</dt><dd>The maximum unit of capacity that is available for use.</t>
                            <t>Type: Unsigned Integer.</t>
                            <t>Mandatory-to-Specify: Yes.</t>
                        </list></t>

                        <t>Property: maximum-soft<list style="empty">
                            <t>Description: A use.</dd>
              <dt>Type:</dt><dd>Unsigned Integer.</dd>
              <dt>Mandatory-to-Specify:</dt><dd>Yes.</dd>
            </dl>
          </dd>
          <dt>Property:</dt><dd><t>maximum-soft</t>
            <dl spacing="normal" newline="false">
              <dt>Description:</dt><dd>A soft limit at which a uCDN SHOULD
              <bcp14>SHOULD</bcp14> reduce traffic before hitting the hard
              limit. This value MUST <bcp14>MUST</bcp14> be less than the value of
              maximum-hard. If this value is not specified, it is equal to the
              value of maximum-hard.</t>
                            <t>Type: Unsigned Integer.</t>
                            <t>Mandatory-to-Specify: No.</t>
                        </list></t>

                        <t>Property: current<list style="empty">
                            <t>Description: Specifies maximum-hard.</dd>
              <dt>Type:</dt><dd>Unsigned Integer.</dd>
              <dt>Mandatory-to-Specify:</dt><dd>No.</dd>
            </dl>
          </dd>
          <dt>Property:</dt><dd><t>current</t>
            <dl spacing="normal" newline="false">
              <dt>Description:</dt><dd>Specifies the current usage value of
              the limit.  It is NOT RECOMMENDED <bcp14>NOT RECOMMENDED</bcp14> to specify the
              current usage value inline with the FCI.CapacityLimits
              advertisements as it will reduce the ability to cache the
              response, but this mechanism exists for simple use cases where
              an external telemetry source cannot be feasibly implemented. The
              intended method for providing telemetry data is to reference a
              Telemetry Source object (see <xref target="telemetry-source-object"/>)
              target="telemetry-source-object" format="default"/>) to poll for
              the current usage.</t>
                            <t>Type: Unsigned Integer.</t>
                            <t>Mandatory-to-Specify: No.</t>
                        </list></t>

                        <t>Property: telemetry-source<list style="empty">
                            <t>Description: Mapping usage.</dd>
              <dt>Type:</dt><dd>Unsigned Integer.</dd>
              <dt>Mandatory-to-Specify:</dt><dd>No.</dd>
            </dl>
          </dd>
          <dt>Property:</dt><dd><t>telemetry-source</t>
            <dl spacing="normal" newline="false">
              <dt>Description:</dt><dd>The mapping of each particular limit to a
              specific metric with relevant real-time data provided by a
              telemetry source.</t>
                            <t>Type: CapacityLimitTelemetrySource source.</dd>
              <dt>Type:</dt><dd>CapacityLimitTelemetrySource object (see <xref target="capacity-limit-telemetry-source-object"/>).</t>
                            <t>Mandatory-to-Specify: No.</t>
                        </list></t>

                    </list></t>
              target="capacity-limit-telemetry-source-object"
              format="default"/>).</dd>
              <dt>Mandatory-to-Specify:</dt><dd>No.</dd>
            </dl>
          </dd>
          </dl>

          <section anchor="capacity-limit-type" title="CapacityLimit Types">
                        <t>
                            Below numbered="true" toc="default">
            <name>CapacityLimit Types</name>
            <t>Below are listed the valid capacity limit-types registered in
            the CDNI "CDNI Capacity Limit Types Types" registry. The values specified here
            represent the types that were identified as being the most
            relevant metrics for the purposes of traffic delegation between
            CDNs.
            </t>
                        <texttable>
                            <ttcol
            <table align="center">
              <thead>
                <tr>
                  <th align="left">
                                Capacity Limit Type
                            </ttcol>
                            <ttcol
                            </th>
                  <th align="left">
                                Units
                            </ttcol>
                            <c>egress</c><c>Bits
                            </th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">egress</td>
                  <td align="left">Bits per second</c>
                            <c>requests</c><c>Requests second</td>
                </tr>
                <tr>
                  <td align="left">requests</td>
                  <td align="left">Requests per second</c>
                            <c>storage-size</c><c>Total bytes</c>
                            <c>storage-objects</c><c>Count</c>
                            <c>sessions</c><c>Count</c>
                            <c>cache-size</c><c>Total bytes</c>
                        </texttable> second</td>
                </tr>
                <tr>
                  <td align="left">storage-size</td>
                  <td align="left">Total bytes</td>
                </tr>
                <tr>
                  <td align="left">storage-objects</td>
                  <td align="left">Count</td>
                </tr>
                <tr>
                  <td align="left">sessions</td>
                  <td align="left">Count</td>
                </tr>
                <tr>
                  <td align="left">cache-size</td>
                  <td align="left">Total bytes</td>
                </tr>
              </tbody>
            </table>
          </section>
          <section anchor="capacity-limit-telemetry-source-object" title="CapacityLimitTelemetrySource Object"> numbered="true" toc="default">
            <name>CapacityLimitTelemetrySource Object</name>
            <t> The CapacityLimitTelemetrySource Object refers to a specific
            metric within a Telemetry Source.
                        </t>
                        <t><list style="empty">
                            <t>Property: id<list style="empty">
                                <t>Description: Reference Source.</t>

            <dl spacing="normal" newline="false">
              <dt>Property:</dt><dd><t>id</t>
                <dl spacing="normal" newline="false">
                  <dt>Description:</dt><dd>Reference to the "id" of a
                  telemetry source defined by a Telemetry Capability object as
                  defined in <xref target="telemetry-capability-object"/>.</t>
                                <t>Type: String.</t>
                                <t>Mandatory-to-Specify: Yes.</t>
                            </list></t>

                            <t>Property: metric<list style="empty">
                                <t>Description:  Reference target="telemetry-capability-object"
                  format="default"/>.</dd>
                  <dt>Type:</dt><dd>String.</dd>
                  <dt>Mandatory-to-Specify:</dt><dd>Yes.</dd>
                </dl>
              </dd>
              <dt>Property:</dt><dd><t>metric</t>
                <dl spacing="normal" newline="false">
                  <dt>Description:</dt><dd>Reference to the "name" property of
                  a metric defined within a telemetry source of a Telemetry
                  Capability object.</t>
                                <t>Type: String.</t>
                                <t>Mandatory-to-Specify: Yes.</t>
                            </list></t>
                        </list></t> object.</dd>
                  <dt>Type:</dt><dd>String.</dd>
                  <dt>Mandatory-to-Specify:</dt><dd>Yes.</dd>
                </dl>
              </dd>
            </dl>

          </section>
        </section>
        <section anchor="capacity-limit-object-serialization" title="CapacityLimit numbered="true" toc="default">
          <name>CapacityLimit Object Serialization"> Serialization</name>
          <t> The following shows an example of an FCI.CapacityLimits object.
                    </t>
                    <figure>
                        <sourcecode>
<![CDATA[ object.</t>

          <sourcecode type=""><![CDATA[
{
  "capabilities": [
    {
      "capability-type":"FCI.CapacityLimits",
      "capability-value":{
        "limits":[
          {
            "id":"capacity_limit_region1",
            "limit-type":"egress",
            "maximum-hard":50000000000,
            "maximum-soft":25000000000,
            "telemetry-source":{
              "id":"capacity_metrics_region1",
              "metric":"egress_5m"
            }
          }
        ]
      },
      "footprints":[
        "<footprint objects>"
      ]
    }
  ]
}
]]>
                        </sourcecode>
                    </figure>
}]]></sourcecode>

        </section>
      </section>
    </section>
    <section anchor="IANA" title="IANA Considerations"> numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="IANA.cdni.payload.types" title="CDNI numbered="true" toc="default">
        <name>CDNI Payload Types">
                <t>
                    This document requests the registration of Types</name>
        <t>Per this document, IANA has registered two additional payload
        types to in the Content Delivery Network Interconnection (CDNI) Parameters "CDNI Payload Types" registry:
                </t>
                <texttable>
                    <ttcol align="left">
                        Payload Type
                    </ttcol>
                    <ttcol align="left">
                        Specification
                    </ttcol>
                    <c>FCI.Telemetry</c><c>RFCthis</c>
                    <c>FCI.CapacityLimits</c><c>RFCthis</c>
                </texttable>
                <t>
                    [RFC Editor: Please replace RFCthis with registry within the published RFC
                    number for this document.] "Content Delivery Network Interconnection (CDNI) Parameters" registry group:
        </t>
        <table align="center">
          <thead>
            <tr>
              <th align="left">Payload Type</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">FCI.Telemetry</td>
              <td align="left">RFC 9808</td>
            </tr>
            <tr>
              <td align="left">FCI.CapacityLimits</td>
              <td align="left">RFC 9808</td>
            </tr>
          </tbody>
        </table>

        <section anchor="IANA.cdni.fci.telemetry.payload.type" title="CDNI numbered="true" toc="default">
          <name>CDNI FCI Telemetry Payload Type">
                    <t><list style="empty">
                        <t>Purpose: The Type</name>

          <dl spacing="normal" newline="false">
            <dt>Purpose:</dt><dd>The purpose of this Payload Type is to list
            the supported telemetry sources and the metrics made available by
            each source.</t>
                        <t>Interface: FCI.</t>
                        <t>Encoding: See source.</dd>
            <dt>Interface:</dt><dd>FCI.</dd>
            <dt>Encoding:</dt><dd>See <xref target="telemetry-capability-object"/>.</t>
                    </list></t> target="telemetry-capability-object" format="default"/>.</dd>
          </dl>

        </section>
        <section anchor="IANA.cdni.fci.capacity.limits.payload.type" title="CDNI numbered="true" toc="default">
          <name>CDNI FCI Capacity Limits Payload Type">
                    <t><list style="empty">
                        <t>Purpose: The Type</name>

          <dl spacing="normal" newline="false">
            <dt>Purpose:</dt><dd>The purpose of this Payload Type is to define
            Capacity Limits based on utilization metrics corresponding to
            telemetry sources provided by the dCDN.</t>
                        <t>Interface: FCI.</t>
                        <t>Encoding: See dCDN.</dd>
            <dt>Interface:</dt><dd>FCI.</dd>
            <dt>Encoding:</dt><dd>See <xref target="capacity-limits-capability-object"/>.</t>
                    </list></t> target="capacity-limits-capability-object" format="default"/>.</dd>
          </dl>

        </section>
      </section>
      <section anchor="IANA.cdni.telemetry.registry" title="&quot;CDNI numbered="true" toc="default">
        <name>CDNI Telemetry Source Types&quot; Registry">
                <t>
                    IANA will add Types Registry</name>
        <t>IANA has added the following new registry to within the "Content Delivery
        Network Interconnection (CDNI) Parameters" registry group at https://www.iana.org/assignments/cdni-parameters:
                </t>
                <t>Registry Name: CDNI
        <eref target="https://www.iana.org/assignments/cdni-parameters" brackets="angle"/>:</t>

	<dl spacing="normal" newline="false">
          <dt>Registry Name:</dt><dd>CDNI Telemetry Source Types</t>
                <t>Registry Description: The CDNI Types</dd>
          <dt>Registry Description:</dt><dd>The "CDNI Telemetry Source Types Types"
          registry defines the valid values for the "type" property of the
          Telemetry Source object defined in <xref target="telemetry-source-object"/>.</t>
                <t>Registration Procedure: The
          target="telemetry-source-object" format="default"/>.</dd>
          <dt>Registration Procedure:</dt><dd><t>The registry follows the
          Specification Required policy as defined in <xref target="RFC8126" />.
          format="default"/>.  The Designated Expert designated expert should consider the
          following guidelines when evaluating registration requests:</t>
                <list style="symbols">
                    <t>The
          <ul spacing="normal">
            <li>The new type definition does not duplicate existing types.</t>
                    <t>The
            types.</li>
            <li>The review should verify that the telemetry source is
            applicable to the CDNI use cases and that the description is clear
            and unambiguous.</t>
                    <t>The unambiguous.</li>
            <li>The registration is applicable for general use and is not proprietary.</t>
                    <t>The proprietary.</li>
            <li>The "configuration" property has a fully specified object
            definition with a description of each defined property.</t>
                </list> property.</li>
          </ul>
	</dd>
	</dl>

	<t>The following values will be value has been registered:</t>
                <texttable>
                    <ttcol align="left">

<!--[rfced] We note that Table 1 includes a description of the
"generic" source type, whereas Table 4 and the IANA registry do
not. Should the description be added to Table 4 and the IANA
registry? In Section 2.1.1.1, should Table 1 be replaced with a
link to Table 4 to avoid duplication?

Current (Section 2.1.1.1):
   At the time of this writing, the registry of valid Telemetry Source
   Object types is limited to a single type: Generic (see
   Section 3.2.1).

Perhaps A:
   At the time of this writing, the registry of valid Telemetry Source
   Types is limited to a single type: generic (see Table 4 in Section 3.2.1).
or

Perhaps B:
   At the time of this writing, the "CDNI Telemetry Source Types" registry
   is limited to a single type: generic (see Table 4 in Section 3.2.1).

...
Current (Section 3.2):
   +=============+===========+
   | Source Type
                    </ttcol>
                    <ttcol align="left">
                        Specification
                    </ttcol>
                    <c>generic</c><c>RFCthis</c>
                </texttable> | Reference |
   +=============+===========+
   | generic     | RFC 9808  |
   +=============+===========+
   Table 4

Perhaps:
   +=============+=======================================+===========+
   | Source Type | Description                           | Reference |
   +=============+=======================================+===========+
   | generic     | An object that allows for             | RFC 9808  |
   |             | advertisement of generic data sources |           |
   +=============+=======================================+===========+
   Table 4
-->

        <table align="center">
          <thead>
            <tr>
              <th align="left">Source Type</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">generic</td>
              <td align="left">RFC 9808</td>
            </tr>
          </tbody>
        </table>

        <section anchor="IANA.cdni.telemetry.generic" title="CDNI numbered="true" toc="default">
          <name>CDNI Generic Telemetry Source Type">
                    <t><list style="empty">
                        <t>Purpose: The Type</name>

          <dl spacing="normal" newline="false">
            <dt>Purpose:</dt><dd>The purpose of this Telemetry Source Type is
            to provide a source-agnostic telemetry type that may be used for
            generic telemetry source advertisement.</t>
                        <t>Usage: See advertisement.</dd>
            <dt>Usage:</dt><dd>See <xref target="telemetry-source-object"/>.</t>
                    </list></t> target="telemetry-source-object" format="default"/>.</dd>
          </dl>

        </section>
      </section>

            <!-- New CDNI Capacity Limit Types Registry -->

      <section anchor="IANA.cdni.capacity.registry" title="&quot;CDNI numbered="true" toc="default">
        <name>CDNI Capacity Limit Types&quot; Registry">
                <t>
                    IANA will add Types Registry</name>
        <t>IANA has added the following new registry to within the "Content Delivery
        Network Interconnection (CDNI) Parameters" registry group at https://www.iana.org/assignments/cdni-parameters:
                </t>
                <t>Registry Name: CDNI
        <eref target="https://www.iana.org/assignments/cdni-parameters" brackets="angle"/>:</t>

	<dl spacing="normal" newline="false">
          <dt>Registry Name:</dt><dd>CDNI Capacity Limit Types</t>
                <t>Registry Description: The CDNI Types</dd>
          <dt>Registry Description:</dt><dd>The "CDNI Capacity Limit Types Types"
          registry defines the valid values of the "limit-type" property of a
          CapacityLimit object defined in <xref target="capacity-limit-object"/>.</t>
                <t>Registration Procedure: The target="capacity-limit-object"
          format="default"/>.</dd>
          <dt>Registration Procedure:</dt><dd><t>The registry follows the
          Specification Required policy as defined in <xref target="RFC8126" />.
          format="default"/>.  The Designated Expert designated expert should consider the
          following guidelines when evaluating registration requests:</t>
                <list style="symbols">
                    <t>The
          <ul spacing="normal">
            <li>The new capacity limit type does not duplicate existing entries.</t>
                    <t>The entries.</li>
            <li>The submission has a defined purpose. The newly defined
            capacity limit type should be clearly justified in the context of
            one or more CDNI use cases.</t>
                    <t>The cases.</li>
            <li>The description of the capacity limit type is well-documented and unambiguous.</t>
                </list> unambiguous.</li>
          </ul>
	</dd>
	</dl>

        <t>The following values will be have been registered:</t>
                <texttable>
                    <ttcol align="left">
                        Capacity

        <table align="center">
          <thead>
            <tr>
              <th align="left">Capacity Limit Type
                    </ttcol>
                    <ttcol align="left">
                        Units
                    </ttcol>
                    <ttcol align="left">
                        Specification
                    </ttcol>
                    <c>egress</c><c>Bits Type</th>
              <th align="left">Units</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">egress</td>
              <td align="left">Bits per second</c><c>RFCthis</c>
                    <c>requests</c><c>Requests second</td>
              <td align="left">RFC 9808</td>
            </tr>
            <tr>
              <td align="left">requests</td>
              <td align="left">Requests per second</c><c>RFCthis</c>
                    <c>storage-size</c><c>Total bytes</c><c>RFCthis</c>
                    <c>storage-objects</c><c>Count</c><c>RFCthis</c>
                    <c>sessions</c><c>Count</c><c>RFCthis</c>
                    <c>cache-size</c><c>Total bytes</c><c>RFCthis</c>
                </texttable>
                <t>Usage: See second</td>
              <td align="left">RFC 9808</td>
            </tr>
            <tr>
              <td align="left">storage-size</td>
              <td align="left">Total bytes</td>
              <td align="left">RFC 9808</td>
            </tr>
            <tr>
              <td align="left">storage-objects</td>
              <td align="left">Count</td>
              <td align="left">RFC 9808</td>
            </tr>
            <tr>
              <td align="left">sessions</td>
              <td align="left">Count</td>
              <td align="left">RFC 9808</td>
            </tr>
            <tr>
              <td align="left">cache-size</td>
              <td align="left">Total bytes</td>
              <td align="left">RFC 9808</td>
            </tr>
          </tbody>
        </table>

	<dl spacing="normal" newline="false">
        <dt>Usage:</dt><dd>See <xref target="capacity-limit-type"/>.</t> target="capacity-limit-type" format="default"/>.</dd>
	</dl>
      </section>
    </section>
    <section anchor="Security" title="Security Considerations">
            <t>
                This numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>This specification is in accordance with the CDNI Request Routing:
      Footprint and Capabilities Semantics. As such, it is subject to the
      security and privacy considerations as defined in Section 7 of <xref
      section="7" target="RFC8008" />.
            </t>
        </section>
        <section anchor="Acknowledgements" title="Acknowledgements">
            <t>
                The authors would like to express their gratitude to the
                members of the
                Streaming Video Technology Alliance
                <xref target="SVTA"/>
                Open Caching Working Group for their guidance, contribution, and review. format="default"/>.
      </t>
    </section>
  </middle>
  <back>
        <references title="Normative References">
            <?rfc include="reference.RFC.2119"?>
            <?rfc include="reference.RFC.8008"?>
            <?rfc include="reference.RFC.8126"?>
            <?rfc include="reference.RFC.8174"?>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8008.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
      </references>

        <references title="Informative References">
            <?rfc include="reference.RFC.8006"?>
            <?rfc include="reference.RFC.6707"?>
      <references>
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8006.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6707.xml"/>

        <reference anchor="SVTA" target="https://www.svta.org">
          <front>
                    <title>
                        Streaming
            <title>Streaming Video Technology Alliance Home Page
                    </title>
                    <author />
                    <date /> Page</title>
            <author/>
            <date/>
          </front>
        </reference>

<!-- [rfced] We note that the following reference entries are not
cited anywhere in the document. These entries will be removed
prior to publication, unless you would like to let us know where
they may be added in the text.

   [OC-CII]   Ryan, A., Ed., Rosenblum, B., Goldstein, G., Roskin, R.,
              and G. Bichot, "Open Caching Capacity Insights -
              Functional Specification (Placeholder before
              publication)", <https://www.svta.org/document/open-
              caching-capacity-interface/>.

   [OC-RR]    Finkelman, O., Ed., Hofmann, J., Klein, E., Mishra, S.,
              Ma, K., Sahar, D., and B. Zurat, "Open Caching Request
              Routing - Functional Specification", Version 1.1, 4
              October 2019, <https://www.svta.org/product/open-cache-
              request-routing-functional-specification/>.

   [OCWG]     "Open Caching Home Page", <https://opencaching.svta.org/>.
-->

<!-- [OCWG] Not referenced in the text
        <reference anchor="OCWG" target="https://opencaching.svta.org/">
          <front>
            <title>
                        Open Caching Home Page
            </title>
                    <author />
                    <date />
            <author/>
            <date/>
          </front>
        </reference>
-->

<!-- [OC-CII] Not referenced in the text
        <reference anchor="OC-CII" target="https://www.svta.org/document/open-caching-capacity-interface/">
          <front>
            <title>
                        Open Caching Capacity Insights - Functional Specification (Placeholder before publication)
            </title>
            <author initials="A." surname="Ryan" fullname="Andrew Ryan" role="editor">
              <organization>
                            Limelight Networks
              </organization>
            </author>
            <author initials="B." surname="Rosenblum" fullname="Ben Rosemblum">
              <organization>
                            Vecima
              </organization>
            </author>
            <author initials="G." surname="Goldstein" fullname="Glenn Goldstein">
              <organization>
                            Lumen Technologies
              </organization>
            </author>
            <author initials="R." surname="Roskin" fullname="Rob Roskin">
              <organization>
                            Lumen Technologies
              </organization>
            </author>
            <author initials="G." surname="Bichot" fullname="Guillaume Bichot">
              <organization>
                            Broadpeak
              </organization>
            </author>
                    <date />
            <date/>
          </front>
        </reference>
-->

<!-- [OC-RR] Not referenced in the text
        <reference anchor="OC-RR" target="https://www.svta.org/product/open-cache-request-routing-functional-specification/">
          <front>
            <title>
                        Open Caching Request Routing -  Functional Specification
            </title>
            <author initials="O." surname="Finkelman" fullname="Ori Finkelman" role="editor">
              <organization>
                            Qwilt
              </organization>
            </author>
            <author initials="J." surname="Hofmann" fullname="Jason Hofmann">
              <organization>
                            Limelight Networks
              </organization>
            </author>
            <author initials="E." surname="Klein" fullname="Eric Klein">
              <organization>
                            Disney Streaming Services
              </organization>
            </author>
            <author initials="S." surname="Mishra" fullname="Sanjay Mishra">
              <organization>
                            Verizon
              </organization>
            </author>
            <author initials="K." surname="Ma" fullname="Kevin J. Ma">
              <organization>
                            Disney Streaming Services
              </organization>
            </author>
            <author initials="D." surname="Sahar" fullname="Dan Sahar">
              <organization>
                            Qwilt
              </organization>
            </author>
            <author initials="B." surname="Zurat" fullname="Bill Zurat">
              <organization>
                            Disney Streaming Services
              </organization>
            </author>
            <date day="4" month="October" year="2019" /> year="2019"/>
          </front>
          <seriesInfo name="Version" value="1.1" /> value="1.1"/>
        </reference>
-->
      </references>
    </references>

    <section anchor="Acknowledgements" numbered="false" toc="default">
      <name>Acknowledgements</name>
      <t>The authors would like to express their gratitude to the members of
      the Streaming Video Technology Alliance <xref target="SVTA"
      format="default"/> Open Caching Working Group for their guidance,
      contribution, and review.
      </t>
    </section>

  </back>

<!-- [rfced] Terminology

a) Throughout the text, the following terminology appears to be used
inconsistently. Please review these occurrences and let us know if/how they
may be made consistent.

   capability object type
   Capability Objects

   capacity limit-types
   Capacity Limits
   CDNI Capacity Limit Types

   CapacityLimit Object
   CapacityLimit object
   CapacityLimits Capability Object

   FCI capability
   FCI.Capability
   FCI.Capabilities

   limit-type
   limit type
   Limit Type

   Payload types
   Payload Types

   Telemetry Capability object
   Telemetry Capability Object

   Telemetry Source
   telemetry source
   Telemetry sources
   Telemetry Source Type
   telemetry source type

   Telemetry Source Metric Object
   Telemetry Source Metric objects

   Telemetry Source Object
   Telemetry Source object

b) Should the payload types in the following titles be updated to
match the payload types listed in Table 3?

Original:
   3.1.1.  CDNI FCI Telemetry Payload Type
   3.1.2.  CDNI FCI Capacity Limits Payload Type

Perhaps:
   3.1.1.  CDNI FCI.Telemetry Payload Type
   3.1.2.  CDNI FCI.CapacityLimits Payload Type
-->

<!--[rfced] FYI - We updated the following expansions to the form on
the right for consistency within this document and/or the RFC
Series.  Please let us know of any objections.

 Content Delivery Networks Interconnection (CDNI) ->
    Content Delivery Network Interconnection (CDNI)

 Footprints & Capabilities Advertisement Interface (FCI) ->
    Footprint & Capabilities Advertisement interface (FCI)

 Time To Live (TTL) -> Time to Live (TTL)
-->

<!-- [rfced] Please consider whether the "type" attribute of any sourcecode
element should be set.

The current list of preferred values for "type" is available at
<https://www.rfc-editor.org/rpc/wiki/doku.php?id=sourcecode-types>.
If the current list does not contain an applicable type, feel free to
suggest additions for consideration. Note that it is also acceptable
to leave the "type" attribute not set.
-->

<!-- [rfced] Please review whether any of the notes in this document
should be in the <aside> element. It is defined as "a container for
content that is semantically less important or tangential to the
content that surrounds it" (https://authors.ietf.org/en/rfcxml-vocabulary#aside).
-->

<!-- [rfced] Please review the "Inclusive Language" portion of the online
Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language>
and let us know if any changes are needed.  Updates of this nature typically
result in more precise language, which is helpful for readers.

Note that our script did not flag any words in particular, but this should
still be reviewed as a best practice.
-->

</rfc>