idnits 2.17.1 draft-gandhi-mpls-ioam-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 : ---------------------------------------------------------------------------- -- The draft header indicates that this document updates RFC5586, but the abstract doesn't seem to mention this, which it should. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: The IOAM data fields are defined in [I-D.ietf-ippm-ioam-data]. The IOAM data fields are carried in the MPLS header as shown in Figure 1. More than one trace options can be present in the IOAM data fields. G-ACh [RFC5586] provides a mechanism to transport OAM and other control messages over MPLS data plane. The IOAM G-ACh header [RFC5586] with new IOAM G-ACh type MUST be added immediately after the MPLS label stack in the MPLS header as shown in Figure 1, before the IOAM data fields. The G-ACh label (GAL) [RFC5586] MUST not be added in the MPLS label stack. -- The document date (September 09, 2021) is 952 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) == Outdated reference: A later version (-05) exists of draft-decraene-mpls-slid-encoded-entropy-label-id-02 == Outdated reference: A later version (-17) exists of draft-ietf-ippm-ioam-data-14 == Outdated reference: A later version (-11) exists of draft-ietf-ippm-ioam-direct-export-06 == Outdated reference: A later version (-10) exists of draft-ietf-ippm-ioam-flags-06 Summary: 0 errors (**), 0 flaws (~~), 6 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 MPLS Working Group R. Gandhi, Ed. 3 Internet-Draft Z. Ali 4 Updates: 5586 (if approved) F. Brockners 5 Intended status: Standards Track Cisco Systems, Inc. 6 Expires: March 13, 2022 B. Wen 7 Comcast 8 B. Decraene 9 Orange 10 V. Kozak 11 Comcast 12 September 09, 2021 14 MPLS Data Plane Encapsulation for In-situ OAM Data 15 draft-gandhi-mpls-ioam-01 17 Abstract 19 In-situ Operations, Administration, and Maintenance (IOAM) records 20 operational and telemetry information in the data packet while the 21 packet traverses a path between two nodes in the network. This 22 document defines how IOAM data fields are transported with MPLS data 23 plane encapsulation using new Generic Associated Channel (G-ACh). 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at https://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on March 13, 2022. 42 Copyright Notice 44 Copyright (c) 2021 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (https://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 60 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 61 2.1. Requirement Language . . . . . . . . . . . . . . . . . . 3 62 2.2. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 3 63 3. MPLS Extensions for IOAM Data Fields . . . . . . . . . . . . 4 64 3.1. IOAM Generic Associated Channel . . . . . . . . . . . . . 4 65 3.2. IOAM Presence Indicators . . . . . . . . . . . . . . . . 5 66 4. Edge-to-Edge IOAM . . . . . . . . . . . . . . . . . . . . . . 6 67 4.1. Edge-to-Edge IOAM Presence Indicator . . . . . . . . . . 6 68 4.2. Procedure for Edge-to-Edge IOAM . . . . . . . . . . . . . 6 69 5. Hop-by-Hop IOAM . . . . . . . . . . . . . . . . . . . . . . . 7 70 5.1. Hop-by-Hop IOAM Presence Indicator . . . . . . . . . . . 7 71 5.2. Procedure for Hop-by-Hop IOAM . . . . . . . . . . . . . . 8 72 6. Considerations for IOAM . . . . . . . . . . . . . . . . . . . 9 73 6.1. Considerations for ECMP . . . . . . . . . . . . . . . . . 9 74 6.2. Node Capability . . . . . . . . . . . . . . . . . . . . . 9 75 6.3. Nested MPLS Encapsulation . . . . . . . . . . . . . . . . 9 76 7. MPLS Encapsulation with Control Word and Another G-ACh for 77 IOAM Data Fields . . . . . . . . . . . . . . . . . . . . . . 10 78 8. Security Considerations . . . . . . . . . . . . . . . . . . . 11 79 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 80 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 81 10.1. Normative References . . . . . . . . . . . . . . . . . . 12 82 10.2. Informative References . . . . . . . . . . . . . . . . . 13 83 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 13 84 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 86 1. Introduction 88 In-situ Operations, Administration, and Maintenance (IOAM) records 89 operational and telemetry information within the packet while the 90 packet traverses a particular network domain. The term "in-situ" 91 refers to the fact that the IOAM data fields are added to the data 92 packets rather than being sent within the probe packets specifically 93 dedicated to OAM. The IOAM data fields are defined in 94 [I-D.ietf-ippm-ioam-data], and can be used for various use-cases for 95 OAM. The IOAM data fields are further updated in 97 [I-D.ietf-ippm-ioam-direct-export] for direct export use-cases and in 98 [I-D.ietf-ippm-ioam-flags] for Loopback and Active flags. 100 This document defines how IOAM data fields are transported with MPLS 101 data plane encapsulations using new Generic Associated Channel 102 (G-ACh). 104 2. Conventions 106 2.1. Requirement Language 108 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 109 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 110 document are to be interpreted as described in [RFC2119] [RFC8174] 111 when, and only when, they appear in all capitals, as shown here. 113 2.2. Abbreviations 115 Abbreviations used in this document: 117 ECMP Equal Cost Multi-Path 119 E2E Edge-To-Edge 121 EL Entropy Label 123 ELI Entropy Label Indicator 125 ELC Entropy Label Control 127 G-ACh Generic Associated Channel 129 HbH Hop-by-Hop 131 IOAM In-situ Operations, Administration, and Maintenance 133 MPLS Multiprotocol Label Switching 135 OAM Operations, Administration, and Maintenance 137 POT Proof-of-Transit 139 PW PseudoWire 141 3. MPLS Extensions for IOAM Data Fields 143 3.1. IOAM Generic Associated Channel 145 The IOAM data fields are defined in [I-D.ietf-ippm-ioam-data]. The 146 IOAM data fields are carried in the MPLS header as shown in Figure 1. 147 More than one trace options can be present in the IOAM data fields. 148 G-ACh [RFC5586] provides a mechanism to transport OAM and other 149 control messages over MPLS data plane. The IOAM G-ACh header 150 [RFC5586] with new IOAM G-ACh type MUST be added immediately after 151 the MPLS label stack in the MPLS header as shown in Figure 1, before 152 the IOAM data fields. The G-ACh label (GAL) [RFC5586] MUST not be 153 added in the MPLS label stack. 155 This document updates the following paragraph in Section 2.1 of 156 [RFC5586]: "The G-ACh MUST NOT be used to transport user traffic" to 157 "The G-ACh MAY be used with user traffic to transport OAM 158 information". 160 Note that the G-ACh is not really used to transport the user traffic 161 in this document but to transport the IOAM data fields with the user 162 traffic. 164 0 1 2 3 165 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 166 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ 167 |0 0 0 1|Version| Length | IOAM G-ACh | | 168 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 169 | Reserved | Block Number | IOAM-OPT-Type |IOAM HDR Len | | 170 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I 171 | | O 172 | | A 173 ~ IOAM Option and Data Space ~ M 174 | | | 175 | | | 176 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ 177 | | 178 | | 179 | Payload + Padding | 180 | | 181 | | 182 | | 183 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 185 Figure 1: IOAM Generic Associated Channel with IOAM Data Fields 187 The IOAM data fields are encapsulated using the following fields in 188 the MPLS header: 190 IP Version Number 0001b: The first four octets are IP Version Field 191 part of a G-ACh header, as defined in [RFC5586]. 193 Version: The Version field is set to 0, as defined in [RFC4385]. 195 Length: Length of IOAM G-ACh data in 4-octet units. Note that this 196 field is marked as Reserved in [RFC5586] and is updated for the new 197 IOAM G-ACh type by this document. 199 IOAM G-ACh: Generic Associated Channel (G-ACh) Type (value TBA1) for 200 IOAM [RFC5586]. 202 Reserved: Reserved Bits MUST be set to zero upon transmission and 203 ignored upon receipt. 205 Block Number: The Block Number can be used to aggregate the IOAM 206 data collected in data plane, e.g. to compute measurement metrics 207 for each block of a data flow. It is also used to correlate the 208 IOAM data on different nodes. 210 IOAM-OPT-Type: 8-bit field defining the IOAM Option type, as defined 211 in Section 8.1 of [I-D.ietf-ippm-ioam-data]. 213 IOAM HDR Length: 8-bit unsigned integer. Length of IOAM Header in 214 4-octet units. 216 IOAM Option and Data Space: IOAM option header and data is present 217 as defined by the IOAM-OPT-Type field, and is defined in Section 5 218 of [I-D.ietf-ippm-ioam-data]. 220 3.2. IOAM Presence Indicators 222 An IOAM Presence Indicator MUST be used to indicate the presence of 223 the IOAM data fields in the MPLS header. There are two IOAM types 224 defined in this document: Edge-to-Edge (E2E) and Hop-by-Hop (HbH) 225 IOAM. If only edge nodes need to process IOAM data then E2E IOAM 226 Presence Indicator MUST be used so that intermediate nodes can ignore 227 it. If both edge and intermediate nodes need to process IOAM data 228 then HbH IOAM Presence Indicator MUST be used. Different IOAM 229 Presence Indicators allow to optimize the IOAM processing on 230 intermediate nodes by checking if IOAM data fields need to be 231 processed. 233 [RFC6790] defines the MPLS Entropy Label (EL) and Entropy Label 234 Indicator (ELI). [I-D.decraene-mpls-slid-encoded-entropy-label-id] 235 defines Entropy Label Control (ELC) field and is carried in the TTL 236 field of the Entropy Label. A flag (called E) in the ELC is defined 237 in this document to indicate the presence of E2E IOAM and another 238 flag (called H) in the ELC is defined to indicate the presence of HbH 239 IOAM. The bit positions of these flags in the ELC field can be user- 240 defined, consistently in the network. Alternatively, the bit 241 positions of these flag can be allocated by IANA. 243 4. Edge-to-Edge IOAM 245 4.1. Edge-to-Edge IOAM Presence Indicator 247 The E2E IOAM Presence Indicator (Flag E in the Entropy Label Control 248 field) is used to indicate the presence of the E2E IOAM data fields 249 in the MPLS header as shown in Figure 2. 251 0 1 2 3 252 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 253 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 254 | Label(1) | TC |S| TTL | 255 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 256 . . 257 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 258 | Label(n) | TC |S| TTL | 259 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 260 | Entropy Label Indicator (7) | TC |0| TTL | 261 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 262 | Entropy Label | TC |1| ELC(E) | 263 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 264 | Packet as shown in Figure 1 | 265 . . 266 +---------------------------------------------------------------+ 268 Figure 2: Example MPLS Encapsulation for E2E IOAM 270 The E2E IOAM data fields carry the Option-Type(s) that require 271 processing on the encapsulating and decapsulating nodes only. The 272 IOAM Option-Type carried can be IOAM Edge-to-Edge Option-Type 273 [I-D.ietf-ippm-ioam-data]. The E2E IOAM data fields SHOULD NOT carry 274 any IOAM Option-Type that require IOAM processing on the intermediate 275 nodes as it will not be processed by them. 277 4.2. Procedure for Edge-to-Edge IOAM 279 The E2E IOM procedure is summarized as following: 281 o The encapsulating node inserts the ELI, EL pair with the E2E IOAM 282 Presence Indicator below the label whose FEC is the end 283 (decapsulating) node and one or more IOAM data fields in the MPLS 284 header. 286 o The intermediate nodes do not process IOAM data field. 288 o The decapsulating node MAY punt a copy of the packet with the 289 receive timestamp to the slow path for IOAM data fields processing 290 when the node recognizes the E2E IOAM Presence Indicator. The 291 receive timestamp is required by the various E2E OAM use-cases, 292 including streaming telemetry. Note that the packet is not 293 necessarily punted to the control-plane. 295 o The decapsulating node processes the IOAM data fields using the 296 procedures defined in [I-D.ietf-ippm-ioam-data]. An example of 297 IOAM processing is to export the data fields, send data fields via 298 streaming telemetry, etc. 300 o The decapsulating node MUST remove the IOAM data fields from the 301 received packet. The decapsulated packet is forwarded downstream 302 or terminated locally similar to the regular data packets. 304 5. Hop-by-Hop IOAM 306 5.1. Hop-by-Hop IOAM Presence Indicator 308 The HbH IOAM Presence Indicator (Flag H in the Entropy Label Control 309 field) is used to indicate the presence of the HbH IOAM data fields 310 in the MPLS header as shown in Figure 3. 312 0 1 2 3 313 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 314 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 315 | Label(1) | TC |S| TTL | 316 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 317 . . 318 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 319 | Label(n) | TC |S| TTL | 320 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 321 | Entropy Label Indicator (7) | TC |0| TTL | 322 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 323 | Entropy Label | TC |1| ELC(H) | 324 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 325 | Packet as shown in Figure 1 | 326 . . 327 +---------------------------------------------------------------+ 329 Figure 3: Example MPLS Encapsulation for HbH IOAM 331 The HbH IOAM data fields carry the Option-Type(s) that require 332 processing at the intermediate and/or encapsulating and decapsulating 333 nodes. The IOAM Option-Type carried can be IOAM Pre-allocated Trace 334 Option-Type, IOAM Incremental Trace Option-Type and IOAM Proof of 335 Transit (POT) Option-Type, as well as Edge-to-Edge Option-Type 336 [I-D.ietf-ippm-ioam-data]. 338 5.2. Procedure for Hop-by-Hop IOAM 340 The HbH IOAM procedure is summarized as following: 342 o The encapsulating node inserts the ELI, EL pair with the HbH IOAM 343 Presence Indicator below the label whose FEC is the end 344 (decapsulating) node and one or more IOAM data fields in the MPLS 345 header. 347 o The intermediate node enabled with HbH IOAM function processes the 348 data packet including the IOAM data fields as defined in 349 [I-D.ietf-ippm-ioam-data] when the node recognizes the HbH IOAM 350 Presence Indicator in the MPLS header. 352 o The intermediate node MAY punt a copy of the packet with the 353 receive timestamp to the slow path for IOAM data fields processing 354 when the node recognizes the HbH IOAM Presence Indicator. The 355 receive timestamp is required by the various HbH OAM use-cases, 356 including streaming telemetry. Note that the packet is not 357 necessarily punted to the control-plane. 359 o The intermediate node forwards a copy of the processed data packet 360 downstream. 362 o The decapsulating node MAY punt a copy of the packet with the 363 receive timestamp to the slow path for IOAM data fields processing 364 when the node recognizes the HbH IOAM Presence Indicator. The 365 receive timestamp is required by the various E2E OAM use-cases, 366 including streaming telemetry. Note that the packet is not 367 necessarily punted to the control-plane. 369 o The decapsulating node processes the IOAM data fields using the 370 procedures defined in [I-D.ietf-ippm-ioam-data]. An example of 371 IOAM processing is to export the data fields, send data fields via 372 streaming telemetry, etc. 374 o The decapsulating node MUST remove the IOAM data fields from the 375 received packet. The decapsulated packet is forwarded downstream 376 or terminated locally similar to the regular data packets. 378 6. Considerations for IOAM 380 6.1. Considerations for ECMP 382 The encapsulating node needs to make sure the IOAM data fields do not 383 start with a well-known IP Version Number (e.g. 0x4 for IPv4 and 0x6 384 for IPv6) as that can alter the hashing function for ECMP that uses 385 the IP header. This is achieved by using the IOAM G-ACh with IP 386 Version Number 0001b after the MPLS label stack [RFC5586]. 388 When entropy label [RFC6790] is used for hashing function for ECMP, 389 the procedure defined in this document does not alter the ECMP 390 behaviour. 392 6.2. Node Capability 394 The decapsulating node that has to remove the IOAM data fields and 395 perform the IOAM function may not be capable of supporting it. The 396 encapsulating node needs to know if the decapsulating node can 397 support the IOAM function. The signaling extension for this 398 capability exchange is outside the scope of this document. 400 The intermediate node that is not capable of supporting the IOAM 401 functions defined in this document, can simply skip the IOAM 402 processing. 404 6.3. Nested MPLS Encapsulation 406 The packets with IOAM data fields may carry one or more Entropy 407 Labels with IOAM Presence Indicators in the MPLS header. An 408 intermediate node SHOULD check the first Entropy Label in the label 409 stack for the IOAM Presence Indicator to process the IOAM data 410 fields. 412 An intermediate node that supports IOAM, SHOULD copy the ELC field 413 from the received Entropy Label to the new Entropy Label when 414 inserting the new Entropy Label in the MPLS header and this can be 415 based on a local policy. 417 When a packet is received with an IOAM Presence Indicator, the nested 418 MPLS encapsulating node that supports a different IOAM, the node MUST 419 add a new Entropy Label with the supported IOAM Presence Indicator. 421 7. MPLS Encapsulation with Control Word and Another G-ACh for IOAM Data 422 Fields 424 The IOAM data fields, including IOAM G-ACh header are added in the 425 MPLS encapsulation immediately after the MPLS header. Any Control 426 Word [RFC4385] or another G-ACh [RFC5586] MUST be added after the 427 IOAM data fields in the packet as shown in the Figure 4 and Figure 5, 428 respectively. This allows the intermediate nodes to easily access 429 the HbH IOAM data fields located immediately after the MPLS header. 430 The decapsulating node can remove the MPLS encapsulation including 431 the IOAM data fields and then process the Control Word or another 432 G-ACh following it. The subsequent G-ACh is located through the use 433 of the "Length" field in the G-ACh. 435 0 1 2 3 436 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 437 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 438 | Entropy Label Indicator (7) | TC |0| TTL | 439 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 440 | Entropy Label | TC |1| ELC(H) | 441 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 442 |0 0 0 1|Version| Length | IOAM G-ACh | 443 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ 444 | Reserved | Block Number | IOAM-OPT-Type |IOAM HDR Len | | 445 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I 446 | | O 447 | | A 448 ~ IOAM Option and Data Space ~ M 449 | | | 450 | | | 451 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ 452 |0 0 0 0| Specified by PW Encapsulation [RFC4385] | 453 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 454 | | 455 | | 456 ~ Payload + Padding ~ 457 | | 458 | | 459 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 461 Figure 4: Example MPLS Encapsulation with Generic PW Control Word 462 with HbH IOAM 464 0 1 2 3 465 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 466 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 467 | Entropy Label Indicator (7) | TC |0| TTL | 468 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 469 | Entropy Label | TC |1| ELC(H) | 470 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 471 |0 0 0 1|Version| Length | IOAM G-ACh | 472 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ 473 | Reserved | Block Number | IOAM-OPT-Type |IOAM HDR Len | | 474 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I 475 | | O 476 | | A 477 ~ IOAM Option and Data Space ~ M 478 | | | 479 | | | 480 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ 481 |0 0 0 1|Version| Reserved | Channel Type | 482 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 483 | | 484 | | 485 ~ Payload + Padding ~ 486 | | 487 | | 488 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 490 Figure 5: Example MPLS Encapsulation with Another G-ACh with HbH IOAM 492 8. Security Considerations 494 The security considerations of IOAM in general are discussed in 495 [I-D.ietf-ippm-ioam-data] and apply to the procedure defined in this 496 document. 498 IOAM is considered a "per domain" feature, where one or several 499 operators decide on configuring IOAM according to their needs. IOAM 500 is intended for deployment in limited domains [RFC8799]. As such, it 501 assumes that a node involved in IOAM operation has previously 502 verified the integrity of the path. Still, operators need to 503 properly secure the IOAM domain to avoid malicious configuration and 504 use, which could include injecting malicious IOAM packets into the 505 domain. 507 Routers that support G-ACh are subject to the same security 508 considerations as defined in [RFC4385] and [RFC5586]. 510 9. IANA Considerations 512 IANA maintains G-ACh Type Registry (see 513 ). IANA is requested to allocate a value for IOAM 515 G-ACh Type from "MPLS Generalized Associated Channel (G-ACh) Types 516 (including Pseudowire Associated Channel Types)" registry. 518 +-------+-----------------+---------------+ 519 | Value | Description | Reference | 520 +-------+-----------------+---------------+ 521 | TBA1 | IOAM G-ACh Type | This document | 522 +-------+-----------------+---------------+ 524 Table 1: IOAM G-ACh Type 526 10. References 528 10.1. Normative References 530 [I-D.decraene-mpls-slid-encoded-entropy-label-id] 531 Decraene, B., Filsfils, C., Henderickx, W., Saad, T., 532 Beeram, V. P., and L. Jalil, "Using Entropy Label for 533 Network Slice Identification in MPLS networks.", draft- 534 decraene-mpls-slid-encoded-entropy-label-id-02 (work in 535 progress), August 2021. 537 [I-D.ietf-ippm-ioam-data] 538 Brockners, F., Bhandari, S., and T. Mizrahi, "Data Fields 539 for In-situ OAM", draft-ietf-ippm-ioam-data-14 (work in 540 progress), June 2021. 542 [I-D.ietf-ippm-ioam-direct-export] 543 Song, H., Gafni, B., Zhou, T., Li, Z., Brockners, F., 544 Bhandari, S., Sivakolundu, R., and T. Mizrahi, "In-situ 545 OAM Direct Exporting", draft-ietf-ippm-ioam-direct- 546 export-06 (work in progress), August 2021. 548 [I-D.ietf-ippm-ioam-flags] 549 Mizrahi, T., Brockners, F., Bhandari, S., Sivakolundu, R., 550 Pignataro, C., Kfir, A., Gafni, B., Spiegel, M., and J. 551 Lemon, "In-situ OAM Loopback and Active Flags", draft- 552 ietf-ippm-ioam-flags-06 (work in progress), August 2021. 554 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 555 Requirement Levels", BCP 14, RFC 2119, 556 DOI 10.17487/RFC2119, March 1997, 557 . 559 [RFC5586] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., 560 "MPLS Generic Associated Channel", RFC 5586, 561 DOI 10.17487/RFC5586, June 2009, 562 . 564 [RFC6790] Kompella, K., Drake, J., Amante, S., Henderickx, W., and 565 L. Yong, "The Use of Entropy Labels in MPLS Forwarding", 566 RFC 6790, DOI 10.17487/RFC6790, November 2012, 567 . 569 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 570 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 571 May 2017, . 573 10.2. Informative References 575 [RFC4385] Bryant, S., Swallow, G., Martini, L., and D. McPherson, 576 "Pseudowire Emulation Edge-to-Edge (PWE3) Control Word for 577 Use over an MPLS PSN", RFC 4385, DOI 10.17487/RFC4385, 578 February 2006, . 580 [RFC8799] Carpenter, B. and B. Liu, "Limited Domains and Internet 581 Protocols", RFC 8799, DOI 10.17487/RFC8799, July 2020, 582 . 584 Acknowledgements 586 The authors would like to thank Patrick Khordoc, Sagar Soni, Shwetha 587 Bhandari, Clarence Filsfils, and Vengada Prasad Govindan for the 588 discussions on IOAM. The authors would also like to thank Tarek 589 Saad, Loa Andersson, Greg Mirsky, Stewart Bryant, Xiao Min, and Cheng 590 Li for providing many useful comments. The authors would also like 591 to thank Mach Chen, Andrew Malis, Matthew Bocci, and Nick Delregno 592 for the MPLS-RT reviews. 594 Authors' Addresses 596 Rakesh Gandhi (editor) 597 Cisco Systems, Inc. 598 Canada 600 Email: rgandhi@cisco.com 602 Zafar Ali 603 Cisco Systems, Inc. 605 Email: zali@cisco.com 606 Frank Brockners 607 Cisco Systems, Inc. 608 Hansaallee 249, 3rd Floor 609 DUESSELDORF, NORDRHEIN-WESTFALEN 40549 610 Germany 612 Email: fbrockne@cisco.com 614 Bin Wen 615 Comcast 617 Email: Bin_Wen@cable.comcast.com 619 Bruno Decraene 620 Orange 622 Email: bruno.decraene@orange.com 624 Voitek Kozak 625 Comcast 627 Email: Voitek_Kozak@comcast.com