<?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-cdni-capacity-insights-extensions-01" updates='8006,8008' 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 />
        <abstract>
            <t>
                Open Caching architecture is a use case of Content Delivery Networks Interconnection (CDNI) in which the
                commercial Content Delivery Network (CDN) is the upstream CDN (uCDN) and the ISP caching layer serves as the
                downstream CDN (dCDN). This document supplements to the CDNI Capability Objects defined in RFC 8008
                the defined capability objects structure and interface for advertisements and management of a downstream CDN capacity.
            </t>
        </abstract>
    </front>
    <middle>
        <section title="Introduction">
            <t>
                The Streaming Video Alliance <xref target="SVA" format="default" /> is a global association
                that works to solve streaming video challenges in an effort to improve end-user experience
                and adoption. The Open Caching Working Group <xref target="OCWG" format="default" /> of the
                Streaming Video Alliance <xref target="SVA" format="default" /> is focused on the delegation
                of video delivery requests from commercial CDNs to a caching layer at the ISP's network.
                Open Caching architecture is a specific use case of CDNI where the commercial CDN is the
                upstream CDN (uCDN) and the ISP caching layer is the downstream CDN (dCDN).
                While delegating traffic from one CDN to the other, it is important to make sure that an 
                appropriate amount of traffic is delegated. In order to achieve that, the 
                <xref target="OC-CII"> SVA Open Caching Capacity Insight Specification </xref>
                defines a feedback mechanism to inform the delegator how much traffic is appropriate to delegate. 
                The traffic level information provided by that interface will be consumed by entities, 
                such as the <xref target="OC-RR"> Open Caching Request router </xref>, to help inform that entity's traffic delegation decisions.
                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>
            <t>
                For consistency with other CDNI documents this document follows the
                CDNI convention of uCDN (upstream CDN) and dCDN (downstream CDN) to represent the commercial CDN and ISP caching
                layer respectively.
            </t>
            <t>
                This document registers two CDNI Payload Types (section 7.1 of
                <xref target="RFC8006" />) for the defined capability objects:
                <list style="symbols">
                    <t>
                        Telemetry Payload Type: A payload type for the capability object which defines supported telemetry sources, 
                        the metrics made available by that source, and corresponding configuration appropriate 
                        to the type of the source (host, port, protocol, etc..).
                    </t>
                    <t>
                        CapacityLimits Payload Type: a payload type for the capability object which defines Capacity Limits based on a set 
                        of defined limit types and a mapping from those limits to corresponding telemetry sources 
                        for supporting real-time metrics.
                    </t>
                </list>
            </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" />,
                    <xref target="RFC7336" />,
                    <xref target="RFC8006" />,
                    <xref target="RFC8007" />,
                    <xref target="RFC8008" />, and
                    <xref target="RFC8804" />.
                    Specifically, we use the following CDNI acronyms:
                    <list style="symbols">
                        <t>
                            uCDN, dCDN - Upstream CDN and Downstream CDN respectively (see
                            <xref target="RFC7336" />
                            )
                        </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>
                 In order to enable information exchange between a uCDN and a dCDN about acceptable levels of
                 traffic to delegate, 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 provide the uCDN limits on how much traffic it should delegate towards 
                 the dCDN and then also provide a telemetry source that is coupled to the same scope as the limit, so
                 that the uCDN can use it to track its current usage against the advertised limit.  Having a limit and a 
                 corresponding telemetry source for that limit allows for a non ambiguous definition of what a 
                 particular limit means for both the uCDN and dCDN.
                </t>

                <t>
                 Limits that are communicated from the dCDN to the uCDN should be considered valid based on the TTL 
                 of the response. The TTL of the response will be provided by the transport mechanism for the response
                 , i.e., 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.
                </t>

                <t>
                 In the event a dCDN needs to inform a uCDN of an update to a previously communicated limit, 
                 the dCDN SHOULD be able to leverage a uCDN callback endpoint to inform the uCDN of adjusted limits.
                 The most common use case for this would be related to dCDN infrastructure issues which reduced the
                 amount of capacity previously advertised as being available.  
                </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
                "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 also be included.
            </t>
            <section anchor="telemetry-capability-object" title="Telemetry Capability Object">
                <t>
                    The Telemetry Capability Object is used to define a list of telemetry sources made available by the dCDN 
                    to the uCDN. In this document, Telemetry data is being defined as near real time aggregated metrics of 
                    dCDN utilization, such as bits per second egress, and should be specific to the uCDN and dCDN traffic 
                    delegation relationship. Telemetry data is uniquely defined by a source id, a metrics name, along with
                    the footprints that are associated with an FCI.Capability advertisement. 
                    When defining a Capacity Limit, the meaning of a limit might be considered ambiguous if the uCDN and dCDN are 
                    defining current usage via different data sources.  Having the dCDN provide a data source defining usage that 
                    both itself and the uCDN reference allows a non ambiguous metric to use when determining current usage and how that
                    compared to a limit.
                    Telemetry data is not only an important component for making informed traffic delegation decisions but 
                    also for providing visibility to traffic that has been delegated back through to upstream providers. In situations 
                    where there are multiple CDNI delegations, a uCDN will need to incorporate the usage information from any dCDN's it
                    delegated to when itself is asked to provide usage information otherwise, the traffic may seem unaccounted for.
                    An example of this situation is when a Content Provider delegates traffic directly to a CDN, and that CDN 
                    decides to further delegate that traffic to a dCDN, if the Content Provider polls the uCDN for traffic usage, 
                    if the uCDN does not integrate the Telemetry data of the dCDN it delegated to, any of the traffic the uCDN 
                    delegated to its dCDN would become invisible to the Content Provider.
                </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: A unique identifier of a telemetry source.</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: TBD</t>
                            <t>Mandatory-to-Specify: No.</t>
                        </list></t> 
                    </list></t>
                    <section anchor="telemetry-source-type" title="Telemetry Source Types">
                        <t>
                            Below are the listed valid telemetry source types.
                            At the time of this draft, the type registry is limited to a single type of Generic. 
                            The intention of this type registry is to allow for future extension to reference a 
                            yet to be drafted specification for a CDNI Telemetry interface, which would standardize
                            the definition, format,etc of Telemetry data between participants of a CDNI workflow.  
                        </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 datasources</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 unique within this telemetry source.</t>
                                <t>Type: String.</t>
                                <t>Mandatory-to-Specify: Yes.</t>
                            </list></t>

                            <t>Property: time-granularity<list style="empty">
                                <t>Description:  Represents the time frame that the data represents in seconds.  e.g., is this a data set over 300 seconds 
                                   (i.e., 5 minutes), 3600 seconds (i.e., one hour), etc..</t>
                                <t>Type: 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 will mean that the data is the average over the time representation.</t>
                                <t>Type: 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 of real time.  This is important to specify to help the uCDN
                                   to understand how long it might take to reflect traffic adjustments in the metrics.</t>
                                <t>Type: 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 2 metrics for a source, that is scoped to a footprint.
                    </t>
                    <figure>
                        <artwork>
