Internet DRAFT - draft-liu-cdni-metadata-interface

draft-liu-cdni-metadata-interface




 
 
CDNI Working Group                                         Xiaomei Liu 
Internet Draft                             Lakshminarayanan Gunaseelan 
Intended status: Standards Track                            Xiaoyan He 
Expires: June 2012                                         Jincheng Li 
                                                                Huawei 
                                                     December 20, 2011 
                                   
 
                                    
Content Distribution Network Interconnection (CDNI) Metadata Interface 
                                     
                 draft-liu-cdni-metadata-interface-01.txt 


Status of this Memo 

  This Internet-Draft is submitted in full conformance with the 
  provisions of BCP 78 and BCP 79.  

  Internet-Drafts are working documents of the Internet Engineering 
  Task Force (IETF), 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/ietf/1id-abstracts.txt 

  The list of Internet-Draft Shadow Directories can be accessed at 
  http://www.ietf.org/shadow.html 

  This Internet-Draft will expire on June 20, 2009. 

Copyright Notice 

  Copyright (c) 2011 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 
 
 
 
Liu & Guna              Expires June 12, 2012                 [Page 1] 
 
Internet-Draft         CDNI Metadata Interface           December 2011 
   

  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. 

Abstract 

  The Metadata Interface is one of the core interfaces defined by the 
  IETF Content Distribution Network Interconnection (CDNI) Working 
  Group. The primary function of the CDNI Metadata Interface is to 
  allow interconnected CDNs to communicate metadata in order to ensure 
  content delivery and content acquisition. This document defines the 
  metadata exchange protocol between an upstream CDN and a downstream 
  CDN for the content delivery. It also defines metadata objects 
  especially condition metadata object for CDNI.  

Table of Contents 

   
  1. Introduction ................................................ 3 
     1.1. Terminology ............................................ 3 
  2. CDNI Metadata Data Model .................................... 4 
  3. Metadata Extensibility ...................................... 5 
  4. Metadata Exchange Framework .................................. 5 
     4.1. Pre-positioned CDNI metadata acquisition ................ 5 
     4.2. Metadata delivery mechanism ............................. 6 
     4.3. Metadata encoding ...................................... 7 
  5. Metadata Objects Description ................................. 7 
     5.1. Domain Metadata Group Definition ........................ 7 
        5.1.1. Content origin object .............................. 7 
        5.1.2. Cache miss behavior Object ......................... 8 
        5.1.3. Cache control Object ............................... 9 
        5.1.4. Cache TTL Object ................................... 9 
        5.1.5. Downstream Cache TTL Object ........................ 9 
        5.1.6. Cache key Object .................................. 10 
        5.1.7. Access control Object ............................. 10 
        5.1.8. User authorization Object ......................... 11 
        5.1.9. Asset valid time window Object .................... 11 
        5.1.10. Rate limit Object ................................ 11 
     5.2. Condition Metadata Group Definition .................... 12 
        5.2.1. Condition Object .................................. 12 
        5.2.2. Condition Metadata Object 
                                        ......................... 14 
        5.2.3. Examples ......................................... 14 
     5.3. Error Handling ........................................ 16 
  6. Examples ................................................... 17 
  7. Security Considerations .................................... 20 
  8. IANA Considerations ........................................ 20 
 
 
Liu & Guna              Expires June 12, 2012                 [Page 2] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

  9. References ................................................. 20 
     9.1. Normative References................................... 20 
     9.2. Informative References ................................. 20 
  10. Acknowledgments ........................................... 21 
   
