Network Working Group O. Finkelman Internet-Draft Qwilt Intended status: Standards Track S. Mishra Expires: December 15, 2018 Verizon June 13, 2018 CDNI Triggers Interface SVA Extensions draft-finkelman-cdni-triggers-sva-extensions-00 Abstract The Open Caching working group of the Streaming Video Alliance is focused on the delegation of video delivery request from commercial CDNs to a caching layer at the ISP. In that aspect, Open Caching 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). Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. 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 December 15, 2018. Copyright Notice Copyright (c) 2018 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 Finkelman & Mishra Expires December 15, 2018 [Page 1] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 (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 . . . . . . . . . . . . . . . . . . . . . . . 3 2. Interfaces Extensions Overview . . . . . . . . . . . . . . . 3 2.1. CDNI Control Interface / Triggers Extensions . . . . . . 4 2.1.1. CI/T Objects . . . . . . . . . . . . . . . . . . . . 4 2.1.2. Trigger Specification . . . . . . . . . . . . . . . . 4 2.1.3. Content Selection . . . . . . . . . . . . . . . . . . 4 2.1.4. Trigger Extensibility . . . . . . . . . . . . . . . . 4 2.2. CDNI Footprint and Capabilities Interface Extensions . . 5 3. CI/T Version 2 . . . . . . . . . . . . . . . . . . . . . . . 6 3.1. CI/T Objects V2 . . . . . . . . . . . . . . . . . . . . . 6 3.2. Properties of CI/T Version 2 objects . . . . . . . . . . 6 3.3. RegexMatch . . . . . . . . . . . . . . . . . . . . . . . 7 3.4. Playlist . . . . . . . . . . . . . . . . . . . . . . . . 9 3.5. AbrProtocol . . . . . . . . . . . . . . . . . . . . . . . 10 3.6. CI/T Trigger Extensions . . . . . . . . . . . . . . . . . 10 3.6.1. Enforcement Options . . . . . . . . . . . . . . . . . 10 3.6.2. GenericExtensionObject . . . . . . . . . . . . . . . 13 4. Trigger Extension Objects . . . . . . . . . . . . . . . . . . 15 4.1. LocationPolicy extension . . . . . . . . . . . . . . . . 15 4.2. TimePolicy Extension . . . . . . . . . . . . . . . . . . 17 5. Footprint and Capabilities . . . . . . . . . . . . . . . . . 19 5.1. CI/T Versions Capability Object . . . . . . . . . . . . . 19 5.1.1. CI/T Versions Capability Object Serialization . . . . 20 5.2. CI/T Playlist Protocol Capability Object . . . . . . . . 20 5.2.1. CI/T Playlist Protocol Capability Object Serialization . . . . . . . . . . . . . . . . . . . . 20 5.3. CI/T Trigger Extension Capability Object . . . . . . . . 21 5.3.1. CI/T Trigger Extension Capability Object Serialization . . . . . . . . . . . . . . . . . . . . 21 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 6.1. CDNI Payload Types . . . . . . . . . . . . . . . . . . . 22 6.1.1. CDNI ci-trigger-command.v2 Payload Type . . . . . . . 22 6.1.2. CDNI ci-trigger-status.v2 Payload Type . . . . . . . 23 6.1.3. CDNI CI/T LocationPolicy Trigger Extension Type . . . 23 6.1.4. CDNI CI/T TimePolicy Trigger Extension Type . . . . . 23 6.1.5. CDNI FCI CI/T Versions Payload Type . . . . . . . . . 23 6.1.6. CDNI FCI CI/T Playlist Protocol Payload Type . . . . 23 Finkelman & Mishra Expires December 15, 2018 [Page 2] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 6.1.7. CDNI FCI CI/T Extension Objects Payload Type . . . . 24 6.2. CDNI CI/T Trigger ABR protocol types . . . . . . . . . . 24 7. Security Considerations . . . . . . . . . . . . . . . . . . . 24 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 25 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 25 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 25 10.1. Normative References . . . . . . . . . . . . . . . . . . 25 10.2. Informative References . . . . . . . . . . . . . . . . . 26 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 1. Introduction This document defines the objects and extensions needed for Open Caching content management operations. For that purpose it extends CDNI Control Interface/Triggers [RFC8007]. The basic operations are the ones defined in the RFC (i.e. purge, invalidate, pre-position). For consistency, this document follows the CDNI notation of uCDN (the commercial CDN) and dCDN (the ISP caching layer). When using the term CP in this document we refer to a video content provider. The CDNI metadata interface is described in [RFC8006]. The CDNI footprint and capability interface is described in [RFC8008]. The CDNI control interface / triggers is described in [RFC8007]. 1.1. Terminology This document reuses the terminology defined in [RFC6707], [RFC8006], [RFC8007], and [RFC8008]. Additionally, the following terms are used throughout this document and are defined as follows: o SVA - Streaming Video Alliance o OC - SVA Open Caching o CP - Content Provider o ABR - Adaptive Bitrate 2. Interfaces Extensions Overview This document defines extensions for the CDNI Control Interface / Triggers [RFC8007] and defines FCI objects as per the CDNI Footprint and Capabilities Interface [RFC8008]. Finkelman & Mishra Expires December 15, 2018 [Page 3] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 2.1. CDNI Control Interface / Triggers Extensions 2.1.1. CI/T Objects This document specifies version 2 of the CI/T objects in order to support version 2 of the Trigger Specification as required below in Section 2.1.2. 2.1.2. Trigger Specification This document specifies version 2 of the Trigger Specification which is an enhancement of the Trigger Specification that includes all properties as defined in section 5.2.1 of [RFC8007] as well as the additional properties required by the use cases listed below in Section 2.1.3. 2.1.3. Content Selection The trigger specification as defined in section 5.2.1 of [RFC8007] provides means to select content objects by matching a full content URL or patterns with wildcards. The Open Caching specifications requires two additional selection options. o Regular Expression - Using regex a uCDN can create more complex rules to select the content objects for the cases of invalidation and purge. For example, purging specific content within a specific directory path. o Content Playlist - Using video playlist files, a uCDN can trigger an operation that will be applied to a collection of distinct media files in a format that is natural for a streaming video content provider. A playlist may have several formats, specifically HTTP Live Streaming (HLS) *.m3u8 manifest [RFC8216], Microsoft Smooth Streaming (MSS) *.ismc client manifest [MSS], and Dynamic Adaptive Streaming over HTTP (DASH) *.mpd file [ISO/IEC 23009-1:2014] [MPEG-DASH]. 2.1.4. Trigger Extensibility The CDNI Control Interface / Triggers [RFC8007] defines a set of objects used by the trigger commands. These objects cover the basic trigger functionality. The specification of the Open Caching architecture requires additional properties to allow a more granular trigger execution operation. In this document we define a mechanism for a generic trigger extension object wrapper for managing individual CDNI trigger extensions in an opaque manner, as well as an initial set of trigger extension objects. Finkelman & Mishra Expires December 15, 2018 [Page 4] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 This document also registers CDNI Payload Types [RFC7736] under the namespace CIT for the initial set of trigger extension types: o CIT.LocationPolicy (for controlling the locations in which the trigger is executed) o CIT.TimePolicy (for scheduling a trigger to run in a specific time window) Example use cases o Pre-position with cache location policy o Purge content with cache location policy o Pre-position at a specific time o Purge by content acquisition time (e.g. purge all content acquired in the past X hours) 2.2. CDNI Footprint and Capabilities Interface Extensions Extending the trigger mechanism with optional properties requires the ability for the dCDN to advertise which optional properties it supports. The CDNI Footprint and Capabilities Interface [RFC8008] enables the dCDN to advertise the capabilities it supports across different footprints. This document introduces FCI objects to support the advertisement of these optional properties. Example use cases o Trigger types: Advertise which trigger types are supported by the dCDN. CDNI defines three trigger types (purge, invalidate, pre- position), but it does not necessarily mean that all dCDNs support all of them. The uCDN may prefer to work only with dCDN that support what the uCDN needs. o Content selection rule types: Advertise which selection types are supported. For example, if adding content regex as a means to match on content URLs, not all dCDN would support it. For playlist mapping, advertise which types and versions of protocols are supported, e.g. HLS/DASH/MSS, DASH templates. o Trigger extensions: Advertise which trigger extensions object types are supported by the dCDN. Finkelman & Mishra Expires December 15, 2018 [Page 5] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 3. CI/T Version 2 Version 2 of the CI/T interface is an extension of the original interface as defined in section 5 of [RFC8007]. This sections defines version 2 of the CI/T objects and their properties. 3.1. CI/T Objects V2 Version 2 of the CI/T interface requires the support of the following objects: o CI/T Commands v2: A trigger command request using the payload type ci-trigger-command.v2. Version 2 MUST only use "trigger.v2" objects as defined in Section 3.2, instead of a "trigger" object. All other properties of the trigger command are as defined in section 5.1.1 of [RFC8007]. o Trigger Status Resource v2: A trigger status resource response using the payload type ci-trigger-status.v2. Version 2 MUST only use "trigger.v2" objects as defined in Section 3.2, instead of a "trigger" object. All other properties of the trigger command are as defined in section 5.1.1 of [RFC8007]. o Trigger Collections: The payload type ci-trigger-collection is used with no changes comparing to previous version. Usage example of version 2 of trigger command POST /triggers HTTP/1.1 User-Agent: example-user-agent/0.1 Host: dcdn.example.com Accept: */* Content-Type: application/cdni; ptype=ci-trigger-command.v2 { "trigger.v2": { }, "cdn-path": [ "AS64496:1" ] } 3.2. Properties of CI/T Version 2 objects Version 2 of the Trigger Object Specification adds the following properties on top of the existing properties of the trigger specification defined in section 5.2.1 of [RFC8007]. Property: content.regexs Finkelman & Mishra Expires December 15, 2018 [Page 6] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 Description: Regexs of content URLs the trigger Command applies to. Type: A JSON array of RegexMatch objects (see Section 3.3). Mandatory: No, but at least one of "metadata.*", "content.*" or "playlist.urls" MUST be present and non-empty. Property: content.playlists Description: Playlists of content the CI/T trigger command applies to. Type: A JSON array of Playlist objects (see Section 3.4). Mandatory: No, but at least one of "metadata.*", "content.*" or "content.playlists" MUST be present and non-empty. Property: extensions Description: Array of trigger extension data. Type: Array of GenericTriggerExtension objects (see Section 3.6.2). Mandatory-to-Specify: No. The default is no extensions. Example of an invalidation trigger.v2 with a list of regex objects, a list of playlist objects, and extensions:. { "trigger.v2": { "type": "invalidate", "content.regexs": [ ], "content.playlists": [ ], "extensions": [ , "generic-trigger-extension-value": { }, "mandatory-to-enforce": true, "safe-to-redistribute": true, "incomprehensible": false } 4. Trigger Extension Objects The objects defined below are intended to be used in the GenericTriggerExtension object's generic-trigger-extension-value field as defined in section Section 3.6.2, and their generic-trigger- extension-type property MUST be set to the appropriate CDNI Payload Type as defined in Section 6.1 . 4.1. LocationPolicy extension A content operation may be relevant for a specific geographical region, or need to be excluded from a specific region. In this case, the trigger should be applied only to parts of the network that are included or not excluded by the location policy. Note that the restrictions here are on the cache location rather than client location. The LocationPolicy object defines which CDN or cache locations the trigger command is relevant for. Example use cases: o Pre-position: Certain contracts allow for pre-positioning or availability of contract in all regions except for certain excluded regions in the world, including caches. For example, some CPs content cannot ever knowingly touch servers in a specific country, including cached content. Therefore, these regions MUST be excluded from a pre-positioning operation. o Purge: In certain cases, content may have been located on servers in regions where the content must not reside on. In such cases a purge operation to remove content specifically from that region, is required. Object specification Finkelman & Mishra Expires December 15, 2018 [Page 15] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 Property: locations Description: An Access List that allows or denies (blocks) the trigger execution per cache location. Type: Array of LocationRule objects (see Section 4.2.2.1 of [RFC8006]) Mandatory-to-Specify: Yes. If a location policy object is not listed within the trigger command, the default behavior is to execute the trigger in all available caches and locations of the dCDN. The trigger command is allowed, or denied, for a specific cache location according to the action of the first location whose footprint matches against that cache's location. If two or more footprints overlap, the first footprint that matches against the cache's location determines the action a CDN MUST take. If the "locations" property is an empty list or if none of the listed footprints match the location of a specific cache location, then the result is equivalent to a "deny" action. The following is an example of pre-position trigger specification with a trigger-extensions array including a location policy that allows the trigger execution in the US but blocks its execution in Canada: Finkelman & Mishra Expires December 15, 2018 [Page 16] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 { "trigger": { "type": "preposition", "content.urls": [ "https://www.example.com/a/b/c/1", "https://www.example.com/a/b/c/2" ], "extensions": [ { "generic-trigger-extension-type": "CIT.LocationPolicy", "generic-trigger-extension-value": { "locations": [ { "action": "allow", "footprints": [ { "footprint-type": "countrycode", "footprint-value": ["us"] } ] }, { "action": "deny", "footprints": [ { "footprint-type": "countrycode", "footprint-value": ["ca"] } ] } ] }, "mandatory-to-enforce": true, "safe-to-redistribute": true, "incomprehensible": false } ] }, "cdn-path": [ "AS64496:1" ] } 4.2. TimePolicy Extension A uCDN may wish to perform content management operation on the dCDN under a defined schedule. The TimePolicy extensions allows the uCDN to instruct the dCDN to execute the trigger command in a desired time window. Finkelman & Mishra Expires December 15, 2018 [Page 17] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 Example use cases * Pre-position: A content provider wishes to pre-populate a new episode at off-peak time so that it would be ready on caches (for example home caches) at prime time when the episode is released for viewing. A scheduled operation enables the uCDN to direct the dCDN in what time frame to execute the trigger. The time values are in UNIX epoch. * Regional schedule: When used with combination with the Location Policy defined in Section 4.1 the uCDN can trigger separate commands for different geographical regions, for each region using different schedule. This allows the uCDN to control the execution time per region and, for example, direct the dCDN to execute at off-peak hours, as they are defined per region. Object specification Property: window Description: A time frame in which the trigger should be executed. Type: TimeWindow object (see Section 4.2.3.2 of [RFC8006]) Mandatory-to-Specify: Yes. If a time policy object is not listed within the trigger command, the default behavior is to execute the trigger in a time frame most suitable to the dCDN taking under consideration other constrains and / or obligations. Example of trigger specification with a scheduled time window between 09:00 01/01/2000 UTC and 17:00 01/01/2000 UTC: Finkelman & Mishra Expires December 15, 2018 [Page 18] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 POST /triggers HTTP/1.1 User-Agent: example-user-agent/0.1 Host: dcdn.example.com Accept: */* Content-Type: application/cdni; ptype=ci-trigger-command Content-Length: 352 { "trigger": { "type": "preposition", "content.urls": [ "https://www.example.com/a/b/c/1", "https://www.example.com/a/b/c/2" ], "extensions": [ { "generic-trigger-extension-type": "CIT.TimePolicy", "generic-trigger-extension-value": { "windows": { "start": 946717200, "end": 946746000 } } "mandatory-to-enforce": true, "safe-to-redistribute": true, "incomprehensible": false } ], }, "cdn-path": [ "AS64496:1" ] } 5. Footprint and Capabilities This section covers the FCI objects required for advertisement of the extensions and properties introduced in this document. 5.1. CI/T Versions Capability Object The CI/T versions capability object is used to indicate support for one or more CI/T objects versions. Note that the default version as originally defined in [RFC8007] MUST be implicitly supported regardless of the versions listed in this capability object. Property: versions Description: A list of version numbers. Finkelman & Mishra Expires December 15, 2018 [Page 19] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 Type: An array of JSON strings Mandatory-to-Specify: Yes. 5.1.1. CI/T Versions Capability Object Serialization The following shows an example of CI/T Versions Capability object serialization for a dCDN that supports versions 2 and 2.1 of the CI/T interface. { "capabilities": [ { "capability-type": "FCI.TriggerVersion", "capability-value": { "versions": [ "2", "2.1" ] }, "footprints": [ ] } ] } 5.2. CI/T Playlist Protocol Capability Object The CI/T Playlist Protocol capability object is used to indicate support for one or more AbrProtocols listed in Section 6.2 by the playlists property of the "trigger.v2" object. Property: abr-protocols Description: A list of ABR protocols. Type: A list of AbrProtocol (from the CDNI Triggers ABR protocol types Section 6.2) Mandatory-to-Specify: Yes. 5.2.1. CI/T Playlist Protocol Capability Object Serialization The following shows an example of CI/T Playlist Protocol Capability object serialization for a dCDN that supports "hls" and "dash". Finkelman & Mishra Expires December 15, 2018 [Page 20] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 { "capabilities": [ { "capability-type": "FCI.TriggerPlaylistProtocol", "capability-value": { "abr-protocols": ["hls", "dash"] }, "footprints": [ ] } ] } 5.3. CI/T Trigger Extension Capability Object The CI/T Generic Extension capability object is used to indicate support for one or more GenericExtensionObject types. Property: trigger-extension Description: A list of supported CDNI CI/T GenericExtensionObject types. Type: List of strings corresponding to entries from the "CDNI Payload Types" registry [RFC7736] that are under the CIT namespace, and that correspond to CDNI CI/T GenericExtensionObject objects. Mandatory-to-Specify: Yes. An empty list MUST be interpreted as "no GenericExtensionObject types are supported". A non- empty list MUST be interpreted as containing "the only GenericExtensionObject types that are supported". 5.3.1. CI/T Trigger Extension Capability Object Serialization The following shows an example of CI/T Trigger Extension Capability object serialization for a dCDN that supports the "CIT.LocationPolicy" and the "CIT.TimePolicy" objects. Finkelman & Mishra Expires December 15, 2018 [Page 21] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 { "capabilities": [ { "capability-type": "FCI.TriggerGenericExtension", "capability-value": { "trigger-extension": ["CIT.LocationPolicy", "CIT.TimePolicy"] }, "footprints": [ ] } ] } 6. IANA Considerations 6.1. CDNI Payload Types This document requests the registration of the following CDNI Payload Types under the IANA CDNI Payload Type registry defined in [RFC7736]: +-----------------------------+---------------+ | Payload Type | Specification | +-----------------------------+---------------+ | ci-trigger-command.v2 | RFCthis | | ci-trigger-status.v2 | RFCthis | | CIT.LocationPolicy | RFCthis | | CIT.TimePolicy | RFCthis | | FCI.TriggerVersion | RFCthis | | FCI.TriggerPlaylistProtocol | RFCthis | | FCI.TriggerGenericExtension | RFCthis | +-----------------------------+---------------+ [RFC Editor: Please replace RFCthis with the published RFC number for this document.] 6.1.1. CDNI ci-trigger-command.v2 Payload Type Purpose: The purpose of this payload type is to distinguish version 2 of the CI/T command (and any associated capability advertisement) Interface: CI/T Encoding: see Section 4.1 Finkelman & Mishra Expires December 15, 2018 [Page 22] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 6.1.2. CDNI ci-trigger-status.v2 Payload Type Purpose: The purpose of this payload type is to distinguish version 2 of the CI/T status resource response (and any associated capability advertisement) Interface: CI/T Encoding: see Section 4.1 6.1.3. CDNI CI/T LocationPolicy Trigger Extension Type Purpose: The purpose of this Trigger Extension type is to distinguish LocationPolicy CIT Trigger Extension objects. Interface: CI/T Encoding: see Section 4.1 6.1.4. CDNI CI/T TimePolicy Trigger Extension Type Purpose: The purpose of this Trigger Extension type is to distinguish TimePolicy CI/T Trigger Extension objects. Interface: CI/T Encoding: see Section 4.2 6.1.5. CDNI FCI CI/T Versions Payload Type Purpose: The purpose of this payload type is to distinguish FCI advertisement objects for CI/T Triggers Versions objects Interface: FCI Encoding: see Section 5.1.1 6.1.6. CDNI FCI CI/T Playlist Protocol Payload Type Purpose: The purpose of this payload type is to distinguish FCI advertisement objects for CI/T Playlist Protocol objects Interface: FCI Encoding: see Section 5.2.1 Finkelman & Mishra Expires December 15, 2018 [Page 23] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 6.1.7. CDNI FCI CI/T Extension Objects Payload Type Purpose: The purpose of this payload type is to distinguish FCI advertisement objects for CI/T Extension objects Interface: FCI Encoding: see Section 5.3.1 6.2. CDNI CI/T Trigger ABR protocol types The IANA is requested to create a new "CDNI CI/T Trigger AbrProtocol Types" subregistry in the "Content Delivery Networks Interconnection (CDNI) Parameters" registry. The "CDNI CI/T Trigger ABR Protocol Types" namespace defines the valid ABR Protocol object values in Section Section 3.5, used by the Playlist object. Additions to the AbrProtocol namespace conform to the "Specification Required" policy as defined in section 4.6 of [RFC8126], where the specification defines the AbrProtocol Type and the protocol to which it is associated. The designated expert will verify that new protocol definitions do not duplicate existing protocol definitions and prevent gratuitous additions to the namespace. The following table defines the initial AbrProtocol values corresponding to the HLS, MSS, and DASH protocols: +-------------+---------------------+---------------+---------------+ | AbrProtocol | Description | Type | Protocol | | Type | | Specification | Specification | +-------------+---------------------+---------------+---------------+ | hls | HTTP Live Streaming | RFCthis | RFC 8216 | | | | | [RFC8216] | | mss | Microsoft Smooth | RFCthis | MSS [MSS] | | | Streaming | | | | dash | Dynamic Adaptive | RFCthis | MPEG-DASH | | | Streaming over HTTP | | [MPEG-DASH] | | | (MPEG-DASH) | | | +-------------+---------------------+---------------+---------------+ [RFC Editor: Please replace RFCthis with the published RFC number for this document.] 7. Security Considerations All security considerations listed in section 8 of [RFC8007] and section 7 of [RFC8008] apply to this document as well. Finkelman & Mishra Expires December 15, 2018 [Page 24] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 8. Acknowledgments TBD 9. Contributors The authors would like to thank all members of the SVA's Open Caching Working Group for their contribution in support of this document. 10. References 10.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, . [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, DOI 10.17487/RFC3986, January 2005, . [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, . [RFC8007] Murray, R. and B. Niven-Jenkins, "Content Delivery Network Interconnection (CDNI) Control Interface / Triggers", RFC 8007, DOI 10.17487/RFC8007, December 2016, . [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, . [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, June 2017, . [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data Interchange Format", STD 90, RFC 8259, DOI 10.17487/RFC8259, December 2017, . Finkelman & Mishra Expires December 15, 2018 [Page 25] Internet-Draft CDNI Triggers Interface SVA Extensions June 2018 10.2. Informative References [MPEG-DASH] ISO, "Information technology -- Dynamic adaptive streaming over HTTP (DASH) -- Part 1: Media presentation description and segment format", ISO/IEC 23009-1:2014, Edition 2, 05 2014, . [MSS] Microsoft, "[MS-SSTR]: Smooth Streaming Protocol", Protocol Revision 8.0, September 2017, . [PCRE841] Hazel, P., "Perl Compatible Regular Expressions", Version 8.41, July 2017, . [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, . [RFC7736] Ma, K., "Content Delivery Network Interconnection (CDNI) Media Type Registration", RFC 7736, DOI 10.17487/RFC7736, December 2015, . [RFC8216] Pantos, R., Ed. and W. May, "HTTP Live Streaming", RFC 8216, DOI 10.17487/RFC8216, August 2017, . Authors' Addresses Ori Finkelman Qwilt 6, Ha'harash Hod HaSharon 4524079 Israel Phone: +972-72-2221647 Email: orif@qwilt.com Sanjay Mishra Verizon 13100 Columbia Pike Silver Spring, MD 20904 USA Email: sanjay.mishra@verizon.com Finkelman & Mishra Expires December 15, 2018 [Page 26]