<![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>
    ]
  }
]
]]>
                        </artwork>
                    </figure>
                </section>
            </section>

            <section anchor="capacity-limits-capability-object" title="CapacityLimits Capability Object">
                <t>
                    The Capacity Limits 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 can 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, or in other words, for each limit that is
                    advertised, there should also exist a telemetry source which provides data of current utilization
                    against the particular advertised limit.  
                </t>
                <t><list style="empty">
                    <t>Property: limits<list style="empty">
                        <t>Description: A collection of Capacity Limit 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="Capacity Limit Object">
                    <t>
                        A CapacityLimit object is used to represent traffic limits for delegation from the uCDN 
                        towards the dCDN. By default the limit object will be scoped to the footprint associated 
                        with the FCI capability advertisement encompassing this object.  The limit object can 
                        contain an optional scoping parameter which will allow specification of a limit for a subset
                        of the encompassing footprint.  Limits will be considered using a logical AND, such that a 
                        uCDN will need to ensure that all the limits are considered and honored rather than choosing
                        the most specific only.  There SHOULD be at least one limit object without an optional scope 
                        per capability-value which will define the overall limit for the footprint.
                    </t>
                    <t><list style="empty">
                        <t>Property: scope<list style="empty">
                            <t>Description: Defines an additional scope requirement for a limit within the FCI footprint
                               context. This MAY be specified if a dCDN would like to specify a more granular limit than
                               what is currently possible via an FCI footprint alone. An example of using the optional scope 
                               would be to specify a limit that should be applied to a specific published hostname within
                               a particular FCI footprint. A limit object that does not contain this optional scope, should 
                               be considered to apply to the entire encompassing footprint associated with the capability
                               advertisement 
                            </t>
                            <t>Type: Capacity Limit Scope object (see <xref target="capacity-limit-scope-object"/>).</t>
                            <t>Mandatory-to-Specify: No.</t>
                        </list></t>
                        <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 a unique identifier associated with a limit. The is CAN be used
                               as a relational identifier to a specific <xref target="capacity-limit-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: Integer.</t>
                            <t>Mandatory-to-Specify: Yes.</t>
                        </list></t>

                        <t>Property: maximum-soft<list style="empty">
                            <t>Description: A soft limit at which an upstream should consider deducing traffic to prevent hitting the hard limit.</t>
                            <t>Type: 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. The 
                               intended method for providing telemetry data is to reference a <xref target="capacity-limit-telemetry-source-object"/> 
                               to poll for the current usage.</t>
                            <t>Type: Integer.</t>
                            <t>Mandatory-to-Specify: No.</t>
                        </list></t>

                        <t>Property: telemetry-source<list style="empty">
                            <t>Description: Mapping of each a particular limit to a specific metric with relevant real-time data provided by a telemetry source.</t>
                            <t>Type: Capacity Limit Telemetry Source 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="Capacity Limit Types">
                        <t>
                            Below are listed the valid capacity limit types. Additional limits would need to
                            be specified and extended into this list.  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="Capacity Limit Telemetry Source Object">
                        <t>
                            The Capacity Limit Telemetry Source 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.</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 an 
                                   FCI.Telemetry Capability object.</t>
                                <t>Type: String.</t>
                                <t>Mandatory-to-Specify: Yes.</t>
                            </list></t>
                        </list></t>
                    </section>
                    <section anchor="capacity-limit-scope-object" title="Capacity Limit Scope Object">
                        <t>
                            A CapacityLimitScope object is used to define a more granular scope for a limit within the encompassing 
                            footprint.  The object will define what type of scope is being declared (published host, service ids, etc..) 
                            and will then contain an array of items of the type defined (publishedhostA.cdn.com, publishedhostB.cdn.com,..).
                            The scope types are meant to be extendible and reference already established identifiers commonly used in
                            delivery via a CDN. The scope types MUST be mutually understood between the uCDN and dCDN.  
                        </t>
                        <t><list style="empty">
                            <t>Property: type<list style="empty">
                                <t>Description: Defines the type of scope definition.</t>
                                <t>Type: String. One of the values listed in <xref target="capacity-limit-scope-type"/>.</t>
                                <t>Mandatory-to-Specify: Yes.</t>
                            </list></t>

                            <t>Property: values<list style="empty">
                                <t>Description: A collection of values of <xref target="capacity-limit-scope-type"/>.</t>
                                <t>Type: A JSON array of strings of (see <xref target="capacity-limit-scope-type"/>).</t>
                                <t>Mandatory-to-Specify: Yes.</t>
                            </list></t>
                        </list></t>
                        <section anchor="capacity-limit-scope-type" title="Capacity Limit Scope Types">
                            <t>
                                Below are listed the valid capacity limit types. Additional limits would need to
                                be specified and extended into this list.  The values specified here represent the
                                types that were identified as being the most relevant metrics for the purposes of
                                traffic delegation between CDNs.  The most recognized value will be the
                                published-host, while the other values listed correspond to identifiers commonly 
                                used with commercial CDN providers that either reference a specific configuration 
                                or a logical grouping of configurations.
                            </t>
                            <texttable>
                                <ttcol align="left">
                                    Scope Type
                                </ttcol>
                                <ttcol align="left">
                                    Description
                                </ttcol>                            
                                <c>published-host</c><c>CDN-Domain</c>
                                <c>service-id</c><c>an identifier associated with a group of configurations</c>
                                <c>property-id</c><c>an identifier associated with a specific configuration</c>
                            </texttable>
                        </section>
                    </section>
                </section>
                <section anchor="capacity-limit-object-serialization" title="Capacity Limit Object Serialization">
                    <t>
                        The following shows an example of an FCI.CapacityLimits object.
                    </t>
                    <figure>
                        <artwork>
