CDNI Metadata Model Extensions
draft-goldstein-cdni-metadata-model-extensions-00

Document Type Active Internet-Draft (individual)
Authors Glenn Goldstein  , Will Power  , Guillaume Bichot  , Alfonso Sil√≥niz Sandino 
Last updated 2021-07-02
Stream (None)
Intended RFC status (None)
Formats pdf htmlized bibtex
Stream Stream state (No stream defined)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                       G. Goldstein
Internet-Draft                                                  W. Power
Updates: 8006,8008 (if approved)                      Lumen Technologies
Intended status: Standards Track                               G. Bichot
Expires: January 3, 2022                                       Broadpeak
                                                              A. Siloniz
                                                              Telefonica
                                                            July 2, 2021

                     CDNI Metadata Model Extensions
           draft-goldstein-cdni-metadata-model-extensions-00

Abstract

   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 proposed
   extensions to the [RFC8006] Medadata Model by way of a set of
   GenericMetadata objects that address extend the original CDNI
   capabilites to meet the more general needs of the CDN and Open
   Caching industry.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on January 3, 2022.

Copyright Notice

   Copyright (c) 2021 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents

Goldstein, et al.        Expires January 3, 2022                [Page 1]
Internet-Draft       CDNI Metadata Model Extensions            July 2021

   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   4
     1.2.  Requirements Language . . . . . . . . . . . . . . . . . .   4
   2.  CDNI Additonal GenericMetadata Objects  . . . . . . . . . . .   4
     2.1.  AllowCompress . . . . . . . . . . . . . . . . . . . . . .   5
     2.2.  CachePolicy . . . . . . . . . . . . . . . . . . . . . . .   5
     2.3.  ComputedCacheKey  . . . . . . . . . . . . . . . . . . . .   5
     2.4.  CrossoriginPolicy . . . . . . . . . . . . . . . . . . . .   5
     2.5.  NegativeCacheKey  . . . . . . . . . . . . . . . . . . . .   5
     2.6.  CacheBypassPolicy . . . . . . . . . . . . . . . . . . . .   5
     2.7.  OcnSelection  . . . . . . . . . . . . . . . . . . . . . .   5
     2.8.  PrivateFeatureList  . . . . . . . . . . . . . . . . . . .   6
     2.9.  ProcessingStages  . . . . . . . . . . . . . . . . . . . .   6
     2.10. RequestedCapacityLimits . . . . . . . . . . . . . . . . .   6
     2.11. RequestRouting  . . . . . . . . . . . . . . . . . . . . .   7
     2.12. ServiceIDs  . . . . . . . . . . . . . . . . . . . . . . .   7
     2.13. SourceMetadataExtended  . . . . . . . . . . . . . . . . .   7
     2.14. StaleContentCachePolicy . . . . . . . . . . . . . . . . .   7
     2.15. TrafficType . . . . . . . . . . . . . . . . . . . . . . .   7
   3.  CDNI Additonal FCI Objects  . . . . . . . . . . . . . . . . .   7
     3.1.  FCI.ProcessingStages  . . . . . . . . . . . . . . . . . .   8
     3.2.  FCI.SourceMetadataExtended  . . . . . . . . . . . . . . .   8
     3.3.  FCI.RequestRouting  . . . . . . . . . . . . . . . . . . .   8
     3.4.  FCI.PrivateFeatures . . . . . . . . . . . . . . . . . . .   8
     3.5.  FCI.OcnSelection  . . . . . . . . . . . . . . . . . . . .   8
   4.  Metadata Expression Language  . . . . . . . . . . . . . . . .   8
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   8
     5.1.  CDNI Payload Types  . . . . . . . . . . . . . . . . . . .   9
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   9
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   9
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   9
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .   9
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  10
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10

Goldstein, et al.        Expires January 3, 2022                [Page 2]
Internet-Draft       CDNI Metadata Model Extensions            July 2021