1. Introduction 

  The key functions of the CDNI metadata are for the upstream CDN 
  (uCDN) to control the content distribution of the downstream CDN 
  (dCDN). These functions of the metadata can be further divided into 
  the following areas: 

   O Content origin: it identifies where the content is located for a 
     delivery service. The content origin specification must support 
     multiple content origins for a delivery service with different 
     redundancy schemes. When a content origin requires authentication, 
     the authentication metadata should also be included. 

   O Cache control policy: it controls the caching behavior of a 
     downstream CDN. This includes whether to cache or not cache 
     certain content, cache miss behavior (redirect or proxy through), 
     cache key modification, cache TTL and downstream cache TTL. 

   O Access control: it defines restriction for content delivery. This 
     includes content availability time window, geo-blocking and user 
     authorization. 

   O Delivery policy: it further controls the content delivery such as 
     the rate limit. 

   This document focuses on enabling of the CDNI Metadata interface, 
   which includes definition of the CDNI metadata exchanging protocol, 
   CDNI metadata objects, especially the condition metadata, which 
   provides great flexibility to refine the application scope of a 
   metadata. 

1.1. Terminology  

  This document reuses the terminology defined in [I-D.draft-cdni 
  problem-statement]. 

  This document also uses the following terms: 

  Delivery Domain: In CDN services, each delivery service is uniquely 
  identified by a delivery domain. This is the hostname/CNAME accessed 
  by end users for a delivery of content. This is usually the default 
  metadata application scope for content distribution metadata. 
 
 
Liu & Guna              Expires June 12, 2012                 [Page 3] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

  Domain Metadata: The metadata whose application scope is a delivery 
  domain, there is no any other additional condition to limit when or 
  where to apply this metadata.  

  Condition Metadata: The metadata which will only take effect when 
  certain conditions represented by a list of condition objects are 
  met. This kind of metadata has the precedence over the domain 
  metadata.  

2. CDNI Metadata Data Model 

  The data model proposed in this document for CDNI is shown in the 
  following Figure 1. It includes a top level object Delivery Domain, 
  the metadata describing the Delivery Domain are further grouped into 
  domain metadata group and condition metadata group. 
  +-------------------+        1 
  | Delivery Domain   +-----------------+ 
  +---------+---------+                 | 
            |1                          | 
            |                           |0...* 
            |1                          | 
+-----------+-----------+ +-------------+------------------------------+ 
| +-------------------+ | |+-------------------+ +-------------------+ | 
| |DomainMetadataList | | ||     Conditions    | |ConditionMetadataList|  
| +---------+---------+ | |+---------+---------+ +---------+---------+ | 
|           |1          | |          |1                    |1          | 
|           |           | |          |                     |           | 
|           |1...*      | |          |1...*                |1...*      | 
| +---------+---------+ | |+---------+---------+ +---------+---------+ | 
| |  MetadataObject   | | || ConditionObject   | |  MetadataObject   | | 
| +---------+---------+ | |+---------+---------+ +---------+---------+ | 
|Domain Metadata Group  | |        Condition Metadata Group            | 
+-----------------------+ +--------------------------------------------+ 
                      Figure 1: CDNI Metadata Data Model 
 

  A Domain metadata group is a list of metadata objects with the 
  default metadata scope of a delivery domain. This draft proposes a 
  list of such objects in section 5.1. 

  A condition metadata group includes a list of rule match conditions, 
  and a corresponding list of metadata that takes effect if the 
  conditions are met. This is proposed to supports finer control of 
  the downstream CDN beyond the default metadata scope. 

  When multiple conditions are included in a condition metadata group, 
  these conditions are used in a AND relation. When the same metadata 
  is defined in both the domain metadata group and a condition 
 
 
Liu & Guna              Expires June 12, 2012                 [Page 4] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

  metadata group with matching conditions, the condition metadata 
  takes precedence over the default metadata.   

  In addition, multiple condition metadata groups can be used, in this 
  case all these condition metadata groups are evaluated in the order 
  received. If a metadata is defined in multiple condition metadata 
  groups, and last condition metadata group with matching conditions 
  takes effect.  

  Rule matching operation can be performed on the following 
  information: 

    URI in a content request       

    User agent header in a content request 

    Referrer header in a content request     

    Request arrival time      

    Requesting client's information, e.g. IP address     

3. Metadata Extensibility 

  Metadata extensions to support proprietary data by the CDN providers 
  should be allowed in the CDNI metadata interface. This document 
  proposes that the name of such an extended metadata object should 
  start with "X-". A downstream CDN that does not support the extended 
  metadata should signal the unsupported metadata object in the 
  response as described in section 5.3 error handling of this document. 