<![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"
          }
        },
        {
          "id":"capacity_limit_region1",
          "scope":{
            "type":"published-host",
            "values":[
              "serviceA.cdn.example.com"
            ]
          },
          "limit-type":"egress",
          "maximum-hard":20000000000,
          "maximum-soft":10000000000,
          "telemetry-source":{
            "id":"capacity_metrics_region1",
            "metric":"egress_service2_5m"
          }
        },
        {
          "scope":{
            "type":"service-id",
            "Values":[
              "abcd4567ef9a"
            ]
          },
          "limit-type":"egress",
          "maximum-hard":30000000000,
          "maximum-soft":15000000000,
          "current":20000000000,
          "telemetry-source":{
            "id":"capacity_metrics_region3",
            "metric":"egress_service3_5m"
          }
        }
      ]
    },
    "footprints":[
      "<footprint objects>"
    ]
  }
]
]]>
                        </artwork>
                    </figure>
                </section>
            </section>
        </section>
        <section anchor="IANA" title="IANA Considerations">
            <section anchor="IANA.cdni.payload.types" title="CDNI Payload Types">
                <t>
                    similar to the type definitions described in section 7.1 of
                    <xref target="RFC8006" /> as well as the types described in section 6.1 
                    of <xref target="RFC8008" />.
                </t>
                <t>
                    This document requests the registration of the two additional payload types:
                </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 section <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 a utilization metrics
                        corresponding to telemetry sources provided by the dCDN.</t>
                        <t>Interface: FCI.</t>
                        <t>Encoding: See section <xref target="capacity-limits-capability-object"/>.</t>
                    </list></t>
                </section>
            </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 8 of
                <xref target="RFC8006" />
                and in Section 7 of
                <xref target="RFC8008" />
                respectively.
            </t>
        </section>
        <section anchor="Acknowledgements" title="Acknowledgements">
            <t>
                The authors would like to express their gratitude to TBD for TBD (their guidance / contribution / reviews ...)
            </t>
        </section>
    </middle>
    <back>
        <references title="Normative References">
            <?rfc include="reference.RFC.2119"?>
            <?rfc include="reference.RFC.8006"?>
            <?rfc include="reference.RFC.8007"?>
            <?rfc include="reference.RFC.8008"?>
            <?rfc include="reference.RFC.8174"?>
            <?rfc include="reference.RFC.8804"?>
        </references>

        <references title="Informative References">
            <?rfc include="reference.RFC.6707"?>
            <?rfc include="reference.RFC.7336"?>
            <reference anchor="SVA" target="https://www.streamingvideoalliance.org">
                <front>
                    <title>
                        Streaming Video Alliance Home Page
                    </title>
                    <author />
                    <date />
                </front>
            </reference>
            <reference anchor="OCWG" target="https://opencaching.streamingvideoalliance.org/">
                <front>
                    <title>
                        Open Caching Home Page
                    </title>
                    <author />
                    <date />
                </front>
            </reference>
            <reference anchor="OC-CII" target="https://www.streamingvideoalliance.org/books/open-cache-capacity-insights-functional-specification/">
                <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.streamingvideoalliance.org/books/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>
