Skip to main content

CDNi Control - Initialization and Bootstrapping
draft-choi-cdni-control-init-bootstrapping-00

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Expired".
Authors Taesang Choi , Yeong-il Seo , Jongmin Lee , Ja-Ryeong Koo , John Dongho Shinn , Yong Hwan Bang
Last updated 2013-03-11
RFC stream (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-choi-cdni-control-init-bootstrapping-00
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]