IPPM Working Group R. Gandhi, Ed. Internet-Draft C. Filsfils Intended status: Standards Track Cisco Systems, Inc. Expires: August 14, 2021 D. Voyer Bell Canada M. Chen Huawei B. Janssens Colt February 10, 2021 Simple TWAMP (STAMP) Extensions for Segment Routing Networks draft-gandhi-ippm-stamp-srpm-02 Abstract Segment Routing (SR) leverages the source routing paradigm. SR is applicable to both Multiprotocol Label Switching (SR-MPLS) and IPv6 (SRv6) data planes. This document specifies RFC 8762 (Simple Two-Way Active Measurement Protocol (STAMP)) extensions for SR networks, for both SR-MPLS and SRv6 data planes. 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." This Internet-Draft will expire on August 14, 2021. Copyright Notice Copyright (c) 2021 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 Gandhi, et al. Expires August 14, 2021 [Page 1] Internet-Draft STAMP Extensions for Segment Routing February 2021 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 Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Conventions Used in This Document . . . . . . . . . . . . . . 3 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2.2. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 3 2.3. Reference Topology . . . . . . . . . . . . . . . . . . . 4 3. Destination Node Address TLV . . . . . . . . . . . . . . . . 4 4. Return Path TLV . . . . . . . . . . . . . . . . . . . . . . . 5 4.1. Return Path Sub-TLVs . . . . . . . . . . . . . . . . . . 6 4.1.1. Return Path Control Code Sub-TLV . . . . . . . . . . 6 4.1.2. Return Address Sub-TLV . . . . . . . . . . . . . . . 7 4.1.3. Return Segment List Sub-TLVs . . . . . . . . . . . . 8 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 7.1. Normative References . . . . . . . . . . . . . . . . . . 10 7.2. Informative References . . . . . . . . . . . . . . . . . 11 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 11 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 1. Introduction Segment Routing (SR) leverages the source routing paradigm and greatly simplifies network operations for Software Defined Networks (SDNs). SR is applicable to both Multiprotocol Label Switching (SR- MPLS) and IPv6 (SRv6) data planes [RFC8402]. SR Policies as defined in [I-D.ietf-spring-segment-routing-policy] are used to steer traffic through a specific, user-defined paths using a stack of Segments. Built-in SR Performance Measurement (PM) is one of the essential requirements to provide Service Level Agreements (SLAs). The Simple Two-way Active Measurement Protocol (STAMP) provides capabilities for the measurement of various performance metrics in IP networks [RFC8762]. It eliminates the need for control protocol by using configuration and management model to provision and manage test sessions. [RFC8972] defines optional extensions for STAMP. The STAMP supports two modes of STAMP Session-Reflector: Stateless and Stateful as described in Section 4 of [RFC8762]. In Stateless mode, maintenance of each STAMP test session on Session-Reflector is Gandhi, et al. Expires August 14, 2021 [Page 2] Internet-Draft STAMP Extensions for Segment Routing February 2021 avoided. In SR networks, as the state is in the packet, the signaling of the parameters and creating extra states in the network are undesired. Hence, Stateless mode of Session-Reflector is preferred in SR networks. For performance delay and packet loss measurement, STAMP Session- Sender test packets are transmitted in-band on the same path as the data traffic flow under measurement to measure the delay and packet loss experienced by the data traffic flow. It is also desired in SR networks that the Session-Reflector reply test packets are transmitted in-band on the same path in the reverse direction. This is achieved by using the STAMP extensions defined in this document. This document specifies RFC 8762 (Simple Two-Way Active Measurement Protocol (STAMP)) extensions for SR networks, for both SR-MPLS and SRv6 data planes. 2. Conventions Used in This Document 2.1. 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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. 2.2. Abbreviations MPLS: Multiprotocol Label Switching. PM: Performance Measurement. SID: Segment ID. SL: Segment List. SR: Segment Routing. SR-MPLS: Segment Routing with MPLS data plane. SRv6: Segment Routing with IPv6 data plane. SSID: STAMP Session Identifier. STAMP: Simple Two-way Active Measurement Protocol. Gandhi, et al. Expires August 14, 2021 [Page 3] Internet-Draft STAMP Extensions for Segment Routing February 2021 2.3. Reference Topology In the reference topology shown below, the STAMP Session-Sender R1 initiates a STAMP test packet and the STAMP Session-Reflector R3 transmits a reply test packet. The reply test packet is transmitted back to the STAMP Session-Sender R1 on the same path or a different path in the reverse direction. The nodes R1 and R3 may be connected via a link or there exists an SR path [RFC8402]. The link may be a physical interface, virtual link, or Link Aggregation Group (LAG) [IEEE802.1AX], or LAG member link. The SR path may be an SR Policy [I-D.ietf-spring-segment-routing-policy] on node R1 (called head-end) with destination to node R3 (called tail-end). T1 T2 / \ +-------+ Test Packet +-------+ | | - - - - - - - - - ->| | | R1 |=====================| R3 | | |<- - - - - - - - - - | | +-------+ Reply Test Packet +-------+ \ / T4 T3 STAMP Session-Sender STAMP Session-Reflector Reference Topology 3. Destination Node Address TLV The STAMP Session-Sender may need to transmit test packets to the STAMP Session-Reflector with a different destination address (for example IPv4 address from 127/8 range). In an error condition, the STAMP test packet may not reach the intended STAMP Session-Reflector, an un-intended node may transmit reply test packets resulting in reporting of invalid measurement metrics. [RFC8972] defines STAMP test packets that can include one or more optional TLVs. In this document, Destination Node Address TLV (Type TBA1) is defined for STAMP test packet [RFC8972] and has the following format shown in Figure 1: Gandhi, et al. Expires August 14, 2021 [Page 4] Internet-Draft STAMP Extensions for Segment Routing February 2021 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |STAMP TLV Flags| Type=TBA1 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Address Family | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . Address . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1: Destination Node Address TLV Format The Address Family field indicates the type of the address, and it SHALL be set to one of the assigned values in the "IANA Address Family Numbers" registry. The STAMP TLV Flags are set using the procedures described in [RFC8972]. The Destination Node Address TLV is optional. The Destination Node Address TLV indicates the address of the intended destination node of the test packet. The STAMP Session-Reflector that supports this TLV, MUST NOT transmit reply test packet if it is not the intended destination node of the received test packet. 4. Return Path TLV For end-to-end SR paths, the STAMP Session-Reflector may need to transmit the reply test packet on a specific return path. The STAMP Session-Sender can request this in the test packet to the STAMP Session-Reflector using a Return Path TLV. With this TLV carried in the STAMP Session-Sender test packet, the STAMP Session-Reflector (Stateless mode) does not require signaling and maintaining any additional dynamic state for the STAMP sessions for the end-to-end SR paths. For links, the STAMP Session-Reflector may need to transmit the reply test packet on the same incoming link in the reverse direction. The STAMP Session-Sender can request this in the test packet to the STAMP Session-Reflector using a Return Path TLV. With this TLV carried in the STAMP Session-Sender test packet, the STAMP Session-Reflector (Stateless mode) does not require maintenance of any additional state for the STAMP sessions for the links. [RFC8972] defines STAMP test packets that can include one or more optional TLVs. In this document, the TLV Type (value TBA2) is defined for the Return Path TLV that carries the return path for the Gandhi, et al. Expires August 14, 2021 [Page 5] Internet-Draft STAMP Extensions for Segment Routing February 2021 STAMP Session-Sender test packet. The format of the Return Path TLV is shown in Figure 2: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |STAMP TLV Flags| Type=TBA2 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Return Path Sub-TLVs | . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: Return Path TLV The STAMP TLV Flags are set using the procedures described in [RFC8972]. The Return Path TLV is optional. The STAMP Session-Sender MUST only insert one Return Path TLV in the STAMP test packet. The STAMP Session-Reflector that supports this TLV, MUST only process the first Return Path TLV in the test packet and ignore other Return Path TLVs if present, and it MUST NOT add Return Path TLV in the reply test packet. 4.1. Return Path Sub-TLVs The Return Path TLV contains one or more Sub-TLVs to carry the information for the requested return path. A Return Path Sub-TLV can either carry Return Path Control Code, Return Path IP Address or Return Path Segment List. The STAMP Sub-TLV Flags are set using the procedures described in [RFC8972]. When Return Path Sub-TLV is present in the Session-Sender test packet, the STAMP Session-Reflector that supports this TLV, MUST transmit reply test packet using the return path information specified in the Return Path Sub-TLV. 4.1.1. Return Path Control Code Sub-TLV The format of the Return Path Control Code Sub-TLV is shown in Figure 3. The Type of the Return Path Control Code Sub-TLV is defined as following: o Type (value 1): Return Path Control Code. The STAMP Session- Sender can request the STAMP Session-Reflector to transmit the Gandhi, et al. Expires August 14, 2021 [Page 6] Internet-Draft STAMP Extensions for Segment Routing February 2021 reply test packet based on the flags defined in the Control Code field. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |STAMP TLV Flags| Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Control Code | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: Control Code Sub-TLV in Return Path TLV Control Code Flags (32-bit): Defined as follows. 0x0: No Reply Requested. 0x1: In-band Reply Requested. When Control Code flag is set to 0x0 in the STAMP Session-Sender test packet, the Session-Reflector does not transmit reply test packet to the Session-Sender and terminates the STAMP test packet. Optionally, the Session-Reflector may locally stream performance metrics via telemetry using the information from the received test packet. All other Return Path Sub-TLVs are ignored in this case. When Control Code flag is set to 0x1 in the STAMP Session-Sender test packet, the Session-Reflector transmits the reply test packet in-band over the same incoming link where the test packet is received in the reverse direction. 4.1.2. Return Address Sub-TLV The STAMP reply test packet may be transmitted to a different node than the Session-Sender (e.g. to a controller for telemetry use- cases). For this, the Session-Sender can specify in the test packet the receiving destination node address for the Session-Reflector reply test packet. The format of the Return Address Sub-TLV is shown in Figure 4. The Address Family field indicates the type of the address, and it SHALL be set to one of the assigned values in the "IANA Address Family Numbers" registry. The Type of the Return Address Sub-TLV is defined as following: o Type (value 2): Return Address. Destination node address of the STAMP Session-Reflector reply test packet different than the Source Address in the Session-Sender test packet. Gandhi, et al. Expires August 14, 2021 [Page 7] Internet-Draft STAMP Extensions for Segment Routing February 2021 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |STAMP TLV Flags| Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Address Family | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . Address . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4: Return Address Sub-TLV in Return Path TLV 4.1.3. Return Segment List Sub-TLVs The format of the Segment List Sub-TLVs in the Return Path TLV is shown in Figure 5. The segment entries MUST be in network order. The Segment List Sub-TLV can be one of the following Types: o Type (value 3): SR-MPLS Label Stack of the Return Path o Type (value 4): SR-MPLS Binding SID [I-D.ietf-pce-binding-label-sid] of the Return SR Policy o Type (value 5): SRv6 Segment List of the Return Path o Type (value 6): SRv6 Binding SID [I-D.ietf-pce-binding-label-sid] of the Return SR Policy 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |STAMP TLV Flags| Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Segment(1) | . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Segment(n) (bottom of stack) | . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 5: Segment List Sub-TLV in Return Path TLV The STAMP Session-Sender MUST only insert one Segment List Return Path Sub-TLV in the test packet. The STAMP Session-Reflector MUST Gandhi, et al. Expires August 14, 2021 [Page 8] Internet-Draft STAMP Extensions for Segment Routing February 2021 only process the first Segment List Return Path Sub-TLV in the test packet and ignore other Segment List Return Path Sub-TLVs if present. 5. Security Considerations The performance measurement is intended for deployment in well- managed private and service provider networks. As such, it assumes that a node involved in a measurement operation has previously verified the integrity of the path and the identity of the STAMP Session-Reflector. If desired, attacks can be mitigated by performing basic validation and sanity checks, at the STAMP Session-Sender, of the timestamp fields in received measurement reply packets. The minimal state associated with these protocols also limits the extent of measurement disruption that can be caused by a corrupt or invalid packet to a single test cycle. The security considerations specified in [RFC8762] and [RFC8972] also apply to the extensions defined in this document. 6. IANA Considerations IANA will create a "STAMP TLV Type" registry for [RFC8972]. IANA is requested to allocate a value for the following Destination Address TLV Type from the IETF Review TLV range of this registry. This TLV is to be carried in the STAMP test packets. o Type TBA1: Destination Node Address TLV IANA is also requested to allocate a value for the following Return Path TLV Type from the IETF Review TLV range of the same registry. This TLV is to be carried in the STAMP test packets. o Type TBA2: Return Path TLV IANA is requested to create a sub-registry for "Return Path Sub-TLV Type". All code points in the range 1 through 175 in this registry shall be allocated according to the "IETF Review" procedure as specified in [RFC8126]. Code points in the range 176 through 239 in this registry shall be allocated according to the "First Come First Served" procedure as specified in [RFC8126]. Remaining code points are allocated according to Table 1: Gandhi, et al. Expires August 14, 2021 [Page 9] Internet-Draft STAMP Extensions for Segment Routing February 2021 +-----------+--------------+---------------+ | Value | Description | Reference | +-----------+--------------+---------------+ | 0 | Reserved | This document | | 1 - 175 | Unassigned | This document | | 176 - 239 | Unassigned | This document | | 240 - 251 | Experimental | This document | | 252 - 254 | Private Use | This document | | 255 | Reserved | This document | +-----------+--------------+---------------+ Table 1: Return Path Sub-TLV Type Registry IANA is requested to allocate the values for the following Sub-TLV Types from this registry. o Type (value 1): Return Path Control Code o Type (value 2): Return Address o Type (value 3): SR-MPLS Label Stack of the Return Path o Type (value 4): SR-MPLS Binding SID of the Return SR Policy o Type (value 5): SRv6 Segment List of the Return Path o Type (value 6): SRv6 Binding SID of the Return SR Policy 7. References 7.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8762] Mirsky, G., Jun, G., Nydell, H., and R. Foote, "Simple Two-Way Active Measurement Protocol", RFC 8762, DOI 10.17487/RFC8762, March 2020, . Gandhi, et al. Expires August 14, 2021 [Page 10] Internet-Draft STAMP Extensions for Segment Routing February 2021 [RFC8972] Mirsky, G., Min, X., Nydell, H., Foote, R., Masputra, A., and E. Ruffini, "Simple Two-Way Active Measurement Protocol Optional Extensions", RFC 8972, DOI 10.17487/RFC8972, January 2021, . 7.2. Informative References [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., Decraene, B., Litkowski, S., and R. Shakir, "Segment Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, July 2018, . [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, June 2017, . [I-D.ietf-spring-segment-routing-policy] Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and P. Mattes, "Segment Routing Policy Architecture", draft- ietf-spring-segment-routing-policy-09 (work in progress), November 2020. [I-D.ietf-pce-binding-label-sid] Sivabalan, S., Filsfils, C., Tantsura, J., Hardwick, J., Previdi, S., and C. Li, "Carrying Binding Label/Segment-ID in PCE-based Networks.", draft-ietf-pce-binding-label- sid-05 (work in progress), October 2020. Acknowledgments The authors would like to thank Thierry Couture for the discussions on the use-cases for Performance Measurement in Segment Routing. The authors would also like to thank Greg Mirsky, Mike Koldychev, Gyan Mishra, Tianran Zhou, and Cheng Li for providing comments and suggestions. Authors' Addresses Rakesh Gandhi (editor) Cisco Systems, Inc. Canada Email: rgandhi@cisco.com Gandhi, et al. Expires August 14, 2021 [Page 11] Internet-Draft STAMP Extensions for Segment Routing February 2021 Clarence Filsfils Cisco Systems, Inc. Email: cfilsfil@cisco.com Daniel Voyer Bell Canada Email: daniel.voyer@bell.ca Mach(Guoyi) Chen Huawei Email: mach.chen@huawei.com Bart Janssens Colt Email: Bart.Janssens@colt.net Gandhi, et al. Expires August 14, 2021 [Page 12]