draft-ietf-cdni-metadata-14.txt   draft-ietf-cdni-metadata-15.txt 
skipping to change at page 1, line 13 skipping to change at page 1, line 13
Network Working Group B. Niven-Jenkins Network Working Group B. Niven-Jenkins
Internet-Draft R. Murray Internet-Draft R. Murray
Intended status: Standards Track Velocix (Alcatel-Lucent) Intended status: Standards Track Velocix (Alcatel-Lucent)
Expires: October 14, 2016 M. Caulfield Expires: October 14, 2016 M. Caulfield
Cisco Systems Cisco Systems
K. Ma K. Ma
Ericsson Ericsson
April 12, 2016 April 12, 2016
CDN Interconnection Metadata CDN Interconnection Metadata
draft-ietf-cdni-metadata-14 draft-ietf-cdni-metadata-15
Abstract Abstract
The Content Delivery Networks Interconnection (CDNI) metadata The Content Delivery Networks Interconnection (CDNI) metadata
interface enables interconnected Content Delivery Networks (CDNs) to interface enables interconnected Content Delivery Networks (CDNs) to
exchange content distribution metadata in order to enable content exchange content distribution metadata in order to enable content
acquisition and delivery. The CDNI metadata associated with a piece acquisition and delivery. The CDNI metadata associated with a piece
of content provides a downstream CDN with sufficient information for of content provides a downstream CDN with sufficient information for
the downstream CDN to service content requests on behalf of an the downstream CDN to service content requests on behalf of an
upstream CDN. This document describes both a base set of CDNI upstream CDN. This document describes both a base set of CDNI
skipping to change at page 3, line 8 skipping to change at page 3, line 8
4.2.3. TimeWindowACL . . . . . . . . . . . . . . . . . . . . 28 4.2.3. TimeWindowACL . . . . . . . . . . . . . . . . . . . . 28
4.2.3.1. TimeWindowRule . . . . . . . . . . . . . . . . . 29 4.2.3.1. TimeWindowRule . . . . . . . . . . . . . . . . . 29
4.2.3.2. TimeWindow . . . . . . . . . . . . . . . . . . . 30 4.2.3.2. TimeWindow . . . . . . . . . . . . . . . . . . . 30
4.2.4. ProtocolACL Metadata . . . . . . . . . . . . . . . . 31 4.2.4. ProtocolACL Metadata . . . . . . . . . . . . . . . . 31
4.2.4.1. ProtocolRule . . . . . . . . . . . . . . . . . . 32 4.2.4.1. ProtocolRule . . . . . . . . . . . . . . . . . . 32
4.2.5. DeliveryAuthorization Metadata . . . . . . . . . . . 32 4.2.5. DeliveryAuthorization Metadata . . . . . . . . . . . 32
4.2.6. Cache . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2.6. Cache . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2.7. Auth . . . . . . . . . . . . . . . . . . . . . . . . 34 4.2.7. Auth . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2.8. Grouping . . . . . . . . . . . . . . . . . . . . . . 35 4.2.8. Grouping . . . . . . . . . . . . . . . . . . . . . . 35
4.3. CDNI Metadata Simple Data Type Descriptions . . . . . . . 35 4.3. CDNI Metadata Simple Data Type Descriptions . . . . . . . 35
4.3.1. Link . . . . . . . . . . . . . . . . . . . . . . . . 36 4.3.1. Link . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3.2. Protocol . . . . . . . . . . . . . . . . . . . . . . 37 4.3.2. Protocol . . . . . . . . . . . . . . . . . . . . . . 37
4.3.3. Endpoint . . . . . . . . . . . . . . . . . . . . . . 37 4.3.3. Endpoint . . . . . . . . . . . . . . . . . . . . . . 37
4.3.4. Time . . . . . . . . . . . . . . . . . . . . . . . . 38 4.3.4. Time . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3.5. IPv4CIDR . . . . . . . . . . . . . . . . . . . . . . 38 4.3.5. IPv4CIDR . . . . . . . . . . . . . . . . . . . . . . 38
4.3.6. IPv6CIDR . . . . . . . . . . . . . . . . . . . . . . 38 4.3.6. IPv6CIDR . . . . . . . . . . . . . . . . . . . . . . 38
4.3.7. ASN . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.3.7. ASN . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3.8. CountryCode . . . . . . . . . . . . . . . . . . . . . 39 4.3.8. CountryCode . . . . . . . . . . . . . . . . . . . . . 39
5. CDNI Metadata Capabilities . . . . . . . . . . . . . . . . . 39 5. CDNI Metadata Capabilities . . . . . . . . . . . . . . . . . 39
6. CDNI Metadata interface . . . . . . . . . . . . . . . . . . . 39 6. CDNI Metadata interface . . . . . . . . . . . . . . . . . . . 39
6.1. Transport . . . . . . . . . . . . . . . . . . . . . . . . 40 6.1. Transport . . . . . . . . . . . . . . . . . . . . . . . . 40
skipping to change at page 24, line 6 skipping to change at page 24, line 6
Type: List of Source objects (see Section 4.2.1.1) Type: List of Source objects (see Section 4.2.1.1)
Mandatory-to-Specify: No. Default is to use static Mandatory-to-Specify: No. Default is to use static
configuration, out-of-band from the metadata interface. configuration, out-of-band from the metadata interface.
Example SourceMetadata object (which contains two Source objects) Example SourceMetadata object (which contains two Source objects)
that describes which servers the dCDN should use for acquiring that describes which servers the dCDN should use for acquiring
content for the applicable URI path and/or host: content for the applicable URI path and/or host:
{ {
"generic-metadata-type": "MI.SourceMetadata" "generic-metadata-type": "MI.SourceMetadata",
"generic-metadata-value": "generic-metadata-value":
{ {
"sources": [ "sources": [
{ {
"endpoints": [ "endpoints": [
"a.service123.ucdn.example", "a.service123.ucdn.example",
"b.service123.ucdn.example" "b.service123.ucdn.example"
], ],
"protocol": "http1.1" "protocol": "http1.1"
}, },
skipping to change at page 26, line 20 skipping to change at page 26, line 20
(blocks) delivery based on the User Agent's location. (blocks) delivery based on the User Agent's location.
Type: List of LocationRule objects (see Section 4.2.2.1) Type: List of LocationRule objects (see Section 4.2.2.1)
Mandatory-to-Specify: No. Default is allow all locations. Mandatory-to-Specify: No. Default is allow all locations.
Example LocationACL object that allows the dCDN to deliver content to Example LocationACL object that allows the dCDN to deliver content to
any location/IP address: any location/IP address:
{ {
"generic-metadata-type": "MI.LocationACL" "generic-metadata-type": "MI.LocationACL",
"generic-metadata-value": "generic-metadata-value":
{ {
} }
} }
Example LocationACL object (which contains a LocationRule object Example LocationACL object (which contains a LocationRule object
which itself contains a Footprint object) that only allows the dCDN which itself contains a Footprint object) that only allows the dCDN
to deliver content to User Agents in the USA: to deliver content to User Agents in the USA:
{ {
"generic-metadata-type": "MI.LocationACL" "generic-metadata-type": "MI.LocationACL",
"generic-metadata-value": "generic-metadata-value":
{ {
"locations": [ "locations": [
{ {
"action": "allow", "action": "allow",
"footprints": [ "footprints": [
{ {
"footprint-type": "countrycode", "footprint-type": "countrycode",
"footprint-value": ["us"] "footprint-value": ["us"]
} }
skipping to change at page 29, line 28 skipping to change at page 29, line 28
Type: List of TimeWindowRule objects (see Section 4.2.3.1) Type: List of TimeWindowRule objects (see Section 4.2.3.1)
Mandatory-to-Specify: No. Default is allow all time windows. Mandatory-to-Specify: No. Default is allow all time windows.
Example TimeWIndowACL object (which contains a TimeWindowRule object Example TimeWIndowACL object (which contains a TimeWindowRule object
which itself contains a TimeWIndow object) that only allows the dCDN which itself contains a TimeWIndow object) that only allows the dCDN
to deliver content to clients between 09:00 01/01/2000 UTC and 17:00 to deliver content to clients between 09:00 01/01/2000 UTC and 17:00
01/01/2000 UTC: 01/01/2000 UTC:
{ {
"generic-metadata-type": "MI.TimeWindowACL" "generic-metadata-type": "MI.TimeWindowACL",
"generic-metadata-value": "generic-metadata-value":
{ {
"times": [ "times": [
{ {
"action": "allow", "action": "allow",
"windows": [ "windows": [
{ {
"start": 946717200, "start": 946717200,
"end": 946746000 "end": 946746000
} }
skipping to change at page 32, line 6 skipping to change at page 32, line 6
denies (blocks) delivery based on delivery protocol. denies (blocks) delivery based on delivery protocol.
Type: List of ProtocolRule objects (see Section 4.2.4.1) Type: List of ProtocolRule objects (see Section 4.2.4.1)
Mandatory-to-Specify: No. Default is allow all protocols. Mandatory-to-Specify: No. Default is allow all protocols.
Example ProtocolACL object (which contains a ProtocolRule object) Example ProtocolACL object (which contains a ProtocolRule object)
that only allows the dCDN to deliver content using HTTP/1.1: that only allows the dCDN to deliver content using HTTP/1.1:
{ {
"generic-metadata-type": "MI.ProtocolACL" "generic-metadata-type": "MI.ProtocolACL",
"generic-metadata-value": "generic-metadata-value":
{ {
"protocol-acl": [ "protocol-acl": [
{ {
"action": "allow", "action": "allow",
"protocols": ["http1.1"] "protocols": ["http1.1"]
} }
] ]
} }
} }
skipping to change at page 33, line 20 skipping to change at page 33, line 20
request. request.
Type: List of Auth objects (see Section 4.2.7) Type: List of Auth objects (see Section 4.2.7)
Mandatory-to-Specify: No. Default is no authorization Mandatory-to-Specify: No. Default is no authorization
required. required.
Example DeliveryAuthorization object (which contains an Auth object): Example DeliveryAuthorization object (which contains an Auth object):
{ {
"generic-metadata-type": "MI.DeliveryAuthorization" "generic-metadata-type": "MI.DeliveryAuthorization",
"generic-metadata-value": "generic-metadata-value":
{ {
"delivery-auth-methods": [ "delivery-auth-methods": [
{ {
"auth-type": <CDNI Payload Type of this Auth object>, "auth-type": <CDNI Payload Type of this Auth object>,
"auth-value": "auth-value":
{ {
<Properties of this Auth object> <Properties of this Auth object>
} }
} }
skipping to change at page 34, line 9 skipping to change at page 34, line 9
Type: List of String Type: List of String
Mandatory-to-Specify: No. Default is to consider query string Mandatory-to-Specify: No. Default is to consider query string
parameters when comparing URIs. parameters when comparing URIs.
Example Cache object that instructs the dCDN to ignore all query Example Cache object that instructs the dCDN to ignore all query
parameters: parameters:
{ {
"generic-metadata-type": "generic-metadata-type": "MI.Cache",
"MI.Cache"
"generic-metadata-value": "generic-metadata-value":
{ {
"ignore-query-string": [] "ignore-query-string": []
} }
} }
Example Cache object that instructs the dCDN to ignore the (case- Example Cache object that instructs the dCDN to ignore the (case-
insensitive) query parameters named "sessionid" and "random": insensitive) query parameters named "sessionid" and "random":
{ {
"generic-metadata-type": "generic-metadata-type": "MI.Cache",
"MI.Cache"
"generic-metadata-value": "generic-metadata-value":
{ {
"ignore-query-string": ["sessionid", "random"] "ignore-query-string": ["sessionid", "random"]
} }
} }
4.2.7. Auth 4.2.7. Auth
An Auth object defines authentication and authorization methods to be An Auth object defines authentication and authorization methods to be
used during content acquisition and content delivery, respectively. used during content acquisition and content delivery, respectively.
skipping to change at page 35, line 6 skipping to change at page 35, line 6
Description: An object conforming to the specification Description: An object conforming to the specification
associated with the Registered Auth type. associated with the Registered Auth type.
Type: GenericMetadata Object Type: GenericMetadata Object
Mandatory-to-Specify: Yes. Mandatory-to-Specify: Yes.
Example Auth object: Example Auth object:
{ {
"generic-metadata-type": "generic-metadata-type": "MI.Auth",
"MI.Auth"
"generic-metadata-value": "generic-metadata-value":
{ {
"auth-type": <CDNI Payload Type of this Auth object>, "auth-type": <CDNI Payload Type of this Auth object>,
"auth-value": "auth-value":
{ {
<Properties of this Auth object> <Properties of this Auth object>
} }
} }
} }
skipping to change at page 35, line 37 skipping to change at page 35, line 36
Type: String Type: String
Mandatory-to-Specify: No. Default is an empty string. Mandatory-to-Specify: No. Default is an empty string.
Example Grouping object that specifies a Content Collection Example Grouping object that specifies a Content Collection
Identifier for the content associated with the Grouping object's Identifier for the content associated with the Grouping object's
parent HostMetdata and PathMetadata: parent HostMetdata and PathMetadata:
{ {
"generic-metadata-type": "generic-metadata-type": "MI.Grouping",
"MI.Grouping"
"generic-metadata-value": "generic-metadata-value":
{ {
"ccid": "ABCD", "ccid": "ABCD"
} }
} }
4.3. CDNI Metadata Simple Data Type Descriptions 4.3. CDNI Metadata Simple Data Type Descriptions
This section describes the simple data types that are used for This section describes the simple data types that are used for
properties of CDNI metadata objects. properties of CDNI metadata objects.
4.3.1. Link 4.3.1. Link
skipping to change at page 47, line 32 skipping to change at page 47, line 32
} }
If the incoming request has a Host header with "video.example.com" If the incoming request has a Host header with "video.example.com"
then the dCDN would fetch the HostMetadata object from then the dCDN would fetch the HostMetadata object from
"http://metadata.ucdn.example/host1234" expecting a CDNI payload type "http://metadata.ucdn.example/host1234" expecting a CDNI payload type
of "MI.HostMetadata": of "MI.HostMetadata":
{ {
"metadata": [ "metadata": [
{ {
"generic-metadata-type": "generic-metadata-type": "MI.SourceMetadata",
"MI.SourceMetadata",
"generic-metadata-value": { "generic-metadata-value": {
"sources": [ "sources": [
{ {
"endpoint": "acq1.ucdn.example", "endpoint": "acq1.ucdn.example",
"protocol": "http1.1" "protocol": "http1.1"
}, },
{ {
"endpoint": "acq2.ucdn.example", "endpoint": "acq2.ucdn.example",
"protocol": "http1.1" "protocol": "http1.1"
} }
] ]
} }
}, },
{ {
"generic-metadata-type": "generic-metadata-type": "MI.LocationACL",
"MI.LocationACL",
"generic-metadata-value": { "generic-metadata-value": {
"locations": [ "locations": [
{ {
"footprints": [ "footprints": [
{ {
"footprint-type": "IPv4CIDR", "footprint-type": "IPv4CIDR",
"footprint-value": "192.0.2.0/24" "footprint-value": "192.0.2.0/24"
} }
], ],
"action": "deny" "action": "deny"
} }
] ]
} }
}, },
{ {
"generic-metadata-type": "generic-metadata-type": "MI.ProtocolACL",
"MI.ProtocolACL",
"generic-metadata-value": { "generic-metadata-value": {
"protocol-acl": [ "protocol-acl": [
{ {
"protocols": [ "protocols": [
"http1.1" "http1.1"
], ],
"action": "allow" "action": "allow"
} }
] ]
} }
skipping to change at page 49, line 33 skipping to change at page 49, line 31
} }
Finally, if the path of the requested resource also matches the Finally, if the path of the requested resource also matches the
"/videos/movies/hd/*" pattern, the dCDN would also fetch the "/videos/movies/hd/*" pattern, the dCDN would also fetch the
following object from "http://metadata.ucdn.example/host1234/pathDEF/ following object from "http://metadata.ucdn.example/host1234/pathDEF/
path123" with CDNI payload type "MI.PathMetadata": path123" with CDNI payload type "MI.PathMetadata":
{ {
"metadata": [ "metadata": [
{ {
"generic-metadata-type": "generic-metadata-type": "MI.TimeWindowACL",
"MI.TimeWindowACL",
"generic-metadata-value": { "generic-metadata-value": {
"times": [ "times": [
"windows": [ "windows": [
{ {
"start": "1213948800", "start": "1213948800",
"end": "1327393200" "end": "1327393200"
} }
], ],
"action": "allow" "action": "allow"
] ]
 End of changes. 17 change blocks. 
25 lines changed or deleted 17 lines changed or added

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