Application-Layer Traffic Optimization Q. Wu Working Group L. Xia Internet-Draft Huawei Intended status: Standards Track July 8, 2013 Expires: January 9, 2014 JSON Format Extensions for Traffic Engineering (TE) performance metrics in the ALTO Information Resource Directory draft-wu-alto-json-te-00 Abstract The base ALTO specification defines two properties for cost metric attribute in the Cost MAP, including 'hopcount' and 'routingcost'. This specification adds five new properties and one new parameter for Traffic Engineering(TE) performance related constraint attribute associated with cost metric attribute 'routingcost' in the ALTO Information Resource Directory: Link Delay, Delay Variation, Packet Loss, Residual Bandwidth, Available Bandwidth,linkstate. 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). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. 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." This Internet-Draft will expire on January 9, 2014. Copyright Notice 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 Wu & Xia Expires January 9, 2014 [Page 1] Internet-Draft JSON for ALTO TE July 2013 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 . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions used in this document . . . . . . . . . . . . . . 4 3. Cost Metric Extensions: properties . . . . . . . . . . . . . . 5 3.1. property: linkdelay . . . . . . . . . . . . . . . . . . . 5 3.2. property: linkjitter . . . . . . . . . . . . . . . . . . . 6 3.3. property: linkloss . . . . . . . . . . . . . . . . . . . . 7 3.4. property: residualbandwidth . . . . . . . . . . . . . . . 8 3.5. property: availablebandwidth . . . . . . . . . . . . . . . 9 4. Cost Metric Extensions: Parameters . . . . . . . . . . . . . . 11 4.1. parameter: linkstate . . . . . . . . . . . . . . . . . . . 11 5. Security Considerations . . . . . . . . . . . . . . . . . . . 13 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 7. Normative References . . . . . . . . . . . . . . . . . . . . . 15 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 16 Wu & Xia Expires January 9, 2014 [Page 2] Internet-Draft JSON for ALTO TE July 2013 1. Introduction The ALTO protocol [I.D-ietf-alto-protocol] uses a REST-ful design [Fielding-Thesis], and encodes its requests and responses using JSON. In ALTO architecture [I.D-ietf-alto-protocol], the ALTO server allows alto information to be gathered from multiple systems(e.g., routing protocol). [I.D-ietf-ospf-te-metric-extensions] describes extensions to OSPF TE called "OSPF TE Metric Extensions", that can be used to distribute network performance information (such as link delay, delay variation, packet loss, residual bandwidth, and available bandwidth). The mechanism defined in [I.D-ietf-ospf-te-metric-extensions]can be used by an ALTO Server to retrieve the necessary performance information supplementing the prefix and network topology data gathered from other sources in the underlying network. In the ALTO Information Resource Directory, Network and Cost Map are two core ALTO Information provided to clients. The TE performance metric can be represented using Cost MAP. The base ALTO specification [I.D-ietf- alto-protocol] defines one typical cost metric attribute for Cost Type in the Cost MAP (i.e.,'routingcost')and uses constraint attribute to list additional constraints to which elements of the Cost Map are related. This specification adds five new properties and one new parameter for constraint attribute associated with 'routingcost' cost metric attribute in alto information service: Link Delay, Link Jitter, Packet Loss, Residual Bandwidth, Available Bandwidth,linkstate. Wu & Xia Expires January 9, 2014 [Page 3] Internet-Draft JSON for ALTO TE July 2013 2. Conventions used in this document 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 RFC2119 [RFC2119]. Syntax specifications shown here use the augmented Backus-Naur Form (ABNF) as described in [RFC5234], and are specified as in the base JSON specification [RFC4627]. Wu & Xia Expires January 9, 2014 [Page 4] Internet-Draft JSON for ALTO TE July 2013 3. Cost Metric Extensions: properties 3.1. property: linkdelay Namespace: property name: linkdelay Purpose: To specify the average link delay between two directly connected neighboring peers in the network. Value type: A single number value containing an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Cardinality: *1 Member parameters: N/A Description: This is intended to be a cost constraint attribute used together with cost metric attribute 'routingcost'. 'routingcost' may also be used with other cost constraint attributes that is used to specify cost constraints. If 'linkdelay' is present, 'routingcost' MUST have at most one 'linkdelay'. Format definition: LINKDELAY-param = "VALUE"("gt"/"lt"/"eq"/"ge"/"le") ("number" / "object") LINKDELAY-value = number / object ; Value type and VALUE parameter MUST match. Examples: "data": { "cost type": { "cost-mode": "numerical", "cost-metric":"routingcost"}, "constraints" : {"linkdelay"}, "endpoints": { "srcs": [ "ipv4:192.0.2.2" ], "dsts": [ "ipv4:192.0.2.89", "ipv4:198.51.100.34", "ipv4:203.0.113.45" ] } "map": { "ipv4:192.0.2.2": { Wu & Xia Expires January 9, 2014 [Page 5] Internet-Draft JSON for ALTO TE July 2013 "ipv4:192.0.2.89": 0.0[linkdelay eq 0.0], "ipv4:198.51.100.34": 15.0[linkdelay eq 3.0], "ipv4:203.0.113.45": 1.0[linkdelay eq 12.0], } } 3.2. property: linkjitter Namespace: Property name: linkjitter Purpose: To specify the average link delay variation between two directly connected neighboring peers. Value type: A single number value containing an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Cardinality: *1 Member parameters: N/A Description: This is intended to be a constraint attribute value used together with 'routingcost' cost metric attribute. routingcost' may also be used with other cost constraint a ttributes that is used to specify cost constraints.If 'linkjitter' is present, 'routingcost' MUST have at most one 'linkjitter'. Format definition: LINKJITTER-param = "VALUE"("gt"/"lt"/"eq"/"ge"/"le") ("number" / "object") LINKJITTER-value = number / object ; Value type and VALUE parameter MUST match. Examples: "data": { "cost type": { "cost-mode": "numerical", "cost-metric":"routingcost"}, "constraints" : {"linkdelay","linkjitter"} "endpoints": { "srcs": [ "ipv4:192.0.2.2" ], "dsts": [ "ipv4:192.0.2.89", Wu & Xia Expires January 9, 2014 [Page 6] Internet-Draft JSON for ALTO TE July 2013 "ipv4:198.51.100.34", "ipv4:203.0.113.45" ] } "map": { "ipv4:192.0.2.2": { "ipv4:192.0.2.89": 0[linkdelay eq0.0,linkjitter eq0.00], "ipv4:198.51.100.34": 5[linkdelay eq3.0,linkjitter eq1.0], "ipv4:203.0.113.45":2[linkdelay eq12.0,linkjitter eq5.0], } 3.3. property: linkloss Namespace: Property name: linkloss Purpose: To specify a percentage of the total traffic sent over a configurable interval between two directly connected neighboring peers. Value type: A single number value containing an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Cardinality: *1 Format definition: This is intended to be a constraint attribute value used together with 'routingcost' cost metric attribute. routingcost' may also be used with other cost constraint attributes t hat is used to specify cost constraints. If 'linkloss' is present, routingcost' MUST have at most one 'linkloss'. Format definition: LINKLOSS-param = "VALUE"("gt"/"lt"/"eq"/"ge"/"le") ("number" / "object") LINKLOSS-value = number / object ; Value type and VALUE parameter MUST match. Examples: "data": { "cost type": { "cost-mode": "numerical", "cost-metric":"routingcost"}, "constraints" : {"linkloss"} "endpoints": { Wu & Xia Expires January 9, 2014 [Page 7] Internet-Draft JSON for ALTO TE July 2013 "srcs": [ "ipv4:192.0.2.2" ], "dsts": [ "ipv4:192.0.2.89", "ipv4:198.51.100.34", "ipv4:203.0.113.45" ] } "map": { "ipv4:192.0.2.2": { "ipv4:192.0.2.89": 0 [linkloss eq0], "ipv4:198.51.100.34": 1 [linkloss eq0.0001], "ipv4:203.0.113.45": 0 [linkloss eq0], } } 3.4. property: residualbandwidth Namespace: Property name: residualbandwith Purpose: To specify Maximum Link Bandwidth minus the bandwidth currently allocated between two directly connected neighboring peers. For a link, residual bandwidth is defined to be Maximum Bandwidth minus the bandwidth currently allocated to RSVP-TE packets. For a bundled link, residual bandwidth is defined to be the sum of the component link residual bandwidths. Value type: A single number value containing an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Cardinality: *1 Member parameters: N/A Description: This is intended to be a constraint attribute value used together with 'routing cost' cost metric attribute. 'routingcost' may also be used with other cost constraint at tributes that is used to specify cost constraints.If 'residualbw' is present, 'routingcost' MUST have at most one 'residualbw'. Format definition: RESIDUALBANDWIDTH-param = "VALUE"("gt"/"lt"/"eq"/"ge"/"le") ("number" / "object") Wu & Xia Expires January 9, 2014 [Page 8] Internet-Draft JSON for ALTO TE July 2013 RESIDUALBANDWIDTH-value = number / object ; Value type and VALUE parameter MUST match. Examples: "data": { "cost type": { "cost-mode": "numerical", "cost-metric":"routingcost"}, "constraints" : {"residbw"} "endpoints": { "srcs": [ "ipv4:192.0.2.2" ], "dsts": [ "ipv4:192.0.2.89", "ipv4:198.51.100.34", "ipv4:203.0.113.45" ] } "map": { "ipv4:192.0.2.2": { "ipv4:192.0.2.89": 0[residbw eq0.000000], "ipv4:198.51.100.34": 5[residbw eq12.5], "ipv4:203.0.113.45":2[residbw eq5.9], } } 3.5. property: availablebandwidth Namespace: Property name: availablebandwith Purpose: To specify the available bandwidth on a link between two directly connected neighboring peers. For a link, available bandwidth is defined to be residual bandwidth minus the measured bandwidth used for the actual forwarding of non- RSVP-TE packets. For a bundled link, available bandwidth is defined to be the sum of the component link available bandwidths. Value type: A single number value containing an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Cardinality: *1 Member parameters: N/A Wu & Xia Expires January 9, 2014 [Page 9] Internet-Draft JSON for ALTO TE July 2013 Description: This is intended to be a constraint attribute value used together with 'routing cost' cost metric attribute. 'routingcost' may also be used with other cost constraint at tributes that is used to specify cost constraints. If 'availablebw' is present, 'routingcost' MUST have at most one 'availablebw'. Format definition: AVAILABLEBANDWITH-param = "VALUE"("gt"/"lt"/"eq"/"ge"/"le") ("number" / "object") AVAILABLEBANDWITH-value = number / object ; Value type and VALUE parameter MUST match. Examples: "data": { "cost type": { "cost-mode": "numerical", "cost-metric":"routingcost"}, "constraints" : {"residbw","availbw"} "endpoints": { "srcs": [ "ipv4:192.0.2.2" ], "dsts": [ "ipv4:192.0.2.89", "ipv4:198.51.100.34", "ipv4:203.0.113.45" ] } "map": { "ipv4:192.0.2.2": { "ipv4:192.0.2.89": 0[residbw eq0,availbw eq0], "ipv4:198.51.100.34": 0[residbw eq12.5,availbw eq10.5], "ipv4:203.0.113.45":0[residbw eq5.9,availbw eq3.9], } } Wu & Xia Expires January 9, 2014 [Page 10] Internet-Draft JSON for ALTO TE July 2013 4. Cost Metric Extensions: Parameters The following sections define Parameters used within Properties definitions. 4.1. parameter: linkstate Wu & Xia Expires January 9, 2014 [Page 11] Internet-Draft JSON for ALTO TE July 2013 Namespace: Parameter name: linkstate Purpose: Used in a multi-valued property to indicate whether it is steady state link performance. Description: When a property is multi-valued, LINKSTATE can be used to construct a steady state performancetopology for initial tunnel path computation, or to verify alternative failover paths. The LINSTATE is set when the measured value of this parameter exceeds its configured maximum threshold. The LINKSTATE is cleared when the measured value falls below its configured threshold.LINKSTATE should be used together with properties we defined in the section 3. Format definition: LINKSTATE-param = "LINKSTATE=" INDEX-value LINKSTATE-value = integer Examples: object { JSONBOOL linkstate; } linkdelay; "data": { "cost type":{ "cost-mode": "numerical", "cost-metric":"routingcost"} "constraints": {"linkdelay"} endpoints": { "srcs": [ "ipv4:192.0.2.2" ], "dsts": [ "ipv4:192.0.2.89" ] } "map": { "ipv4:192.0.2.2": { "ipv4:192.0.2.89": 0.0[linkdelay[linkstate eq 0] eq 10], } } Wu & Xia Expires January 9, 2014 [Page 12] Internet-Draft JSON for ALTO TE July 2013 5. Security Considerations The properties defined in this document present no security considerations beyond those in Section 14 of the base ALTO specification [draft-ietf-alto-protocol]. Wu & Xia Expires January 9, 2014 [Page 13] Internet-Draft JSON for ALTO TE July 2013 6. IANA Considerations IANA has added the following entries to the ALTO cost map Properties registry, defined in Section 3 of [RFCXXX]. +-----------+--------------+------------------------+ | Namespace | Property | Reference | +-----------+--------------+------------------------+ | | linkdelay | [RFCxxxx], Section 3.1 | | | linkjitter | [RFCxxxx], Section 3.2 | | | linkloss | [RFCxxxx], Section 3.3 | | | residbw | [RFCxxxx], Section 3.4 | | | availbw | [RFCxxxx], Section 3.5 | +-----------+--------------+------------------------+ IANA has added the following entries to the " ALTO cost map Parameters" registry, defined in [RFCxxxx] Section 4.1. +-------+------------------------+------------------------+ | Name- | | | | space | Parameter | Reference | +-------+------------------------+------------------------+ | | LINKSTATE | [RFCxxxx], Section 4.1 | +-------+------------------------+------------------------+ Wu & Xia Expires January 9, 2014 [Page 14] Internet-Draft JSON for ALTO TE July 2013 7. Normative References [ALTO] Alimi, R., "ALTO Protocol", ID draft-ietf-alto-protocol-16, May 2013. [OSPF] Giacalone, S., "OSPF Traffic Engineering (TE) Metric Extensions", ID draft-ietf-ospf-te-metric-extensions-04, June 2013. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", March 1997. [RFC4627] Crockford, D., "The application/json Media Type for JavaScript Object Notation (JSON)", RFC 4627, July 2006. [RFC5234] Crocker, D., "Augmented BNF for Syntax Specifications: ABNF", RFC 5234, January 2008. Wu & Xia Expires January 9, 2014 [Page 15] Internet-Draft JSON for ALTO TE July 2013 Authors' Addresses Qin Wu Huawei 101 Software Avenue, Yuhua District Nanjing, Jiangsu 210012 China Email: sunseawq@huawei.com Liang Xia Huawei 101 Software Avenue, Yuhua District Nanjing, Jiangsu 210012 China Email: frank.xialiang@huawei.com Wu & Xia Expires January 9, 2014 [Page 16]