<?xml version="1.0" encoding="US-ASCII"?>
<!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"?>
<rfc category="std" docName="draft-ietf-cdni-capacity-insights-extensions-11" ipr="trust200902">
    <front>
        <title abbrev="CDNI Capacity Capability Advertisement Extensions">
            CDNI Capacity Capability Advertisement Extensions
        </title>
        <author fullname="Andrew Ryan" initials="A." surname="Ryan">
            <organization>
                Disney Streaming
            </organization>
            <address>
                <postal>
                    <street>
                    1211 Avenue of the Americas
                    </street>
                    <city>
                    New York
                    </city>
                    <region>
                    NY
                    </region>
                    <code>
                    10036
                    </code>
                    <country>
                    US
                    </country>
                </postal>
                <email>
                    andrew@andrewnryan.com
                </email>
            </address>
        </author>
        <author fullname="Ben Rosenblum" initials="B." surname="Rosenblum">
            <organization>
                Vecima
            </organization>
            <address>
                <postal>
                    <street>
                    4375 River Green Pkwy #100
                    </street>
                    <city>
                    Duluth
                    </city>
                    <region>
                    GA
                    </region>
                    <code>
                        30096
                    </code>
                    <country>
                        US
                    </country>
                </postal>
                <email>
                   ben@rosenblum.dev
                </email>
            </address>
        </author>
        <author fullname="Nir B. Sopher" initials="N." surname="Sopher">
            <organization>
                Qwilt
            </organization>
            <address>
                <postal>
                    <street>
                        6, Ha'harash
                    </street>
                    <city>
                        Hod HaSharon
                    </city>
                    <region>
                    </region>
                    <code>
                        4524079
                    </code>
                    <country>
                        Israel
                    </country>
                </postal>
                <email>
                    nir@apache.org
                </email>
            </address>
        </author>
        <date />
        <workgroup>Content Delivery Networks Interconnection</workgroup>
        <abstract>
            <t>
                The Content Delivery Networks 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 document supplements the CDNI Capability Objects, defined in
                RFC 8008 as part of the Footprints &amp; Capabilities
                Advertisement Interface (FCI), with two additional Capability
                Objects: FCI.CapacityLimits and FCI.Telemetry.
            </t>
        </abstract>
    </front>
    <middle>
        <section title="Introduction">
            <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.
            </t>
            <t>
                The provided information is advisory and does not represent a
                guarantee, commitment, or reservation of capacity. This
                document defines and registers CDNI Payload Types (as defined
                at section 7.1 of <xref target="RFC8006" />). These Payload
                types are used for Capability Objects added to those defined
                at section 4 of <xref target="RFC8008" />, which are required
                for the <xref target="OC-CII">Open Caching Capacity Insights
                Interface</xref>.
            </t>
            <section anchor="terminology" title="Terminology">
                <t>
                    The following terms are used throughout this document:
                    <list style="symbols">
                        <t>
                            CDN - Content Delivery Network
                        </t>
                    </list>
                </t>
                <t>
                    Additionally, this document reuses the terminology defined in
                    <xref target="RFC6707" />.
                    Specifically, we use the following CDNI acronyms:
                    <list style="symbols">
                        <t>
                            uCDN, dCDN - Upstream CDN and Downstream CDN, respectively
                        </t>
                    </list>
                </t>
            </section>
            <section title="Requirements Language">
                <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" />
                    <xref target="RFC8174" />
                    when, and only when, they appear in all capitals, as shown here.
                </t>
            </section>
            <section title="Objectives">
                <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>
                 In normal 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>
                 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>
                 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) 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 between
                 the dCDN and uCDN.
                </t>
            </section>
        </section>
        <section anchor="cdni-additional-capability-objects" title="CDNI Additional Capability Objects">
            <t>
                Section 5 of <xref target="RFC8008" /> 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 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 be included.
            </t>
            <section anchor="telemetry-capability-object" title="Telemetry Capability Object">
                <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 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 sources made available to the uCDN.</t>
                        <t>Type: A JSON array of Telemetry Source objects (see <xref target="telemetry-source-object"/>).</t>
                        <t>Mandatory-to-Specify: Yes.</t>
                    </list></t>
                </list></t>

                <section anchor="telemetry-source-object" title="Telemetry Source Object">
                    <t>
                        The Telemetry Source Object is built 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 identifier of a telemetry source.
                            The ID string assigned to this Telemetry Source MUST
                            be unique across all Telemetry Source objects in the
                            advertisement containining this Telemetry Source
                            Object. The ID string MUST 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 valid telemetry source 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 metrics exposed by this source.</t>
                            <t>Type: 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 source-specific representation of the Telemetry Source configuration. For the generic source type,
                               this configuration format is defined out-of-band. For other types, the configuration format will be specified in
                               a 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 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>
                    <section anchor="telemetry-source-type" title="Telemetry Source Types">
                        <t>
                            At the time of this writing, the registry of valid
                            Telemetry Source Object types is limited to a single
                            type: Generic (see <xref target="IANA.cdni.telemetry.generic"/>).
                        </t>
                        <texttable>
                            <ttcol align="left">
                                Source Type
                            </ttcol>
                            <ttcol align="left">
                                Description
                            </ttcol>
                            <c>generic</c><c>An object which allows for advertisement of generic data sources</c>
                        </texttable>
                    </section>
                    <section anchor="telemetry-source-metric-object" title="Telemetry Source Metric Object">
                        <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 identifier for this metric. This name MUST be unique among metric objects within the containing Telemetry Source.
                                    The name MUST 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 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 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 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 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>
                    </section>
                </section>
                <section anchor="telemetry-capability-object-serialization" title="Telemetry Capability Object Serialization">
                    <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[
{
  "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>
                </section>
            </section>

            <section anchor="capacity-limits-capability-object" title="CapacityLimits Capability Object">
                <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) 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 provides current utilization data
                    against the particular advertised limit.
                </t>
                <t><list style="empty">
                    <t>Property: limits<list style="empty">
                        <t>Description: A collection of CapacityLimit objects.</t>
                        <t>Type: A JSON array of CapacityLimit objects (see <xref target="capacity-limit-object"/>).</t>
                        <t>Mandatory-to-Specify: Yes.</t>
                    </list></t>
                </list></t>

                <section anchor="capacity-limit-object" title="CapacityLimit Object">
                    <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 be considered using a logical "AND":
                        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 units of maximum-hard and maximum-soft.</t>
                            <t>Type: 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 an identifier associated
                            with a limit. This MAY be used as a relational
                            identifier to a specific CapacityLimit Object. If
                            specified, this identifier MUST 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 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 soft limit at which a uCDN SHOULD reduce
                            traffic before hitting the hard limit. This value MUST
                            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 the current usage value of the limit.  It is NOT RECOMMENDED 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"/>) 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 of each particular limit to a specific metric with relevant real-time data provided by
                            a telemetry source.</t>
                            <t>Type: CapacityLimitTelemetrySource object (see <xref target="capacity-limit-telemetry-source-object"/>).</t>
                            <t>Mandatory-to-Specify: No.</t>
                        </list></t>

                    </list></t>
                    <section anchor="capacity-limit-type" title="CapacityLimit Types">
                        <t>
                            Below are listed the valid capacity limit-types
                            registered in the CDNI Capacity Limit 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 align="left">
                                Limit Type
                            </ttcol>
                            <ttcol align="left">
                                Units
                            </ttcol>
                            <c>egress</c><c>Bits per second</c>
                            <c>requests</c><c>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>
                    </section>
                    <section anchor="capacity-limit-telemetry-source-object" title="CapacityLimitTelemetrySource Object">
                        <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 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 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>
                    </section>
                </section>
                <section anchor="capacity-limit-object-serialization" title="CapacityLimit Object Serialization">
                    <t>
                        The following shows an example of an FCI.CapacityLimits object.
                    </t>
                    <figure>
                        <sourcecode>
<![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>
                </section>
            </section>
        </section>
        <section anchor="IANA" title="IANA Considerations">
            <section anchor="IANA.cdni.payload.types" title="CDNI Payload Types">
                <t>
                    This document requests the registration of two additional payload types to 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 the published RFC
                    number for this document.]
                </t>
                <section anchor="IANA.cdni.fci.telemetry.payload.type" title="CDNI FCI Telemetry Payload Type">
                    <t><list style="empty">
                        <t>Purpose: 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 <xref target="telemetry-capability-object"/>.</t>
                    </list></t>
                </section>
                <section anchor="IANA.cdni.fci.capacity.limits.payload.type" title="CDNI FCI Capacity Limits Payload Type">
                    <t><list style="empty">
                        <t>Purpose: 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 <xref target="capacity-limits-capability-object"/>.</t>
                    </list></t>
                </section>
            </section>

            <section anchor="IANA.cdni.telemetry.registry" title="&quot;CDNI Telemetry Source Types&quot; Registry">
                <t>
                    IANA will add the following new registry to the "Content Delivery Network Interconnection (CDNI) Parameters" group at https://www.iana.org/assignments/cdni-parameters:
                </t>
                <t>Registry Name: CDNI Telemetry Source Types</t>
                <t>Registry Description: The CDNI Telemetry Source 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 registry follows the Specification Required policy as defined in <xref target="RFC8126" />.
                The Designated Expert should consider the following guidelines when evaluating registration requests:</t>
                <list style="symbols">
                    <t>The new type definition does not duplicate existing types.</t>
                    <t>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 registration is applicable for general use and not proprietary.</t>
                    <t>The "configuration" property has a fully specified object definition with a description of each defined property.</t>
                </list>
                <t>The following values will be registered:</t>
                <texttable>
                    <ttcol align="left">
                        Source Type
                    </ttcol>
                    <ttcol align="left">
                        Specification
                    </ttcol>
                    <c>generic</c><c>RFCthis</c>
                </texttable>
                <section anchor="IANA.cdni.telemetry.generic" title="CDNI Generic Telemetry Source Type">
                    <t><list style="empty">
                        <t>Purpose: 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 <xref target="telemetry-source-object"/>.</t>
                    </list></t>
                </section>
            </section>

            <!-- New CDNI Capacity Limit Types Registry -->
            <section anchor="IANA.cdni.capacity.registry" title="&quot;CDNI Capacity Limit Types&quot; Registry">
                <t>
                    IANA will add the following new registry to the "Content Delivery Network Interconnection (CDNI) Parameters" group at https://www.iana.org/assignments/cdni-parameters:
                </t>
                <t>Registry Name: CDNI Capacity Limit Types</t>
                <t>Registry Description: The CDNI Capacity Limit 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 registry follows the Specification Required policy as defined in <xref target="RFC8126" />.
                The Designated Expert should consider the following guidelines when evaluating registration requests:</t>
                <list style="symbols">
                    <t>The new capacity limit type does not duplicate existing entries.</t>
                    <t>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 description of the capacity limit type is well-documented and unambiguous.</t>
                </list>
                <t>The following values will be registered:</t>
                <texttable>
                    <ttcol align="left">
                        Capacity Limit Type
                    </ttcol>
                    <ttcol align="left">
                        Units
                    </ttcol>
                    <ttcol align="left">
                        Specification
                    </ttcol>
                    <c>egress</c><c>Bits per second</c><c>RFCthis</c>
                    <c>requests</c><c>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 <xref target="capacity-limit-type"/>.</t>
            </section>
        </section>

        <section anchor="Security" title="Security Considerations">
            <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 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.
            </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>

        <references title="Informative References">
            <?rfc include="reference.RFC.8006"?>
            <?rfc include="reference.RFC.6707"?>
            <reference anchor="SVTA" target="https://www.svta.org">
                <front>
                    <title>
                        Streaming Video Technology Alliance Home Page
                    </title>
                    <author />
                    <date />
                </front>
            </reference>
            <reference anchor="OCWG" target="https://opencaching.svta.org/">
                <front>
                    <title>
                        Open Caching Home Page
                    </title>
                    <author />
                    <date />
                </front>
            </reference>
            <reference anchor="OC-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 />
                </front>
            </reference>
            <reference anchor="OC-RR" target="https://www.svta.org/product/open-cache-request-routing-functional-specification/">
                <front>
                    <title>
                        Open Caching Request Routing -  Functional Specification
                    </title>
                    <author initials="O." surname="Finkelman" fullname="Ori 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" />
                </front>
                <seriesInfo name="Version" value="1.1" />
            </reference>
        </references>
    </back>
</rfc>
