INTERNET-DRAFT TS. Choi Intended Status: Standard Track ETRI Expires: August 23, 2013 YI Seo KT JM Lee SKT JR Koo LGU+ JDH Shinn Solbox Inc. YH Bang KAIST February 19, 2013 CDNi Control - Initialization and Bootstrapping draft-choi-cdni-control-init-bootstrapping-00 Abstract This document proposes a mechanism for a CDN to initiate the interconnection across CDNs and bootstrap the other CDNi interfaces. Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/1id-abstracts.html The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html Copyright and License Notice TS. Choi Expires August 23, 2013 [Page 1] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 Copyright (c) 2013 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 (http://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 . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Model for CDNI Triggers . . . . . . . . . . . . . . . . . . . 6 2.1. Timing of Triggered Activity . . . . . . . . . . . . . . . 8 2.2. Trigger Results . . . . . . . . . . . . . . . . . . . . . 8 3. Collections of Trigger Status Resources . . . . . . . . . . . 10 4. CDNI Trigger interface . . . . . . . . . . . . . . . . . . . . 10 5. Properties of Triggers . . . . . . . . . . . . . . . . . . . . 10 5.1. Properties of Trigger Requests . . . . . . . . . . . . . . 10 5.2. Properties of Trigger Status Resources . . . . . . . . . . 10 5.3. Properties of Trigger Collections . . . . . . . . . . . . 12 5.4. Trigger Resource Simple Data Type Descriptions . . . . . . 13 5.4.1. TriggerType . . . . . . . . . . . . . . . . . . . . . 13 5.4.2. TriggerStatus . . . . . . . . . . . . . . . . . . . . 13 5.4.3. General . . . . . . . . . . . . . . . . . . . . . . . 13 5.4.4. Contract . . . . . . . . . . . . . . . . . . . . . . . 13 5.4.5. Fp_cap . . . . . . . . . . . . . . . . . . . . . . . . 13 5.4.6. Cdmd . . . . . . . . . . . . . . . . . . . . . . . . . 14 5.4.7. AbsoluteTime . . . . . . . . . . . . . . . . . . . . . 14 6. JSON Encoding of Objects . . . . . . . . . . . . . . . . . . . 14 6.1. JSON Encoding of Embedded Types . . . . . . . . . . . . . 14 6.1.1. TriggerType . . . . . . . . . . . . . . . . . . . . . 14 6.1.2. TriggerStatus . . . . . . . . . . . . . . . . . . . . 14 6.1.3. General . . . . . . . . . . . . . . . . . . . . . . . 14 6.1.4. Fp_cap . . . . . . . . . . . . . . . . . . . . . . . . 14 6.1.5. Cdmd . . . . . . . . . . . . . . . . . . . . . . . . . 14 7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 7.1. Initialize . . . . . . . . . . . . . . . . . . . . . . . . 15 7.2. Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 7.3. Update . . . . . . . . . . . . . . . . . . . . . . . . . . 18 7.4. Remove . . . . . . . . . . . . . . . . . . . . . . . . . . 19 TS. Choi Expires August 23, 2013 [Page 2] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 7.5. Add Log . . . . . . . . . . . . . . . . . . . . . . . . . . 21 8 Security Considerations . . . . . . . . . . . . . . . . . . . . 23 9 IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 23 10 References . . . . . . . . . . . . . . . . . . . . . . . . . . 23 10.1 Normative References . . . . . . . . . . . . . . . . . . . 23 10.2 Informative References . . . . . . . . . . . . . . . . . . 23 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 24 TS. Choi Expires August 23, 2013 [Page 3] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 1 Introduction [I-D.ietf-murray-triggers-01] specifies mechanisms for CDN interconnction control for the "High" and "Medium" priority requirements for the CDNI Control Interface identified in section 4 of [I-D.ietf-cdni-requirements]. This draft concentrates on the remaining "Low" priority requirements for the CDNI Control Interface, reproduced here for convenience: CNTL-5 [LOW] The CDNI Control interface may allow a CDN to establish, update and terminate a CDN interconnection with another CDN whereby one CDN can act as a Downstream CDN for the other CDN (that acts as an Upstream CDN). CNTL-6 [LOW] The CDNI Control interface may allow control of the CDNI interconnection between any two CDNs independently for each direction (i.e. For the direction where CDN1 is the Upstream CDN and CDN2 is the Downstream CDN, and for the direction where CDN2 is the Upstream CDN and CDN1 is the Downstream CDN). CNTL-7 [LOW] The CDNI Control interface may allow bootstrapping of the Request-Routing interface. For example, this can potentially include: * negotiation of the Request-Routing method (e.g. DNS vs HTTP, if more than one method is specified) * discovery of the Request-Routing protocol endpoints * information necessary to establish secure communication between the Request-Routing protocol endpoints. CNTL-8 [LOW] The CDNI Control interface may allow bootstrapping of the CDNI Metadata interface. This information could, for example, include: * discovery of the CDNI Metadata signaling protocol endpoints * information necessary to establish secure communication between the CDNI Metadata signaling protocol endpoints. CNTL-9 [LOW] The CDNI Control interface may allow bootstrapping of the Content Acquisition interface. This could, for example, include exchange and negotiation of the Content Acquisition protocols to be used across the CDNs (e.g. HTTP, HTTPS, FTP, ATIS C2). TS. Choi Expires August 23, 2013 [Page 4] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 CNTL-10 [LOW] The CDNI Control interface may allow exchange and negotiation of delivery authorization mechanisms to be supported across the CDNs (e.g. URI signature based validation). CNTL-11 [LOW] The CDNI Control interface may allow bootstrapping of the CDNI Logging interface. This information could, for example, include: * discovery of the Logging protocol endpoints * information necessary to establish secure communication between the Logging protocol endpoints * negotiation/definition of the log file format and set of fields to be exported through the Logging protocol, with some granularity (e.g. On a per content type basis). * negotiation/definition of parameters related to transaction Logs export (e.g., export protocol, file compression, export frequency, directory). TS. Choi Expires August 23, 2013 [Page 5] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 This document does not consider those parts of the control interface that relate to configuration, bootstrapping or authentication of CDN Interconnect interfaces. o Section 2 outlines the model for the Trigger Interface at a high level. o Section 3 describes collections of Trigger Resources. o Section 4 defines the RESTful web service provided by dCDN. o Section 5 lists properties of Trigger Requests and Status Resources. o Section 6 defines a JSON encoding for Trigger Requests and Status Resources. o Section 7 contains example messages. 1.1 Terminology 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]. 2. Model for CDNI Triggers We follow the same model of CDNI triggers defined in section 2 of [I- D.ietf-murray-triggers-01] except that we define additional actions for CDNI control initiation and bootstrapping to meet the requirements described in section 1. A trigger, sent between CDNs, is a request for the recipient CDN to do some work relating to data from originating CDN. The trigger may request actions related with initiation and bootstrapping, the following actions can be requested: o initialize - used to instruct a CDN to initialize a CDN interconnection with another CDN at boot time. o add - used to instruct a CDN to add newly created footprint & capabilities(fp_cap) or content and metadata(cdmd). o update - used to instruct a CDN to update the existing fp_cap or cdmd when there are changes. o remove - used to instruct a CDN to remove the existing fp_cap or cdmd. o negotiate auth - used to instruct a CDN to negotiate delivery authorization mechanism. The CDNI trigger interface is a RESTful web service offered between CDNs. It allows creation and deletion of triggers, and tracking of the triggered activity. When recipient CDN accepts a trigger it TS. Choi Expires August 23, 2013 [Page 6] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 creates a resource describing status of the triggered activity, a Trigger Status Resource. The originating CDN may poll Trigger Status Resources to monitor progress. The recipient CDN maintains a collection of Trigger Status Resources for each originating CDN, each originating CDN only has access to its own collection and the location of that collection is shared when CDN interconnection is established. To trigger activity in recipient CDN, originating CDN will POST to the collection of Trigger Status Resources. If recipient CDN accepts the trigger, it creates a new Trigger Status Resource and returns its location to originating CDN. To monitor progress, originating CDN may GET the Trigger Status Resource. To cancel a trigger, or remove a trigger from the collection once its activity has been completed, originating CDN may DELETE the Trigger Status Resource. In addition to the collection of all Trigger Status Resources for originating CDN, it shall have access to filtered views of that collection. These filtered views are defined in Section 3 and include collections of active and completed triggers. These collections provide a mechanism for polling the status of multiple jobs. Figure 1 is an example showing the basic message flow used by the originating CDN to trigger activity in recipient CDN, and for originating CDN to discover the status of that activity. Only successful triggering is shown. Examples of the messages are given in Section 7. originating CDN (oCDN) recipient CDN (rCDN) | (1) POST http://rcdn.example.com/triggers/oCDN | [ ] --------------------------------------------------> [ ]--+ | [ ] | (2) | (3) HTTP 201 Response [ ]<-+ [ ] <-------------------------------------------------- [ ] | Loc: http://rcdn.example.com/triggers/oCDN/123 | | | . . . . . . . . . | | | (4) GET http://rcdn.example.com/triggers/oCDN/123 | [ ] --------------------------------------------------> [ ] | [ ] | (5) HTTP 200 Trigger Status Resource [ ] [ ] <-------------------------------------------------- [ ] | | | | TS. Choi Expires August 23, 2013 [Page 7] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 Figure 1: Basic CDNI Message Flow for Triggers The steps in Figure 1 are: 1. originating CDN triggers action in recipient CDN by posting to a collection of Trigger Status Resources, "http://dcdn.example.com/triggers/originating CDN". The URL of this was given to originating CDN when the trigger interface was established. 2. recipient CDN authenticates the request, validates the trigger and if it accepts the request, creates a new Trigger Status Resource. 3. recipient CDN responds to originating CDN with an HTTP 201 response status, and the location of the Trigger Status Resource. 4. originating CDN may repeatedly poll the Trigger Status Resource in recipient CDN. 5. recipient CDN responds with the Trigger Status Resource, describing progress or results of the triggered activity. The remainder of this document describes the messages, Trigger Status Resources, and collections of Trigger Status Resources in more detail. 2.1. Timing of Triggered Activity Timing of triggered activity is under recipient CDN control, including its start-time and pacing of the activity in the network. Establish, update and terminate triggers MUST be applied upon the trigger was created in recipient CDN. For other action triggers, recipient CDN MAY apply the triggers upon trigger creation. 2.2. Trigger Results Each Trigger Request may operate on multiple data items, and may request different actions. The trigger shall be reported as successful only if all actions can be completed successfully. If any part of the trigger request fails, the trigger shall be reported as failed, and the error property in the Trigger Status Resource will be used to enumerate which actions failed and the reasons for failure. If a recipient CDN is also acting as uCDN in a cascade environment, it MUST forward triggers to any downstream CDNs that may have data affected by the trigger. The trigger MUST NOT be reported as complete in a CDN until it is complete in all of its downstream CDNs. A trigger MAY be reported as failed as soon as it fails in a CDN or TS. Choi Expires August 23, 2013 [Page 8] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 in any of its downstream CDNs. TS. Choi Expires August 23, 2013 [Page 9] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 3. Collections of Trigger Status Resources It follows the same mechanism defined in section 3 of [I-D.ietf- murray-triggers-01]. 4. CDNI Trigger interface An interface to enable an origniating CDN to trigger defined activities in a recipient CDN is the same as defined in section 4 of [I-D.ietf-murray-triggers-01]. 5. Properties of Triggers 5.1. Properties of Trigger Requests Properties of Trigger Requests for initialization and bootstrapping are defined in the following subsections. Property: type Description: This property defines the type of the trigger: Type: TriggerType Mandatory: Yes Property: cdni.general Description: The general information used to initialize CDN interconnection at boot time. Type: General Mandatory: Yes Property: cdni.contracts Description: The contract information used to initialize CDN interconnection at boot time. Type: Contract Mandatory: Yes Property: cdni.fp_caps Description: Footprint and capabilities that need to be added, updated, or removed. Type: Fp_cap Mandatory: Yes Property: cdni.cdmds Description: Contents and metadata that need to be added, updated, or removed. Type: Cdmd Mandatory: Yes 5.2. Properties of Trigger Status Resources Property: trigger TS. Choi Expires August 23, 2013 [Page 10] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 Description: The properties of trigger request that created this record. TS. Choi Expires August 23, 2013 [Page 11] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 Type: TriggerRequest Mandatory: Yes Property: ctime Description: Time at which the request was received by recipient CDN. Time is local to recipient CDN, there is no requirement to synchronize clocks between interconnected CDNs. Type: AbsoluteTime Mandatory: Yes Property: mtime Description: Time at which the resource was last modified. Time is local to recipient CDN, there is no requirement to synchronize clocks between interconnected CDNs. Type: AbsoluteTime Mandatory: Yes Property: etime Description: Estimate of the time at which recipient CDN expects to complete the activity. Time is local to recipient CDN, there is no requirement to synchronize clocks between interconnected CDNs. Type: AbsoluteTime Mandatory: No Property: status Description: Current status of the triggered activity. Type: TriggerStatus Mandatory: Yes Property: error Description: Error indication. Type: (To be decided - a set of standard error conditions needs to be defined. The namespace for these errors codes should allow vendor-defined error codes for extension of the protocol. This may allow, for example, for the definition of more specific error codes when two CDNs supplied by the same vendor are interconnected.) Mandatory: No, and only allowed when "status" is "Failed". 5.3. Properties of Trigger Collections Property: links Description: References to Trigger Status Resources in the collection. Type: List of Relationships. Mandatory: Yes TS. Choi Expires August 23, 2013 [Page 12] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 Property: staleresourcetime Description: The length of time for which recipient CDN guarantees to keep a completed Trigger Status Resource. After this time, recipient CDN MAY delete the resource and all references to it from collections. Type: Integer, time in seconds. Mandatory: Yes, in the collection of all Trigger Status Resources if recipient CDN deletes stale entries. If the property is present in the filtered collections, it MUST have the same value as in the collection of all Trigger Status Resources. 5.4. Trigger Resource Simple Data Type Descriptions This section describes the simpler data types that are used for properties of Trigger Status resources. 5.4.1. TriggerType This type defines the type of action being triggered, permitted actions are initialize, add, update, and negotiate 5.4.2. TriggerStatus This type describes the current status of a Trigger, possible values are: o Pending - the trigger has not yet been acted upon. o Active - the trigger is currently being acted upon. o Complete - the triggered activity completed successfully. o Failed - the triggered activity could not be completed. 5.4.3. General This type describes a set of general information of a CDN, possible values are cdnname, cdnid, and cdnhostname. 5.4.4. Contract This type describes a set of CDN information where interconnection contract is established. It consists of cdnname, cdnid, cdnhostname, ucdnflag, and dcdnflag. xcdnflag indicates whether it is capable of either uCDN or dCDN. 5.4.5. Fp_cap This type describes a set of footprint and capabilities information TS. Choi Expires August 23, 2013 [Page 13] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 needed for bootstrapping. It consists of cdnname, iprange, delay, load, and bandwidth. Note that some attributes of this type need to be aligned with ones defined in the "draft-spp-cdni-rr-foot-cap-semantics" draft. 5.4.6. Cdmd This type describes a set of contents and metadata information needed for bootstrapping. It consists of hostindex, hostmetadatas, pathmetadatas. Note that attributes of this type is aligned with ones defined in "draft-ietf-cdni-metadata" draft. 5.4.7. AbsoluteTime Times are expressed in seconds since the UNIX epoch. 6. JSON Encoding of Objects This encoding is based on that described in [I-D.ietf-murray- triggers-01] and only new types specific to this draft are added. 6.1. JSON Encoding of Embedded Types 6.1.1. TriggerType Description: One of "initialize", "add", "update", "remove" or "negotiate". Type: string Mandatory: Yes 6.1.2. TriggerStatus Key: status Description: One of "pending", "active", "failed", "complete" Type: string Mandatory: Yes 6.1.3. General Keys: general Description: A set of general information of a CDN. Type: General Mandatory: Yes 6.1.4. Fp_cap Keys: fp_cap Description: A set of footprint and capability information needed for bootstrapping. Type: fp_cap Mandatory: Yes 6.1.5. Cdmd Keys: cdmd Description: A set of content and metadata information TS. Choi Expires August 23, 2013 [Page 14] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 needed for bootstrapping. Type: cdmd Mandatory: Yes 7. Examples The following sections provide examples of different CDNI Trigger objects encoded as JSON. 7.1. Initialize REQUEST - init POST /triggers HTTP/1.1 User-Agent: example-user-agent/0.1 Host: dcdn.example.com Accept: */* Content-Type: application/vnd.cdni.control.trigger.request+json Content-Length: xx { "trigger" : { "type": "initialize", "cdni.general" : [ { "cdnname": "UCDN1", "cdnid":100000, "cdnhostname": "ucdn.example.com" } ], "cdni.contract" : [ { "cdnname": "DCDN1", "cdnid":200000, "cdnhostname": "dcdn.example.com" "dcdnflag": 1 "ucdnflag": 0 } ], "cdni.fp_cap" : [ { "cdnname": "UCDN1", "iprange": 0.0.0.0/32, "delay": 10, "load": 30, "bandwidth: 20 }, { "cdnname": "UCDN1", "iprange": 211.224.204.0/24, "delay": 10, "load": 30, "bandwidth: 20 TS. Choi Expires August 23, 2013 [Page 15] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 } ], "cdni.cdmd" : [ { "HostIndex": [ { "hosts": [ { "host": "video.example.com", "links": [ { "rel": "host-metadata", "type": "application/cdni.HostMetadata", "href": "http://metadata.example.ucdn.com/video" } ] }, { "host": "images.example.com", "links": [ { "rel": "host-metadata", "type": "application/cdni.HostMetadata", "href": "http://metadata.ucdn.example.com/images" } ] } ] } ] } ] } } RESPONSE: HTTP/1.1 201 Created Date: Sat, 23 Feb 2013 14:20:08 GMT Content-Type: application/vnd.cdni.control.trigger.status+json Location: http://dcdn.example.com/triggers/1 Server: example-server/0.1 Content-Length: xx { "ctime": 1361629208, "etime": 1361629216, "mtime": 1361629208, "status": "pending", TS. Choi Expires August 23, 2013 [Page 16] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 "trigger": { "cdni.general" [ .. ], "cdni.contract" [ .. ], "cdni.fp_cap" [ .. ], "cdni.cdmd" [ .. ], "type": "initialize" } } 7.2. Add REQUEST - add POST /triggers HTTP/1.1 User-Agent: example-user-agent/0.1 Host: dcdn.example.com Accept: */* Content-Type: application/vnd.cdni.control.trigger.request+json Content-Length: xx { "trigger" : { "type": "add", "cdni.fp_cap" : [ { "cdnname": "UCDN1", "iprange": 211.224.205.0/24, "delay": 30, "load": 10, "bandwidth: 70 } ], "cdni.cdmd" : [ { "HostIndex": [ { "hosts": [ { "host": "streaming.example.com", "links": [ { "rel": "host-metadata", "type": "application/cdni.HostMetadata", "href": "http://metadata.ucdn.example.com/streaming" } ] } ] } ] } TS. Choi Expires August 23, 2013 [Page 17] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 ] } } RESPONSE: HTTP/1.1 201 Created Date: Sat, 23 Feb 2013 14:20:08 GMT Content-Type: application/vnd.cdni.control.trigger.status+json Location: http://dcdn.example.com/triggers/2 Server: example-server/0.1 Content-Length: xx { "ctime": 1361629208, "etime": 1361629216, "mtime": 1361629208, "status": "pending", "trigger": { "cdni.fp_cap" [ .. ], "cdni.cdmd" [ .. ], "type": "add" } } 7.3. Update REQUEST - update POST /triggers HTTP/1.1 User-Agent: example-user-agent/0.1 Host: dcdn.example.com Accept: */* Content-Type: application/vnd.cdni.control.trigger.request+json Content-Length: xx { "trigger" : { "type": "update", "cdni.fp_cap" : [ { "cdnname": "UCDN1", "iprange": 211.224.205.0/24, "delay": 5, "load": 10, "bandwidth: 60 } ], "cdni.cdmd" : [ { "HostIndex": [ { TS. Choi Expires August 23, 2013 [Page 18] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 "hosts": [ { "host": "streaming.example.com", "links": [ { "rel": "host-metadata", "type": "application/cdni.HostMetadata", "href": "http://metadata.ucdn.example.com/streaming1" } ] } ] } ] } ] } } RESPONSE: HTTP/1.1 201 Created Date: Sat, 23 Feb 2013 14:20:08 GMT Content-Type: application/vnd.cdni.control.trigger.status+json Location: http://dcdn.example.com/triggers/3 Server: example-server/0.1 Content-Length: xx { "ctime": 1361629208, "etime": 1361629216, "mtime": 1361629208, "status": "pending", "trigger": { "cdni.fp_cap" [ .. ], "cdni.cdmd" [ .. ], "type": "update" } } 7.4. Remove REQUEST - remove POST /triggers HTTP/1.1 User-Agent: example-user-agent/0.1 Host: dcdn.example.com Accept: */* Content-Type: application/vnd.cdni.control.trigger.request+json Content-Length: xx { TS. Choi Expires August 23, 2013 [Page 19] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 "trigger" : { "type": "remove", "cdni.fp_cap" : [ { "cdnname": "UCDN1", "iprange": 211.224.205.0/24, "delay": 5, "load": 10, "bandwidth: 60 } ], "cdni.cdmd" : [ { "HostIndex": [ { "hosts": [ { "host": "streaming.example.com", "links": [ { "rel": "host-metadata", "type": "application/cdni.HostMetadata", "href": "http://metadata.ucdn.example.com/streaming1" } ] } ] } ] } ] } } RESPONSE: HTTP/1.1 201 Created Date: Sat, 23 Feb 2013 14:20:08 GMT Content-Type: application/vnd.cdni.control.trigger.status+json Location: http://dcdn.example.com/triggers/4 Server: example-server/0.1 Content-Length: xx { "ctime": 1361629208, "etime": 1361629216, "mtime": 1361629208, "status": "pending", "trigger": { TS. Choi Expires August 23, 2013 [Page 20] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 "cdni.fp_cap" [ .. ], "cdni.cdmd" [ .. ], "type": "remove" } } 7.5. Add Log REQUEST - add (log) POST /triggers HTTP/1.1 User-Agent: example-user-agent/0.1 Host: dcdn.example.com Accept: */* Content-Type: application/vnd.cdni.control.trigger.request+json Content-Length: xx { "trigger" : { "type": "add", "cdni.loginfo" : [ { "fileformat": "text", "encoding": "UTF-8", "granularity": "content", "protocol": "ftp", "compression": "zip", "loc": "http://ucdn.example.com/triggers/log", "frequency": 60 } ] } } RESPONSE: HTTP/1.1 201 Created Date: Sat, 23 Feb 2013 14:20:08 GMT Content-Type: application/vnd.cdni.control.trigger.status+json Location: http://dcdn.example.com/triggers/5 Server: example-server/0.1 Content-Length: xx { "ctime": 1361629208, "etime": 1361629216, "mtime": 1361629208, "status": "pending", "trigger": { "cdni.loginfo" [ .. ], "type": "add" } TS. Choi Expires August 23, 2013 [Page 21] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 } TS. Choi Expires August 23, 2013 [Page 22] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 8 Security Considerations The recipient CDN must ensure that each originating CDN only has access to its own Trigger Status Resources. It is anticipated that a common authentication mechanism will be used by this and other CDNI Interconnect interfaces, the mechanism must exist but is not identified in this document. The recipient CDN must ensure that activity triggered by originating CDN only affects metadata or content originating from that originating CDN. 9 IANA Considerations TBD. 10 References 10.1 Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005. [I-D.murray-triggers-01] Murray, R., Niven-Jenkins, B, "CDN Interconnect Triggers", draft-murray-cdni-triggers-01 (work in progress), August 30, 2012. 10.2 Informative References [I-D.cjlmw-cdni-metadata] Niven-Jenkins, B., Murray, R., Watson, G., Caulfield, M., and K. Leung, "CDN Interconnect Metadata", draft-cjlmw-cdni-metadata-00 (work in progress), July 2012. [I-D.ietf-cdni-framework] Peterson, L. and B. Davie, "Framework for CDN TS. Choi Expires August 23, 2013 [Page 23] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 Interconnection", draft-ietf-cdni-framework-01 (work in progress), July 2012. [I-D.ietf-cdni-problem-statement] Niven-Jenkins, B., Faucheur, F., and N. Bitar, "Content Distribution Network Interconnection (CDNI) Problem Statement", draft-ietf-cdni-problem-statement-08 (work in progress), June 2012. [I-D.ietf-cdni-requirements] Leung, K. and Y. Lee, "Content Distribution Network Interconnection (CDNI) Requirements", draft-ietf-cdni-requirements-03 (work in progress), June 2012. [RFC4287] Nottingham, M., Ed. and R. Sayre, Ed., "The Atom Syndication Format", RFC 4287, December 2005. [XML-BASE] Marsh, J., Ed. and R. Tobin, Ed., "XML Base (Second Edition) - http://www.w3.org/TR/xmlbase/", January 2009. Authors' Addresses Taesang Choi ETRI 161 Gajong-Dong Yusong-Gu, Daejeon Republic of Korea Phone: +82-42-860-5628 Email: choits@etri.re.kr Young-IL Seo KT Network R&D Laboratory 463-1, Jeonmoin-dong, Yuseong-gu, Daejeon Republic of Korea Phone: 82-10-3235-0135 Email: yohan.seo@kt.com Jongmin Lee SK Telecom 11, Euljiro-2ga Jung-gu, Seoul TS. Choi Expires August 23, 2013 [Page 24] INTERNET DRAFT Control - Init & Bootstrap February 19, 2013 Republic of Korea Phone: 82-10-9429-6260 Email: jminlee@sk.com Ja-Ryeong Koo LG U plus Corporation Namdaemunro 5-ga Jung-gu, Seoul Republic of Korea Phone: 82-10-8080-6115 Email: wjbkoo@lguplus.co.kr John Dongho Shinn Solbox Inc. 7F, Haesung Bldg. 747-2 Yeoksam-Dong Kangnam-Gu, Seoul Republic of Korea Phone: +82-10-3005-4785 Email: eastsky@solbox.com Yong Hwan Bang KAIST 8F, N29 Bldg. 373-1 Gusung-Dong Yousong-Gu, Daejeon Republic of Korea Phone: +82-42-350-7516 Email: yjhvyp@gmail.com TS. Choi Expires August 23, 2013 [Page 25]