draft-ietf-cdni-control-triggers-05.txt   draft-ietf-cdni-control-triggers-06.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: July 2, 2015 December 29, 2014 Expires: August 27, 2015 February 23, 2015
CDNI Control Interface / Triggers CDNI Control Interface / Triggers
draft-ietf-cdni-control-triggers-05 draft-ietf-cdni-control-triggers-06
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 July 2, 2015. This Internet-Draft will expire on August 27, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2014 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 2, line 41 skipping to change at page 2, line 41
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 . . . . . . . . . . . . . 15
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 . . . . . . . . . . . . . . . 18 5.2. Properties of CI/T Objects . . . . . . . . . . . . . . . 18
5.2.1. Trigger Specification . . . . . . . . . . . . . . . . 18 5.2.1. Trigger Specification . . . . . . . . . . . . . . . . 19
5.2.2. Trigger Type . . . . . . . . . . . . . . . . . . . . 20 5.2.2. Trigger Type . . . . . . . . . . . . . . . . . . . . 20
5.2.3. Trigger Status . . . . . . . . . . . . . . . . . . . 20 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
6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.1. Creating Triggers . . . . . . . . . . . . . . . . . . . . 24 6.1. Creating Triggers . . . . . . . . . . . . . . . . . . . . 24
6.1.1. Preposition . . . . . . . . . . . . . . . . . . . . . 24 6.1.1. Preposition . . . . . . . . . . . . . . . . . . . . . 24
6.1.2. Invalidate . . . . . . . . . . . . . . . . . . . . . 25 6.1.2. Invalidate . . . . . . . . . . . . . . . . . . . . . 25
6.2. Examining Trigger Status . . . . . . . . . . . . . . . . 26 6.2. Examining Trigger Status . . . . . . . . . . . . . . . . 27
6.2.1. Collection of All Triggers . . . . . . . . . . . . . 26 6.2.1. Collection of All Triggers . . . . . . . . . . . . . 27
6.2.2. Filtered Collections of Trigger Status Resources . . 27 6.2.2. Filtered Collections of Trigger Status Resources . . 28
6.2.3. Individual Trigger Status Resources . . . . . . . . . 29 6.2.3. Individual Trigger Status Resources . . . . . . . . . 29
6.2.4. Polling for Change . . . . . . . . . . . . . . . . . 31 6.2.4. Polling for Change . . . . . . . . . . . . . . . . . 31
6.2.5. Deleting Trigger Status Resources . . . . . . . . . . 34 6.2.5. Deleting Trigger Status Resources . . . . . . . . . . 34
6.2.6. Error Reporting . . . . . . . . . . . . . . . . . . . 35 6.2.6. Error Reporting . . . . . . . . . . . . . . . . . . . 35
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36
7.1. Media type registrations . . . . . . . . . . . . . . . . 37 7.1. Media type registrations . . . . . . . . . . . . . . . . 37
7.1.1. CI/T Commands . . . . . . . . . . . . . . . . . . . . 37 7.1.1. CI/T Commands . . . . . . . . . . . . . . . . . . . . 37
7.1.2. CI/T Trigger Status Resource . . . . . . . . . . . . 38 7.1.2. CI/T Trigger Status Resource . . . . . . . . . . . . 38
7.1.3. CI/T Trigger Collection . . . . . . . . . . . . . . . 39 7.1.3. CI/T Trigger Collection . . . . . . . . . . . . . . . 39
8. Security Considerations . . . . . . . . . . . . . . . . . . . 40 8. Security Considerations . . . . . . . . . . . . . . . . . . . 40
8.1. Authentication, Confidentiality, Integrity Protection . . 40 8.1. Authentication, Confidentiality, Integrity Protection . . 40
8.2. Denial of Service . . . . . . . . . . . . . . . . . . . . 40 8.2. Denial of Service . . . . . . . . . . . . . . . . . . . . 41
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 41 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 41
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 41 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 41
10.1. Normative References . . . . . . . . . . . . . . . . . . 41 10.1. Normative References . . . . . . . . . . . . . . . . . . 41
10.2. Informative References . . . . . . . . . . . . . . . . . 41 10.2. Informative References . . . . . . . . . . . . . . . . . 42
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 42 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 42
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
skipping to change at page 15, line 14 skipping to change at page 15, line 14
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.
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
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. Each has an associated MIME Media Type. The encoding
of values used by these objects is described in Section 5.2. of values used by these objects is described in Section 5.2.
skipping to change at page 40, line 9 skipping to change at page 40, line 9
Restrictions on usage: None Restrictions on usage: None
Author: Rob Murray <rob.murray@alcatel-lucent.com> Author: Rob Murray <rob.murray@alcatel-lucent.com>
Change controller: IESG <iesg@ietf.org> Change controller: IESG <iesg@ietf.org>
Note: No "charset" parameter is defined for this registration because Note: No "charset" parameter is defined for this registration because
a charset parameter is not defined for application/json [RFC7159]. a charset parameter is not defined for application/json [RFC7159].
8. Security Considerations 8. Security Considerations
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
current state. The CI/T interface does not allow access to or
modification of the uCDN or dCDN metadata relating to content
delivery, or to the content itself. It can only control the presence
of that metadata in the dCDN, and the processing work and network
utilisation involved in ensuring that presence.
By examining pre-positioning requests to a dCDN, and correctly
interpreting content and metadata URLs, an attacker could learn the
uCDN or content owner's predictions for future content popularity.
By examining invalidate or purge requests, an attacker could learn
about changes in the content owner's catalogue.
By injecting CI/T commands an attacker, or a misbehaving uCDN, would
generate work in the dCDN and uCDN as they process those requests.
And so would a man in the middle attacker modifying valid CI/T
commands generated by the uCDN. In both cases, that would decrease
the dCDN caching efficiency by causing it to unnecessarily acquire or
re-acquire content metadata and/or content.
A dCDN implementation of CI/T MUST restrict the actions of a uCDN to
the data corresponding to that uCDN. Failure to do so would allow
uCDNs to detrimentally affect each other's efficiency by generating
unnecessary acquisition or re-acquisition load.
8.1. Authentication, Confidentiality, Integrity Protection 8.1. Authentication, Confidentiality, Integrity 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]. The use of TLS for transport of the CI/T interface per [RFC2818]. The use of TLS for transport of the CI/T interface
allows the dCDN and the uCDN to authenticate each other (to ensure allows the dCDN and the uCDN to authenticate each other (to ensure
they are receiving CI/T Commands from, or reporting status to, an they are receiving CI/T Commands from, or reporting status to, an
authenticated CDN). authenticated CDN).
In an environment where any such protection is required, TLS SHOULD In an environment where any such protection is required, TLS SHOULD
be used for transport of the CI/T requests and responses, unless be used for transport of the CI/T requests and responses, unless
skipping to change at page 41, line 23 skipping to change at page 41, line 49
The authors thank Kevin Ma for his input. The authors thank Kevin Ma for his input.
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, March 1997.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66, RFC
3986, January 2005.
[RFC7159] Bray, T., "The JavaScript Object Notation (JSON) Data [RFC7159] Bray, T., "The JavaScript Object Notation (JSON) Data
Interchange Format", RFC 7159, March 2014. Interchange Format", RFC 7159, March 2014.
[RFC7231] Fielding, R. and J. Reschke, "Hypertext Transfer Protocol [RFC7231] Fielding, R. and J. Reschke, "Hypertext Transfer Protocol
(HTTP/1.1): Semantics and Content", RFC 7231, June 2014. (HTTP/1.1): Semantics and Content", RFC 7231, June 2014.
[RFC7232] Fielding, R. and J. Reschke, "Hypertext Transfer Protocol [RFC7232] Fielding, R. and J. Reschke, "Hypertext Transfer Protocol
(HTTP/1.1): Conditional Requests", RFC 7232, June 2014. (HTTP/1.1): Conditional Requests", RFC 7232, June 2014.
10.2. Informative References 10.2. Informative References
[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-08 (work in progress), October 2014. metadata-08 (work in progress), October 2014.
[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-06 (work in progress), December ietf-cdni-redirection-08 (work in progress), February
2014. 2015.
[RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.
[RFC5288] Salowey, J., Choudhury, A., and D. McGrew, "AES Galois [RFC5288] Salowey, J., Choudhury, A., and D. McGrew, "AES Galois
Counter Mode (GCM) Cipher Suites for TLS", RFC 5288, Counter Mode (GCM) Cipher Suites for TLS", RFC 5288,
August 2008. August 2008.
[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, September 2012.
 End of changes. 13 change blocks. 
17 lines changed or deleted 42 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/