1.  Introduction

   The Streaming Video Alliance [SVA] 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 [OCWG] of
   the Streaming Video Alliance [SVA] is focused on the delegation of
   video delivery requests from commerical 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).  The interchange of
   content delivery configuration metadata between the various entities
   in the delivery ecosystem is essential for efficient
   interoperability.  The need for an industry-standard API and metadata
   model becomes increasingly important as content and service providers
   automate more of their operations, and as technologies, such as open
   caching, require coordination of content delivery configurations.  In
   order to achives this, the Open Caching Configuration Interface
   Specification [OC-CI] defines an interface contemplating a set of use
   cases.

   The following capabilites extend the [RFC8006] Metadata Model:

   o  Enhanced Source definitions, with load balancing, failover, and
      extended authorization methods

   o  A rich set of Cache Control Policies and computed cache keys

   o  Rules for Dynamic CORS Headers

   o  Traffic Types

   o  ServiceID Metadata

   o  Processing Stage Rules, enabling metadata to be applied
      conditionally at various stages in the CDN request/response
      pipeline.

   o  Request URI Rewrites

   o  HTTP Header Modifications

   o  HTTP Status Modifications

   o  Synthetic HTTP Responses

   o  An Expression Language for matching rules and synthesis of dynamic
      values

Goldstein, et al.        Expires January 3, 2022                [Page 3]
Internet-Draft       CDNI Metadata Model Extensions            July 2021

   o  Open Caching Configuration Metadata

   o  Private Features

   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.

   This document defines and registers CDNI GenericMetadata objects (as
   defined in section 4 of [RFC8006]), registers additional CDNI Payload
   Types (section 7.1 of [RFC8006]), and adds capability objects
   (extending section 5 in [RFC8008])

1.1.  Terminology

   The following terms are used throughout this document:

   o  CDN - Content Delivery Network

   Additionally, this document reuses the terminology defined in
   [RFC6707], [RFC7336], [RFC8006], [RFC8007], [RFC8008], and [RFC8804].
   Specifically, we use the following CDNI acronyms:

   o  uCDN, dCDN - Upstream CDN and Downstream CDN respectively (see
      [RFC7336] )

1.2.  Requirements Language

   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 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

2.  CDNI Additonal GenericMetadata Objects

   Section 4 of [RFC8006] defines a set of GenericMetadata Object Types.
   Below we define additional GenericMetadata Objects.

   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 a message, then the
   mandatory-to-specify property MUST also be included.

Goldstein, et al.        Expires January 3, 2022                [Page 4]
Internet-Draft       CDNI Metadata Model Extensions            July 2021

2.1.  AllowCompress

   AllowCompress is a new GenericMetadata object that allows the dCDN to
   compress content before sending to the client.

2.2.  CachePolicy

   CachePolicy is a new GenericMetadata object that allows for the uCDN
   to specify internal caching policies for the dCDN and external
   caching policies advertised to clients of the dCDN.

2.3.  ComputedCacheKey

   ComputedCacheKey is a new GenericMetadata object that allows for the
   specification of a cache key using the metadata expression language.
   Typical use cases would involve the construction of a cache key from
   one or more elements of the HTTP request.  In cases where both the
   ComputedCacheKey and the Cache object are applied, the
   ComputedCacheKey will take precedence.

2.4.  CrossoriginPolicy

   CrossoriginPolicy allows for the specification of dynamically
   generated CORS headers.

2.5.  NegativeCacheKey

   NegativeCachePolicy is a new GenericMetadata object that allows for
   the specification of caching policies based on error response codes
   received from the origin.

2.6.  CacheBypassPolicy

   CacheBypassPolicy is a new GenericMetadata object that allows a
   client request to be set as non cacheable.  It is expected that this
   feature will be used to allow clients to bypass cache when testing
   the uCDN fill path.  Note, CacheBypassPolicy only applies to the
   current request.  In addition, any content previously cached (by
   client requests that do not set CacheBypassPolicy) is not evicted.

2.7.  OcnSelection

   A new GenericMetadata object that allows the uCDN to indicate to the
   dCDN a preference in terms of OCN selection.

Goldstein, et al.        Expires January 3, 2022                [Page 5]
Internet-Draft       CDNI Metadata Model Extensions            July 2021

2.8.  PrivateFeatureList

   A GenericMetadata configuration object as a base generic object that
   permits the control of private features.