4. Metadata Exchange Framework 

4.1. Pre-positioned CDNI metadata acquisition 

  In the CDNI framework, an upstream CDN directly contracts with 
  content providers for the delivery of content. A downstream CDN 
  delivers the content on behalf of the upstream CDN. An upstream CDN 
  may utilize multiple downstream CDNs for the delivery of content. 
  Taken this into account, the metadata for the delivery of a given 
  content can be different for different downstream CDNs. Therefore, 
  it is efficient for the content distribution metadata to be pushed 
  from the uCDN to the dCDN.  

  This document focuses on the pre-positioned CDNI metadata 
  acquisition as defined in requirement draft [5] in this first 
  version, i.e. metadata should be pushed from the upstream CDN to the 
 
 
Liu & Guna              Expires June 12, 2012                 [Page 5] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

  downstream CDN before the start of a delivery service, and will 
  consider the Dynamic CDNI metadata acquisition in a future version.  

4.2. Metadata delivery mechanism 

  The HTTP web service model is used for the metadata exchange through 
  this document. The RESTful design is proposed for the management of 
  metadata service. With a RESTful model, HTTP is used as the 
  underline message transport protocol. Four HTTP methods are used for 
  the metadata exchange: 

    POST metadata creation 

    GET  metadata read 

    PUT  metadata update 

    DELETE  metadata delete 

  In the RESTful design, a resource is identified by a URI. For the 
  CDNI metadata interface, each downstream CDN exposes a metadata 
  interface URL. For example, the metadata interface for the 
  downstream CDN is:  

    http(s)://CDNi.dCDN.com/metadata/resource 

  Each resource created will be identified by a resource identifier. 
  In the metadata interface, the resource identifier is the same as 
  the delivery domain FQDN. For example,  

    http://CDNi.dCDN.com/metadata/www.cp1.com 

  represents the URI that is used to access metadata for the delivery 
  service with a delivery domain name of www.cp1.com 

  To summarize, the metadata interface has the following mappings of 
  the RESTful web service design: 

    Client -- is the upstream CDN 

    Server  -- is the downstream CDN 

    Resource -- delivery domain metadata 

  The downstream CDN provides a service access point to the upstream 
  CDN. The metadata resource is considered to be located at the 

 
 
Liu & Guna              Expires June 12, 2012                 [Page 6] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

  downstream CDN. The upstream CDN uses the metadata interface to 
  create/read/update/delete metadata resources identified by the URI. 

4.3. Metadata encoding 

  Metadata encoding must support parameter value pair, listed values 
  as well as structure and hierarchical data types. JSON is proposed 
  for the metadata encoding for its flexibility in supporting the 
  above requirements.  

  In the JSON encoded message body, the domain metadata group is 
  encoded first and then the condition metadata group is encoded.  

5. Metadata Objects Description 

5.1. Domain Metadata Group Definition 

  The definition of the domain metadata group is as follows: 

  { 
  "domainMetaDataList": [  
               metadataObject1, 
                metadataObject2,  
                ... 
                metadataObjectn] 
  } 
   
  where the metadataObject is of one of the metadata object types 
  defined later in section 5.1.1 to 5.1.10.  

  The following metadata objects are defined as the mandatory metadata 
  for the CDNI metadata interface. In order to support a list of 
  metadata objects with different object types, each metadata object 
  is identified by the metadataType field, which is the first field of 
  the metadata object.  

