idnits 2.17.1 draft-xiao-ippm-ioam-conf-state-07.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 (September 4, 2020) is 1327 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 (-17) exists of draft-ietf-ippm-ioam-data-10 == Outdated reference: A later version (-11) exists of draft-ietf-ippm-ioam-direct-export-01 == Outdated reference: A later version (-28) exists of draft-ietf-sfc-multi-layer-oam-06 -- Possible downref: Non-RFC (?) normative reference: ref. 'IEEE1588v2' Summary: 0 errors (**), 0 flaws (~~), 4 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 IPPM Working Group X. Min 3 Internet-Draft G. Mirsky 4 Intended status: Standards Track ZTE Corp. 5 Expires: March 8, 2021 L. Bo 6 China Telecom 7 September 4, 2020 9 Echo Request/Reply for Enabled In-situ OAM Capabilities 10 draft-xiao-ippm-ioam-conf-state-07 12 Abstract 14 This document describes an extension to the echo request/reply 15 mechanisms used in IPv6, MPLS and SFC environments, which can be used 16 within an IOAM domain, allowing the IOAM encapsulating node to 17 acquire the enabled IOAM capabilities of each IOAM transit node and/ 18 or IOAM decapsulating node. 20 Status of This Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at https://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on March 8, 2021. 37 Copyright Notice 39 Copyright (c) 2020 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (https://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 55 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 56 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 57 2.2. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 3 58 3. IOAM Capabilities Formats . . . . . . . . . . . . . . . . . . 4 59 3.1. IOAM Capabilities TLV in Echo Request . . . . . . . . . . 4 60 3.2. IOAM Capabilities TLV in Echo Reply . . . . . . . . . . . 5 61 3.2.1. IOAM Pre-allocated Tracing Capabilities sub-TLV . . . 6 62 3.2.2. IOAM Incremental Tracing Capabilities sub-TLV . . . . 7 63 3.2.3. IOAM Proof of Transit Capabilities sub-TLV . . . . . 8 64 3.2.4. IOAM Edge-to-Edge Capabilities sub-TLV . . . . . . . 9 65 3.2.5. IOAM DEX Capabilities sub-TLV . . . . . . . . . . . . 11 66 3.2.6. IOAM End-of-Domain sub-TLV . . . . . . . . . . . . . 11 67 4. Operational Guide . . . . . . . . . . . . . . . . . . . . . . 12 68 5. Security Considerations . . . . . . . . . . . . . . . . . . . 13 69 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 70 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 71 8. Normative References . . . . . . . . . . . . . . . . . . . . 13 72 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 74 1. Introduction 76 The Data Fields for In-situ OAM (IOAM) [I-D.ietf-ippm-ioam-data] 77 defines data fields for IOAM which records OAM information within the 78 packet while the packet traverses a particular network domain, which 79 is called an IOAM domain. IOAM can be used to complement OAM 80 mechanisms based on, e.g., ICMP or other types of probe packets, and 81 IOAM mechanisms can be leveraged where mechanisms using, e.g., ICMP 82 do not apply or do not offer the desired results. 84 As specified in [I-D.ietf-ippm-ioam-data], within the IOAM-domain, 85 the IOAM data may be updated by network nodes that the packet 86 traverses. The device which adds an IOAM data container to the 87 packet to capture IOAM data is called the "IOAM encapsulating node", 88 whereas the device which removes the IOAM data container is referred 89 to as the "IOAM decapsulating node". Nodes within the domain which 90 are aware of IOAM data and read and/or write or process the IOAM data 91 are called "IOAM transit nodes". Both the IOAM encapsulating node 92 and the decapsulating node are referred to as domain edge devices, 93 which can be hosts or network devices. 95 In order to add accurate IOAM data container to the packet, the IOAM 96 encapsulating node needs to know the enabled IOAM capabilities at the 97 IOAM transit nodes and/or the IOAM decapsulating node as a whole, 98 e.g., how many IOAM transit nodes will add tracing data and what 99 kinds of data fields will be added. 101 This document describes an extension to the echo request/reply 102 mechanisms used in IPv6, MPLS and SFC environments, which can be used 103 within an IOAM domain, allowing the IOAM encapsulating node to 104 acquire the enabled IOAM capabilities of each IOAM transit node and/ 105 or IOAM decapsulating node. 107 The following documents contain references to the echo request/reply 108 mechanisms used in IPv6, MPLS and SFC environments: 110 o [RFC4443] ("Internet Control Message Protocol (ICMPv6) for the 111 Internet Protocol Version 6 (IPv6) Specification"), [RFC4884] 112 ("Extended ICMP to Support Multi-Part Messages") and [RFC8335] 113 ("PROBE: A Utility for Probing Interfaces") 115 o [RFC8029] ("Detecting Multiprotocol Label Switched (MPLS) Data- 116 Plane Failures") 118 o [I-D.ietf-sfc-multi-layer-oam] ("Active OAM for Service Function 119 Chains in Networks") 121 This feature described in this document is assumedly applied to 122 explicit path (strict or loose), because the precondition for this 123 feature to work is that the echo request reaches each IOAM transit 124 node as live traffic traverses. 126 2. Conventions 128 2.1. Requirements Language 130 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 131 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 132 "OPTIONAL" in this document are to be interpreted as described in BCP 133 14 [RFC2119] [RFC8174] when, and only when, they appear in all 134 capitals, as shown here. 136 2.2. Abbreviations 138 E2E: Edge to Edge 140 ICMP: Internet Control Message Protocol 142 IOAM: In-situ Operations, Administration, and Maintenance 144 LSP: Label Switched Path 145 MPLS: Multi-Protocol Label Switching 147 MBZ: Must Be Zero 149 MTU: Maximum Transmission Unit 151 NTP: Network Time Protocol 153 OAM: Operations, Administration, and Maintenance 155 POSIX: Portable Operating System Interface 157 POT: Proof of Transit 159 PTP: Precision Time Protocol 161 SFC: Service Function Chain 163 TTL: Time to Live 165 3. IOAM Capabilities Formats 167 3.1. IOAM Capabilities TLV in Echo Request 169 In echo request IOAM Capabilities uses TLV (Type-Length-Value tuple) 170 which have the following format: 172 0 1 2 3 173 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 174 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 175 | Type = IOAM Capabilities | Length | 176 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 177 | Namespace-IDs Length | MBZ | 178 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 179 . . 180 . List of Namespace-IDs . 181 . . 182 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 184 Figure 1: IOAM Capabilities TLV in Echo Request 186 When this TLV is present in the echo request sent by an IOAM 187 encapsulating node, it means that the IOAM encapsulating node 188 requests the receiving node to reply with its enabled IOAM 189 capabilities. If there is no IOAM capability to be reported by the 190 receiving node, then this TLV SHOULD be ignored by the receiving 191 node, which means the receiving node SHOULD send echo reply without 192 IOAM capabilities or no echo reply, in the light of whether the echo 193 request includes other TLV than IOAM Capabilities TLV. List of 194 Namespace-IDs MAY be included in this TLV of echo request, it means 195 that the IOAM encapsulating node requests only the IOAM capabilities 196 which matches one of the Namespace-IDs. The Namespace-ID has the 197 same definition as what's specified in [I-D.ietf-ippm-ioam-data]. 199 Type is set to the value which indicates that it's an IOAM 200 Capabilities TLV. 202 Length is the length of the TLV's Value field in octets, Namespace- 203 IDs Length is the Length of the List of Namespace-IDs field in 204 octets. 206 Value field of this TLV is zero padded to align to a 4-octet 207 boundary. 209 3.2. IOAM Capabilities TLV in Echo Reply 211 In echo reply IOAM Capabilities uses TLV which have the following 212 format: 214 0 1 2 3 215 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 216 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 217 | Type = IOAM Capabilities | Length | 218 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 219 | Sub-TLVs Length | MBZ | 220 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 221 . . 222 . List of Sub-TLVs . 223 . . 224 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 226 Figure 2: IOAM Capabilities TLV in Echo Reply 228 When this TLV is present in the echo reply sent by an IOAM transit 229 node and/or an IOAM decapsulating node, it means that IOAM function 230 is enabled at this node and this TLV contains the enabled IOAM 231 capabilities of the sender. List of Sub-TLVs which contain the IOAM 232 capabilities SHOULD be included in this TLV of the echo reply. Note 233 that the IOAM encapsulating node or the IOAM decapsulating node can 234 also be an IOAM transit node. 236 Type is set to the value which indicates that it's an IOAM 237 Capabilities TLV. 239 Length is the length of the TLV's Value field in octets, Sub-TLVs 240 Length is the length of the List of Sub-TLVs field in octets. 242 Value field of this TLV or any Sub-TLV is zero padded to align to a 243 4-octet boundary. Based on the data fields for IOAM specified in 244 [I-D.ietf-ippm-ioam-data], five kinds of Sub-TLVs are defined in this 245 document, and in an IOAM Capabilities TLV the same kind of Sub-TLV 246 can appear more times than one with different Namespace-ID. Note 247 that the IOAM encapsulating node may receive both IOAM Pre-allocated 248 Tracing Capabilities sub-TLV and IOAM Incremental Tracing 249 Capabilities sub-TLV in the process of traceroute, which means both 250 pre-allocated tracing node and incremental tracing node are on the 251 same path, or some node supports both pre-allocated tracing and 252 incremental tracing, the behavior of the IOAM encapsulating node in 253 this scenario is outside the scope of this document. 255 3.2.1. IOAM Pre-allocated Tracing Capabilities sub-TLV 257 0 1 2 3 258 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 259 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 260 |Sub-type = Pre-allocated trace | Length | 261 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 262 | IOAM-Trace-Type | Reserved | 263 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 264 | Namespace-ID | Egress_MTU | 265 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 266 | Egress_if_id (short or wide format) ...... | 267 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 269 Figure 3: IOAM Pre-allocated Tracing Capabilities Sub-TLV 271 When this sub-TLV is present in the IOAM Capabilities TLV, it means 272 that the sending node is an IOAM transit node and IOAM tracing 273 function is enabled at this IOAM transit node. 275 Sub-type is set to the value which indicates that it's an IOAM Pre- 276 allocated Tracing Capabilities sub-TLV. 278 Length is the length of the sub-TLV's Value field in octets, if 279 Egress_if_id is in the short format which is 16 bits long, it MUST be 280 set to 10, and if Egress_if_id is in the wide format which is 32 bits 281 long, it MUST be set to 12. 283 IOAM-Trace-Type field has the same definition as what's specified in 284 section 4.4 of [I-D.ietf-ippm-ioam-data]. 286 Reserved field is reserved for future use and MUST be set to zero. 288 Namespace-ID field has the same definition as what's specified in 289 section 4.4 of [I-D.ietf-ippm-ioam-data], it should be one of the 290 Namespace-IDs listed in the IOAM Capabilities TLV of echo request. 292 Egress_MTU field has 16 bits and specifies the MTU of the egress 293 direction out of which the sending node would forward the received 294 echo request, it should be the MTU of the egress interface or the MTU 295 between the sending node and the downstream IOAM transit node. 297 Egress_if_id field has 16 bits (in short format) or 32 bits (in wide 298 format) and specifies the identifier of the egress interface out of 299 which the sending node would forward the received echo request. 301 3.2.2. IOAM Incremental Tracing Capabilities sub-TLV 303 0 1 2 3 304 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 305 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 306 | Sub-type = Incremental trace | Length | 307 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 308 | IOAM-Trace-Type | Reserved | 309 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 310 | Namespace-ID | Egress_MTU | 311 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 312 | Egress_if_id (short or wide format) ...... | 313 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 315 Figure 4: IOAM Incremental Tracing Capabilities Sub-TLV 317 When this sub-TLV is present in the IOAM Capabilities TLV, it means 318 that the sending node is an IOAM transit node and IOAM tracing 319 function is enabled at this IOAM transit node. 321 Sub-type is set to the value which indicates that it's an IOAM 322 Incremental Tracing Capabilities sub-TLV. 324 Length is the length of the sub-TLV's Value field in octets, if 325 Egress_if_id is in the short format which is 16 bits long, it MUST be 326 set to 10, and if Egress_if_id is in the wide format which is 32 bits 327 long, it MUST be set to 12. 329 IOAM-Trace-Type field has the same definition as what's specified in 330 section 4.4 of [I-D.ietf-ippm-ioam-data]. 332 Reserved field is reserved for future use and MUST be set to zero. 334 Namespace-ID field has the same definition as what's specified in 335 section 4.4 of [I-D.ietf-ippm-ioam-data], it should be one of the 336 Namespace-IDs listed in the IOAM Capabilities TLV of echo request. 338 Egress_MTU field has 16 bits and specifies the MTU of the egress 339 direction out of which the sending node would forward the received 340 echo request, it should be the MTU of the egress interface or the MTU 341 between the sending node and the downstream IOAM transit node. 343 Egress_if_id field has 16 bits (in short format) or 32 bits (in wide 344 format) and specifies the identifier of the egress interface out of 345 which the sending node would forward the received echo request. 347 3.2.3. IOAM Proof of Transit Capabilities sub-TLV 349 0 1 2 3 350 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 351 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 352 | Sub-type = POT Capabilities | Length | 353 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 354 | Namespace-ID | IOAM-POT-Type |P|SoR|Reserved | 355 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 357 Figure 5: IOAM Proof of Transit Capabilities Sub-TLV 359 When this sub-TLV is present in the IOAM Capabilities TLV, it means 360 that the sending node is an IOAM transit node and IOAM proof of 361 transit function is enabled at this IOAM transit node. 363 Sub-type is set to the value which indicates that it's an IOAM Proof 364 of Transit Capabilities sub-TLV. 366 Length is the length of the sub-TLV's Value field in octets, and MUST 367 be set to 4. 369 Namespace-ID field has the same definition as what's specified in 370 section 4.5 of [I-D.ietf-ippm-ioam-data], it should be one of the 371 Namespace-IDs listed in the IOAM Capabilities TLV of echo request. 373 IOAM-POT-Type field and P bit have the same definition as what's 374 specified in section 4.5 of [I-D.ietf-ippm-ioam-data]. If the IOAM 375 encapsulating node receives IOAM-POT-Type and/or P bit values from an 376 IOAM transit node that are different from its own, then the IOAM 377 encapsulating node MAY choose to abandon the proof of transit 378 function or to select one kind of IOAM-POT-Type and P bit, it's based 379 on the policy applied to the IOAM encapsulating node. 381 SoR field has two bits which means the size of "Random" and 382 "Cumulative" data, which are specified in section 4.5 of 383 [I-D.ietf-ippm-ioam-data]. This document defines SoR as follow: 385 0b00 means 64-bit "Random" and 64-bit "Cumulative" data. 387 0b01~0b11: Reserved for future standardization 389 Reserved field is reserved for future use and MUST be set to zero. 391 3.2.4. IOAM Edge-to-Edge Capabilities sub-TLV 393 0 1 2 3 394 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 395 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 396 | Sub-type = E2E Capabilities | Length | 397 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 398 | Namespace-ID | IOAM-E2E-Type | 399 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 400 |TSF|TSL| Reserved | MBZ | 401 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 403 Figure 6: IOAM Edge-to-Edge Capabilities Sub-TLV 405 When this sub-TLV is present in the IOAM Capabilities TLV, it means 406 that the sending node is an IOAM decapsulating node and IOAM edge-to- 407 edge function is enabled at this IOAM decapsulating node. That is to 408 say, if the IOAM encapsulating node receives this sub-TLV, the IOAM 409 encapsulating node can determine that the node which sends this sub- 410 TLV is an IOAM decapsulating node. 412 Sub-type is set to the value which indicates that it's an IOAM Edge- 413 to-Edge Capabilities sub-TLV. 415 Length is the length of the sub-TLV's Value field in octets, and MUST 416 be set to 8. 418 Namespace-ID field has the same definition as what's specified in 419 section 4.6 of [I-D.ietf-ippm-ioam-data], it should be one of the 420 Namespace-IDs listed in the IOAM Capabilities TLV of echo request. 422 IOAM-E2E-Type field has the same definition as what's specified in 423 section 4.6 of [I-D.ietf-ippm-ioam-data]. 425 TSF field specifies the timestamp format used by the sending node. 426 This document defines TSF as follow: 428 0b00: PTP timestamp format 430 0b01: NTP timestamp format 432 0b10: POSIX timestamp format 434 0b11: Reserved for future standardization 436 TSL field specifies the timestamp length used by the sending node. 437 This document defines TSL as follow: 439 When TSF field is set to 0b00 which indicates PTP timestamp 440 format: 442 0b00: 64-bit PTPv1 timestamp as defined in IEEE1588-2008 443 [IEEE1588v2] 445 0b01: 80-bit PTPv2 timestamp as defined in IEEE1588-2008 446 [IEEE1588v2] 448 0b10~0b11: Reserved for future standardization 450 When TSF field is set to 0b01 which indicates NTP timestamp 451 format: 453 0b00: 32-bit NTP timestamp as defined in NTPv4 [RFC5905] 455 0b01: 64-bit NTP timestamp as defined in NTPv4 [RFC5905] 457 0b10: 128-bit NTP timestamp as defined in NTPv4 [RFC5905] 459 0b11: Reserved for future standardization 461 When TSF field is set to 0b10 or 0b11, the TSL field would be 462 ignored. 464 Reserved field is reserved for future use and MUST be set to zero. 466 3.2.5. IOAM DEX Capabilities sub-TLV 468 0 1 2 3 469 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 470 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 471 | Sub-type = DEX Capabilities | Length | 472 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 473 | IOAM-Trace-Type | Reserved | 474 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 475 | Namespace-ID | Reserved | 476 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 478 Figure 7: IOAM DEX Capabilities Sub-TLV 480 When this sub-TLV is present in the IOAM Capabilities TLV, it means 481 that the sending node is an IOAM transit node and IOAM DEX function 482 is enabled at this IOAM transit node. 484 Sub-type is set to the value which indicates that it's an IOAM DEX 485 Capabilities sub-TLV. 487 Length is the length of the sub-TLV's Value field in octets, and MUST 488 be set to 8. 490 IOAM-Trace-Type field has the same definition as what's specified in 491 section 3.2 of [I-D.ietf-ippm-ioam-direct-export]. 493 Namespace-ID field has the same definition as what's specified in 494 section 3.2 of [I-D.ietf-ippm-ioam-direct-export], it should be one 495 of the Namespace-IDs listed in the IOAM Capabilities TLV of echo 496 request. 498 Reserved field is reserved for future use and MUST be set to zero. 500 3.2.6. IOAM End-of-Domain sub-TLV 501 0 1 2 3 502 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 503 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 504 | Sub-type = End of Domain | Length | 505 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 506 | Namespace-ID | MBZ | 507 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 509 Figure 8: IOAM End of Domain Sub-TLV 511 When this sub-TLV is present in the IOAM Capabilities TLV, it means 512 that the sending node is an IOAM decapsulating node. That is to say, 513 if the IOAM encapsulating node receives this sub-TLV, the IOAM 514 encapsulating node can determine that the node which sends this sub- 515 TLV is an IOAM decapsulating node. When the IOAM Edge-to-Edge 516 Capabilities sub-TLV is present in the IOAM Capabilities TLV sent by 517 the IOAM decapsulating node, the IOAM End-of-Domain sub-TLV doesn't 518 need to be present in the same IOAM Capabilities TLV, otherwise the 519 End-of-Domain sub-TLV MUST be present in the IOAM Capabilities TLV 520 sent by the IOAM decapsulating node. Since both the IOAM Edge-to- 521 Edge Capabilities sub-TLV and the IOAM End-of-Domain sub-TLV can be 522 used to indicate that the sending node is an IOAM decapsulating node, 523 it's recommended to include only the IOAM Edge-to-Edge Capabilities 524 sub-TLV if IOAM edge-to-edge function is enabled at this IOAM 525 decapsulating node. 527 Length is the length of the sub-TLV's Value field in octets, and MUST 528 be set to 4. 530 Namespace-ID field has the same definition as what's specified in 531 section 4.6 of [I-D.ietf-ippm-ioam-data], it should be one of the 532 Namespace-IDs listed in the IOAM Capabilities TLV of echo request. 534 4. Operational Guide 536 Once the IOAM encapsulating node is triggered to acquire the enabled 537 IOAM capabilities of each IOAM transit node and/or IOAM decapsulating 538 node, the IOAM encapsulating node will send a batch of echo requests 539 that include the IOAM Capabilities TLV, first with TTL equal to 1 to 540 reach the nearest node which may be an IOAM transit node or not, then 541 with TTL equal to 2 to reach the second nearest node which also may 542 be an IOAM transit node or not, on the analogy of this to increase 1 543 to TTL every time the IOAM encapsulating node sends a new echo 544 request, until the IOAM encapsulating node receives echo reply sent 545 by the IOAM decapsulating node, which should contain the IOAM 546 Capabilities TLV including the IOAM Edge-to-Edge Capabilities sub-TLV 547 or the IOAM End-of-Domain sub-TLV. Alternatively, if the IOAM 548 encapsulating node knows exactly all the IOAM transit nodes and/or 549 IOAM decapsulating node beforehand, once the IOAM encapsulating node 550 is triggered to acquire the enabled IOAM capabilities, it can send 551 echo request to each IOAM transit node and/or IOAM decapsulating node 552 directly, without TTL expiration. 554 The IOAM encapsulating node may be triggered by the device 555 administrator, the network management system, the network controller, 556 or even the live user traffic, and the specific triggering mechanisms 557 are outside the scope of this document. 559 Each IOAM transit node and/or IOAM decapsulating node that receives 560 an echo request containing the IOAM Capabilities TLV will send an 561 echo reply to the IOAM encapsulating node, and within the echo reply, 562 there should be an IOAM Capabilities TLV containing one or more sub- 563 TLVs. The IOAM Capabilities TLV contained in the echo request would 564 be ignored by the receiving node that is unaware of IOAM. 566 5. Security Considerations 568 Knowledge of the state of the IOAM domain may be considered 569 confidential. Implementations SHOULD provide a means of filtering 570 the addresses to which echo request/reply may be sent. 572 6. IANA Considerations 574 This document has no IANA actions. 576 7. Acknowledgements 578 The authors would like to acknowledge Tianran Zhou for his careful 579 review and helpful comments. 581 The authors appreciate the f2f discussion with Frank Brockners on 582 this document. 584 8. Normative References 586 [I-D.ietf-ippm-ioam-data] 587 Brockners, F., Bhandari, S., and T. Mizrahi, "Data Fields 588 for In-situ OAM", draft-ietf-ippm-ioam-data-10 (work in 589 progress), July 2020. 591 [I-D.ietf-ippm-ioam-direct-export] 592 Song, H., Gafni, B., Zhou, T., Li, Z., Brockners, F., 593 Bhandari, S., Sivakolundu, R., and T. Mizrahi, "In-situ 594 OAM Direct Exporting", draft-ietf-ippm-ioam-direct- 595 export-01 (work in progress), August 2020. 597 [I-D.ietf-sfc-multi-layer-oam] 598 Mirsky, G., Meng, W., Khasnabish, B., and C. Wang, "Active 599 OAM for Service Function Chains in Networks", draft-ietf- 600 sfc-multi-layer-oam-06 (work in progress), June 2020. 602 [IEEE1588v2] 603 Institute of Electrical and Electronics Engineers, "IEEE 604 Std 1588-2008 - IEEE Standard for a Precision Clock 605 Synchronization Protocol for Networked Measurement and 606 Control Systems", IEEE Std 1588-2008, 2008, 607 . 610 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 611 Requirement Levels", BCP 14, RFC 2119, 612 DOI 10.17487/RFC2119, March 1997, 613 . 615 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 616 Control Message Protocol (ICMPv6) for the Internet 617 Protocol Version 6 (IPv6) Specification", STD 89, 618 RFC 4443, DOI 10.17487/RFC4443, March 2006, 619 . 621 [RFC4884] Bonica, R., Gan, D., Tappan, D., and C. Pignataro, 622 "Extended ICMP to Support Multi-Part Messages", RFC 4884, 623 DOI 10.17487/RFC4884, April 2007, 624 . 626 [RFC5905] Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch, 627 "Network Time Protocol Version 4: Protocol and Algorithms 628 Specification", RFC 5905, DOI 10.17487/RFC5905, June 2010, 629 . 631 [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., 632 Aldrin, S., and M. Chen, "Detecting Multiprotocol Label 633 Switched (MPLS) Data-Plane Failures", RFC 8029, 634 DOI 10.17487/RFC8029, March 2017, 635 . 637 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 638 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 639 May 2017, . 641 [RFC8335] Bonica, R., Thomas, R., Linkova, J., Lenart, C., and M. 642 Boucadair, "PROBE: A Utility for Probing Interfaces", 643 RFC 8335, DOI 10.17487/RFC8335, February 2018, 644 . 646 Authors' Addresses 648 Xiao Min 649 ZTE Corp. 650 Nanjing 651 China 653 Phone: +86 25 88013062 654 Email: xiao.min2@zte.com.cn 656 Greg Mirsky 657 ZTE Corp. 658 USA 660 Email: gregimirsky@gmail.com 662 Lei Bo 663 China Telecom 664 Beijing 665 China 667 Phone: +86 10 50902903 668 Email: leibo@chinatelecom.cn