idnits 2.17.1 draft-wu-alto-te-metrics-09.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The abstract seems to contain references ([RFC2119], [ALTO]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. -- The document has examples using IPv4 documentation addresses according to RFC6890, but does not use any IPv6 documentation addresses. Maybe there should be IPv6 examples, too? Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (August 29, 2016) is 2790 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'ALTO' is mentioned on line 1047, but not defined == Missing Reference: 'RFCxxxx' is mentioned on line 1080, but not defined == Missing Reference: 'ALTO-DEPLOYMENT' is mentioned on line 201, but not defined == Missing Reference: 'RFC3630' is mentioned on line 204, but not defined == Missing Reference: 'RFC3784' is mentioned on line 204, but not defined ** Obsolete undefined reference: RFC 3784 (Obsoleted by RFC 5305) == Missing Reference: 'OSPF-TE' is mentioned on line 204, but not defined == Missing Reference: 'ISIS-TE' is mentioned on line 225, but not defined == Missing Reference: 'BGP-LS' is mentioned on line 204, but not defined == Missing Reference: 'BGP-PM' is mentioned on line 204, but not defined -- Looks like a reference, but probably isn't: '6' on line 962 -- Looks like a reference, but probably isn't: '5' on line 962 -- Looks like a reference, but probably isn't: '7' on line 962 -- Looks like a reference, but probably isn't: '8' on line 962 -- Looks like a reference, but probably isn't: '4' on line 961 -- Looks like a reference, but probably isn't: '10' on line 960 -- Looks like a reference, but probably isn't: '9' on line 962 == Missing Reference: 'RFCXXX' is mentioned on line 1065, but not defined == Unused Reference: 'I-D.ietf-idr-te-pm-bgp' is defined on line 1087, but no explicit reference was found in the text == Unused Reference: 'RFC5234' is defined on line 1107, but no explicit reference was found in the text == Unused Reference: 'RFC7285' is defined on line 1112, but no explicit reference was found in the text == Unused Reference: 'RFC7471' is defined on line 1118, but no explicit reference was found in the text == Unused Reference: 'RFC7752' is defined on line 1123, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-alto-deployments' is defined on line 1136, but no explicit reference was found in the text == Unused Reference: 'RFC6390' is defined on line 1141, but no explicit reference was found in the text == Outdated reference: A later version (-18) exists of draft-ietf-idr-te-pm-bgp-03 == Outdated reference: A later version (-16) exists of draft-ietf-ippm-initial-registry-01 ** Obsolete normative reference: RFC 4627 (Obsoleted by RFC 7158, RFC 7159) ** Obsolete normative reference: RFC 7752 (Obsoleted by RFC 9552) ** Obsolete normative reference: RFC 7810 (Obsoleted by RFC 8570) Summary: 5 errors (**), 0 flaws (~~), 20 warnings (==), 9 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 ALTO Working Group Q. Wu 3 Internet-Draft Huawei 4 Intended status: Standards Track Y. Yang 5 Expires: March 2, 2017 Yale University 6 Y. Lee 7 D. Dhody 8 Huawei 9 S. Randriamasy 10 Nokia Bell Labs 11 August 29, 2016 13 ALTO Performance Cost Metrics 14 draft-wu-alto-te-metrics-09 16 Abstract 18 Cost Metric is a basic concept in Application-Layer Traffic 19 Optimization (ALTO). It is used in both the Cost Map Service and the 20 Endpoint Cost Service. Future extensions to ALTO may also use Cost 21 Metric. 23 Different applications may benefit from different Cost Metrics. For 24 example, a Resource Consumer may prefer Resource Providers that have 25 low delay to the Resource Consumer. However the base ALTO protocol 26 [ALTO] has documented only a single cost metric, i.e., the generic 27 "routingcost" metric (Sec. 14.2 of ALTO base specification [ALTO]). 29 In this document, we proposes a set of Cost Metrics, derived and 30 aggregated from routing protocols with different granularity and 31 scope, such as BGP-LS,OSPF-TE and ISIS-TE, or from end to end traffic 32 management tool. We currently document 11 new Performance Metric to 33 measure network delay, jitter, packet loss, hop count, and bandwidth. 34 The metrics documented in this document provide a relatively 35 comprehensive set of Cost Metrics for ALTO and allow applications to 36 determine "where" to connect based on end to end network performance 37 criteria. Additional Cost Metrics such as financial cost metrics may 38 be documented in other documents. 40 Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", 41 "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", 42 and "OPTIONAL" in this document are to be interpreted as described in 43 RFC 2119 [RFC2119]. 45 Status of This Memo 47 This Internet-Draft is submitted in full conformance with the 48 provisions of BCP 78 and BCP 79. 50 Internet-Drafts are working documents of the Internet Engineering 51 Task Force (IETF). Note that other groups may also distribute 52 working documents as Internet-Drafts. The list of current Internet- 53 Drafts is at http://datatracker.ietf.org/drafts/current/. 55 Internet-Drafts are draft documents valid for a maximum of six months 56 and may be updated, replaced, or obsoleted by other documents at any 57 time. It is inappropriate to use Internet-Drafts as reference 58 material or to cite them other than as "work in progress." 60 This Internet-Draft will expire on March 2, 2017. 62 Copyright Notice 64 Copyright (c) 2016 IETF Trust and the persons identified as the 65 document authors. All rights reserved. 67 This document is subject to BCP 78 and the IETF Trust's Legal 68 Provisions Relating to IETF Documents 69 (http://trustee.ietf.org/license-info) in effect on the date of 70 publication of this document. Please review these documents 71 carefully, as they describe your rights and restrictions with respect 72 to this document. Code Components extracted from this document must 73 include Simplified BSD License text as described in Section 4.e of 74 the Trust Legal Provisions and are provided without warranty as 75 described in the Simplified BSD License. 77 Table of Contents 79 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 80 2. Data sources, computation of defined cost metrics . . . . . . 5 81 2.1. Data sources . . . . . . . . . . . . . . . . . . . . . . 5 82 2.2. Computation of metrics . . . . . . . . . . . . . . . . . 5 83 3. Cost Metric: OWDelay . . . . . . . . . . . . . . . . . . . . 6 84 4. Cost Metric: PDV . . . . . . . . . . . . . . . . . . . . . . 8 85 5. Cost Metric: Packet Loss . . . . . . . . . . . . . . . . . . 9 86 6. Cost Metric: Hop Count . . . . . . . . . . . . . . . . . . . 11 87 7. Cost Metric: Bandwidth . . . . . . . . . . . . . . . . . . . 13 88 8. Cost Metric: Maximum Bandwidth . . . . . . . . . . . . . . . 14 89 9. Cost Metric: Maximum Reservable Bandwidth . . . . . . . . . . 16 90 10. Cost Metric: RTT . . . . . . . . . . . . . . . . . . . . . . 18 91 11. Cost Metric: Residue Bandwidth . . . . . . . . . . . . . . . 20 92 12. Cost Metric: Available Bandwidth . . . . . . . . . . . . . . 22 93 13. Cost Metric: Utilized Bandwidth . . . . . . . . . . . . . . . 24 94 14. Security Considerations . . . . . . . . . . . . . . . . . . . 26 95 15. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 96 16. References . . . . . . . . . . . . . . . . . . . . . . . . . 27 97 16.1. Normative References . . . . . . . . . . . . . . . . . . 27 98 16.2. Informative References . . . . . . . . . . . . . . . . . 28 99 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29 101 1. Introduction 103 Cost Metric is a basic concept in Application-Layer Traffic 104 Optimization (ALTO). It is used in both the Cost Map Service and the 105 Endpoint Cost Service. In particular, applications may benefit from 106 knowing network performance measured on several Cost Metrics. For 107 example, a more delay sensitive application may focus on latency, and 108 a more bandwidth-sensitive application may focus on available 109 bandwidth. 111 The objective of this document is to introduce 11 new performance 112 cost metrics, listed in Table 1, to support the aforementioned 113 applications and allow applications to determine "where" to connect 114 based on end to end network performance criteria. Hence, this 115 document extends the base ALTO protocol [ALTO], which defines only a 116 single cost metric, i.e., the generic "routingcost" metric (Sec. 14.2 117 of ALTO base specification [ALTO]). 119 +-----------+--------------+------------------------+ 120 | Namespace | Property | Reference | 121 +-----------+--------------+------------------------+ 122 | | owdelay | [RFCxxxx], Section 3 | 123 | | pdv | [RFCxxxx], Section 4 | 124 | | pktloss | [RFCxxxx], Section 5 | 125 | | hopcount | [RFCxxxx], Section 6 | 126 | | bandwidth | [RFCxxxx], Section 7 | 127 | | maxbw | [RFCxxxx], Section 8 | 128 | | maxresbw | [RFCxxxx], Section 9 | 129 | | rtt | [RFCxxxx], Section 10 | 130 | | residbw | [RFCxxxx], Section 11 | 131 | | availbw | [RFCxxxx], Section 12 | 132 | | utilbw | [RFCxxxx], Section 13 | 133 +-----------+--------------+------------------------+ 134 Table 1. 136 An ALTO server may provide a subset of the cost metrics documented in 137 this document. These cost metrics can be retrieved and aggregated 138 from routing protocol or other traffic measurement management tool 139 (See Figure 1). Note that these cost metrics are optional metrics 140 and Not all these cost metrics need to be exposed to the application. 142 If some of these cost metrics have privacy concern, the alto server 143 should not provide them to the client. 145 +--------+ +--------+ +--------+ 146 | Client | | Client | | Client | 147 +----^---+ +---^----+ +---^----+ 148 | | | 149 +-----------|-----------+ 150 NBI |ALTO protocol 151 | 152 | 153 +--+-----+ retrieve +---------+ 154 | ALTO |<----------------| Routing | 155 | Server | and aggregation| | 156 | |<-------------+ | Protocol| 157 +--------+ | +---------+ 158 | 159 | +---------+ 160 | |Management 161 ---| | 162 | Tool | 163 +---------+ 164 Figure 1.End to End Path Cost Metrics Exposing 166 When an ALTO server supports a cost metric defined in this document, 167 the server SHOULD announce the metric in its IRD. 169 The definitions of a set of cost metrics can allow us to extend the 170 ALTO base protocol (e.g., allowing output and constraints use 171 different cost metrics), but such extensions are not in the scope of 172 this document. 174 One challenge in describing the metrics is that performance metrics 175 often depend on configuration parameters. For example, the value of 176 packet loss rate depends on the measurement interval and varies over 177 time. To handle this issue, ALTO server may collect data on time 178 periods covering the past, present or only collect data on present 179 time. The ALTO may further aggregate these data to provide an 180 abstract and unified view that can be more useful to applications. 181 To make the ALTO client understand whether the performance data is 182 past data or present data, the ALTO server needs to expose to the 183 client the validity period of each performance metric. 185 Following the ALTO base protocol, this document uses JSON to specify 186 the value type of each defined metric. See [RFC4627] for JSON data 187 type specification. 189 2. Data sources, computation of defined cost metrics 191 The cost metrics described in this document are similar, in that they 192 may use similar data sources and have similar issues in their 193 calculation. Hence, instead of specifying such issues for each 194 metric individually, we specify the common issue in this section. 196 2.1. Data sources 198 An ALTO server needs data sources to compute the cost metrics 199 described in this document. This document does not define the exact 200 data sources. For example, the ALTO server may use log servers or 201 the OAM system as its data source [ALTO-DEPLOYMENT]. In particular, 202 the cost metrics defined in this document can be computed using 203 routing systems as the data sources. Mechanisms defined in 204 [RFC3630], [RFC3784], [OSPF-TE], [ISIS-TE], [BGP-LS] and [BGP-PM] 205 that allow an ALTO Server to retrieve and derive the necessary 206 information to compute the metrics that we described in this 207 document. 209 2.2. Computation of metrics 211 An ALTO server processes measurements from data sources to compute 212 exposed metrics. It may need performance data processing tasks such 213 as aggregating the results across multiple systems, removing 214 outliers, and creating additional statistics. 216 One specific challenge in deriving the metrics in this document is 217 that these performance metrics depend on some configuration 218 parameters. For example, the value of packet loss rate depends on 219 the measurement interval and varies over time. If the ALTO server 220 uses aforementioned routing protocol based mechanisms as data 221 sources, then the measurement interval may be preconfigured by the 222 routing protocol. For example, Section 5 of [ISIS-TE] defines a 223 default measurement interval of 30 seconds. This document uses the 224 term Measurement Interval to refer to the measurement interval used 225 by the data sources. In the [ISIS-TE] case, it is a measurement 226 interval set by routing protocol. The Measurement Interval(s) of the 227 data sources can be different from the interval that this document 228 derives the metric, e.g., the interval used by this document is 229 multiple of measurement interval of the data sources. Hence, an ALTO 230 server needs to resolve the mismatch, when it happens. 232 Another issue of converting from data source measurements to ALTO 233 exposed metric values is that the measurement results that the ALTO 234 Server retrieves may be defined for only links, and hence, the server 235 will need to compose the link metrics to obtain path metrics used in 236 services such as the Cost Map Service. In this definition, we define 237 the metrics to be independent of link or path, considering that 238 future ALTO extensions may define link-based services, and hence the 239 defined metrics should still be usable. 241 3. Cost Metric: OWDelay 243 Metric name: 245 Periodic One Way Delay 247 Metric Description: 249 To specify spatial and temporal aggregated delay of a stream of 250 packets exchanged between the specified source and destination or 251 the time that the packet spends to travel from source to 252 destination. The spatial aggregation unit is specified in the 253 query context (e.g., PID to PID, or endpoint to endpoint); and the 254 temporal unit is specified as the measurement interval in the 255 query context. 257 Method of Measurement or Calculation: 259 See section 8.3 of [I-D.ietf-ippm-initial-registry] for 260 Measurement Method. 262 Units of Measurement: 264 See section 7.4.4 of [I-D.ietf-ippm-initial-registry] for 265 Measurement Unit. The unit is expressed in seconds. 267 Measurement Point(s) with Potential Measurement Domain: 269 See section 2.1, Data sources. 271 Measurement Timing: 273 See section 8.3.5 of [I-D.ietf-ippm-initial-registry] for 274 Measurement Timing. 276 Use and Applications: 278 This is intended to be a constraint attribute value. A Cost Mode 279 is encoded as a US-ASCII string. The Metric value Type is a 280 single 'JSONNumber' type value containing a non-negative integer 281 component that may be followed by an exponent part. 283 This metric could be used as a cost metric constraint attribute 284 used either together with cost metric attribute 'routingcost' or 285 on its own or as a returned cost metric in the response. 287 Example 1: Delay value on source-destination endpoint pairs 288 POST /endpointcost/lookup HTTP/1.1 289 Host: alto.example.com 290 Content-Length: TBA 291 Content-Type: application/alto-endpointcostparams+json 292 Accept: application/alto-endpointcost+json,application/alto-error+json 294 { 295 "cost-type": {"cost-mode" : "numerical", 296 "cost-metric" : "delay"}, 297 "endpoints" : { 298 "srcs": [ "ipv4:192.0.2.2" ], 299 "dsts": [ 300 "ipv4:192.0.2.89", 301 "ipv4:198.51.100.34", 302 "ipv6:2000::1:2345:6789:abcd" 303 ] 304 } 305 } 307 HTTP/1.1 200 OK 308 Content-Length: TBA 309 Content-Type: application/alto-endpointcost+json 310 { 311 "meta" :{ 312 "cost-type": {"cost-mode" : "numerical", 313 "cost-metric" : "delay" 314 } 315 }, 316 "endpoint-cost-map" : { 317 "ipv4:192.0.2.2": { 318 "ipv4:192.0.2.89" : 10, 319 "ipv4:198.51.100.34" : 20, 320 "ipv6:2000::1:2345:6789:abcd" : 30, 321 } 322 } 323 } 325 4. Cost Metric: PDV 327 Metric name: 329 Pakcet Delay Variation 331 Metric Description: 333 To specify spatial and temporal aggregated jitter (packet delay 334 variation) with respect to the minimum delay observed on the 335 stream over the specified source and destination. The spatial 336 aggregation unit is specified in the query context (e.g., PID to 337 PID, or endpoint to endpoint); and the temporal unit is specified 338 as the measurement interval in the query context. 340 Method of Measurement or Calculation: 342 See section 5.3 of [I-D.ietf-ippm-initial-registry] for 343 Measurement Method. 345 Units of Measurement: 347 See section 5.4.4 of [I-D.ietf-ippm-initial-registry] for 348 Measurement Unit. The unit is expressed in seconds. 350 Measurement Point(s) with Potential Measurement Domain: 352 See section 2.1, Data sources. 354 Measurement Timing: 356 See section 5.3.5 of [I-D.ietf-ippm-initial-registry] for 357 Measurement Timing. 359 Measurement Timing:Use and Applications: 361 See section 3 for use and application. 363 Example 2: Delayjitter value on source-destination endpoint pairs 364 POST /endpointcost/lookup HTTP/1.1 365 Host: alto.example.com 366 Content-Length: TBA 367 Content-Type: application/alto-endpointcostparams+json 368 Accept: application/alto-endpointcost+json,application/alto-error+json 370 { 371 "cost-type": {"cost-mode" : "numerical", 372 "cost-metric" : "delayjitter"}, 373 "endpoints" : { 374 "srcs": [ "ipv4:192.0.2.2" ], 375 "dsts": [ 376 "ipv4:192.0.2.89", 377 "ipv4:198.51.100.34", 378 "ipv6:2000::1:2345:6789:abcd" 379 ] 380 } 381 } 382 HTTP/1.1 200 OK 383 Content-Length: TBA 384 Content-Type: application/alto-endpointcost+json 385 { 386 "meta": { 387 "cost type": { 388 "cost-mode": "numerical", 389 "cost-metric":"delayjitter" 390 } 391 }, 392 "endpoint-cost-map": { 393 "ipv4:192.0.2.2": { 394 "ipv4:192.0.2.89" : 0 395 "ipv4:198.51.100.34" : 1 396 "ipv6:2000::1:2345:6789:abcd" : 5 397 } 398 } 399 } 401 5. Cost Metric: Packet Loss 403 Metric name: 405 Packet loss 407 Metric Description: 409 To specify spatial and temporal aggregated packet loss over the 410 specified source and destination. The spatial aggregation unit is 411 specified in the query context (e.g., PID to PID, or endpoint to 412 endpoint); and the temporal unit is specified as the measurement 413 interval in the query context. 415 Method of Measurement or Calculation: 417 See section 2.2, Computation of metrics. 419 Units of Measurement: 421 The unit is percentile. 423 Measurement Point(s) with Potential Measurement Domain: 425 See section 2.1, Data sources. 427 Measurement Timing: 429 See section 2.1, second paragraph for Measurement Timing. 431 Use and Applications: 433 See section 3 for use and application. 435 Example 3: pktloss value on source-destination endpoint pairs 436 POST /endpointcost/lookup HTTP/1.1 437 Host: alto.example.com 438 Content-Length: TBA 439 Content-Type: application/alto-endpointcostparams+json 440 Accept: application/alto-endpointcost+json,application/alto-error+json 442 { 443 "cost-type": {"cost-mode" : "numerical", 444 "cost-metric" : "pktloss"}, 445 "endpoints" : { 446 "srcs": [ "ipv4:192.0.2.2" ], 447 "dsts": [ 448 "ipv4:192.0.2.89", 449 "ipv4:198.51.100.34", 450 "ipv6:2000::1:2345:6789:abcd" 451 ] 452 } 453 } 454 HTTP/1.1 200 OK 455 Content-Length: TBA 456 Content-Type: application/alto-endpointcost+json 457 { 458 "meta": { 459 "cost type": { 460 "cost-mode": "numerical", 461 "cost-metric":"pktloss"} 462 } 463 }, 464 "endpoint-cost-map": { 465 "ipv4:192.0.2.2": { 466 "ipv4:192.0.2.89" : 0, 467 "ipv4:198.51.100.34": 1, 468 "ipv6:2000::1:2345:6789:abcd" : 2, 469 } 470 } 471 } 473 6. Cost Metric: Hop Count 475 The metric hopcount is mentioned in [ALTO] as an example. This 476 section further clarifies its properties. 478 Metric name: 480 Hop count 482 Metric Description: 484 To specify the number of hops in the path between the source 485 endpoint and the destination endpoint. The hop count is a basic 486 measurement of distance in a network and can be exposed as Router 487 Hops, IP hops or other hops in direct relation to the routing 488 prtocols originating this information. it might also result from 489 the aggregation of such information. 491 Method of Measurement or Calculation: 493 See section 2.2, Computation of metrics. 495 Units of Measurement: 497 The unit is integer number. 499 Measurement Point(s) with Potential Measurement Domain: 501 See section 2.1, Data sources. 503 Measurement Timing: 505 See section 2.1, second paragraph for Measurement Timing. 507 Use and Applications: 509 See section 3 for use and application. 511 Example 4: hopcount value on source-destination endpoint pairs 512 POST /endpointcost/lookup HTTP/1.1 513 Host: alto.example.com 514 Content-Length: TBA 515 Content-Type: application/alto-endpointcostparams+json 516 Accept: application/alto-endpointcost+json,application/alto-error+json 518 { 519 "cost-type": {"cost-mode" : "numerical", 520 "cost-metric" : "hopcount"}, 521 "endpoints" : { 522 "srcs": [ "ipv4:192.0.2.2" ], 523 "dsts": [ 524 "ipv4:192.0.2.89", 525 "ipv4:198.51.100.34", 526 "ipv6:2000::1:2345:6789:abcd" 527 ] 528 } 529 } 530 HTTP/1.1 200 OK 531 Content-Length: TBA 532 Content-Type: application/alto-endpointcost+json 533 { 534 "meta": { 535 "cost type": { 536 "cost-mode": "numerical", 537 "cost-metric":"hopcount"} 538 } 539 }, 540 "endpoint-cost-map": { 541 "ipv4:192.0.2.2": { 542 "ipv4:192.0.2.89" : 5, 543 "ipv4:198.51.100.34": 3, 544 "ipv6:2000::1:2345:6789:abcd" : 2, 545 } 546 } 547 } 549 7. Cost Metric: Bandwidth 551 Metric name: 553 Bandwidth 555 Metric Description: 557 To specify spatial and temporal aggregated bandwidth over the 558 specified source and destination. The spatial aggregation unit is 559 specified in the query context (e.g., PID to PID, or endhost to 560 endhost); and the temporal unit is specified as the measurement 561 interval in the query context. 563 This is just a definition of a class of cost metric 'bandwidth'. 564 The use of this cost metric is always in conjunction with what it 565 represents, which could be Max Bandwidth (maxbw), Residual 566 Bandwidth (residuebw) etc. 568 Method of Measurement or Calculation: 570 See section 2.2, Computation of metrics. 572 Units of Measurement: 574 The units are bytes per second. 576 Measurement Point(s) with Potential Measurement Domain: 578 See section 2.1, Data sources. 580 Measurement Timing: 582 See section 2.1, second paragraph for Measurement Timing. 584 Use and Applications: 586 See section 3 for use and application. 588 8. Cost Metric: Maximum Bandwidth 590 Metric name: 592 Maximum Bandwidth 594 Metric Description: 596 To specify spatial and temporal maximum bandwidth over the 597 specified source and destination. The values correspond to the 598 maximum bandwidth that can be used (motivated from RFC 3630 Sec. 599 2.5.6.). The spatial aggregation unit is specified in the query 600 context (e.g., PID to PID, or endhost to endhost); and the 601 temporal unit is specified as the measurement interval in the 602 query context. 604 Method of Measurement or Calculation: 606 See section 2.2, Computation of metrics. 608 Units of Measurement: 610 See definition for the Bandwidth Cost Metric. 612 Measurement Point(s) with Potential Measurement Domain: 614 See section 2.1, Data sources. 616 Measurement Timing: 618 See section 2.1, second paragraph for Measurement Timing. 620 Use and Applications: 622 See section 3 for use and application. 624 Example 5: maxbw value on source-destination endpoint pairs 626 POST/ endpointcost/lookup HTTP/1.1 627 Host: alto.example.com 628 Content-Length: TBA 629 Content-Type: application/alto-endpointcostparams+json 630 Accept: application/alto-endpointcost+json,application/alto-error+json 632 { 633 "cost-type": { "cost-mode": "numerical", 634 "cost-metric": "maxbw"}, 635 "endpoints": { 636 "srcs": [ "ipv4 : 192.0.2.2" ], 637 "dsts": [ 638 "ipv4:192.0.2.89", 639 "ipv4:198.51.100.34", 640 "ipv6:2000::1:2345:6789:abcd" 641 ] 642 } 643 } 645 HTTP/1.1 200 OK 646 Content-Length: TBA 647 Content-Type: application/alto-endpointcost+json 648 { 649 "meta": { 650 "cost-type": { 651 "cost-mode": "numerical", 652 "cost-metric": "maxbw" 653 } 654 }, 655 "endpoint-cost-map": { 656 "ipv4:192.0.2.2": { 657 "ipv4:192.0.2.89": 0, 658 "ipv4:198.51.100.34" : 2000, 659 "ipv6:2000::1:2345:6789:abcd": 5000, 660 } 661 } 662 } 664 9. Cost Metric: Maximum Reservable Bandwidth 666 Metric name: 668 Maximum Reservable Bandwidth 670 Metric Description: 672 To specify spatial and temporal maximum reservable bandwidth over 673 the specified source and destination. The value is corresponding 674 to the maximum bandwidth that can be reserved (motivated from RFC 675 3630 Sec. 2.5.7.). The spatial aggregation unit is specified in 676 the query context (e.g., PID to PID, or endpoint to endpoint); and 677 the temporal unit is specified as the measurement interval in the 678 query context. 680 Method of Measurement or Calculation: 682 See section 2.2, Computation of metrics. 684 Units of Measurement: 686 See definition of the Bandwidth Cost Metric. 688 Measurement Point(s) with Potential Measurement Domain: 690 See section 2.1, Data sources. 692 Measurement Timing: 694 See section 2.1, second paragraph for Measurement Timing. 696 Use and Applications: 698 See section 3 for use and application. 700 Example 6: maxresbw value on source-destination endpoint pairs 702 POST/ endpointcost/lookup HTTP/1.1 703 Host: alto.example.com 704 Content-Length: TBA 705 Content-Type: application/alto-endpointcostparams+json 706 Accept: application/alto-endpointcost+json,application/alto-error+json 708 { 709 "cost-type" { "cost-mode": "numerical", 710 "cost-metric": "maxresbw"}, 711 "endpoints": { 712 "srcs": [ "ipv4 : 192.0.2.2" ], 713 "dsts": [ 714 "ipv4:192.0.2.89", 715 "ipv4:198.51.100.34", 716 "ipv6:2000::1:2345:6789:abcd" 717 ] 718 } 719 } 720 HTTP/1.1 200 OK 721 Content-Length: TBA 722 Content-Type: application/alto-endpointcost+json 723 { 724 "meta": { 725 "cost-type": { 726 "cost-mode": "numerical", 727 "cost-metric": "maxresbw" 728 } 729 }, 730 " endpoint-cost-map": { 731 "ipv4:192.0.2.2" { 732 "ipv4:192.0.2.89" : 0, 733 "ipv4:198.51.100.34": 2000, 734 "ipv6:2000::1:2345:6789:abcd": 5000, 735 } 736 } 737 } 739 10. Cost Metric: RTT 741 Metric name: 743 Round Trip Delay 745 Metric Description: 747 To specify spatial and temporal aggregated round trip delay 748 between the specified source and destination or the time that the 749 packet spends to travel from source to destination and then from 750 destination to source. The spatial aggregation unit is specified 751 in the query context (e.g., PID to PID, or endpoint to endpoint); 752 and the temporal unit is specified as the measurement interval in 753 the query context. 755 Method of Measurement or Calculation: 757 See section 2.2, Computation of metrics. 759 Units of Measurement: 761 See definition for the bandwidth Cost Metric. 763 Measurement Point(s) with Potential Measurement Domain: 765 See section 2.1, Data sources. 767 Measurement Timing: 769 See section 2.1, second paragraph for Measurement Timing. 771 Use and Applications: 773 See section 3 for use and application. 775 Example 7: Round Trip Delay value on source-destination endpoint pairs 776 POST /endpointcost/lookup HTTP/1.1 777 Host: alto.example.com 778 Content-Length: TBA 779 Content-Type: application/alto-endpointcostparams+json 780 Accept: application/alto-endpointcost+json,application/alto-error+json 782 { 783 "cost-type": {"cost-mode" : "numerical", 784 "cost-metric" : "rtt"}, 785 "endpoints" : { 786 "srcs": [ "ipv4:192.0.2.2" ], 787 "dsts": [ 788 "ipv4:192.0.2.89", 789 "ipv4:198.51.100.34", 790 "ipv6:2000::1:2345:6789:abcd" 791 ] 792 } 793 } 795 HTTP/1.1 200 OK 796 Content-Length: TBA 797 Content-Type: application/alto-endpointcost+json 798 { 799 "meta" :{ 800 "cost-type": {"cost-mode" : "numerical", 801 "cost-metric" : "rtt" 802 } 803 }, 804 "endpoint-cost-map" : { 805 "ipv4:192.0.2.2": { 806 "ipv4:192.0.2.89" : 4, 807 "ipv4:198.51.100.34" : 3, 808 "ipv6:2000::1:2345:6789:abcd" : 2, 809 } 810 } 811 } 813 11. Cost Metric: Residue Bandwidth 815 Metric name: 817 Residue Bandwidth 819 Metric Description: 821 To specify spatial and temporal residual bandwidth over the 822 specified source and destination. The value is calculated by 823 subtracting tunnel reservations from Maximum Bandwidth (motivated 824 from [RFC7810], Sec.4.5.). The spatial aggregation unit is 825 specified in the query context (e.g., PID to PID, or endpoint to 826 endpoint); and the temporal unit is specified as the measurement 827 interval in the query context. 829 Method of Measurement or Calculation: 831 See section 2.2, Computation of metrics. 833 Units of Measurement: 835 See definition of the general Bandwidth. 837 Measurement Point(s) with Potential Measurement Domain: 839 See section 2.1, Data sources. 841 Measurement Timing: 843 See section 2.1, second paragraph for Measurement Timing. 845 Use and Applications: 847 See section 3 for use and application. 849 Example 8: residuebw value on source-destination endpoint pairs 851 POST/ endpointcost/lookup HTTP/1.1 852 Host: alto.example.com 853 Content-Length: TBA 854 Content-Type: application/alto-endpointcostparams+json 855 Accept: application/alto-endpointcost+json,application/alto-error+json 857 { 858 "cost-type": { "cost-mode": "numerical", 859 "cost-metric": "residubw"}, 860 "endpoints": { 861 "srcs": [ "ipv4 : 192.0.2.2" ], 862 "dsts": [ 863 "ipv4:192.0.2.89", 864 "ipv4:198.51.100.34", 865 "ipv6:2000::1:2345:6789:abcd" 866 ] 867 } 868 } 870 HTTP/1.1 200 OK 871 Content-Length: TBA 872 Content-Type: application/alto-endpointcost+json 873 { 874 "meta": { 875 "cost-type" { 876 "cost-mode": "numerical", 877 "cost-metric": "residubw" 878 } 879 }, 880 "endpoint-cost-map" { 881 "ipv4:192.0.2.2" { 882 "ipv4:192.0.2.89" : 0, 883 "ipv4:198.51.100.34": 2000, 884 "ipv6:2000::1:2345:6789:abcd": 5000, 885 } 886 } 887 } 889 12. Cost Metric: Available Bandwidth 891 Metric name: 893 Available Bandwidth 895 Metric Description: 897 To specify spatial and temporal availaible bandwidth over the 898 specified source and destination. The value is calculated by 899 subtracting the measured bandwidth used for the actual forwarding 900 of best effort traffic from Residue Bandwidth (motivated from 901 [RFC7810], Sec.4.6.). The spatial aggregation unit is specified 902 in the query context (e.g., PID to PID, or endpoint to endpoint); 903 and the temporal unit is specified as the measurement interval in 904 the query context. 906 Method of Measurement or Calculation: 908 See section 2.2, Computation of metrics. 910 Units of Measurement: 912 See definition of the general Bandwidth. 914 Measurement Point(s) with Potential Measurement Domain: 916 See section 2.1, Data sources. 918 Measurement Timing: 920 See section 2.1, second paragraph for Measurement Timing. 922 Use and Applications: 924 See section 3 for use and application. 926 Example 9: availbw value on source-destination endpoint pairs 928 POST /endpointcost/lookup HTTP/1.1 929 Host: alto.example.com 930 Content-Length: TBA 931 Content-Type: application/alto-endpointcostparams+json 932 Accept: application/alto-endpointcost+json,application/alto-error+json 934 { 935 "cost-type": { "cost-mode": "numeric", 936 "cost-metric": "availbw"}, 937 "endpoints": { 938 "srcs": [ "ipv4 : 192.0.2.2" ], 939 "dsts": [ 940 "ipv4:192.0.2.89", 941 "ipv4:198.51.100.34", 942 "ipv6:2000::1:2345:6789:abcd" 943 ] 944 } 945 } 947 HTTP/1.1 200 OK 948 Content-Length: TBA 949 Content-Type: application/alto-endpointcost+json 950 { 951 "meta": { 952 "cost-type": { 953 "cost-mode": "numeric", 954 "cost-metric": "availbw" 955 } 956 }, 958 "endpoint-cost-map": { 959 "ipv4:192.0.2.2" { 960 "ipv4:192.0.2.89" : [6,5,7,8,4,10,7,6], 961 "ipv4:198.51.100.34" : [7,4,6,8,5,9,6,7], 962 "ipv6:2000::1:2345:6789:abcd" : [7,6,8,5,7,9,6,8], 963 } 964 } 965 } 967 13. Cost Metric: Utilized Bandwidth 969 Metric name: 971 Utilized Bandwidth 973 Metric Description: 975 To specify spatial and temporal utilized bandwidth over the 976 specified source and destination. The value is corresponding to 977 the actual measured bandwidth used for all traffic (motivated from 978 [RFC7810], Sec.4.7.). The spatial aggregation unit is specified 979 in the query context (e.g., PID to PID, or endpoint to endpoint); 980 and the temporal unit is specified as the measurement interval in 981 the query context. 983 Method of Measurement or Calculation: 985 See section 2.2, Computation of metrics. 987 Units of Measurement: 989 See definition of the general Bandwidth. 991 Measurement Point(s) with Potential Measurement Domain: 993 See section 2.1, Data sources. 995 Measurement Timing: 997 See section 2.1, second paragraph for Measurement Timing. 999 Use and Applications: 1001 See section 3 for use and application. 1003 Example 10: utilbw value on source-destination endpoint pairs 1005 POST /endpointcost/lookup HTTP/1.1 1006 Host: alto.example.com 1007 Content-Length: TBA 1008 Content-Type: application/alto-endpointcostparams+json 1009 Accept: application/alto-endpointcost+json,application/alto-error+json 1011 { 1012 "cost-type": {"cost-mode" : "numerical", 1013 "cost-metric" : "utilbw"}, 1014 "endpoints": { 1015 "srcs" : [ "ipv4 : 192.0.2.2" ], 1016 "dsts" : [ 1017 "ipv4:192.0.2.89", 1018 "ipv4:198.51.100.34", 1019 "ipv6:2000::1:2345:6789:abcd" 1020 ] 1021 } 1022 } 1024 HTTP/1.1 200 OK 1025 Content-Length: TBA 1026 Content-Type: application/alto-endpointcost+json 1027 { 1028 "meta": { 1029 "cost type": { 1030 "cost-mode": "numerical", 1031 "cost-metric": "utilbw" 1032 } 1033 }, 1034 "endpoint-cost-map": { 1035 "ipv4:192.0.2.2" { 1036 "ipv4:192.0.2.89" : 0, 1037 "ipv4:198.51.100.34" : 2000, 1038 "ipv6:2000::1:2345:6789:abcd" : 5000, 1039 } 1040 } 1041 } 1043 14. Security Considerations 1045 The properties defined in this document present no security 1046 considerations beyond those in Section 15 of the base ALTO 1047 specification [ALTO]. 1049 However concerns addressed in Sections "15.1 Authenticity and 1050 Integrity of ALTO Information", "15.2 Potential Undesirable Guidance 1051 from Authenticated ALTO Information" and "15.3 Confidentiality of 1052 ALTO Information" remain of utmost importance. Indeed, TE 1053 performance is a highly sensitive ISP information and sharing TE 1054 metric values in numerical mode requires full mutual confidence 1055 between the entities managing the ALTO Server and Client. Numerical 1056 TE performance information will most likely be distributed by ALTO 1057 Servers to Clients under strict and formal mutual trust agreements. 1058 One the other hand, ALTO Clients must be cognizant on the risks 1059 attached to such information that they would have acquired outside 1060 formal conditions of mutual trust. 1062 15. IANA Considerations 1064 IANA has added the following entries to the ALTO cost map Properties 1065 registry, defined in Section 3 of [RFCXXX]. 1067 +-----------+--------------+------------------------+ 1068 | Namespace | Property | Reference | 1069 +-----------+--------------+------------------------+ 1070 | | owdelay | [RFCxxxx], Section 3 | 1071 | | pdv | [RFCxxxx], Section 4 | 1072 | | pktloss | [RFCxxxx], Section 5 | 1073 | | hopcount | [RFCxxxx], Section 6 | 1074 | | bandwidth | [RFCxxxx], Section 7 | 1075 | | maxbw | [RFCxxxx], Section 8 | 1076 | | maxresbw | [RFCxxxx] Section 9 | 1077 | | rtt | [RFCxxxx], Section 10 | 1078 | | residbw | [RFCxxxx], Section 11 | 1079 | | availbw | [RFCxxxx], Section 12 | 1080 | | utilbw | [RFCxxxx], Section 13 | 1081 +-----------+--------------+------------------------+ 1083 16. References 1085 16.1. Normative References 1087 [I-D.ietf-idr-te-pm-bgp] 1088 Previdi, S., Wu, Q., Gredler, H., Ray, S., 1089 jefftant@gmail.com, j., Filsfils, C., and L. Ginsberg, 1090 "BGP-LS Advertisement of IGP Traffic Engineering 1091 Performance Metric Extensions", draft-ietf-idr-te-pm- 1092 bgp-03 (work in progress), May 2016. 1094 [I-D.ietf-ippm-initial-registry] 1095 Morton, A., Bagnulo, M., Eardley, P., and K. D'Souza, 1096 "Initial Performance Metric Registry Entries", draft-ietf- 1097 ippm-initial-registry-01 (work in progress), July 2016. 1099 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1100 Requirement Levels", March 1997. 1102 [RFC4627] Crockford, D., "The application/json Media Type for 1103 JavaScript Object Notation (JSON)", RFC 4627, 1104 DOI 10.17487/RFC4627, July 2006, 1105 . 1107 [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax 1108 Specifications: ABNF", STD 68, RFC 5234, 1109 DOI 10.17487/RFC5234, January 2008, 1110 . 1112 [RFC7285] Alimi, R., Ed., Penno, R., Ed., Yang, Y., Ed., Kiesel, S., 1113 Previdi, S., Roome, W., Shalunov, S., and R. Woundy, 1114 "Application-Layer Traffic Optimization (ALTO) Protocol", 1115 RFC 7285, DOI 10.17487/RFC7285, September 2014, 1116 . 1118 [RFC7471] Giacalone, S., Ward, D., Drake, J., Atlas, A., and S. 1119 Previdi, "OSPF Traffic Engineering (TE) Metric 1120 Extensions", RFC 7471, DOI 10.17487/RFC7471, March 2015, 1121 . 1123 [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and 1124 S. Ray, "North-Bound Distribution of Link-State and 1125 Traffic Engineering (TE) Information Using BGP", RFC 7752, 1126 DOI 10.17487/RFC7752, March 2016, 1127 . 1129 [RFC7810] Previdi, S., Ed., Giacalone, S., Ward, D., Drake, J., and 1130 Q. Wu, "IS-IS Traffic Engineering (TE) Metric Extensions", 1131 RFC 7810, DOI 10.17487/RFC7810, May 2016, 1132 . 1134 16.2. Informative References 1136 [I-D.ietf-alto-deployments] 1137 Stiemerling, M., Kiesel, S., Scharf, M., Seidel, H., and 1138 S. Previdi, "ALTO Deployment Considerations", draft-ietf- 1139 alto-deployments-16 (work in progress), July 2016. 1141 [RFC6390] Clark, A. and B. Claise, "Framework for Performance Metric 1142 Development", RFC 6390, July 2011. 1144 Authors' Addresses 1146 Qin Wu 1147 Huawei 1148 101 Software Avenue, Yuhua District 1149 Nanjing, Jiangsu 210012 1150 China 1152 Email: bill.wu@huawei.com 1154 Y. Richard Yang 1155 Yale University 1156 51 Prospect St 1157 New Haven, CT 06520 1158 USA 1160 Email: yry@cs.yale.edu 1162 Young Lee 1163 Huawei 1164 1700 Alma Drive, Suite 500 1165 Plano, TX 75075 1166 USA 1168 Email: leeyoung@huawei.com 1170 Dhruv Dhody 1171 Huawei 1172 Leela Palace 1173 Bangalore, Karnataka 560008 1174 INDIA 1176 Email: dhruv.ietf@gmail.com 1178 Sabine Randriamasy 1179 Nokia Bell Labs 1180 Route de Villejust 1181 Nozay 91460 1182 FRANCE 1184 Email: sabine.randriamasy@nokia-bell-labs.com