idnits 2.17.1 draft-gandhi-spring-udp-pm-01.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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (June 9, 2018) is 2147 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) -- Obsolete informational reference (is this intentional?): RFC 8321 (Obsoleted by RFC 9341) Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SPRING Working Group R. Gandhi, Ed. 3 Internet-Draft C. Filsfils 4 Intended Status: Standards Track S. Soni 5 Expires: December 11, 2018 Cisco Systems, Inc. 6 D. Voyer 7 Bell Canada 8 S. Salsano 9 Universita di Roma "Tor Vergata" 10 P. L. Ventre 11 CNIT 12 June 9, 2018 14 UDP Path for In-band 15 Performance Measurement for Segment Routing Networks 16 draft-gandhi-spring-udp-pm-01 18 Abstract 20 Segment Routing (SR) is applicable to both Multiprotocol Label 21 Switching (SR-MPLS) and IPv6 (SRv6) data planes. This document 22 specifies a procedure for using UDP path for sending and processing 23 in-band probe query and response messages for Performance Measurement 24 (PM). The procedure uses the RFC 6374 defined mechanisms for Delay 25 and Loss performance measurement. The procedure specified is 26 applicable to IPv4, IPv6, SR-MPLS, and SRv6 data planes for both 27 links and end-to-end measurement for SR Policies. This document also 28 defines mechanisms for handling Equal Cost Multipaths (ECMPs) for SR 29 Policies. In addition, this document defines new Return Path Segment 30 List TLV for two-way performance measurement. 32 Status of This Memo 34 This Internet-Draft is submitted in full conformance with the 35 provisions of BCP 78 and BCP 79. 37 Internet-Drafts are working documents of the Internet Engineering 38 Task Force (IETF). Note that other groups may also distribute 39 working documents as Internet-Drafts. The list of current Internet- 40 Drafts is at http://datatracker.ietf.org/drafts/current/. 42 Internet-Drafts are draft documents valid for a maximum of six months 43 and may be updated, replaced, or obsoleted by other documents at any 44 time. It is inappropriate to use Internet-Drafts as reference 45 material or to cite them other than as "work in progress." 47 Copyright Notice 49 Copyright (c) 2018 IETF Trust and the persons identified as the 50 document authors. All rights reserved. 52 This document is subject to BCP 78 and the IETF Trust's Legal 53 Provisions Relating to IETF Documents 54 (http://trustee.ietf.org/license-info) in effect on the date of 55 publication of this document. Please review these documents 56 carefully, as they describe your rights and restrictions with respect 57 to this document. Code Components extracted from this document must 58 include Simplified BSD License text as described in Section 4.e of 59 the Trust Legal Provisions and are provided without warranty as 60 described in the Simplified BSD License. 62 Table of Contents 64 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 65 2. Conventions Used in This Document . . . . . . . . . . . . . . 4 66 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 67 2.2. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 4 68 2.3. Reference Topology . . . . . . . . . . . . . . . . . . . . 5 69 3. Probe Messages . . . . . . . . . . . . . . . . . . . . . . . . 6 70 3.1. Probe Query Message . . . . . . . . . . . . . . . . . . . 6 71 3.1.1. Delay Measurement Probe Query Message . . . . . . . . 6 72 3.1.2. Loss Measurement Probe Query Message . . . . . . . . . 6 73 3.1.2.1. Loss Measurement Flags . . . . . . . . . . . . . . 7 74 3.1.3. In-band Probe Query for SR Links . . . . . . . . . . . 7 75 3.1.4. In-band Probe Query for End-to-end Measurement of SR 76 Policy . . . . . . . . . . . . . . . . . . . . . . . . 8 77 3.1.4.1. In-band Probe Query Message for SR-MPLS Policy . . 8 78 3.1.4.2. In-band Probe Query Message for SRv6 Policy . . . 8 79 3.2. Probe Response Message . . . . . . . . . . . . . . . . . . 8 80 3.2.1. One-way Measurement for SR Link and end-to-end SR 81 Policy . . . . . . . . . . . . . . . . . . . . . . . . 10 82 3.2.1.1. Probe Response Message to Controller . . . . . . . 10 83 3.2.2. Two-way Measurement for SR Links . . . . . . . . . . . 10 84 3.2.3. Two-way End-to-end Measurement of SR Policy . . . . . 10 85 3.2.3.1. Return Path Segment List TLV . . . . . . . . . . . 10 86 3.2.3.2. In-band Probe Response Message for SR-MPLS 87 Policy . . . . . . . . . . . . . . . . . . . . . . 11 88 3.2.3.3. In-band Probe Response Message for SRv6 Policy . . 12 89 3.3. ECMP Support . . . . . . . . . . . . . . . . . . . . . . . 12 90 3.4. Sequence Number TLV . . . . . . . . . . . . . . . . . . . 13 91 4. Security Considerations . . . . . . . . . . . . . . . . . . . 14 92 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 93 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15 94 6.1. Normative References . . . . . . . . . . . . . . . . . . . 15 95 6.2. Informative References . . . . . . . . . . . . . . . . . . 15 96 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 17 97 Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 98 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17 100 1. Introduction 102 Segment Routing (SR) technology greatly simplifies network operations 103 for Software Defined Networks (SDNs). SR is applicable to both 104 Multiprotocol Label Switching (SR-MPLS) and IPv6 (SRv6) data planes. 105 SR takes advantage of the Equal-Cost Multipaths (ECMPs) between 106 source, transit and destination nodes. SR Policies as defined in 107 [I-D.spring-segment-routing-policy] are used to steer traffic through 108 a specific, user-defined path using a stack of Segments. Built-in SR 109 Performance Measurement (PM) is one of the essential requirements to 110 provide Service Level Agreements (SLAs). 112 The One-Way Active Measurement Protocol (OWAMP) defined in [RFC4656] 113 and Two-Way Active Measurement Protocol (TWAMP) defined in [RFC5357] 114 provide capabilities for the measurement of various performance 115 metrics in IP networks. These protocols rely on control channel 116 signaling to establish a connection over an UDP path to bootstrap PM 117 sessions, and they are not compatible with the mechanisms defined in 118 [RFC6374]. These protocols lack support for IEEE 1588 timestamps 119 [IEEE1588] and direct-mode LM, which are required in Segment Routing 120 networks [RFC6374]. 122 [RFC6374] specifies protocol mechanisms to enable the efficient and 123 accurate measurement of performance metrics and can be used in SR 124 networks with MPLS data plane [I-D.spring-sr-mpls-pm]. [RFC6374] 125 addresses the limitations of the IP based performance measurement 126 protocols. However, [RFC6374] requires data plane to support MPLS 127 Generic Associated Channel Label (GAL) and Generic Associated Channel 128 (G-Ach), which may not be supported on all nodes in the network. 130 [RFC7876] specifies the procedures to be used when sending and 131 processing out-of-band performance measurement probe response 132 messages over an UDP return path for RFC 6374 based probe queries. 133 [RFC7876] can be used to send out-of-band PM probe responses in both 134 SR-MPLS and SRv6 networks for one-way performance measurement. 136 For SR Policies, there is a need to measure the performance of all 137 end-to-end forwarding paths due to presence of ECMPs between the 138 source and transit nodes, between transit nodes and between transit 139 and destination nodes. Existing PM protocols (e.g. OWAMP, TWAMP, RFC 140 6374, etc.) do not define handling for ECMP forwarding paths in SR 141 networks. 143 For two-way measurements for SR Policies, there is a need to specify 144 a return path in the form of a Segment List in PM probe query 145 messages without requiring any SR Policy state on the destination 146 node. Exiting protocols do not have such mechanisms to specify 147 return path in the PM probe query messages. 149 This document specifies a procedure for using UDP path for sending 150 and processing in-band probe query and response messages for 151 Performance Measurement that does not require to bootstrap PM 152 sessions. The procedure uses RFC 6374 defined mechanisms for Delay 153 and Loss PM and unless otherwise specified, the procedures from RFC 154 6374 are not modified. The procedure specified is applicable to 155 IPv4, IPv6, SR-MPLS and SRv6 data planes. The procedure does not 156 require to bootstrap PM sessions and can be used for both SR links 157 and end-to-end measurement for SR Policies. This document also 158 defines mechanisms for handling Equal Cost Multipaths (ECMPs) for SR 159 Policies. In addition, this document defines Return Path Segment 160 List TLV for two-way performance measurement. 162 2. Conventions Used in This Document 164 2.1. Requirements Language 166 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 167 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 168 document are to be interpreted as described in [RFC2119] [RFC8174]. 170 2.2. Abbreviations 172 ACH: Associated Channel Header. 174 BSID: Binding Segment ID. 176 DFLag: Data Format Flag. 178 DM: Delay Measurement. 180 G-ACh: Generic Associated Channel (G-ACh). 182 GAL: Generic Associated Channel (G-ACh) Label. 184 LM: Loss Measurement. 186 MPLS: Multiprotocol Label Switching. 188 PM: Performance Measurement. 190 PTP: Precision Time Protocol. 192 RPSL: Return Path Segment List. 194 SID: Segment ID. 196 SL: Segment List. 198 SR: Segment Routing. 200 SR-MPLS: Segment Routing with MPLS data plane. 202 SRv6: Segment Routing with IPv6 data plane. 204 URO: UDP Return Object. 206 2.3. Reference Topology 208 In the reference topology, the querier node R1 initiates a probe 209 query for performance measurement and the responder node R5 sends a 210 probe response for the query message received. The probe response 211 may be sent to the querier node R1 or to a controller node R100. The 212 nodes R1 and R5 may be directly connected via a link enabled with 213 Segment Routing or there exists an SR Policy 214 [I-D.spring-segment-routing-policy] on node R1 with destination to 215 node R5. 217 ------ 218 |R100| 219 ------ 220 ^ 221 | Response (optional) 222 | 223 +-------+ Query +-------+ 224 | | - - - - - - - - - ->| | 225 | R1 |---------------------| R5 | 226 | |<- - - - - - - - - - | | 227 +-------+ Response +-------+ 229 Reference Topology 231 Both Delay and Loss performance measurement is performed in-band for 232 the traffic traversing between node R1 and node R5. One-way delay 233 and two-way delay measurements are defined in Section 2.4 of 234 [RFC6374]. Transmit and Receive packet loss measurements are defined 235 in Section 2.2 of [RFC6374]. One-way loss measurement provides 236 receive packet loss whereas two-way loss measurement provides both 237 transmit and receive packet loss. 239 3. Probe Messages 241 3.1. Probe Query Message 243 In this document, UDP path is defined for sending and processing PM 244 probe query messages for Delay and Loss measurements for SR links and 245 end-to-end SR Policies as described in the following Sections. As 246 well-known UDP port is used for identifying PM probe packets, 247 bootstrapping of the PM session [RFC5357] is not required. 249 3.1.1. Delay Measurement Probe Query Message 251 The message content for Delay Measurement probe query message using 252 UDP header [RFC768] is shown in Figure 1. As shown, the DM probe 253 query message is sent with Destination UDP port number TBA1 defined 254 in this document. The Source UDP port may optionally be set to TBA1 255 for two-way delay measurement. The DM probe query message contains 256 the payload for delay measurement defined in Section 3.2 of 257 [RFC6374]. 259 +---------------------------------------------------------------+ 260 | IP Header | 261 . Source IP Address = Querier IPv4 or IPv6 Address . 262 . Destination IP Address = Responder IPv4 or IPv6 Address . 263 . Protocol = UDP . 264 . IP TTL = 1 . 265 . Router Alert Option Not Set . 266 . . 267 +---------------------------------------------------------------+ 268 | UDP Header | 269 . Source Port = As chosen by Querier . 270 . Destination Port = TBA1 by IANA for Delay Measurement . 271 . . 272 +---------------------------------------------------------------+ 273 | Payload = Message as specified in Section 3.2 of RFC 6374 | 274 . . 275 +---------------------------------------------------------------+ 277 Figure 1: DM Probe Query Message 279 3.1.2. Loss Measurement Probe Query Message 280 The message content for Loss measurement probe query message using 281 UDP header [RFC768] is shown in Figure 2. As shown, the LM probe 282 query message is sent with Destination UDP port number TBA2 defined 283 in this document. The Source UDP port may optionally be set to TBA2 284 for two-way loss measurement. The LM probe query message contains 285 the payload for loss measurement defined in Section 3.1 of [RFC6374]. 287 +---------------------------------------------------------------+ 288 | IP Header | 289 . Source IP Address = Querier IPv4 or IPv6 Address . 290 . Destination IP Address = Responder IPv4 or IPv6 Address . 291 . Protocol = UDP . 292 . IP TTL = 1 . 293 . Router Alert Option Not Set . 294 . . 295 +---------------------------------------------------------------+ 296 | UDP Header | 297 . Source Port = As chosen by Querier . 298 . Destination Port = TBA2 by IANA for Loss Measurement . 299 . . 300 +---------------------------------------------------------------+ 301 | Payload = Message as specified in Section 3.1 of RFC 6374 | 302 . . 303 +---------------------------------------------------------------+ 305 Figure 2: LM Probe Query Message 307 3.1.2.1. Loss Measurement Flags 309 An LM message carries Data Format Flags (DFlags) as defined in 310 [RFC6374]. New Flag is defined in this document for Color (C) in the 311 DFlags field as follows. 313 +-+-+-+-+ 314 |X|B|C|0| 315 +-+-+-+-+ 317 Data Format Flags 319 The Flag C indicates the Color of the counters in the LM probe 320 message [RFC6374] when using Alternate-Marking method defined in 321 [RFC8321]. 323 3.1.3. In-band Probe Query for SR Links 325 The probe query message defined in Figure 1 is sent in-band for Delay 326 measurement and defined in Figure 2 is used for Loss measurement for 327 SR links. 329 3.1.4. In-band Probe Query for End-to-end Measurement of SR Policy 331 3.1.4.1. In-band Probe Query Message for SR-MPLS Policy 333 The message content for in-band probe query message using UDP header 334 for end-to-end performance measurement of SR-MPLS Policy is shown in 335 Figure 3. 337 0 1 2 3 338 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 339 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 340 | Segment List(0) | EXP |S| TTL | 341 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 342 . . 343 . . 344 . . 345 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 346 | Segment List(n) | EXP |S| TTL | 347 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 348 | Message as shown in Figure 1 for DM or Figure 2 for LM | 349 . . 350 +---------------------------------------------------------------+ 352 Figure 3: In-band Probe Query Message for SR-MPLS Policy 354 The Segment List (SL) can be empty to indicate Implicit NULL label 355 case. 357 3.1.4.2. In-band Probe Query Message for SRv6 Policy 359 The in-band probe query messages using UDP header for end-to-end 360 performance measurement of an SRv6 Policy is sent using SRv6 Segment 361 Routing Header (SRH) and Segment List as defined in 362 [I-D.6man-segment-routing-header] and is shown in Figure 4. 364 0 1 2 3 365 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 366 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 367 | SRH | 368 . . 369 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 370 | Message as shown in Figure 1 for DM or Figure 2 for LM | 371 . . 372 +---------------------------------------------------------------+ 374 Figure 4: In-band Probe Query Message for SRv6 Policy 376 3.2. Probe Response Message 377 When the received probe query message does not contain any UDP Return 378 Object (URO) TLV [RFC7876], the probe response message uses the 379 IP/UDP information from the probe query message. The content of the 380 probe response message is shown in Figure 5. 382 +---------------------------------------------------------------+ 383 | IP Header | 384 . Source IP Address = Responder IPv4 or IPv6 Address . 385 . Destination IP Address = Source IP Address from Query . 386 . Protocol = UDP . 387 . Router Alert Option Not Set . 388 . . 389 +---------------------------------------------------------------+ 390 | UDP Header | 391 . Source Port = As chosen by Responder . 392 . Destination Port = Source Port from Query . 393 . . 394 +---------------------------------------------------------------+ 395 | Message as specified in RFC 6374 Section 3.2 for DM, or | 396 . Message as specified in RFC 6374 Section 3.1 for LM . 397 . . 398 +---------------------------------------------------------------+ 400 Figure 5: Probe Response Message 402 When the received probe query message contains UDP Return Object 403 (URO) TLV [RFC7876], the probe response message the message uses the 404 IP/UDP information from the URO in the probe query message. The 405 content of the probe response message is shown in Figure 6. 407 +---------------------------------------------------------------+ 408 | IP Header | 409 . Source IP Address = Responder IPv4 or IPv6 Address . 410 . Destination IP Address = URO.Address . 411 . Protocol = UDP . 412 . Router Alert Option Not Set . 413 . . 414 +---------------------------------------------------------------+ 415 | UDP Header | 416 . Source Port = As chosen by Responder . 417 . Destination Port = URO.UDP-Destination-Port . 418 . . 419 +---------------------------------------------------------------+ 420 | Message as specified in RFC 6374 Section 3.2 for DM, or | 421 . Message as specified in RFC 6374 Section 3.1 for LM . 422 . . 423 +---------------------------------------------------------------+ 425 Figure 6: Probe Response Message Using URO from Probe Query Message 427 3.2.1. One-way Measurement for SR Link and end-to-end SR Policy 429 For one-way performance measurement, the probe response message as 430 defined in Figure 5 or Figure 6 is sent out-of-band for both SR links 431 and SR Policies. 433 The PM querier node can receive probe response message back by 434 properly setting its own IP address as Source Address of the header 435 or by adding URO TLV in the probe query message and setting its own 436 IP address in the IP Address in the URO TLV (Type=131) [RFC7876]. 438 3.2.1.1. Probe Response Message to Controller 440 As shown in Reference Topology, if the querier node requires the 441 probe response message to be sent to the controller R100, it adds URO 442 TLV in the probe query message and sets the IP address of R100 in the 443 IP Address field and UDP port TBA1 for DM and TBA2 for LM in the UDP- 444 Destination-Port field of the URO TLV (Type=131) [RFC7876]. 446 3.2.2. Two-way Measurement for SR Links 448 For two-way performance measurement, when using a bidirectional 449 channel, the probe response message as defined in Figure 5 or Figure 450 6 is sent back in-band to the querier node for SR links. In this 451 case, the "control code" in the probe query message is set to 452 "in-band response requested" [RFC6374]. 454 3.2.3. Two-way End-to-end Measurement of SR Policy 456 For two-way performance measurement, when using a bidirectional 457 channel, the probe response message is sent back in-band to the 458 querier node for end-to-end measurement of SR Policies. In this 459 case, the "control code" in the probe query message is set to 460 "in-band response requested" [RFC6374]. 462 3.2.3.1. Return Path Segment List TLV 464 For two-way performance measurement, the responder node needs to send 465 the probe response message in-band on a specific reverse SR path. 466 This way the destination node does not require any additional SR 467 Policy state. The querier node can request in the probe query 468 message to the responder node to send a response back on a given 469 reverse path (typically co-routed path for two-way measurement). 471 [RFC6374] defines DM and LM probe query messages that can include one 472 or more optional TLVs. New TLV Types are defined in this document 473 for Return Path Segment List (RPSL) to carry reverse SR path for 474 probe response messages. The format of the RPSL TLV is shown in 475 Figure 7: 477 0 1 2 3 478 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 479 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 480 | RPSL Type | Length | Reserved | 481 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 482 | Segment List(0) | 483 . . 484 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 485 . . 486 . . 487 . . 488 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 489 | Segment List(n) | 490 . . 491 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 493 Figure 7: Return Path Segment List TLV 495 All Segments in Segment List can be one of following Types: 497 o RPSL Type (value TBA3) carrying SR-MPLS Labels 499 o RPSL Type (value TBA4) carrying SRv6 Segments 501 o RPSL Type (value TBA5) carrying SR-MPLS Binding SID 502 [I-D.pce-binding-label-sid] of the Reverse SR Policy 504 o RPSL Type (value TBA6) carrying SRv6 Binding SID of the Reverse SR 505 Policy 507 The Segment List(0) can be used by the responder node to compute the 508 next-hop IP address and outgoing interface to send the probe response 509 messages. 511 The RPSL TLV is optional. The PM querier node MUST only insert one 512 RPSL TLV in the probe query message and the responder node MUST only 513 process the first RPSL TLV in the probe query message and ignore 514 other RPSL TLVs if present. The responder node MUST send probe 515 response message back on the reverse path specified in the RPSL TLV 516 and MUST NOT add RPSL TLV in the probe response message. 518 3.2.3.2. In-band Probe Response Message for SR-MPLS Policy 520 The message content for sending probe response message in-band using 521 UDP header for two-way end-to-end performance measurement of an 522 SR-MPLS Policy is shown in Figure 8. The SR-MPLS label stack in the 523 packet header is built using the Segment List received in the RPSL 524 TLV in the probe query message. 526 0 1 2 3 527 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 528 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 529 | Segment List(0) | EXP |S| TTL | 530 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 531 . . 532 . . 533 . . 534 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 535 | Segment List(n) | EXP |S| TTL | 536 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 537 | Message as shown in Figure 5 or 6 | 538 . IP TTL = 1 . 539 . . 540 +---------------------------------------------------------------+ 542 Figure 8: In-band Probe Response Message for SR-MPLS Policy 544 3.2.3.3. In-band Probe Response Message for SRv6 Policy 546 The message content for sending probe response message in-band using 547 UDP header for two-way end-to-end performance measurement of an SRv6 548 Policy is shown in Figure 9. For SRv6 Policy, the SRv6 SID stack in 549 the probe response message SRH is built using the SRv6 Segment List 550 received in the RPSL TLV in the probe query message. 552 0 1 2 3 553 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 554 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 555 | SRH | 556 . . 557 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 558 | Message as shown in Figure 5 or 6 | 559 . IP TTL = 1 . 560 . . 561 +---------------------------------------------------------------+ 563 Figure 9: In-band Probe Response Message for SRv6 Policy 565 3.3. ECMP Support 567 An SR Policy can have a number of end-to-end forwarding paths due to 568 presence of Equal Cost Multipaths (ECMPs) between the source and 569 transit nodes, between transit nodes and between transit and 570 destination nodes. The PM probe messages can be sent to traverse 571 different ECMP forwarding paths and measure performance of all 572 end-to-end forwarding paths of an SR Policy. 574 Forwarding planes have various hashing functions available to forward 575 packets on specific ECMP paths. Following mechanisms can be used in 576 PM probe messages to take advantage of the hashing function in 577 forwarding plane to influence the ECMP path taken by them. 579 o For IPv4 and SR-MPLS, the mechanisms described in [RFC8029] for 580 handling ECMPs are also applicable to the performance measurement. 581 For IPv4 and SR-MPLS, in IP/UDP header of the PM probe messages, 582 different Destination Addresses in the range of 127/8 [RFC8029] or 583 different Source Addresses or different Source UDP ports, etc. can 584 be used. 586 o For SR-MPLS, entropy label [RFC6790] in the PM probe messages can 587 be used. 589 o For IPv6, as specified in [RFC6437], 3-tuple of Flow Label, Source 590 Address and Destination Address fields in the IPv6 header of the 591 PM probe messages can be used. 593 o For SRv6, Flow Label in SRH [I-D.6man-segment-routing-header] of 594 the PM probe messages can be used. 596 3.4. Sequence Number TLV 598 The message formats for DM and LM [RFC6374] do not contain sequence 599 number for probe query packets. Sequence numbers can be useful when 600 some probe query messages are lost or they arrive out of order. 602 [RFC6374] defines DM and LM probe query and response messages that 603 can include one or more optional TLVs. New TLV Type (value TBA7) is 604 defined in this document to carry sequence number for probe query and 605 response messages. The format of the Sequence Number TLV is shown in 606 Figure 10: 608 0 1 2 3 609 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 610 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 611 | Type TBA7 | Length | Reserved | 612 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 613 | Sequence Number | 614 . . 616 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 618 Figure 10: Sequence Number TLV 620 The Sequence Number TLV is optional. The PM querier node SHOULD only 621 insert one Sequence Number TLV in the probe query message and the 622 responder node in the probe response message SHOULD return the first 623 Sequence Number TLV from the probe query messages and ignore other 624 Sequence Number TLVs if present. 626 4. Security Considerations 628 The performance measurement is intended for deployment in 629 well-managed private and service provider networks. The security 630 considerations described in Section 8 of [RFC6374] are applicable to 631 this specification, and particular attention should be paid to the 632 last two paragraphs. Cryptographic measures may be enhanced by the 633 correct configuration of access-control lists and firewalls. 635 5. IANA Considerations 637 IANA is requested to allocate following UDP ports for performance 638 measurements: 640 o UDP Port TBA1: Delay Performance Measurement 642 o UDP Port TBA2: Loss Performance Measurement 644 IANA is also requested to allocate values for the following Return 645 Path Segment List TLV Types for RFC 6374 to be carried in PM probe 646 query messages: 648 o Type TBA3: SR-MPLS Segment List of the Reverse SR Policy 650 o Type TBA4: SRv6 Segment List of the Reverse SR Policy 652 o Type TBA5: SR-MPLS Binding SID of the Reverse SR Policy 654 o Type TBA6: SRv6 Binding SID of the Reverse SR Policy 656 IANA is also requested to allocate a value for the following Sequence 657 Number TLV Type for RFC 6374 to be carried in PM probe query and 658 response messages: 660 o Type TBA7: Sequence Number TLV 662 6. References 664 6.1. Normative References 666 [RFC768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, 667 August 1980. 669 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 670 Requirement Levels", RFC 2119, March 1997. 672 [RFC6374] Frost, D. and S. Bryant, "Packet Loss and Delay 673 Measurement for MPLS networks', RFC 6374, September 2011. 675 [RFC7876] Bryant, S., Sivabalan, S., and Soni, S., "UDP Return Path 676 for Packet Loss and Delay Measurement for MPLS Networks", 677 RFC 7876, July 2016. 679 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 680 2119 Key Words", RFC 8174, May 2017. 682 6.2. Informative References 684 [IEEE1588] IEEE, "1588-2008 IEEE Standard for a Precision Clock 685 Synchronization Protocol for Networked Measurement and 686 Control Systems", March 2008. 688 [RFC4656] Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M. 689 Zekauskas, "A One-way Active Measurement Protoco (OWAMP)", 690 RFC 4656, September 2006. 692 [RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J. 693 Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)", 694 RFC 5357, October 2008. 696 [RFC6437] Amante, S., Carpenter, B., Jiang, S., and J. Rajahalme, 697 "IPv6 Flow Label Specification", RFC 6437, November 2011. 699 [RFC6790] Kompella, K., Drake, J., Amante, S., Henderickx, W., and 700 L. Yong, "The Use of Entropy Labels in MPLS Forwarding", 701 RFC 6790, November 2012. 703 [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Kumar, N., 704 Aldrin, S. and M. Chen, "Detecting Multiprotocol Label 705 Switched (MPLS) Data-Plane Failures", RFC 8029, March 706 2017. 708 [RFC8321] Fioccola, G. Ed., "Alternate-Marking Method for Passive 709 and Hybrid Performance Monitoring", RFC 8321, January 710 2018. 712 [I-D.spring-segment-routing-policy] Filsfils, C., et al., "Segment 713 Routing Policy Architecture", 714 draft-ietf-spring-segment-routing-policy, work in 715 progress. 717 [I-D.6man-segment-routing-header] Filsfils, C., et al., "IPv6 718 Segment Routing Header (SRH)", 719 draft-ietf-6man-segment-routing-header, work in progress. 721 [I-D.spring-sr-mpls-pm] Filsfils, C., Gandhi, R. Ed., et al. 722 "Performance Measurement in Segment Routing Networks with 723 MPLS Data Plane", draft-gandhi-spring-sr-mpls-pm, work in 724 progress. 726 [I-D.pce-binding-label-sid] Filsfils, C., et al., "Carrying Binding 727 Label Segment-ID in PCE-based Networks", 728 draft-sivabalan-pce-binding-label-sid, work in progress. 730 Acknowledgments 732 The authors would like to thank Faisal Iqbal, Nagendra Kumar and 733 Carlos Pignataro for the discussion on SRv6 Performance Measurement. 735 Contributors 737 Patrick Khordoc 738 Cisco Systems, Inc. 739 Email: pkhordoc@cisco.com 741 Zafar Ali 742 Cisco Systems, Inc. 743 Email: zali@cisco.com 745 Daniel Bernier 746 Bell Canada 747 Email: daniel.bernier@bell.ca 749 Dirk Steinberg 750 Steinberg Consulting 751 Germany 752 Email: dws@dirksteinberg.de 754 Authors' Addresses 756 Rakesh Gandhi (editor) 757 Cisco Systems, Inc. 758 Canada 759 Email: rgandhi@cisco.com 761 Clarence Filsfils 762 Cisco Systems, Inc. 763 Email: cfilsfil@cisco.com 765 Sagar Soni 766 Cisco Systems, Inc. 767 Email: sagsoni@cisco.com 769 Daniel Voyer 770 Bell Canada 771 Email: daniel.voyer@bell.ca 773 Stefano Salsano 774 Universita di Roma "Tor Vergata" 775 Italy 776 Email: stefano.salsano@uniroma2.it 778 Pier Luigi Ventre 779 CNIT 780 Italy 781 Email: pierluigi.ventre@cnit.it