idnits 2.17.1 draft-ali-spring-ioam-srv6-03.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: ---------------------------------------------------------------------------- == The page length should not exceed 58 lines per page, but there was 3 longer pages, the longest (page 1) being 68 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 4 instances of too long lines in the document, the longest one being 8 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (November 15, 2020) is 1252 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: 'I-D.ietf-spring-segment-routing-policy' is mentioned on line 210, but not defined == Missing Reference: 'I-D.ietf-spring-srv6-network-programming' is mentioned on line 230, but not defined == Unused Reference: 'I-D.spring-segment-routing-policy' is defined on line 317, but no explicit reference was found in the text Summary: 1 error (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SPRING Working Group Z. Ali 3 Internet-Draft R. Gandhi 4 Intended status: Standards Track C. Filsfils 5 Expires: May 14, 2021 F. Brockners 6 N. Nainar 7 C. Pignataro 8 Cisco Systems, Inc. 9 C. Li 10 M. Chen 11 Huawei 12 G. Dawra 13 LinkedIn 14 November 15, 2020 16 Segment Routing Header encapsulation for In-situ OAM Data 17 draft-ali-spring-ioam-srv6-03 19 Abstract 21 OAM and PM information from the SR endpoints can be piggybacked in 22 the data packet. The OAM and PM information piggybacking in the data 23 packets is also known as In-situ OAM (IOAM). IOAM records 24 operational and telemetry information in the data packet while the 25 packet traverses a path between two points in the network. This 26 document defines how IOAM data fields are transported as part of the 27 Segment Routing with IPv6 data plane (SRv6) header. 29 Status of This Memo 31 This Internet-Draft is submitted in full conformance with the 32 provisions of BCP 78 and BCP 79. 34 Internet-Drafts are working documents of the Internet Engineering 35 Task Force (IETF). Note that other groups may also distribute 36 working documents as Internet-Drafts. The list of current Internet- 37 Drafts is at https://datatracker.ietf.org/drafts/current/. 39 Internet-Drafts are draft documents valid for a maximum of six months 40 and may be updated, replaced, or obsoleted by other documents at any 41 time. It is inappropriate to use Internet-Drafts as reference 42 material or to cite them other than as "work in progress." 44 This Internet-Draft will expire on May 14, 2021. 46 Copyright Notice 48 Copyright (c) 2019 IETF Trust and the persons identified as the 49 document authors. All rights reserved. 51 This document is subject to BCP 78 and the IETF Trust's Legal 52 Provisions Relating to IETF Documents 53 (https://trustee.ietf.org/license-info) in effect on the date of 54 publication of this document. Please review these documents 55 carefully, as they describe your rights and restrictions with respect 56 to this document. Code Components extracted from this document must 57 include Simplified BSD License text as described in Section 4.e of 58 the Trust Legal Provisions and are provided without warranty as 59 described in the Simplified BSD License. 61 Internet-Draft In-situ OAM SRv6 encapsulation 63 Table of Contents 65 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 66 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 67 2.1. Requirement Language . . . . . . . . . . . . . . . . . . . 3 68 2.2. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 3 69 3. OAM Metadata Piggybacked in Data Packets . . . . . . . . .. . 4 70 3.1 IOAM Data Field Encapsulation in SRH . . . . . . . . . . . . 4 71 4. Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . 5 72 4.1. Ingress Node . . . . . . . . . . . . . . . . . . . . . . . 5 73 4.2. SR Segment Endpoint Node . . . . . . . . . . . . . . . . . 5 74 4.3. Egress Node . . . . . . . . . . . . . . . . . . . . . . . 6 75 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 76 6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 77 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 6 78 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7 79 8.1. Normative References . . . . . . . . . . . . . . . . . . . 7 80 8.2. Informative References . . . . . . . . . . . . . . . . . . 7 81 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 8 83 1. Introduction 85 OAM and PM information from the SR endpoints can be piggybacked in 86 the data packet. The OAM and PM information piggybacking in the data 87 packets is also known as In-situ OAM (IOAM). IOAM records 88 OAM information within the packet while the packet traverses a 89 particular network domain. The term "in-situ" refers to the fact 90 that the IOAM data fields are added to the data packets rather than 91 being sent within probe packets specifically dedicated to OAM. 93 This document defines how IOAM data fields are transported as part of 94 the Segment Routing with IPv6 data plane (SRv6) header 95 [I-D.6man-segment-routing-header]. 97 The IOAM data fields carried are defined in 98 [I-D.ietf-ippm-ioam-data], and can be used for various use-cases 99 including Performance Measurement (PM) and Proof-of-Transit (PoT). 101 Internet-Draft In-situ OAM SRv6 encapsulation 103 2. Conventions 105 2.1. Requirement Language 107 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 108 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 109 document are to be interpreted as described in [RFC2119] [RFC8174] 110 when, and only when, they appear in all capitals, as shown here. 112 2.2. Abbreviations 114 Abbreviations used in this document: 116 IOAM In-situ Operations, Administration, and Maintenance 118 OAM Operations, Administration, and Maintenance 120 PM Performance Measurement 122 PoT Proof-of-Transit 124 SR Segment Routing 126 SRH SRv6 Header 128 SRv6 Segment Routing with IPv6 Data plane 130 Internet-Draft In-situ OAM SRv6 encapsulation 132 3. OAM Metadata Piggybacked in Data Packets 134 OAM and PM information from the SR endpoints can be piggybacked in 135 the data packet. The OAM and PM information piggybacking in the data 136 packets is also known as In-situ OAM (IOAM). This section describes 137 iOAM functionality in SRv6 network. 139 The IOAM data is carried in SRH.TLV. This enables the IOAM mechanism 140 to build on the network programmability capability of SRv6. Specifically, 141 the ability for an SRv6 endpoint to determine whether to 142 process or ignore some specific SRH TLVs is based on the SID 143 function. This enables collection of the IOAM information hardware friendly 144 based on the intermediate endpoint capability. The nodes that are not 145 capable of supporting the IOAM functionality does not have to look or 146 process SRH TLV (i.e., such nodes can simply ignore the SRH IOAM 147 TLV). This also enable collection of IOAM data only from segment endpoint. 149 3.1 IOAM Data Field Encapsulation in SRH 151 The SRv6 encapsulation header (SRH) is defined in [I-D.ietf-6man- 152 segment-routing-header]. IOAM data fields are carried in the SRH, 153 using a single pre-allocated SRH TLV. The different IOAM data fields 154 defined in [I-D.ietf-ippm-ioam-data] are added as sub-TLVs. 156 0 1 2 3 157 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 158 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 159 | SRH-TLV-Type | LEN | RESERVED | 160 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ 161 | IOAM-Type | IOAM HDR LEN | RESERVED | | 162 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I 163 ! | O 164 ! | A 165 ~ IOAM Option and Data Space ~ M 166 | | | 167 | | | 168 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ 169 | | 170 | | 171 | Payload + Padding (L2/L3/...) | 172 | | 174 | | 175 | | 176 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 178 Figure 1: IOAM data encapsulation in SRH 180 SRH-TLV-Type: IOAM TLV Type for SRH is defined as TBA1. 182 The fields related to the encapsulation of IOAM data fields in the 183 SRH are defined as follows: 185 IOAM-Type: 8-bit field defining the IOAM Option type, as defined in 186 Section 7.2 of [I-D.ietf-ippm-ioam-data]. 188 IOAM HDR LEN: 8-bit unsigned integer. Length of the IOAM HDR in 189 4-octet units. 191 Internet-Draft In-situ OAM SRv6 encapsulation 193 RESERVED: 8-bit reserved field MUST be set to zero upon transmission 194 and ignored upon receipt. 196 IOAM Option and Data Space: IOAM option header and data is present 197 as defined by the IOAM-Type field, and is defined in Section 4 of 198 [I-D.ietf-ippm-ioam-data]. 200 4. Procedure 202 This section summarizes the procedure for IOAM data encapsulation in 203 SRv6 SRH. The SR nodes implementing the IOAM functionality follows 204 the MTU and other considerations outlined in 205 [I-D.6man-extension-header-insertion]. 207 4.1. Ingress Node 209 As part of the SRH encapsulation, the ingress node of an SR domain or 210 an SR Policy [I-D.ietf-spring-segment-routing-policy] MAY add the 211 IOAM TLV in the SRH of the data packet. If an ingress node supports 212 IOAM functionality and, based on a local configuration, wants to 213 collect IOAM data, it adds IOAM TLV in the SRH. Based on the size of 214 the segment list (SL), the ingress node preallocates space in the 215 IOAM TLV. 217 If IOAM data from the last node in the segment-list (Egress node) is 218 desired, the ingress uses an Ultimate Segment Pop (USP) SID 219 advertised by the Egress node. 221 The ingress node MAY also insert the IOAM data about the local 222 information in the IOAM TLV in the SRH at index 0 of the preallocated 223 IOAM TLV. 225 4.2. Intermediate SR Segment Endpoint Node 227 The SR segment endpoint node is any node receiving an IPv6 packet 228 where the destination address of that packet is a local SID. As part 229 of the SR Header processing as described in [I-D.ietf-6man-segment- 230 routing-header] and [I-D.ietf-spring-srv6-network-programming], the 231 SR Segment Endpoint node performs the following IOAM operations. 233 If an intermediate SR segment endpoint node is not capable of 234 processing IOAM TLV, it simply ignores it. I.e., it does not have to 235 look or process SRH TLV. 237 If an intermediate SR segment endpoint node is capable of processing 238 IOAM TLV and the local SID supports IOAM data recording, it checks if 239 any SRH TLV is present in the packet using procedures defined in [I- 240 D.ietf-6man-segment-routing-header]. If the node finds IOAM TLV in 241 the SRH it finds the local index at which it is expected to record 242 the IOAM data. The local index is found using the SRH.SL field. The 243 node records the IOAM data at the desired preallocated space. 245 Internet-Draft In-situ OAM SRv6 encapsulation 247 4.3. Egress Node 249 The Egress node is the last node in the segment-list of the SRH. 250 When IOAM data from the Egress node is desired, a USP SID advertised 251 by the Egress node is used by the Ingress node. 253 The processing of IOAM TLV at the Egress node is similar to the 254 processing of IOAM TLV at the SR Segment Endpoint Node. The only 255 difference is that the Egress node may telemeter the IOAM data to an 256 external entity. 258 5. IANA Considerations 260 IANA is requested to allocate a mutable SRH TLV Type for IOAM TLV data fields 261 under registry name "Segment Routing Header TLVs" requested by [I- 262 D.6man-segment-routing-header]. 264 +--------------+--------------------------+---------------+ 265 | SRH TLV Type | Description | Reference | 266 +--------------+--------------------------+---------------+ 267 | TBA1 Greater | TLV for IOAM Data Fields | This document | 268 | than 128 | | | 269 +--------------+--------------------------+---------------+ 271 6. Security Considerations 273 The security considerations of SRv6 are discussed in 274 [I-D.spring-srv6-network-programming] and 275 [I-D.6man-segment-routing-header], and the security considerations of 276 IOAM in general are discussed in [I-D.ietf-ippm-ioam-data]. 278 IOAM is considered a "per domain" feature, where one or several 279 operators decide on leveraging and configuring IOAM according to 280 their needs. Still, operators need to properly secure the IOAM 281 domain to avoid malicious configuration and use, which could include 282 injecting malicious IOAM packets into a domain. 284 7. Acknowledgements 286 The authors would like to thank Shwetha Bhandari and Vengada Prasad 287 Govindan for the discussions on IOAM. 289 Internet-Draft In-situ OAM SRv6 encapsulation 291 8. References 293 8.1. Normative References 295 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 296 Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ 297 RFC2119, March 1997. 299 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 300 2119 Key Words", RFC 8174, May 2017. 302 [I-D.spring-srv6-network-programming] Filsfils, C. et al. "SRv6 303 Network Programming", 304 draft-filsfils-spring-srv6-network-programming, work in 305 progress. 307 [I-D.6man-segment-routing-header] Previdi, S., Filsfils, C. et al, 308 "IPv6 Segment Routing Header (SRH)", 309 draft-ietf-6man-segment-routing-header, work in progress. 311 [I-D.ietf-ippm-ioam-data] Brockners, F., Bhandari, S., Pignataro, 312 C., Gredler, H., Leddy, J., Youell, S., Mizrahi, T., 313 Mozes, D., Lapukhov, P., Chang, R., and Bernier, D., "Data 314 Fields for In-situ OAM", draft-ietf-ippm-ioam-data, work 315 in progress. 317 [I-D.spring-segment-routing-policy] Filsfils, C., et al., "Segment 318 Routing Policy Architecture", 319 draft-ietf-spring-segment-routing-policy, work in 320 progress. 322 8.2. Informative References 324 [I-D.6man-extension-header-insertion] D. Voyer, et al., "Insertion 325 of IPv6 Segment Routing Headers in a Controlled Domain", 326 draft-voyer-6man-extension-header-insertion, work in 327 progress. 329 Internet-Draft In-situ OAM SRv6 encapsulation 331 Authors' Addresses 333 Zafar Ali 334 Cisco Systems, Inc. 336 Email: zali@cisco.com 338 Rakesh Gandhi 339 Cisco Systems, Inc. 340 Canada 342 Email: rgandhi@cisco.com 344 Clarence Filsfils 345 Cisco Systems, Inc. 346 Belgium 348 Email: cf@cisco.com 350 Frank Brockners 351 Cisco Systems, Inc. 352 Germany 354 Email: fbrockne@cisco.com 356 Nagendra Kumar Nainar 357 Cisco Systems, Inc. 359 Email: naikumar@cisco.com 361 Carlos Pignataro 362 Cisco Systems, Inc. 364 Email: cpignata@cisco.com 366 Cheng Li 367 Huawei 369 Email: chengli13@huawei.com 371 Mach(Guoyi) Chen 372 Huawei 374 Email: mach.chen@huawei.com 376 Gaurav Dawra 377 LinkedIn 379 Email: gdawra.ietf@gmail.com