IPPM H. Song Internet-Draft Futurewei Intended status: Standards Track Z. Li Expires: 5 September 2024 S. Peng Huawei Technologies J. Guichard Futurewei 4 March 2024 Scalable Approaches on Supporting IOAM in IPv6 draft-song-ippm-ioam-ipv6-support-03 Abstract IOAM pre-allocated trace option data fields can be encapsulated in IPv6 HbH options header as described in RFC9486. However, due to the potential large size of the trace data and the HbH extension header location in the IPv6 packets, the scheme creates practical challenges for implementation, especially when other extension headers, such as a routing header, also exist and require on-path processing. We propose two alternative approaches to address this challenge in addition to IOAM DEX: separating the IOAM incremental trace data from the IOAM instruction header, and applying the segment IOAM trace data export scheme, based on the network scenario and application requirements. We discuss the pros and cons of each approach in this document. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." Song, et al. Expires 5 September 2024 [Page 1] Internet-Draft IOAM IPv6 Support March 2024 This Internet-Draft will expire on 5 September 2024. Copyright Notice Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. IOAM Trace Data Separate and Postpose . . . . . . . . . . . . 4 2.1. IOAM Incremental Trace Data Encapsulation . . . . . . . . 5 3. Segment IOAM Data Export . . . . . . . . . . . . . . . . . . 5 3.1. Independent of SRv6 . . . . . . . . . . . . . . . . . . . 5 3.2. Export at SRv6 node . . . . . . . . . . . . . . . . . . . 6 4. Direct Export Option . . . . . . . . . . . . . . . . . . . . 7 5. Comparison . . . . . . . . . . . . . . . . . . . . . . . . . 7 6. Security Considerations . . . . . . . . . . . . . . . . . . . 8 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 9. Normative References . . . . . . . . . . . . . . . . . . . . 8 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 1. Introduction In-situ OAM (IOAM) [RFC9197] defines two trace options, pre-allocated trace option and incremental trace option, which record hop-by-hop data along a packet's forwarding path. [RFC9486] describes the method to encapsulate IOAM pre-allocated trace option data fields in IPv6. Because the trace options requires per hop processing, such options can only be encapsulated in IPv6 Hop-by-Hop (HbH) options header. [RFC8200] mandates that the HbH options header, if exists, must be the first extension header following the IPv6 header. However, the IOAM trace data can be large, which can amount to tens to hundreds of bytes, making accessing other headers after it difficult or even impossible in some routers. There are practical limitations on how far the hardware can reach into a packet in forwarding hardware. The Song, et al. Expires 5 September 2024 [Page 2] Internet-Draft IOAM IPv6 Support March 2024 IOAM trace option cannot be applied if it makes other extension headers inaccessible. Even if the other headers can be reached, the deeper they are, the higher the cost to access and process them, and the lower the forwarding performance. Note that [RFC9486] does not support the incremental trace option because it would expand the HbH header at each hop and push back all other headers after it. The changing location of the later extension headers could further complicate the hardware implementation and affect the forwarding performance. The issue becomes more severe when SRv6 and IOAM coexist. The Segment Routing Extension Header (SRH) [RFC8754] is encapsulated in a routing header which is after the HbH options header. SRH itself can be large. It requires read and write operations at each SRv6 segment endpoint node. If it is deeply embedded in a packet and its location keeps shifting, either it is beyond the reach of hardware or the forwarding performance degrades. We can avoid the problem by not using both at the same time, but this is not ideal, because IOAM is an important OAM tool and it is even more wanted when SRv6 brings more operational complexity into IPv6 networks. The second recourse is to limit the IOAM to SRv6 nodes only. That is, consider SRv6 as an overlay tunnel over IPv6 and apply the IOAM pipe mode as discussed in [I-D.song-ippm-ioam-tunnel-mode], which only collects data at each SRv6 segment endpoint nodes. To realize this, [I-D.ali-spring-ioam-srv6] describes an approach that encapsulates the IOAM option data fields in an SRH TLV. [RFC9259] describes another approach to enable postcard-based telemetry for SRv6 without needing IOAM option encapsulation. In either case, the SRH is close to the packet front and its location is fixed. While these approaches are useful for use cases that only need to monitor the segment endpoints, it fails to cover all the IPv6 nodes on the packet forwarding path in an IOAM domain. So the proposition of this draft is, if we need to apply IOAM on all nodes in an SRv6 network, how we can amend the approach in [RFC9486] or use alternative approaches to circumvent the aforementioned issues. In this draft, we propose two viable approaches: (1) separating the IOAM trace data from the instruction header to a different extension header option after the routing header if it exists, and (2) applying the segment IOAM trace export scheme. We discuss the pros and cons of each approach. Song, et al. Expires 5 September 2024 [Page 3] Internet-Draft IOAM IPv6 Support March 2024 2. IOAM Trace Data Separate and Postpose An IOAM trace type data fields contain two parts: instruction and trace data. Although by convention the trace data part immediately follows the instruction part, there is not fundamental reason why these two parts must stick together. This observation provides us an optimization opportunity to amend the original proposal in [RFC9486]. We separate the IOAM trace type data fields into the instruction part and the trace data part. We encapsulate only the instruction part in the HbH options header, and encapsulate the trace data part in another extension header option after all the IPv6 extension headers that need to be examined and processed on the packet forwarding path (e.g., a routing header). This arrangement allows us to use the incremental trace option efficiently. Even if the data trace increases its size at each node, all IPv6 extension headers before it remain a fixed size, and new data is guaranteed to be inserted at a fixed location. Figure 1 shows the HbH option format for IOAM incremental trace type instruction. The field specification is identical to that in [RFC8200] and [RFC9197]. 0 1 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type | Opt Data Len | Reserved | IOAM Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<--- | Namespace-ID |NodeLen | Flags | RemainingLen| IOAM +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Trace | IOAM-Trace-Type | Reserved | Type +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+. [I-D.song-ippm-ioam-tunnel-mode] Song, H., Li, Z., Zhou, T., and Z. Wang, "In-situ OAM Processing in Tunnels", Work in Progress, Internet-Draft, draft-song-ippm-ioam-tunnel-mode-00, 27 June 2018, . [I-D.song-ippm-segment-ioam] Song, H. and T. Zhou, "Control In-situ OAM Overhead with Segment IOAM", Work in Progress, Internet-Draft, draft- song-ippm-segment-ioam-01, 17 April 2018, . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . Song, et al. Expires 5 September 2024 [Page 8] Internet-Draft IOAM IPv6 Support March 2024 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", STD 86, RFC 8200, DOI 10.17487/RFC8200, July 2017, . [RFC8300] Quinn, P., Ed., Elzur, U., Ed., and C. Pignataro, Ed., "Network Service Header (NSH)", RFC 8300, DOI 10.17487/RFC8300, January 2018, . [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, . [RFC9197] Brockners, F., Ed., Bhandari, S., Ed., and T. Mizrahi, Ed., "Data Fields for In Situ Operations, Administration, and Maintenance (IOAM)", RFC 9197, DOI 10.17487/RFC9197, May 2022, . [RFC9259] Ali, Z., Filsfils, C., Matsushima, S., Voyer, D., and M. Chen, "Operations, Administration, and Maintenance (OAM) in Segment Routing over IPv6 (SRv6)", RFC 9259, DOI 10.17487/RFC9259, June 2022, . [RFC9326] Song, H., Gafni, B., Brockners, F., Bhandari, S., and T. Mizrahi, "In Situ Operations, Administration, and Maintenance (IOAM) Direct Exporting", RFC 9326, DOI 10.17487/RFC9326, November 2022, . [RFC9486] Bhandari, S., Ed. and F. Brockners, Ed., "IPv6 Options for In Situ Operations, Administration, and Maintenance (IOAM)", RFC 9486, DOI 10.17487/RFC9486, September 2023, . Authors' Addresses Haoyu Song Futurewei United States of America Email: haoyu.song@futurewei.com Zhenbin Li Huawei Technologies China Song, et al. Expires 5 September 2024 [Page 9] Internet-Draft IOAM IPv6 Support March 2024 Email: lizhenbin@huawei.com Shuping Peng Huawei Technologies China Email: pengshuping@huawei.com James Guichard Futurewei United States of America Email: james.n.guichard@futurewei.com Song, et al. Expires 5 September 2024 [Page 10]