5.1.1. Content origin object 

  Content origin object defines the content origin for a delivery 
  service.  

  { 
      "metaDataType": "contentOrigin", 
      "object": { 
          "origins": [ 
 
 
Liu & Guna              Expires June 12, 2012                 [Page 7] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

              { 
                      "location": "LOCATION", 
                      "authentication": { 
                          "type": "TYPE", 
                          "username": "NAME", 
                          "password": "PASSWORD" 
                      } 
              }, 
          ], 
          "redundancy": "OPTION" 
      } 
  } 
   
  Where LOCATION is the FQDN of the origin server 

  The embedded authentication object defines the authentication 
  information for an origin server. If no authentication is required 
  by an origin server, the authentication object is null using JSON 
  notation. In the authentication object definition, 

    TYPE is "basic"|"digest" for HTTP basic and HTTP digest 
  authentication type 

    NAME is the string representation of username parameter of the 
  authentication object  

    PASSWORD is the string representation of password parameter of 
  the authentication type 

  Content origin supports a list of origin servers. The redundancy 
  scheme supported OPTIONs are:  

      "allActive" if all origins are actively used 

      "priority" for priority based failover with the origin listed 
  in decreasing priority 

5.1.2. Cache miss behavior Object 

This metadata defines the cache miss behavior of the CDN. The CDN can 
redirect the request to a different location or pass throuth the 
request to the content origin. 

  { 
      "metadataType": "cacheMissBehavior", 
 
 
Liu & Guna              Expires June 12, 2012                 [Page 8] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

      "object": { 
          "cacheMiss": "OPTION", 
          "URL": "value" 
      } 
  } 
   
  where OPTION is "redirect" | "passThru". The URL field is only 
  relevant if the option is redirect. 

5.1.3. Cache control Object 

  This metadata defines if cache is turned on or off by the CDN 

  { 
     "metadataType":"cacheControl", 
     "object":{ 
        "cache":"OPTION" 
     } 
  } 
   
  where OPTION is "on" | "off". 

5.1.4. Cache TTL Object 

  This metadata controls how long content is stored in the CDN cache 
  before the content freshness is revalidated. 

  { 
      "metadataType": "cacheTTL", 
      "object": { 
          "TTL": "value" 
      } 
  } 
   
  where the value is a integer number of seconds. 

5.1.5. Downstream Cache TTL Object 

  This metadata controls how the browser cache the content via cache 
  control header in an HTTP response from the CDN to the client 

  { 
      "metadataType": "downstreamCacheTTL", 

 
 
Liu & Guna              Expires June 12, 2012                 [Page 9] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

      "object": { 
          "TTL": "value" 
      } 
  } 
   
  where the value is a integer number of seconds. 

5.1.6. Cache key Object 

  By default, CDN caches content based on the entire URI. Cache key 
  mask can be used to exclude portions of the URI for the generation 
  of cache key. 

  { 
      "metadataType": "cacheKey", 
      "object": { 
          "key": "value" 
      } 
  } 
   
  Where the value is a regex string. Here is an example: 

    http://dCDN.example.com/movie?cid=abcde&user=xxx&token=yyy 

  In this example, the "user" field of the query is removed from the 
  cache key. The regex replacement can be used as: 

      "s/(.*)user.*(token.*)/$1$2/" 

5.1.7. Access control Object 

  This metadata defines whether to allow or deny a content request 

  { 
      "metadataType": "accessControl", 
      "object": , 
      { 
          "action": "OPTION" 
      } 
  } 
   
  where OPTION is "allow" | "deny". 


 
 
Liu & Guna              Expires June 12, 2012                [Page 10] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

5.1.8. User authorization Object 

  This metadata defines the user authorization information a content 
  request. 

  { 
      "metadataType": "userAuthorization", 
      "object": { 
          "type": "TYPE", 
          "algorithm": "ALGORITHM", 
          "keyType": "KEYTYPE", 
          "key": "value" 
      } 
  } 
   
  where TYPE is "urlSigning" | "urlToken" 

    ALGORITHM is "MD5" | "SHA1". 

    KEYTYPE is "symmetric" | "asymmetric". 

    value is the public key if the keyType is "asymmetric". 

5.1.9. Asset valid time window Object 

  This metadata defines the content distribution time window. The CDN 
  will only delivery the content if the request is within the asset 
  window. 

  { 
      "metadataType": "assetWindow", 
      "object": { 
          "start": "time", 
          "end": "time" 
      } 
  } 
   
  The time format is defined by HTTP 1.1. For example: Sun, 06 Nov 
  1994 08:49:37 GMT.   

