draft-ietf-cdni-control-triggers-08.txt   draft-ietf-cdni-control-triggers-09.txt 
Network Working Group R. Murray Network Working Group R. Murray
Internet-Draft B. Niven-Jenkins Internet-Draft B. Niven-Jenkins
Intended status: Standards Track Velocix (Alcatel-Lucent) Intended status: Standards Track Velocix (Alcatel-Lucent)
Expires: January 3, 2016 July 2, 2015 Expires: April 18, 2016 October 16, 2015
CDNI Control Interface / Triggers CDNI Control Interface / Triggers
draft-ietf-cdni-control-triggers-08 draft-ietf-cdni-control-triggers-09
Abstract Abstract
This document describes the part of the CDN Interconnection Control This document describes the part of the CDN Interconnection Control
Interface that allows a CDN to trigger activity in an interconnected Interface that allows a CDN to trigger activity in an interconnected
CDN that is configured to deliver content on its behalf. The CDN that is configured to deliver content on its behalf. The
upstream CDN can use this mechanism to request that the downstream upstream CDN can use this mechanism to request that the downstream
CDN pre-positions metadata or content, or that it invalidates or CDN pre-positions metadata or content, or that it invalidates or
purges metadata or content. The upstream CDN can monitor the status purges metadata or content. The upstream CDN can monitor the status
of activity that it has triggered in the downstream CDN. of activity that it has triggered in the downstream CDN.
skipping to change at page 1, line 42 skipping to change at page 1, line 42
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 3, 2016. This Internet-Draft will expire on April 18, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 22 skipping to change at page 2, line 22
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4
2. Model for CDNI Triggers . . . . . . . . . . . . . . . . . . . 4 2. Model for CDNI Triggers . . . . . . . . . . . . . . . . . . . 4
2.1. Timing of Triggered Activity . . . . . . . . . . . . . . 6 2.1. Timing of Triggered Activity . . . . . . . . . . . . . . 6
2.2. Scope of Triggered Activity . . . . . . . . . . . . . . . 6 2.2. Scope of Triggered Activity . . . . . . . . . . . . . . . 6
2.3. Trigger Results . . . . . . . . . . . . . . . . . . . . . 7 2.3. Trigger Results . . . . . . . . . . . . . . . . . . . . . 6
3. Collections of Trigger Status Resources . . . . . . . . . . . 7 3. Collections of Trigger Status Resources . . . . . . . . . . . 7
4. CDNI Trigger Interface . . . . . . . . . . . . . . . . . . . 8 4. CDNI Trigger Interface . . . . . . . . . . . . . . . . . . . 8
4.1. Creating Triggers . . . . . . . . . . . . . . . . . . . . 9 4.1. Creating Triggers . . . . . . . . . . . . . . . . . . . . 9
4.2. Checking Status . . . . . . . . . . . . . . . . . . . . . 10 4.2. Checking Status . . . . . . . . . . . . . . . . . . . . . 10
4.2.1. Polling Trigger Status Resource collections . . . . . 10 4.2.1. Polling Trigger Status Resource collections . . . . . 10
4.2.2. Polling Trigger Status Resources . . . . . . . . . . 11 4.2.2. Polling Trigger Status Resources . . . . . . . . . . 11
4.3. Cancelling Triggers . . . . . . . . . . . . . . . . . . . 11 4.3. Cancelling Triggers . . . . . . . . . . . . . . . . . . . 11
4.4. Deleting Triggers . . . . . . . . . . . . . . . . . . . . 12 4.4. Deleting Triggers . . . . . . . . . . . . . . . . . . . . 12
4.5. Expiry of Trigger Status Resources . . . . . . . . . . . 12 4.5. Expiry of Trigger Status Resources . . . . . . . . . . . 12
4.6. Loop Detection and Prevention . . . . . . . . . . . . . . 13 4.6. Loop Detection and Prevention . . . . . . . . . . . . . . 13
4.7. Error Handling . . . . . . . . . . . . . . . . . . . . . 13 4.7. Error Handling . . . . . . . . . . . . . . . . . . . . . 13
4.8. Content URLs . . . . . . . . . . . . . . . . . . . . . . 14 4.8. Content URLs . . . . . . . . . . . . . . . . . . . . . . 14
5. CI/T Object Properties and Encoding . . . . . . . . . . . . . 15 5. CI/T Object Properties and Encoding . . . . . . . . . . . . . 14
5.1. CI/T Objects . . . . . . . . . . . . . . . . . . . . . . 15 5.1. CI/T Objects . . . . . . . . . . . . . . . . . . . . . . 15
5.1.1. CI/T Commands . . . . . . . . . . . . . . . . . . . . 15 5.1.1. CI/T Commands . . . . . . . . . . . . . . . . . . . . 15
5.1.2. Trigger Status Resource . . . . . . . . . . . . . . . 16 5.1.2. Trigger Status Resource . . . . . . . . . . . . . . . 16
5.1.3. Trigger Collection . . . . . . . . . . . . . . . . . 17 5.1.3. Trigger Collection . . . . . . . . . . . . . . . . . 17
5.2. Properties of CI/T Objects . . . . . . . . . . . . . . . 19 5.2. Properties of CI/T Objects . . . . . . . . . . . . . . . 18
5.2.1. Trigger Specification . . . . . . . . . . . . . . . . 19 5.2.1. Trigger Specification . . . . . . . . . . . . . . . . 19
5.2.2. Trigger Type . . . . . . . . . . . . . . . . . . . . 20 5.2.2. Trigger Type . . . . . . . . . . . . . . . . . . . . 20
5.2.3. Trigger Status . . . . . . . . . . . . . . . . . . . 21 5.2.3. Trigger Status . . . . . . . . . . . . . . . . . . . 21
5.2.4. PatternMatch . . . . . . . . . . . . . . . . . . . . 21 5.2.4. PatternMatch . . . . . . . . . . . . . . . . . . . . 21
5.2.5. Absolute Time . . . . . . . . . . . . . . . . . . . . 22 5.2.5. Absolute Time . . . . . . . . . . . . . . . . . . . . 22
5.2.6. Error Description . . . . . . . . . . . . . . . . . . 22 5.2.6. Error Description . . . . . . . . . . . . . . . . . . 22
5.2.7. Error Code . . . . . . . . . . . . . . . . . . . . . 23 5.2.7. Error Code . . . . . . . . . . . . . . . . . . . . . 23
5.3. Formalization of the JSON Data . . . . . . . . . . . . . 24 5.3. Formalization of the JSON Data . . . . . . . . . . . . . 23
6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.1. Creating Triggers . . . . . . . . . . . . . . . . . . . . 26 6.1. Creating Triggers . . . . . . . . . . . . . . . . . . . . 25
6.1.1. Preposition . . . . . . . . . . . . . . . . . . . . . 26 6.1.1. Preposition . . . . . . . . . . . . . . . . . . . . . 25
6.1.2. Invalidate . . . . . . . . . . . . . . . . . . . . . 27 6.1.2. Invalidate . . . . . . . . . . . . . . . . . . . . . 27
6.2. Examining Trigger Status . . . . . . . . . . . . . . . . 29 6.2. Examining Trigger Status . . . . . . . . . . . . . . . . 28
6.2.1. Collection of All Triggers . . . . . . . . . . . . . 29 6.2.1. Collection of All Triggers . . . . . . . . . . . . . 28
6.2.2. Filtered Collections of Trigger Status Resources . . 30 6.2.2. Filtered Collections of Trigger Status Resources . . 29
6.2.3. Individual Trigger Status Resources . . . . . . . . . 31 6.2.3. Individual Trigger Status Resources . . . . . . . . . 31
6.2.4. Polling for Change . . . . . . . . . . . . . . . . . 33 6.2.4. Polling for Change . . . . . . . . . . . . . . . . . 33
6.2.5. Deleting Trigger Status Resources . . . . . . . . . . 36 6.2.5. Deleting Trigger Status Resources . . . . . . . . . . 36
6.2.6. Error Reporting . . . . . . . . . . . . . . . . . . . 38 6.2.6. Error Reporting . . . . . . . . . . . . . . . . . . . 38
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39
7.1. Media type registrations . . . . . . . . . . . . . . . . 39 7.1. CDNI Payload Type Parameter Registrations . . . . . . . . 39
7.1.1. CI/T Commands . . . . . . . . . . . . . . . . . . . . 39 8. Security Considerations . . . . . . . . . . . . . . . . . . . 39
7.1.2. CI/T Trigger Status Resource . . . . . . . . . . . . 40
7.1.3. CI/T Trigger Collection . . . . . . . . . . . . . . . 41
8. Security Considerations . . . . . . . . . . . . . . . . . . . 42
8.1. Authentication, Authorization, Confidentiality, Integrity 8.1. Authentication, Authorization, Confidentiality, Integrity
Protection . . . . . . . . . . . . . . . . . . . . . . . 42 Protection . . . . . . . . . . . . . . . . . . . . . . . 40
8.2. Denial of Service . . . . . . . . . . . . . . . . . . . . 43 8.2. Denial of Service . . . . . . . . . . . . . . . . . . . . 40
8.3. Privacy . . . . . . . . . . . . . . . . . . . . . . . . . 43 8.3. Privacy . . . . . . . . . . . . . . . . . . . . . . . . . 41
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 44 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 41
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 44 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 41
10.1. Normative References . . . . . . . . . . . . . . . . . . 44 10.1. Normative References . . . . . . . . . . . . . . . . . . 41
10.2. Informative References . . . . . . . . . . . . . . . . . 44 10.2. Informative References . . . . . . . . . . . . . . . . . 42
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 45 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 43
1. Introduction 1. Introduction
[RFC6707] introduces the problem scope for CDN Interconnection (CDNI) [RFC6707] introduces the problem scope for CDN Interconnection (CDNI)
and lists the four categories of interfaces that may be used to and lists the four categories of interfaces that may be used to
compose a CDNI solution (Control, Metadata, Request Routing, compose a CDNI solution (Control, Metadata, Request Routing,
Logging). Logging).
[RFC7336] expands on the information provided in [RFC6707] and [RFC7336] expands on the information provided in [RFC6707] and
describes each of the interfaces and the relationships between them describes each of the interfaces and the relationships between them
skipping to change at page 14, line 41 skipping to change at page 14, line 35
o CI/T "preposition" and "purge" commands can be reported as o CI/T "preposition" and "purge" commands can be reported as
"processed" if affected caches are offline and the activity will "processed" if affected caches are offline and the activity will
complete when they return to service. complete when they return to service.
o Otherwise, the dCDN SHOULD keep the Trigger Status Resource in o Otherwise, the dCDN SHOULD keep the Trigger Status Resource in
state "pending" or "active" until the CI/T Command is acted upon, state "pending" or "active" until the CI/T Command is acted upon,
or the uCDN chooses to cancel it. or the uCDN chooses to cancel it.
4.8. Content URLs 4.8. Content URLs
To refer to content in the dCDN, the uCDN MUST present URLs in the
same form as in the metadata it supplied to the dCDN. By definition,
it is always possible for the dCDN to locate content based on URLs in
this form.
Therefore, if content URLs are transformed by an intermediate CDN in Therefore, if content URLs are transformed by an intermediate CDN in
a cascade, that intermediate CDN MUST transform URLs in CI/T Commands a cascade, that intermediate CDN MUST transform URLs in CI/T Commands
it passes to its dCDN. it passes to its dCDN.
When processing Trigger Specifications, CDNs MUST ignore the URL When processing Trigger Specifications, CDNs MUST ignore the URL
scheme (http or https) in comparing URLs. For example, for a CI/T scheme (http or https) in comparing URLs. For example, for a CI/T
invalidate or purge command, content MUST be invalidated or purged invalidate or purge command, content MUST be invalidated or purged
regardless of the protocol clients use to request it. regardless of the protocol clients use to request it.
5. CI/T Object Properties and Encoding 5. CI/T Object Properties and Encoding
CI/T Commands, Trigger Status Resources and Trigger Collections and CI/T Commands, Trigger Status Resources and Trigger Collections and
their properties are encoded using JSON, as defined in sections their properties are encoded using JSON, as defined in sections
Section 5.1.1, Section 5.2.1, and Section 5.1.2. Section 5.1.1, Section 5.2.1, and Section 5.1.2. They MUST use the
MIME Media Type 'application/cdni', with parameter 'ptype' values as
defined below and in Section 7.1.
Names in JSON are case sensitive. The names and literal values Names in JSON are case sensitive. The names and literal values
specified in the present document MUST always use lower-case. specified in the present document MUST always use lower-case.
JSON types, including 'object', 'array", 'number' and 'string' are JSON types, including 'object', 'array', 'number' and 'string' are
defined in [RFC7159]. defined in [RFC7159].
Unrecognised name/value pairs in JSON objects SHOULD NOT be treated Unrecognised name/value pairs in JSON objects SHOULD NOT be treated
as an error by either the uCDN or dCDN. They SHOULD be ignored in as an error by either the uCDN or dCDN. They SHOULD be ignored in
the processing, and passed on by dCDN to any further dCDNs in a the processing, and passed on by dCDN to any further dCDNs in a
cascade. cascade.
5.1. CI/T Objects 5.1. CI/T Objects
The top-level objects defined by the CI/T interface are described in The top-level objects defined by the CI/T interface are described in
this section. Each has an associated MIME Media Type. The encoding this section.
of values used by these objects is described in Section 5.2.
The encoding of values used by these objects is described in
Section 5.2.
5.1.1. CI/T Commands 5.1.1. CI/T Commands
CI/T Commands SHOULD use a MIME Media Type of application/ CI/T Commands MUST use a MIME Media Type of 'application/cdni;
cdni.ci.TriggerCommand+json. ptype=ci-trigger-command'.
A CI/T Command is encoded as a JSON object containing the following A CI/T Command is encoded as a JSON object containing the following
name/value pairs. name/value pairs.
Name: trigger Name: trigger
Description: A specification of the trigger type, and a set of Description: A specification of the trigger type, and a set of
data to act upon. data to act upon.
Value: A Trigger Specification, as defined in Section 5.2.1. Value: A Trigger Specification, as defined in Section 5.2.1.
skipping to change at page 16, line 23 skipping to change at page 16, line 17
Description: The CDN Provider Identifiers of CDNs that have Description: The CDN Provider Identifiers of CDNs that have
already accepted the CI/T Command. already accepted the CI/T Command.
Value: A non-empty JSON array of JSON strings, where each Value: A non-empty JSON array of JSON strings, where each
string is a CDN Provider Identifier as defined in Section 4.6. string is a CDN Provider Identifier as defined in Section 4.6.
Mandatory: Yes. Mandatory: Yes.
5.1.2. Trigger Status Resource 5.1.2. Trigger Status Resource
Trigger Status Resources SHOULD use a MIME Media Type of application/ Trigger Status Resources MUST use a MIME Media Type of 'application/
cdni.ci.TriggerStatus+json. cdni; ptype=ci-trigger-status'.
A Trigger Status Resource is encoded as a JSON object containing the A Trigger Status Resource is encoded as a JSON object containing the
following name/value pairs. following name/value pairs.
Name: trigger Name: trigger
Description: The Trigger Specification posted in the body of Description: The Trigger Specification posted in the body of
the CI/T Command. Note that this need not be a byte-for-byte the CI/T Command. Note that this need not be a byte-for-byte
copy. For example, in the JSON representation the dCDN may re- copy. For example, in the JSON representation the dCDN may re-
serialise the information differently. serialise the information differently.
skipping to change at page 17, line 44 skipping to change at page 17, line 37
processing a Trigger Command. processing a Trigger Command.
Value: An array of Error Description, as defined in Value: An array of Error Description, as defined in
Section 5.2.6. An empty array is allowed, and equivalent to Section 5.2.6. An empty array is allowed, and equivalent to
omitting "errors" from the object. omitting "errors" from the object.
Mandatory: No. Mandatory: No.
5.1.3. Trigger Collection 5.1.3. Trigger Collection
Trigger Collections SHOULD use a MIME Media Type of application/ Trigger Collections MUST use a MIME Media Type of 'application/cdni;
cdni.ci.TriggerCollection+json. ptype=ci-trigger-collection'.
A Trigger Collection is encoded as a JSON object containing the A Trigger Collection is encoded as a JSON object containing the
following name/value pairs. following name/value pairs.
Name: triggers Name: triggers
Description: Links to Trigger Status Resources in the Description: Links to Trigger Status Resources in the
collection. collection.
Value: A JSON array of zero or more URLs, represented as JSON Value: A JSON array of zero or more URLs, represented as JSON
strings. strings.
Mandatory: Yes Mandatory: Yes
Name: staleresourcetime Name: staleresourcetime
skipping to change at page 24, line 30 skipping to change at page 24, line 4
| | downstream CDNs. | | | downstream CDNs. |
| ecancelled | The uCDN cancelled the request. | | ecancelled | The uCDN cancelled the request. |
+------------+------------------------------------------------------+ +------------+------------------------------------------------------+
5.3. Formalization of the JSON Data 5.3. Formalization of the JSON Data
The JSON data described in this document has been formalised using The JSON data described in this document has been formalised using
CDDL [I-D.greevenbosch-appsawg-cbor-cddl] as follows: CDDL [I-D.greevenbosch-appsawg-cbor-cddl] as follows:
CIT-object = CIT-command / Trigger-Status-Resource / Trigger-Collection CIT-object = CIT-command / Trigger-Status-Resource / Trigger-Collection
CIT-command ; use media type application/cdni; ptype=ci-trigger-command
CIT-command ; use media type application/cdni.ci.TriggerCommand+json
= { = {
? trigger: Triggerspec ? trigger: Triggerspec
? cancel: [* URI] ? cancel: [* URI]
cdn-path: [* Cdn-PID] cdn-path: [* Cdn-PID]
} }
Trigger-Status-Resource ; application/cdni.ci.TriggerStatus+json. Trigger-Status-Resource ; application/cdni; ptype=ci-trigger-status
= { = {
trigger: Triggerspec trigger: Triggerspec
ctime: Absolute-Time ctime: Absolute-Time
mtime: Absolute-Time mtime: Absolute-Time
? etime: Absolute-Time ? etime: Absolute-Time
status: Trigger-Status status: Trigger-Status
? errors: [* Error-Description] ? errors: [* Error-Description]
} }
Trigger-Collection ; application/cdni.ci.TriggerCollection+json Trigger-Collection ; application/cdni; ptype=ci-trigger-collection
= { = {
triggers: [* URI] triggers: [* URI]
? staleresourcetime: int ; time in seconds ? staleresourcetime: int ; time in seconds
? coll-all: URI ? coll-all: URI
? coll-pending: URI ? coll-pending: URI
? coll-active: URI ? coll-active: URI
? coll-complete: URI ? coll-complete: URI
? coll-failed: URI ? coll-failed: URI
? cdn-id: Cdn-PID ? cdn-id: Cdn-PID
} }
skipping to change at page 26, line 37 skipping to change at page 26, line 9
Note that "metadata.patterns" and "content.patterns" are not allowed Note that "metadata.patterns" and "content.patterns" are not allowed
in a preposition Trigger Specification. in a preposition Trigger Specification.
REQUEST: REQUEST:
POST /triggers HTTP/1.1 POST /triggers HTTP/1.1
User-Agent: example-user-agent/0.1 User-Agent: example-user-agent/0.1
Host: dcdn.example.com Host: dcdn.example.com
Accept: */* Accept: */*
Content-Type: application/cdni.ci.TriggerCommand+json Content-Type: application/cdni; ptype=ci-trigger-command
Content-Length: 347 Content-Length: 347
{ {
"trigger" : { "trigger" : {
"type": "preposition", "type": "preposition",
"metadata.urls" : [ "http://metadata.example.com/a/b/c" ], "metadata.urls" : [ "http://metadata.example.com/a/b/c" ],
"content.urls" : [ "content.urls" : [
"http://www.example.com/a/b/c/1", "http://www.example.com/a/b/c/1",
"http://www.example.com/a/b/c/2", "http://www.example.com/a/b/c/2",
skipping to change at page 27, line 4 skipping to change at page 26, line 25
"metadata.urls" : [ "http://metadata.example.com/a/b/c" ], "metadata.urls" : [ "http://metadata.example.com/a/b/c" ],
"content.urls" : [ "content.urls" : [
"http://www.example.com/a/b/c/1", "http://www.example.com/a/b/c/1",
"http://www.example.com/a/b/c/2", "http://www.example.com/a/b/c/2",
"http://www.example.com/a/b/c/3", "http://www.example.com/a/b/c/3",
"http://www.example.com/a/b/c/4" "http://www.example.com/a/b/c/4"
] ]
}, },
"cdn-path" : [ "AS64496:1" ] "cdn-path" : [ "AS64496:1" ]
} }
RESPONSE: RESPONSE:
HTTP/1.1 201 Created HTTP/1.1 201 Created
Date: Sun, 31 Aug 2014 09:53:18 GMT Date: Sun, 31 Aug 2014 09:53:18 GMT
Content-Length: 472 Content-Length: 472
Content-Type: application/cdni.ci.TriggerStatus+json Content-Type: application/cdni; ptype=ci-trigger-status
Location: http://dcdn.example.com/triggers/0 Location: http://dcdn.example.com/triggers/0
Server: example-server/0.1 Server: example-server/0.1
{ {
"ctime": 1409478798, "ctime": 1409478798,
"etime": 1409478806, "etime": 1409478806,
"mtime": 1409478798, "mtime": 1409478798,
"status": "pending", "status": "pending",
"trigger": { "trigger": {
"content.urls": [ "content.urls": [
skipping to change at page 27, line 51 skipping to change at page 27, line 23
"http://metadata.example.com/a/b/" using case-insensitive matching, "http://metadata.example.com/a/b/" using case-insensitive matching,
and "http://www.example.com/a/b/" respectively, using case-sensitive and "http://www.example.com/a/b/" respectively, using case-sensitive
matching. matching.
REQUEST: REQUEST:
POST /triggers HTTP/1.1 POST /triggers HTTP/1.1
User-Agent: example-user-agent/0.1 User-Agent: example-user-agent/0.1
Host: dcdn.example.com Host: dcdn.example.com
Accept: */* Accept: */*
Content-Type: application/cdni.ci.TriggerCommand+json Content-Type: application/cdni; ptype=ci-trigger-command
Content-Length: 384 Content-Length: 384
{ {
"trigger" : { "trigger" : {
"type": "invalidate", "type": "invalidate",
"metadata.patterns" : [ "metadata.patterns" : [
{ "pattern" : "http://metadata.example.com/a/b/*" } { "pattern" : "http://metadata.example.com/a/b/*" }
], ],
"content.urls" : [ "http://www.example.com/a/index.html" ], "content.urls" : [ "http://www.example.com/a/index.html" ],
"content.patterns" : [ "content.patterns" : [
skipping to change at page 28, line 27 skipping to change at page 27, line 49
] ]
}, },
"cdn-path" : [ "AS64496:1" ] "cdn-path" : [ "AS64496:1" ]
} }
RESPONSE: RESPONSE:
HTTP/1.1 201 Created HTTP/1.1 201 Created
Date: Sun, 31 Aug 2014 09:53:19 GMT Date: Sun, 31 Aug 2014 09:53:19 GMT
Content-Length: 551 Content-Length: 551
Content-Type: application/cdni.ci.TriggerStatus+json Content-Type: application/cdni; ptype=ci-trigger-status
Location: http://dcdn.example.com/triggers/1 Location: http://dcdn.example.com/triggers/1
Server: example-server/0.1 Server: example-server/0.1
{ {
"ctime": 1409478799, "ctime": 1409478799,
"etime": 1409478807, "etime": 1409478807,
"mtime": 1409478799, "mtime": 1409478799,
"status": "pending", "status": "pending",
"trigger": { "trigger": {
"content.patterns": [ "content.patterns": [
{ {
"case-sensitive": true, "case-sensitive": true,
"pattern": "http://www.example.com/a/b/*" "pattern": "http://www.example.com/a/b/*"
skipping to change at page 29, line 36 skipping to change at page 29, line 21
RESPONSE: RESPONSE:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Length: 347 Content-Length: 347
Expires: Sun, 31 Aug 2014 09:54:19 GMT Expires: Sun, 31 Aug 2014 09:54:19 GMT
Server: example-server/0.1 Server: example-server/0.1
Etag: "-6516741166528256414" Etag: "-6516741166528256414"
Cache-Control: max-age=60 Cache-Control: max-age=60
Date: Sun, 31 Aug 2014 09:53:19 GMT Date: Sun, 31 Aug 2014 09:53:19 GMT
Content-Type: application/cdni.ci.TriggerCollection+json Content-Type: application/cdni; ptype=ci-trigger-collection
{ {
"cdn-id": "AS64496:0", "cdn-id": "AS64496:0",
"coll-active": "/triggers/active", "coll-active": "/triggers/active",
"coll-complete": "/triggers/complete", "coll-complete": "/triggers/complete",
"coll-failed": "/triggers/failed", "coll-failed": "/triggers/failed",
"coll-pending": "/triggers/pending", "coll-pending": "/triggers/pending",
"staleresourcetime": 86400, "staleresourcetime": 86400,
"triggers": [ "triggers": [
"http://dcdn.example.com/triggers/0", "http://dcdn.example.com/triggers/0",
skipping to change at page 30, line 27 skipping to change at page 30, line 21
RESPONSE: RESPONSE:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Length: 153 Content-Length: 153
Expires: Sun, 31 Aug 2014 09:54:19 GMT Expires: Sun, 31 Aug 2014 09:54:19 GMT
Server: example-server/0.1 Server: example-server/0.1
Etag: "5012053611544832286" Etag: "5012053611544832286"
Cache-Control: max-age=60 Cache-Control: max-age=60
Date: Sun, 31 Aug 2014 09:53:19 GMT Date: Sun, 31 Aug 2014 09:53:19 GMT
Content-Type: application/cdni.ci.TriggerCollection+json Content-Type: application/cdni; ptype=ci-trigger-collection
{ {
"staleresourcetime": 86400, "staleresourcetime": 86400,
"triggers": [ "triggers": [
"http://dcdn.example.com/triggers/0", "http://dcdn.example.com/triggers/0",
"http://dcdn.example.com/triggers/1" "http://dcdn.example.com/triggers/1"
] ]
} }
At this point, if no other Trigger Status Resources had been created, At this point, if no other Trigger Status Resources had been created,
skipping to change at page 31, line 21 skipping to change at page 31, line 21
RESPONSE: RESPONSE:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Length: 56 Content-Length: 56
Expires: Sun, 31 Aug 2014 09:54:19 GMT Expires: Sun, 31 Aug 2014 09:54:19 GMT
Server: example-server/0.1 Server: example-server/0.1
Etag: "2986340333785000363" Etag: "2986340333785000363"
Cache-Control: max-age=60 Cache-Control: max-age=60
Date: Sun, 31 Aug 2014 09:53:19 GMT Date: Sun, 31 Aug 2014 09:53:19 GMT
Content-Type: application/cdni.ci.TriggerCollection+json Content-Type: application/cdni; ptype=ci-trigger-collection
{ {
"staleresourcetime": 86400, "staleresourcetime": 86400,
"triggers": [] "triggers": []
} }
6.2.3. Individual Trigger Status Resources 6.2.3. Individual Trigger Status Resources
The Trigger Status Resources can also be examined for detail about The Trigger Status Resources can also be examined for detail about
individual CI/T Trigger Commands. For example, for the CI/T individual CI/T Trigger Commands. For example, for the CI/T
skipping to change at page 32, line 21 skipping to change at page 32, line 21
RESPONSE: RESPONSE:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Length: 472 Content-Length: 472
Expires: Sun, 31 Aug 2014 09:54:19 GMT Expires: Sun, 31 Aug 2014 09:54:19 GMT
Server: example-server/0.1 Server: example-server/0.1
Etag: "-4765587034697674779" Etag: "-4765587034697674779"
Cache-Control: max-age=60 Cache-Control: max-age=60
Date: Sun, 31 Aug 2014 09:53:19 GMT Date: Sun, 31 Aug 2014 09:53:19 GMT
Content-Type: application/cdni.ci.TriggerStatus+json Content-Type: application/cdni; ptype=ci-trigger-status
{ {
"ctime": 1409478798, "ctime": 1409478798,
"etime": 1409478806, "etime": 1409478806,
"mtime": 1409478798, "mtime": 1409478798,
"status": "pending", "status": "pending",
"trigger": { "trigger": {
"content.urls": [ "content.urls": [
"http://www.example.com/a/b/c/1", "http://www.example.com/a/b/c/1",
"http://www.example.com/a/b/c/2", "http://www.example.com/a/b/c/2",
skipping to change at page 33, line 21 skipping to change at page 33, line 21
RESPONSE: RESPONSE:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Length: 551 Content-Length: 551
Expires: Sun, 31 Aug 2014 09:54:19 GMT Expires: Sun, 31 Aug 2014 09:54:19 GMT
Server: example-server/0.1 Server: example-server/0.1
Etag: "-7657333837290433420" Etag: "-7657333837290433420"
Cache-Control: max-age=60 Cache-Control: max-age=60
Date: Sun, 31 Aug 2014 09:53:19 GMT Date: Sun, 31 Aug 2014 09:53:19 GMT
Content-Type: application/cdni.ci.TriggerStatus+json Content-Type: application/cdni; ptype=ci-trigger-status
{ {
"ctime": 1409478799, "ctime": 1409478799,
"etime": 1409478807, "etime": 1409478807,
"mtime": 1409478799, "mtime": 1409478799,
"status": "pending", "status": "pending",
"trigger": { "trigger": {
"content.patterns": [ "content.patterns": [
{ {
"case-sensitive": true, "case-sensitive": true,
skipping to change at page 34, line 22 skipping to change at page 34, line 22
RESPONSE: RESPONSE:
HTTP/1.1 304 Not Modified HTTP/1.1 304 Not Modified
Content-Length: 0 Content-Length: 0
Expires: Sun, 31 Aug 2014 09:54:19 GMT Expires: Sun, 31 Aug 2014 09:54:19 GMT
Server: example-server/0.1 Server: example-server/0.1
Etag: "5012053611544832286" Etag: "5012053611544832286"
Cache-Control: max-age=60 Cache-Control: max-age=60
Date: Sun, 31 Aug 2014 09:53:19 GMT Date: Sun, 31 Aug 2014 09:53:19 GMT
Content-Type: application/cdni.ci.TriggerCollection+json Content-Type: application/cdni; ptype=ci-trigger-collection
REQUEST: REQUEST:
GET /triggers/0 HTTP/1.1 GET /triggers/0 HTTP/1.1
User-Agent: example-user-agent/0.1 User-Agent: example-user-agent/0.1
Host: dcdn.example.com Host: dcdn.example.com
Accept: */* Accept: */*
If-None-Match: "-4765587034697674779" If-None-Match: "-4765587034697674779"
RESPONSE: RESPONSE:
HTTP/1.1 304 Not Modified HTTP/1.1 304 Not Modified
Content-Length: 0 Content-Length: 0
Expires: Sun, 31 Aug 2014 09:54:19 GMT Expires: Sun, 31 Aug 2014 09:54:19 GMT
Server: example-server/0.1 Server: example-server/0.1
Etag: "-4765587034697674779" Etag: "-4765587034697674779"
Cache-Control: max-age=60 Cache-Control: max-age=60
Date: Sun, 31 Aug 2014 09:53:19 GMT Date: Sun, 31 Aug 2014 09:53:19 GMT
Content-Type: application/cdni.ci.TriggerStatus+json Content-Type: application/cdni; ptype=ci-trigger-status
When the CI/T Trigger Command is complete, the contents of the When the CI/T Trigger Command is complete, the contents of the
filtered collections will be updated along with their Entity Tags. filtered collections will be updated along with their Entity Tags.
For example, when the two example CI/T Trigger Commands are complete, For example, when the two example CI/T Trigger Commands are complete,
the collections of pending and complete Trigger Status Resources the collections of pending and complete Trigger Status Resources
might look like: might look like:
REQUEST: REQUEST:
GET /triggers/pending HTTP/1.1 GET /triggers/pending HTTP/1.1
skipping to change at page 35, line 22 skipping to change at page 35, line 22
RESPONSE: RESPONSE:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Length: 56 Content-Length: 56
Expires: Sun, 31 Aug 2014 09:54:29 GMT Expires: Sun, 31 Aug 2014 09:54:29 GMT
Server: example-server/0.1 Server: example-server/0.1
Etag: "-4471185573414616962" Etag: "-4471185573414616962"
Cache-Control: max-age=60 Cache-Control: max-age=60
Date: Sun, 31 Aug 2014 09:53:29 GMT Date: Sun, 31 Aug 2014 09:53:29 GMT
Content-Type: application/cdni.ci.TriggerCollection+json Content-Type: application/cdni; ptype=ci-trigger-collection
{ {
"staleresourcetime": 86400, "staleresourcetime": 86400,
"triggers": [] "triggers": []
} }
REQUEST: REQUEST:
GET /triggers/complete HTTP/1.1 GET /triggers/complete HTTP/1.1
User-Agent: example-user-agent/0.1 User-Agent: example-user-agent/0.1
skipping to change at page 36, line 22 skipping to change at page 36, line 22
RESPONSE: RESPONSE:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Length: 153 Content-Length: 153
Expires: Sun, 31 Aug 2014 09:54:30 GMT Expires: Sun, 31 Aug 2014 09:54:30 GMT
Server: example-server/0.1 Server: example-server/0.1
Etag: "-1508172875796647067" Etag: "-1508172875796647067"
Cache-Control: max-age=60 Cache-Control: max-age=60
Date: Sun, 31 Aug 2014 09:53:30 GMT Date: Sun, 31 Aug 2014 09:53:30 GMT
Content-Type: application/cdni.ci.TriggerCollection+json Content-Type: application/cdni; ptype=ci-trigger-collection
{ {
"staleresourcetime": 86400, "staleresourcetime": 86400,
"triggers": [ "triggers": [
"http://dcdn.example.com/triggers/0", "http://dcdn.example.com/triggers/0",
"http://dcdn.example.com/triggers/1" "http://dcdn.example.com/triggers/1"
] ]
} }
6.2.5. Deleting Trigger Status Resources 6.2.5. Deleting Trigger Status Resources
skipping to change at page 37, line 39 skipping to change at page 37, line 39
RESPONSE: RESPONSE:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Length: 106 Content-Length: 106
Expires: Sun, 31 Aug 2014 09:54:30 GMT Expires: Sun, 31 Aug 2014 09:54:30 GMT
Server: example-server/0.1 Server: example-server/0.1
Etag: "-1842390246836476263" Etag: "-1842390246836476263"
Cache-Control: max-age=60 Cache-Control: max-age=60
Date: Sun, 31 Aug 2014 09:53:30 GMT Date: Sun, 31 Aug 2014 09:53:30 GMT
Content-Type: application/cdni.ci.TriggerCollection+json Content-Type: application/cdni; ptype=ci-trigger-collection
{ {
"staleresourcetime": 86400, "staleresourcetime": 86400,
"triggers": [ "triggers": [
"http://dcdn.example.com/triggers/1" "http://dcdn.example.com/triggers/1"
] ]
} }
6.2.6. Error Reporting 6.2.6. Error Reporting
skipping to change at page 38, line 27 skipping to change at page 38, line 27
RESPONSE: RESPONSE:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Length: 505 Content-Length: 505
Expires: Sun, 31 Aug 2014 09:54:38 GMT Expires: Sun, 31 Aug 2014 09:54:38 GMT
Server: example-server/0.1 Server: example-server/0.1
Etag: "-3893590191073700822" Etag: "-3893590191073700822"
Cache-Control: max-age=60 Cache-Control: max-age=60
Date: Sun, 31 Aug 2014 09:53:38 GMT Date: Sun, 31 Aug 2014 09:53:38 GMT
Content-Type: application/cdni.ci.TriggerStatus+json Content-Type: application/cdni; ptype=ci-trigger-status
{ {
"ctime": 1409478810, "ctime": 1409478810,
"errors": [ "errors": [
{ {
"content.urls": [ "content.urls": [
"http://newsite.example.com/index.html" "http://newsite.example.com/index.html"
], ],
"description": "description":
"No HostIndex entry found for newsite.example.com", "No HostIndex entry found for newsite.example.com",
skipping to change at page 39, line 7 skipping to change at page 39, line 7
"trigger": { "trigger": {
"content.urls": [ "content.urls": [
"http://newsite.example.com/index.html" "http://newsite.example.com/index.html"
], ],
"type": "preposition" "type": "preposition"
} }
} }
7. IANA Considerations 7. IANA Considerations
7.1. Media type registrations 7.1. CDNI Payload Type Parameter Registrations
7.1.1. CI/T Commands
The MIME media type for CI/T Commands is application/
cdni.ci.TriggerCommand+json.
Type Name: application
Subtype name: cdni.ci.TriggerCommand+json
Required parameters: N/A
Optional parameters: N/A
Encoding considerations: binary
Security Considerations: See [RFCthis], Section 8
Interoperability Considerations: Described in [RFCthis]
Published Specification: [RFCthis]
Applications that use this media type: No known applications
currently use this media type.
Additional Information:
Deprecated alias names for this type: N/A
Magic number(s): N/A
File Extensions: N/A
Macintosh file type code(s): TEXT
Person & email address to contact for further information: IESG
<iesg@ietf.org>
Intended Usage: COMMON
Restrictions on usage: None
Author: Rob Murray <rob.murray@alcatel-lucent.com>
Change controller: IESG <iesg@ietf.org>
Note: No "charset" parameter is defined for this registration because
a charset parameter is not defined for application/json [RFC7159].
7.1.2. CI/T Trigger Status Resource
The MIME media type for CI/T Trigger Status Resources is application/
cdni.ci.TriggerStatus+json.
Type Name: application
Subtype name: cdni.ci.TriggerStatus+json
Required parameters: N/A
Optional parameters: N/A
Encoding considerations: binary
Security Considerations: See [RFCthis], Section 8
Interoperability Considerations: Described in [RFCthis]
Published Specification: [RFCthis]
Applications that use this media type: No known applications
currently use this media type.
Additional Information:
Deprecated alias names for this type: N/A
Magic number(s): N/A
File Extensions: N/A
Macintosh file type code(s): TEXT
Person & email address to contact for further information: IESG
<iesg@ietf.org>
Intended Usage: COMMON
Restrictions on usage: None
Author: Rob Murray <rob.murray@alcatel-lucent.com>
Change controller: IESG <iesg@ietf.org>
Note: No "charset" parameter is defined for this registration because
a charset parameter is not defined for application/json [RFC7159].
7.1.3. CI/T Trigger Collection
The MIME media type for CI/T Trigger Collections is application/
cdni.ci.TriggerCollection+json.
Type Name: application
Subtype name: cdni.ci.TriggerCollection+json
Required parameters: N/A
Optional parameters: N/A
Encoding considerations: binary
Security Considerations: See [RFCthis], Section 8
Interoperability Considerations: Described in [RFCthis]
Published Specification: [RFCthis]
Applications that use this media type: No known applications
currently use this media type.
Additional Information:
Deprecated alias names for this type: N/A
Magic number(s): N/A
File Extensions: N/A
Macintosh file type code(s): TEXT
Person & email address to contact for further information: IESG
<iesg@ietf.org>
Intended Usage: COMMON
Restrictions on usage: None The IANA is requested to register the following new Payload Types in
the CDNI Payload Type Parameter registry defined by
[I-D.ietf-cdni-media-type], for use with the 'application/cdni' MIME
media type.
Author: Rob Murray <rob.murray@alcatel-lucent.com> RFC Editor Note: Please replace references to [RFCthis] below with
this document's RFC number before publication.
Change controller: IESG <iesg@ietf.org> +-----------------------+---------------+
Note: No "charset" parameter is defined for this registration because | Payload Type | Specification |
a charset parameter is not defined for application/json [RFC7159]. +-----------------------+---------------+
| ci-trigger-command | [RFCthis] |
| ci-trigger-status | [RFCthis] |
| ci-trigger-collection | [RFCthis] |
+-----------------------+---------------+
8. Security Considerations 8. Security Considerations
The CI/T interface provides a mechanism to allow a uCDN to generate The CI/T interface provides a mechanism to allow a uCDN to generate
requests into the dCDN and to inspect its own CI/T requests and their requests into the dCDN and to inspect its own CI/T requests and their
current state. The CI/T interface does not allow access to or current state. The CI/T interface does not allow access to or
modification of the uCDN or dCDN metadata relating to content modification of the uCDN or dCDN metadata relating to content
delivery, or to the content itself. It can only control the presence delivery, or to the content itself. It can only control the presence
of that metadata in the dCDN, and the processing work and network of that metadata in the dCDN, and the processing work and network
utilisation involved in ensuring that presence. utilisation involved in ensuring that presence.
skipping to change at page 42, line 43 skipping to change at page 40, line 13
unnecessary acquisition or re-acquisition load. unnecessary acquisition or re-acquisition load.
8.1. Authentication, Authorization, Confidentiality, Integrity 8.1. Authentication, Authorization, Confidentiality, Integrity
Protection Protection
A CI/T implementation MUST support TLS transport for HTTP (https) as A CI/T implementation MUST support TLS transport for HTTP (https) as
per [RFC2818] and [RFC7230]. per [RFC2818] and [RFC7230].
The use of TLS for transport of the CI/T interface allows: The use of TLS for transport of the CI/T interface allows:
o The dCDN and the uCDN to authenticate each other and, once they o The dCDN and the uCDN to authenticate each other.
have mutually authenticated each other, it allows:
And, once they have mutually authenticated each other, it allows:
o The dCDN and the uCDN to authorize each other (to ensure they are o The dCDN and the uCDN to authorize each other (to ensure they are
receiving CI/T Commands from, or reporting status to, an receiving CI/T Commands from, or reporting status to, an
authorized CDN). authorized CDN).
o CDNI commands and responses to be transmitted with o CDNI commands and responses to be transmitted with
confidentiality. confidentiality.
o Protection of the integrity of CDNI commands and responses. o Protection of the integrity of CDNI commands and responses.
skipping to change at page 44, line 19 skipping to change at page 41, line 39
9. Acknowledgements 9. Acknowledgements
The authors thank Kevin Ma for his input, and Carsten Bormann for his The authors thank Kevin Ma for his input, and Carsten Bormann for his
review and formalization of the JSON data. review and formalization of the JSON data.
10. References 10. References
10.1. Normative References 10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC7159] Bray, T., "The JavaScript Object Notation (JSON) Data [RFC7159] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data
Interchange Format", RFC 7159, March 2014. Interchange Format", RFC 7159, DOI 10.17487/RFC7159, March
2014, <http://www.rfc-editor.org/info/rfc7159>.
[RFC7230] Fielding, R. and J. Reschke, "Hypertext Transfer Protocol [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
(HTTP/1.1): Message Syntax and Routing", RFC 7230, June Protocol (HTTP/1.1): Message Syntax and Routing", RFC
2014. 7230, DOI 10.17487/RFC7230, June 2014,
<http://www.rfc-editor.org/info/rfc7230>.
[RFC7231] Fielding, R. and J. Reschke, "Hypertext Transfer Protocol [RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
(HTTP/1.1): Semantics and Content", RFC 7231, June 2014. Protocol (HTTP/1.1): Semantics and Content", RFC 7231, DOI
10.17487/RFC7231, June 2014,
<http://www.rfc-editor.org/info/rfc7231>.
[RFC7232] Fielding, R. and J. Reschke, "Hypertext Transfer Protocol [RFC7232] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
(HTTP/1.1): Conditional Requests", RFC 7232, June 2014. Protocol (HTTP/1.1): Conditional Requests", RFC 7232, DOI
10.17487/RFC7232, June 2014,
<http://www.rfc-editor.org/info/rfc7232>.
[RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre,
"Recommendations for Secure Use of Transport Layer "Recommendations for Secure Use of Transport Layer
Security (TLS) and Datagram Transport Layer Security Security (TLS) and Datagram Transport Layer Security
(DTLS)", BCP 195, RFC 7525, May 2015. (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May
2015, <http://www.rfc-editor.org/info/rfc7525>.
10.2. Informative References 10.2. Informative References
[I-D.greevenbosch-appsawg-cbor-cddl] [I-D.greevenbosch-appsawg-cbor-cddl]
Vigano, C., Birkholz, H., and R. Sun, "CBOR data Vigano, C. and H. Birkholz, "CBOR data definition
definition language: a notational convention to express language: a notational convention to express CBOR data
CBOR data structures.", draft-greevenbosch-appsawg-cbor- structures.", draft-greevenbosch-appsawg-cbor-cddl-06
cddl-05 (work in progress), March 2015. (work in progress), July 2015.
[I-D.ietf-cdni-media-type]
Ma, K., "CDNI Media Type Registration", draft-ietf-cdni-
media-type-06 (work in progress), October 2015.
[I-D.ietf-cdni-metadata] [I-D.ietf-cdni-metadata]
Niven-Jenkins, B., Murray, R., Caulfield, M., and K. Ma, Niven-Jenkins, B., Murray, R., Caulfield, M., and K. Ma,
"CDN Interconnection Metadata", draft-ietf-cdni- "CDN Interconnection Metadata", draft-ietf-cdni-
metadata-09 (work in progress), March 2015. metadata-11 (work in progress), July 2015.
[I-D.ietf-cdni-redirection] [I-D.ietf-cdni-redirection]
Niven-Jenkins, B. and R. Brandenburg, "Request Routing Niven-Jenkins, B. and R. Brandenburg, "Request Routing
Redirection Interface for CDN Interconnection", draft- Redirection Interface for CDN Interconnection", draft-
ietf-cdni-redirection-09 (work in progress), April 2015. ietf-cdni-redirection-13 (work in progress), October 2015.
[RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, DOI 10.17487/
RFC2818, May 2000,
<http://www.rfc-editor.org/info/rfc2818>.
[RFC6707] Niven-Jenkins, B., Le Faucheur, F., and N. Bitar, "Content [RFC6707] Niven-Jenkins, B., Le Faucheur, F., and N. Bitar, "Content
Distribution Network Interconnection (CDNI) Problem Distribution Network Interconnection (CDNI) Problem
Statement", RFC 6707, September 2012. Statement", RFC 6707, DOI 10.17487/RFC6707, September
2012, <http://www.rfc-editor.org/info/rfc6707>.
[RFC7336] Peterson, L., Davie, B., and R. van Brandenburg, [RFC7336] Peterson, L., Davie, B., and R. van Brandenburg, Ed.,
"Framework for Content Distribution Network "Framework for Content Distribution Network
Interconnection (CDNI)", RFC 7336, August 2014. Interconnection (CDNI)", RFC 7336, DOI 10.17487/RFC7336,
August 2014, <http://www.rfc-editor.org/info/rfc7336>.
[RFC7337] Leung, K. and Y. Lee, "Content Distribution Network [RFC7337] Leung, K., Ed. and Y. Lee, Ed., "Content Distribution
Interconnection (CDNI) Requirements", RFC 7337, August Network Interconnection (CDNI) Requirements", RFC 7337,
2014. DOI 10.17487/RFC7337, August 2014,
<http://www.rfc-editor.org/info/rfc7337>.
Authors' Addresses Authors' Addresses
Rob Murray Rob Murray
Velocix (Alcatel-Lucent) Velocix (Alcatel-Lucent)
3 Ely Road 3 Ely Road
Milton, Cambridge CB24 6DD Milton, Cambridge CB24 6DD
UK UK
Email: rob.murray@alcatel-lucent.com Email: rob.murray@alcatel-lucent.com
 End of changes. 58 change blocks. 
227 lines changed or deleted 116 lines changed or added

This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/