2.9.  ProcessingStages

   A ProcessingStages object is a type of GenericMetadata that describes
   the matching rules, metadata, and transformations to be applied at
   specific stages in the request processing pipeline.

   It is typical in CDN configurations to define matching rules and
   metadata that are to be applied at specific stages in the request
   processing pipeline.  For example, it may be required to append a
   host header prior to forwarding a request to an origin, or modify the
   response returned from an origin prior to storing in the cache.  The
   following four processing stages are defined:

   o  clientRequest - Rules run on the client request prior to further
      processing.

   o  originRequest - Rules run prior to making a request to the origin.

   o  originResponse - Rules run after a response is received from the
      origin and before being placed in the cache.

   o  clientResponse - Rules run prior to sending the response to the
      client.  If the response is from the cache, rules are applied to
      the response retrieved from the cache prior to sending to the
      client.

   Each of the four processing stages is represented by an array of
   StageRules objects, with each StageRules object defining match
   criteria along with metadata that should be applied if the match
   applies to true.  It should be noted that all of the StageRules
   objects in the array are evaluated and processed in order.  A
   possible future extension to this processing model could allow for an
   if-else structure, where processing for a stage is halted upon
   matching of a StageRule match expression.

2.10.  RequestedCapacityLimits

   MI.RequestedCapacityLimits is a new GenericMetadata object that
   allows the uCDN to communicate to the dCDN a desired change in the
   advertised traffic delegation limits for a given host and footprint.

Goldstein, et al.        Expires January 3, 2022                [Page 6]
Internet-Draft       CDNI Metadata Model Extensions            July 2021

2.11.  RequestRouting

   MI.RequestRouting is a new GenericMetadata object that allows the
   uCDN to force the dCDN request routing mode(s) to be applied when
   working in iterative redirection mode.  The list of redirection modes
   supported by the dCDN is advertised through the FCI.RedirectionMode
   object.  The list of request routing modes supported by the dCDN is
   advertised through the FCI.RequestRoutingMode object.

2.12.  ServiceIDs

   MI.ServiceIDs is a new GenericMetadata object that allows for the
   specification of two tiers of CDN-specific identifiers and names.
   The interpretation of these identifiers is implementation specific.

2.13.  SourceMetadataExtended

   SourceMetadataExtended is an alternative to the CDNi standard
   SourceMetadata object, which adds a property to specify load
   balancing across multiple sources, as well as a SourceExtended sub-
   object with additional attributes to the CDNi standard Source object.
   While both SourceMetadataExtended and SourceMetadata can be provided
   for backward compatibility, a dCDN that advertises capability for
   SourceMetadataExtended will ignore SourceMetadata if both are
   provided for a given host or path match.

2.14.  StaleContentCachePolicy

   StaleContentCachePolicy is a new GenericMetadata object that allows
   the uCDN to specify the policy to use by a dCDN when responding with
   stale content.

2.15.  TrafficType

   TrafficType metadata defines a set of descriptors that characterize
   either the type or usage of the traffic, enabling CDNs and OCNs to
   apply any internal configuration rules without exposing an
   unnecessary amount of internal details.

3.  CDNI Additonal FCI Objects

   Section 5 of [RFC8008] describes the FCI Capability Advertisement
   Object, which includes 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
   additional Capability Objects.

Goldstein, et al.        Expires January 3, 2022                [Page 7]
Internet-Draft       CDNI Metadata Model Extensions            July 2021

   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.

3.1.  FCI.ProcessingStages

   This object is used to signal the set of features that are supported
   in relation with the ProcessingStages configuration object.  Those
   optional features depend on the CDNI-MEL language support.

3.2.  FCI.SourceMetadataExtended

   This object is used to signal the supported features related to the
   SourceMetadataExtended configuration object.

3.3.  FCI.RequestRouting

   This object is used by the dCDN to signal/announce the supported
   request routing modes.  This can be optionally used by the uCDN to
   further select a subset of those modes when operating one of the
   iterative delegation modes.

3.4.  FCI.PrivateFeatures

   This object is used by the dCDN to signal/announce the list of
   supported private features.