5.1.10. Rate limit Object 

  This metadata defines the CDN distribution aggregate bandwidth 
  limitation. 
 
 
Liu & Guna              Expires June 12, 2012                [Page 11] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

  { 
      "metadataType": "rateLimit", 
      "object": { 
          "limit": "value" 
      } 
  } 
   
  Where value is in the unit of kbps. 

5.2. Condition Metadata Group Definition 

  The condition metadata group encapsulation is as follows: 

  { 
    "conditions", [  
   
      conditionObject1,  
      conditionObject2,  
      ...,  
        conditionObjectN ], 
   
     "ConditionMetadataList", [  
        metadataObject1, 
        metadataObject2, 
        ... 
        metadataObjectn ] 
  } 
   
  Where the conditionObject is of one of the metadata condition object 
  type defined in section 5.2.1 and metadataObject is of one of the 
  metadata object type defined in section 5.1.1 to section 5.1.10. 

  Multiple condition metadata groups can exist in the metadata 
  interface and an example can be found in the example of section 6. 

   

5.2.1. Condition Object 

  The condition object is designed to support generic rule setting and 
  scope limiting. It includes match field, match type and match value. 
  The match field is evaluated against the match value based on the 
  match type. The result is either a True or a False. Several 

 
 
Liu & Guna              Expires June 12, 2012                [Page 12] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

  mandatory match fields, match types are defined in this version of 
  the spec with future extensibility.   

  The condition object is defined as  

  { 
      "condition": { 
          "matchField": "FIELDS", 
          "matchType": "MATCHTYPES", 
          "matchValue": { 
              "valueType": "VALUETYPE", 
              "value": [ 
                  valueObjects 
              ] 
          } 
      } 
  } 
   
  where the FIELDS can be "URI" | "userAgent" | "client" | 
  "referrerURL" 

  where the MATCHTYPES can be "ifMatch" | "ifNoneMatch" | "ifRange". 
  for the "ifMatch" match type, the result is true if any of the value 
  in the value list is a match. for the "ifNoneMatch" match type, the 
  result is true if none of the value in the value list is a match for 
  the "ifRange" match type, the value list can only have two objects 
  that defines the range. The result is true if the field is in the 
  range defined by the value list. 

  where the VALUETYPE can be "regex" | "ip" | "region" | "number" | 
  "time". 

      For the "regex" value type, the value object is a string 
  representing regex 

      For the "ip" value type, the value object is a list of IP 
  object defined as: 

        { "ipAddress": "value", "subnetMask": "value"}  

         where the value is the dotted notation of ip address 

      For the "region value type", the value object is the region 
  defined as: 

 
 
Liu & Guna              Expires June 12, 2012                [Page 13] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

        { "country": "string", "region", "string" } 

          the country code is defined in ISO-3166-1 

          the region code is defined in ISO-3166-2 

      For the "number" value type, the value object is numeric values 

      For the "time" value type, the value object is defined by the 
  HTTP1.1 

   

5.2.2. Condition Metadata Object 

  The metadataObject is of one of the metadata object type defined in 
  section 5.1.1 to section 5.1.10. 

   

5.2.3. Examples 

  Here are a few examples of the conditions: 

  Example 1: Set the cache TTL to 1 day for content whose URI has 
  */movie/* in the path.  

  { 
      "Conditions": [ 
          { 
                  "condition": { 
                      "matchField": "URI", 
                      "matchType": "ifMatch", 
                      "matchValue": { 
                          "valueType": "regex", 
                          "value": [ 
                              "/movie/" 
                          ] 
                      } 
                  } 
              } 
      ], 
      "metadataList": [ 
          { 
 
 
Liu & Guna              Expires June 12, 2012                [Page 14] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

              "metadatatype": "cacheTTL", 
              "object": { 
                  "TTL": "3600" 
              } 
          } 
      ] 
  } 
   

  Example 2: Restrict the content delivery to only California, United 
  States: 

  { 
      "conditions": [ 
          { 
              "condition": { 
                  "matchField": "client", 
                  "matchType": "ifNoneMatch", 
                  "matchValue": { 
                      "valueType": "region", 
                      "value": [ 
                          { 
                              "country": "US", 
                              "region": "california" 
                          } 
                      ] 
                  } 
              } 
          } 
      ], 
      "metadataList": [ 
          { 
              "metadatatype": "accessControl", 
              "object": { 
                  "action": "deny" 
              } 
          } 
      ] 
  } 



 
 
Liu & Guna              Expires June 12, 2012                [Page 15] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

5.3. Error Handling 

  The metadata interface uses HTTP status to reflect the success or 
  failure of the operation. In addition, if there is an error in the 
  operation, detailed information is provided in the response body 
  with JSON encoding. In the failure condition, the detailed error 
  information only includes the first error encountered, such as the 
  JSON encoding of the problem matching condition or metadata. Note 
  that the unsupported extended metadata will be included also.  

  To simplify the design, there is no notion of partial success. Only 
  when all metadata operations are accepted will the success result be 
  returned.  

  The following HTTP status code is used: 

    POST operation:  

    201  Created (Success) 

    400  Bad request (Failure) 

    GET  operation: 

    200  Success 

    404  Not found (resource not found) 

    PUT  operation: 

    200  Success 

    400  Bad request (Failure)  

    404  Not found (resource not found) 

    DELETE operation: 

    200  Success 

    404  Not found (resource not found) 

  When the HTTP response code is 400 (Bad request), metadata interface 
  specific error code used in the JSON are: 

    1000 Unknown metadata type 

 
 
Liu & Guna              Expires June 12, 2012                [Page 16] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

    1001 Invalid metadata value 

    1002 Unknown condition type 

    1003 Invalid condition value 

  Example error encodings in responses body are: 

    { "error code": "1000", metadataObject} 

    where the metadataObject is the first metadata object that 

    has the error condition 

    { "error code": "1003", conditionObject} 

    where condition is the first condition that has the error 

6. Examples 

  This section provides an example of metadata interface messages. 
  This example creates one domain metadata group (origin, cacheTTL, 
  assetWindow, cacheMissBehavior,caheKey) and two condition metadata 
  groups for the delivery domain of www.cp1.com. In the first 
  condition metadata group, if the content URL path include movie, the 
  cacheTTL metadata is reset. In the second condition metadata group, 
  if the content URL path includes private, the cache is turned off 
  using cacheControl metadata. 

  POST /metadata/www.cp1.com HTTP/1.1 

  Host: CDNi.dCDN.com 

  Accept: application/jsonrequest 

  Content-Length: 500 

  Content-Type: application/jsonrequest 

  [ 
   { 
      "domainMetadataList" [ 
          { 
              "metaDataType": "contentOrigin", 
              "object": { 
                  "origins": [ 
 
 
Liu & Guna              Expires June 12, 2012                [Page 17] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

                      { 
                          "location": "origin1.example.com", 
                          "authentication": { 
                              "type": "basic", 
                              "username": "abc", 
                              "password": "123" 
                          } 
                      }, 
                      { 
                          "location": "origin2.example.com", 
                          "authentication": null 
                      } 
                  ], 
                  "redundancy": "priority" 
              } 
          }, 
          { 
              "metadataType": "cacheMissBehavior", 
              "object": { 
                  "cacheMiss": "passThru", 
                  "URL": "" 
              } 
          }, 
          { 
              "metadataType": "assetWindow", 
              "object": { 
                  "start": "Sun, 04 Dec 2011 08:00:00 GMT", 
                  "end": "Sun, 04 Mar 2012 08:00:00 GMT" 
              } 
          }, 
          { 
              "metadataType": "cacheTTL", 
              "object": { 
                  "TTL": "3600" 
              } 
          }, 
          { 
              "metadataType": "cacheKey", 
              "object": { 
                  "key": "s/(.*)user.*(token.*)/$1$2/" 
              } 
 
 
Liu & Guna              Expires June 12, 2012                [Page 18] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

          } 
      ] 
  }, 
  { 
      "Conditions": [ 
          { 
                  "condition": { 
                      "matchField": "URI", 
                      "matchType": "ifMatch", 
                      "matchValue": { 
                          "valueType": "regex", 
                          "value": [ 
                              "/movie/" 
                          ] 
                      } 
                  } 
              } 
      ], 
      "metadataList": [ 
          { 
              "metadatatype": "cacheTTL", 
              "object": { 
                  "TTL": "86400" 
              } 
          } 
      ] 
  }  
  { 

      "Conditions": [ 
          { 
                  "condition": { 
                      "matchField": "URI", 
                      "matchType": "ifMatch", 
                      "matchValue": { 
                          "valueType": "regex", 
                          "value": [ 
                              "/private/" 
                          ] 
                      } 
              } 

 
 
Liu & Guna              Expires June 12, 2012                [Page 19] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

          } 
      ], 
      "metadataList": [ 
          { 
              "metadatatype": "cacheControl", 
           "object":{ 
              "cache":"off" 
           } 
          } 
      ] 
  }  
] 
   
  Here is the HTTP response: 
  HTTP/1.1 200 OK 

7. Security Considerations 

  The security concerns on CDNI metadata interface may be addressed 
  via upstream CDN and downstream CDN exchanging metadata in a secured 
  fashion. This can be via VPN, transport security via SSL etc. The 
  authentication can be based on username/password or SSL certificate.  

8. IANA Considerations 

  This memo includes no request to IANA. 

9. References 

9.1. Normative References 

9.2. Informative References 

  [1]  Davie and Peterson, "Framework for CDN Interconnection", 
        draft-davie-cdni-framework-01 (work in progress), July 2011. 

  [2]  Niven-Jenkins, Faucheur and Bitar, "Content Distribution 
        Network Interconnection (CDNI) Problem Statement", draft-ietf-
        cdni-problem-statement-01 (work in progress), September 2011. 

  [3]  Caulfield and Leung, Ledraft-caulfield-cdni-metadata-core-00 
        "Content Distribution Network Interconnect (CDNI) Core 
        Metadata", October 2011. 


 
 
Liu & Guna              Expires June 12, 2012                [Page 20] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

  [4]  Stephen, Bertrand, Fieau and Pages,  "metadata for CDNs 
        Interconnection" draft-stephan-cdni-usecases-metadata-00, " 
        October, 2011 
  
  [5]   [I-D.draft-cdni-requirements] 
          "Content Distribution Network Interconnection (CDNI) 
          Requirements", Kent Leung, Yiu Lee, 9-Sep-11, <draft-ietf-
          cdni-requirements-00.txt>. 
      
  [6]  RFC 2616:  Hypertext Transfer Protocol -- HTTP/1.1, June 1999  

   

10. Acknowledgments 

  This document was prepared using 2-Word-v2.0.template.dot. 



































 
 
Liu & Guna              Expires June 12, 2012                [Page 21] 
   
Internet-Draft         CDNI Metadata Interface           December 2011 
   

  Authors' Addresses 
  Xiaomei Liu 
  2330 Central Expressway 
  Santa Clara, CA 95050 
  USA 
   
  Phone: +1 408 330 5198 
  Email: xiaomei.sc.liu@huawei.com 
   
   
  Lakshminarayanan Gunaseelan 
  2330 Central Expressway 
  Santa Clara, CA 95050 
  USA 
   
   
  Phone: +1 408 330 4662 
  Email: guna@huawei.com 
  
 
  Xiaoyan He  
  Huawei  
  B2, Huawei Industrial Base, 518129  
  China  
      
  Email: hexiaoyan@huawei.com  
      
      
  Jincheng Li  
  Huawei  
  B2, Huawei Industrial Base, 518129  
  China  
      
  Email: lijincheng@huawei.com 













 
 
Liu & Guna              Expires June 12, 2012                [Page 22]