3.5.  FCI.OcnSelection

   This object is used by the dCDN to signal/announce the supported OCN
   types and/or their transport arrangement and/or medium supported by
   OCNs.

4.  Metadata Expression Language

   The CDNI Metadata Expression Language provides a syntax with a rich
   set of variables, operators, and built-in functions to facilitate use
   cases within the extended CDNi metadata model.  Details TBD

5.  IANA Considerations

Goldstein, et al.        Expires January 3, 2022                [Page 8]
Internet-Draft       CDNI Metadata Model Extensions            July 2021

5.1.  CDNI Payload Types

   TBD.  Two new auth-types will be introduced for use with
   SourceMetadataExtended: AWSv4Auth and HeaderAuth

6.  Security Considerations

   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
   [RFC8006] and in Section 7 of [RFC8008] respectively.

   MORE - TBD

7.  Acknowledgements

   The authors would like to express their gratitude to the members of
   the Streaming Video Alliance Open Caching Working Group for their
   guidance / contribution / reviews ...)

8.  References

8.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC8006]  Niven-Jenkins, B., Murray, R., Caulfield, M., and K. Ma,
              "Content Delivery Network Interconnection (CDNI)
              Metadata", RFC 8006, DOI 10.17487/RFC8006, December 2016,
              <https://www.rfc-editor.org/info/rfc8006>.

   [RFC8007]  Murray, R. and B. Niven-Jenkins, "Content Delivery Network
              Interconnection (CDNI) Control Interface / Triggers",
              RFC 8007, DOI 10.17487/RFC8007, December 2016,
              <https://www.rfc-editor.org/info/rfc8007>.

   [RFC8008]  Seedorf, J., Peterson, J., Previdi, S., van Brandenburg,
              R., and K. Ma, "Content Delivery Network Interconnection
              (CDNI) Request Routing: Footprint and Capabilities
              Semantics", RFC 8008, DOI 10.17487/RFC8008, December 2016,
              <https://www.rfc-editor.org/info/rfc8008>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

Goldstein, et al.        Expires January 3, 2022                [Page 9]
Internet-Draft       CDNI Metadata Model Extensions            July 2021

   [RFC8804]  Finkelman, O. and S. Mishra, "Content Delivery Network
              Interconnection (CDNI) Request Routing Extensions",
              RFC 8804, DOI 10.17487/RFC8804, September 2020,
              <https://www.rfc-editor.org/info/rfc8804>.

8.2.  Informative References

   [OC-CI]    Goldstein, G., Ed., Power, W., Bichot, G., and A. Siloniz,
              "Open Caching - Configuration Interface Functional
              Specification (Parts 1,2,3)", Version 0.1, July 2021.

   [OCWG]     "Open Caching Home Page",
              <https://www.streamingvideoalliance.org/technical-groups/
              open-caching/>.

   [RFC6707]  Niven-Jenkins, B., Le Faucheur, F., and N. Bitar, "Content
              Distribution Network Interconnection (CDNI) Problem
              Statement", RFC 6707, DOI 10.17487/RFC6707, September
              2012, <https://www.rfc-editor.org/info/rfc6707>.

   [RFC7336]  Peterson, L., Davie, B., and R. van Brandenburg, Ed.,
              "Framework for Content Distribution Network
              Interconnection (CDNI)", RFC 7336, DOI 10.17487/RFC7336,
              August 2014, <https://www.rfc-editor.org/info/rfc7336>.

   [SVA]      "Streaming Video Alliance Home Page",
              <https://www.streamingvideoalliance.org>.

Authors' Addresses

   Glenn Goldstein
   Lumen Technologies
   US

   Email:
                       glenng1215@gmail.com

   Will Power
   Lumen Technologies
   US

   Email:
                       wrpower@gmail.com

Goldstein, et al.        Expires January 3, 2022               [Page 10]
Internet-Draft       CDNI Metadata Model Extensions            July 2021

   Guillaume Bichot
   Broadpeak
   France

   Email:
                       guillaume.bichot@gmail.com

   Alfonzo Siloniz
   Telefonica
   Spain

   Email:
                       alfonsosiloniz@gmail.com

Goldstein, et al.        Expires January 3, 2022               [Page 11]