| rfc9503.original | rfc9503.txt | |||
|---|---|---|---|---|
| IPPM Working Group R. Gandhi, Ed. | Internet Engineering Task Force (IETF) R. Gandhi, Ed. | |||
| Internet-Draft C. Filsfils | Request for Comments: 9503 C. Filsfils | |||
| Intended status: Standards Track Cisco Systems, Inc. | Category: Standards Track Cisco Systems, Inc. | |||
| Expires: 5 February 2024 M. Chen | ISSN: 2070-1721 M. Chen | |||
| Huawei | Huawei | |||
| B. Janssens | B. Janssens | |||
| Colt | Colt | |||
| R. Foote | R. Foote | |||
| Nokia | Nokia | |||
| 4 August 2023 | October 2023 | |||
| Simple TWAMP (STAMP) Extensions for Segment Routing Networks | Simple Two-Way Active Measurement Protocol (STAMP) Extensions for | |||
| draft-ietf-ippm-stamp-srpm-18 | Segment Routing Networks | |||
| Abstract | Abstract | |||
| Segment Routing (SR) leverages the source routing paradigm. SR is | Segment Routing (SR) leverages the source routing paradigm. SR is | |||
| applicable to both Multiprotocol Label Switching (SR-MPLS) and IPv6 | applicable to both Multiprotocol Label Switching (SR-MPLS) and IPv6 | |||
| (SRv6) forwarding planes. This document specifies RFC 8762 (Simple | (SRv6) forwarding planes. This document specifies Simple Two-Way | |||
| Two-Way Active Measurement Protocol (STAMP)) extensions for SR | Active Measurement Protocol (STAMP) extensions (as described in RFC | |||
| networks, for both SR-MPLS and SRv6 forwarding planes by augmenting | 8762) for SR networks, for both the SR-MPLS and SRv6 forwarding | |||
| the optional extensions defined in RFC 8972. | planes, by augmenting the optional extensions defined in RFC 8972. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| 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 | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 5 February 2024. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9503. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2023 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 2. Conventions Used in This Document . . . . . . . . . . . . . . 3 | 2. Conventions Used in This Document | |||
| 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 2.1. Requirements Language | |||
| 2.2. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 3 | 2.2. Abbreviations | |||
| 2.3. Reference Topology . . . . . . . . . . . . . . . . . . . 3 | 2.3. Reference Topology | |||
| 3. Destination Node Address TLV . . . . . . . . . . . . . . . . 4 | 3. Destination Node Address TLV | |||
| 4. Return Path TLV . . . . . . . . . . . . . . . . . . . . . . . 6 | 4. Return Path TLV | |||
| 4.1. Return Path Sub-TLVs . . . . . . . . . . . . . . . . . . 7 | 4.1. Return Path Sub-TLVs | |||
| 4.1.1. Return Path Control Code Sub-TLV . . . . . . . . . . 8 | 4.1.1. Return Path Control Code Sub-TLV | |||
| 4.1.2. Return Address Sub-TLV . . . . . . . . . . . . . . . 9 | 4.1.2. Return Address Sub-TLVs | |||
| 4.1.3. Return Segment List Sub-TLVs . . . . . . . . . . . . 10 | 4.1.3. Return Path Segment List Sub-TLVs | |||
| 5. Interoperability with TWAMP Light . . . . . . . . . . . . . . 12 | 5. Interoperability with TWAMP Light | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 6. Security Considerations | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | 7. IANA Considerations | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 8. References | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 16 | 8.1. Normative References | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 16 | 8.2. Informative References | |||
| Appendix A. Destination Node Address TLV Use-case Example . . . 17 | Appendix A. Destination Node Address TLV Use-Case Example | |||
| Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 18 | Acknowledgments | |||
| Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 18 | Contributors | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| Segment Routing (SR) leverages the source routing paradigm for | Segment Routing (SR) leverages the source routing paradigm for | |||
| Software Defined Networks (SDNs). SR is applicable to both | Software-Defined Networks (SDNs). SR is applicable to both | |||
| Multiprotocol Label Switching (SR-MPLS) and IPv6 (SRv6) forwarding | Multiprotocol Label Switching (SR-MPLS) and IPv6 (SRv6) forwarding | |||
| planes [RFC8402]. SR Policies as defined in [RFC9256] are used to | planes [RFC8402]. SR Policies as defined in [RFC9256] are used to | |||
| steer traffic through a specific, user-defined paths using a stack of | steer traffic through specific, user-defined paths using a stack of | |||
| Segments. A comprehensive SR Performance Measurement (PM) toolset is | Segments. A comprehensive SR Performance Measurement (PM) toolset is | |||
| one of the essential requirements to measure network performance to | one of the essential requirements to measure network performance to | |||
| provide Service Level Agreements (SLAs). | provide Service Level Agreements (SLAs). | |||
| The Simple Two-Way Active Measurement Protocol (STAMP) provides | The Simple Two-Way Active Measurement Protocol (STAMP) provides | |||
| capabilities for the measurement of various performance metrics in IP | capabilities for the measurement of various performance metrics in IP | |||
| networks [RFC8762] without the use of a control channel to pre-signal | networks [RFC8762] without the use of a control channel to pre-signal | |||
| session parameters. [RFC8972] defines optional extensions, in the | session parameters. [RFC8972] defines optional extensions, in the | |||
| form of TLVs, for STAMP. Note that the YANG data model defined in | form of TLVs, for STAMP. Note that the YANG data model defined in | |||
| [I-D.ietf-ippm-stamp-yang] can be used to provision the STAMP | [IPPM-STAMP-YANG] can be used to provision the STAMP Session-Sender | |||
| Session-Sender and STAMP Session-Reflector. | and STAMP Session-Reflector. | |||
| The STAMP test packets are transmitted along an IP path between a | STAMP test packets are transmitted along an IP path between a | |||
| Session-Sender and a Session-Reflector to measure performance delay | Session-Sender and a Session-Reflector to measure performance delay | |||
| and packet loss along that IP path. It may be desired in SR networks | and packet loss along that IP path. In SR networks, it may be | |||
| that the same path (same set of links and nodes) between the Session- | desired that the same path (same set of links and nodes) between the | |||
| Sender and Session-Reflector is used for the STAMP test packets in | Session-Sender and Session-Reflector be used for the STAMP test | |||
| both directions. This is achieved by using the STAMP [RFC8762] | packets in both directions. This is achieved by using the STAMP | |||
| extensions for SR-MPLS and SRv6 networks specified in this document | [RFC8762] extensions for SR-MPLS and SRv6 networks as specified in | |||
| by augmenting the optional extensions defined in [RFC8972]. | this document by augmenting the optional extensions defined in | |||
| [RFC8972]. | ||||
| 2. Conventions Used in This Document | 2. Conventions Used in This Document | |||
| 2.1. Requirements Language | 2.1. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2.2. Abbreviations | 2.2. Abbreviations | |||
| MPLS: Multiprotocol Label Switching. | MPLS: Multiprotocol Label Switching | |||
| SID: Segment Identifier. | SID: Segment Identifier | |||
| SR: Segment Routing. | SR: Segment Routing | |||
| SR-MPLS: Segment Routing with MPLS forwarding plane. | SR-MPLS: Segment Routing over MPLS | |||
| SRv6: Segment Routing with IPv6 forwarding plane. | SRv6: Segment Routing over IPv6 | |||
| SSID: STAMP Session Identifier. | SSID: STAMP Session Identifier | |||
| STAMP: Simple Two-Way Active Measurement Protocol. | STAMP: Simple Two-Way Active Measurement Protocol | |||
| 2.3. Reference Topology | 2.3. Reference Topology | |||
| In the reference topology shown below, the STAMP Session-Sender S1 | In the reference topology shown below, the STAMP Session-Sender S1 | |||
| initiates a STAMP test packet and the STAMP Session-Reflector R1 | initiates a STAMP test packet and the STAMP Session-Reflector R1 | |||
| transmits a reply STAMP test packet. The reply test packet may be | transmits a reply STAMP test packet. The reply test packet may be | |||
| transmitted to the Session-Sender S1 on the same path (same set of | transmitted to the Session-Sender S1 on the same path (same set of | |||
| links and nodes) or a different path in the reverse direction from | links and nodes) or a different path in the reverse direction from | |||
| the path taken towards the Session-Reflector R1. The T1 is a | the path taken towards the Session-Reflector R1. | |||
| transmit timestamp and T4 is a receive timestamp added by node S1 in | ||||
| the STAMP test packet. The T2 is a receive timestamp and T3 is a | T1 is a transmit timestamp, and T4 is a receive timestamp added by | |||
| transmit timestamp added by node R1 in the STAMP test packet. | node S1. T2 is a receive timestamp, and T3 is a transmit timestamp | |||
| added by node R1. | ||||
| The nodes S1 and R1 may be connected via a link or an SR path | The nodes S1 and R1 may be connected via a link or an SR path | |||
| [RFC8402]. The link may be a physical interface, virtual link, or | [RFC8402]. The link may be a physical interface, virtual link, Link | |||
| Link Aggregation Group (LAG) [IEEE802.1AX], or LAG member. The SR | Aggregation Group (LAG) [IEEE802.1AX], or LAG member. The SR path | |||
| path may be an SR Policy [RFC9256] on node S1 (called head-end) with | may be an SR Policy [RFC9256] on node S1 (called "head-end") with a | |||
| destination to node R1 (called tail-end). | destination to node R1 (called "tail-end"). | |||
| T1 T2 | T1 T2 | |||
| / \ | / \ | |||
| +-------+ Test Packet +-------+ | +-------+ Test Packet +-------+ | |||
| | | - - - - - - - - - ->| | | | | - - - - - - - - - ->| | | |||
| | S1 |=====================| R1 | | | S1 |=====================| R1 | | |||
| | |<- - - - - - - - - - | | | | |<- - - - - - - - - - | | | |||
| +-------+ Reply Test Packet +-------+ | +-------+ Reply Test Packet +-------+ | |||
| \ / | \ / | |||
| T4 T3 | T4 T3 | |||
| STAMP Session-Sender STAMP Session-Reflector | STAMP Session-Sender STAMP Session-Reflector | |||
| Reference Topology | Figure 1: Reference Topology | |||
| 3. Destination Node Address TLV | 3. Destination Node Address TLV | |||
| The Session-Sender may need to transmit test packets to the Session- | The Session-Sender may need to transmit test packets to the Session- | |||
| Reflector with a destination address that is not a routable (i.e., | Reflector with a Destination Address that is not a routable address | |||
| suitable for use as the Source Address of the reply test packet) | (i.e., not suitable for use as the Source Address of the reply test | |||
| address of the Session-Reflector. This can be facilitated, for | packet) of the Session-Reflector. This can be facilitated, for | |||
| example, by encapsulating the STAMP packet by a tunneling protocol, | example, by encapsulating the STAMP packet by a tunneling protocol; | |||
| see Appendix A, for a worked example. | see Appendix A for an example. | |||
| [RFC8972] defines STAMP Session-Sender and Session-Reflector test | [RFC8972] defines STAMP Session-Sender and Session-Reflector test | |||
| packets that can include one or more optional TLVs. In this | packets that can include one or more optional TLVs. In this | |||
| document, the TLV type (value 9 for IPv4 and IPv6) is defined for the | document, the TLV Type (value 9 for IPv4 and IPv6) is defined for the | |||
| Destination Node Address TLV for the STAMP test packet [RFC8972]. | Destination Node Address TLV for the STAMP test packet [RFC8972]. | |||
| The formats of the Destination Node Address TLVs are shown in | The formats of the Destination Node Address TLVs are shown in | |||
| Figure 1: | Figure 2: | |||
| 0 1 2 3 | 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 | 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=9 | Length=4 | | |STAMP TLV Flags| Type=9 | Length=4 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IPv4 Address | | | IPv4 Address | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 0 1 2 3 | 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 | 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=9 | Length=16 | | |STAMP TLV Flags| Type=9 | Length=16 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| | IPv6 Address | | | IPv6 Address | | |||
| | | | | | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: Destination Node Address TLV Format | Figure 2: Destination Node Address TLV Formats | |||
| TLV fields are defined as follows: | The TLV fields are defined as follows: | |||
| STAMP TLV Flags : The STAMP TLV Flags follow the procedures described | STAMP TLV Flags: The STAMP TLV Flags follow the procedures described | |||
| in [RFC8972] and this document. | in [RFC8972] and this document. | |||
| Type : Type (value 9) for IPv4 Destination Node Address TLV or IPv6 | Type: Type (value 9) for the IPv4 Destination Node Address TLV or | |||
| Destination Node Address TLV. | IPv6 Destination Node Address TLV. | |||
| Length : A two-octet field equal to the length of the Address field | Length: A 2-octet field equal to the length of the Address field in | |||
| in octets. The length is 4 octets for IPv4 address and 16 octets for | octets. The length is 4 octets for an IPv4 address and 16 octets | |||
| IPv6 address. | for an IPv6 address. | |||
| The Destination Node Address TLV indicates an address of the intended | The Destination Node Address TLV indicates an address of the intended | |||
| Session-Reflector node of the test packet. If the received | Session-Reflector node of the test packet. If the received | |||
| Destination Node Address is one of the addresses of the Session- | Destination Node Address is one of the addresses of the Session- | |||
| Reflector, it SHOULD be used as the Source Address in the IP header | Reflector, it SHOULD be used as the Source Address in the IP header | |||
| of the reply test packet. If the Destination Node Address TLV is | of the reply test packet. If the Destination Node Address TLV is | |||
| sent, the SSID MUST also be sent. | sent, the SSID MUST also be sent. | |||
| A Session-Reflector that recognizes this TLV, MUST set the U flag | A Session-Reflector that recognizes this TLV MUST set the U flag | |||
| [RFC8972] in the reply test packet to 1 if the Session-Reflector | [RFC8972] in the reply test packet to 1 if the Session-Reflector | |||
| determined that it is not the intended Destination as identified in | determined that it is not the intended destination as identified in | |||
| the Destination Node Address TLV. In this case, the Session- | the Destination Node Address TLV. In this case, the Session- | |||
| Reflector does not use the received Destination Node Address as the | Reflector does not use the received Destination Node Address as the | |||
| Source Address in the IP header of the reply test packet. Otherwise, | Source Address in the IP header of the reply test packet. Otherwise, | |||
| the Session-Reflector MUST set the U flag in the Destination Node | the Session-Reflector MUST set the U flag in the Destination Node | |||
| Address TLV in the reply test packet to 0. | Address TLV in the reply test packet to 0. | |||
| 4. Return Path TLV | 4. Return Path TLV | |||
| For end-to-end SR paths, the Session-Reflector may need to transmit | For end-to-end SR paths, the Session-Reflector may need to transmit | |||
| the reply test packet on a specific return path. The Session-Sender | the reply test packet on a specific Return Path. The Session-Sender | |||
| can request this in the test packet to the Session-Reflector using a | can request this in the test packet to the Session-Reflector using a | |||
| Return Path TLV. With this TLV carried in the Session-Sender test | Return Path TLV. With this TLV carried in the Session-Sender test | |||
| packet, signaling and maintaining dynamic SR network state for the | packet, signaling and maintaining dynamic SR network state for the | |||
| STAMP sessions on the Session-Reflector are avoided. | STAMP sessions on the Session-Reflector are avoided. | |||
| There are two modes defined for the behaviors on the Session- | There are two modes defined for the behaviors on the Session- | |||
| Reflector in Section 4 of [RFC8762]. A Stateful Session-Reflector | Reflector in Section 4 of [RFC8762]: Stateless and Stateful. A | |||
| that requires configuration that must match all Session-Sender | Stateful Session-Reflector requires configuration that must match all | |||
| parameters, including Source Address, Destination Address, Source UDP | Session-Sender parameters, including the Source Address, Destination | |||
| Port, Destination UDP Port, and possibly SSID (assuming the SSID is | Address, Source UDP Port, Destination UDP Port, and possibly SSID | |||
| configurable and not auto-generated). In this case, a local policy | (assuming the SSID is configurable and not auto-generated). In this | |||
| can be used to direct the test packet by creating additional states | case, a local policy can be used to direct the test packet by | |||
| for the STAMP sessions on the Session-Reflector. In the case of | creating additional states for the STAMP sessions on the Session- | |||
| promiscuous operation, the Stateless Session-Reflector will require | Reflector. In the case of promiscuous operation, the Stateless | |||
| an indication of how to return the test packet on a specific path, | Session-Reflector will require an indication of how to return the | |||
| for example, for measurement in an ECMP environment. | test packet on a specific path, for example, for measurement in an | |||
| ECMP environment. | ||||
| For links, the Session-Reflector may need to transmit the reply test | For links, the Session-Reflector may need to transmit the reply test | |||
| packet on the same incoming link in the reverse direction. The | packet on the same incoming link in the reverse direction. The | |||
| Session-Sender can request this in the test packet to the Session- | Session-Sender can request this in the test packet to the Session- | |||
| Reflector using a Return Path TLV. | Reflector using a Return Path TLV. | |||
| [RFC8972] defines STAMP test packets that can include one or more | [RFC8972] defines STAMP test packets that can include one or more | |||
| optional TLVs. In this document, the TLV Type (value 10) is defined | optional TLVs. In this document, the TLV Type (value 10) is defined | |||
| for the Return Path TLV that carries the return path for the Session- | for the Return Path TLV that carries the Return Path for the Session- | |||
| Sender test packet. The format of the Return Path TLV is shown in | Sender test packet. The format of the Return Path TLV is shown in | |||
| Figure 2: | Figure 3: | |||
| 0 1 2 3 | 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 | 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=10 | Length | | |STAMP TLV Flags| Type=10 | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Return Path Sub-TLVs | | | Return Path Sub-TLVs | | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 2: Return Path TLV | Figure 3: Return Path TLV Format | |||
| TLV fields are defined as follows: | The TLV fields are defined as follows: | |||
| STAMP TLV Flags : The STAMP TLV Flags follow the procedures described | STAMP TLV Flags: The STAMP TLV Flags follow the procedures described | |||
| in [RFC8972] and this document. | in [RFC8972] and this document. | |||
| Type : Type (value 10) for Return Path TLV. | Type: Type (value 10) for the Return Path TLV. | |||
| Length : A two-octet field equal to the length of the Return Path | Length: A 2-octet field equal to the length of the Return Path Sub- | |||
| Sub-TLVs field in octets. | TLVs field in octets. | |||
| Return Path Sub-TLVs : As defined in Section 4.1. | Return Path Sub-TLVs: As defined in Section 4.1. | |||
| A Session-Sender MUST NOT insert more than one Return Path TLV in the | A Session-Sender MUST NOT insert more than one Return Path TLV in the | |||
| STAMP test packet. A Session-Reflector that supports this TLV MUST | STAMP test packet. A Session-Reflector that supports this TLV MUST | |||
| only process the first Return Path TLV in the test packet and ignore | only process the first Return Path TLV in the test packet and ignore | |||
| other Return Path TLVs if present. A Session-Reflector that supports | other Return Path TLVs if present. A Session-Reflector that supports | |||
| this TLV MUST reply using the Return Path received in the Session- | this TLV MUST reply using the Return Path received in the Session- | |||
| Sender test packet, if no error was encountered while processing the | Sender test packet, if no error was encountered while processing the | |||
| TLV. | TLV. | |||
| A Session-Reflector that recognizes this TLV, MUST set the U flag | A Session-Reflector that recognizes this TLV MUST set the U flag | |||
| [RFC8972] in the reply test packet to 1 if the Session-Reflector | [RFC8972] in the reply test packet to 1 if the Session-Reflector | |||
| determined that it cannot use the return path in the test packet to | determined that it cannot use the Return Path in the test packet to | |||
| transmit the reply test packet. Otherwise, the Session-Reflector | transmit the reply test packet. Otherwise, the Session-Reflector | |||
| MUST set the U flag in the reply test packet to 0. | MUST set the U flag in the reply test packet to 0. | |||
| 4.1. Return Path Sub-TLVs | 4.1. Return Path Sub-TLVs | |||
| The Return Path TLV contains one or more Sub-TLVs to carry the | 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 | information for the requested Return Path. A Return Path Sub-TLV can | |||
| carry Return Path Control Code, Return Path IP Address or Return Path | carry a Return Path Control Code, Return Path IP Address, or Return | |||
| Segment List. | Path Segment List. | |||
| The STAMP Sub-TLV Flags are set using the procedures described in | The STAMP Sub-TLV Flags are set using the procedures described in | |||
| [RFC8972]. | [RFC8972]. | |||
| A Return Path TLV MUST NOT contain more than one Control Code Sub-TLV | A Return Path TLV MUST NOT contain more than one Control Code Sub- | |||
| or more than one Return Address Sub-TLV or more than one Segment List | TLV, Return Address Sub-TLV, or Return Path Segment List Sub-TLV in a | |||
| Sub-TLV in Session-Sender test packet. | Session-Sender test packet. | |||
| A Return Path TLV MUST NOT contain both Control Code Sub-TLV as well | A Return Path TLV MUST NOT contain both a Control Code Sub-TLV and a | |||
| as Return Address or Return Segment List Sub-TLV in Session-Sender | Return Address or Return Path Segment List Sub-TLV in a Session- | |||
| test packet. | Sender test packet. | |||
| A Return Path TLV MAY contain both Return Address as well as Return | A Return Path TLV MAY contain both a Return Address and a Return Path | |||
| Segment List Sub-TLV in Session-Sender test packet. | Segment List Sub-TLV in a Session-Sender test packet. | |||
| 4.1.1. Return Path Control Code Sub-TLV | 4.1.1. Return Path Control Code Sub-TLV | |||
| The format of the Return Path Control Code Sub-TLV is shown in | The format of the Control Code Sub-TLV in the Return Path TLV is | |||
| Figure 3. | shown in Figure 4. | |||
| 0 1 2 3 | 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 | 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=1 | Length=4 | | |STAMP TLV Flags| Type=1 | Length=4 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Control Code Flags | | | Control Code Flags | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 3: Control Code Sub-TLV in Return Path TLV | Figure 4: Format of the Control Code Sub-TLV in the Return Path TLV | |||
| TLV fields are defined as follows: | The TLV fields are defined as follows: | |||
| * Type (value 1): Return Path Control Code. The Session-Sender can | Type: Type (value 1) for the Return Path Control Code. The Session- | |||
| request the Session-Reflector to transmit the reply test packet | Sender can request the Session-Reflector to transmit the reply | |||
| based on the flags defined in the Control Code Flags field. | test packet based on the flags defined in the Control Code Flags | |||
| field. | ||||
| STAMP TLV Flags : The STAMP TLV Flags follow the procedures described | STAMP TLV Flags: The STAMP TLV Flags follow the procedures described | |||
| in [RFC8972] and this document. | in [RFC8972] and this document. | |||
| Length : A two-octet field equal to the length of the Control Code | Length: A 2-octet field equal to the length of the Control Code | |||
| flags which is 4 octets. | flags, which is 4 octets. | |||
| Control Code Flags (32-bit): Reply Request Flag at bit 31 (least | Control Code Flags (32 bits): Reply Request Flag at bit 31 (least | |||
| significant bit) is defined as follows. | significant bit) is defined as follows. | |||
| 0x0 : No Reply Requested. | 0x0: No Reply Requested | |||
| 0x1 : Reply Requested on the Same Link. | 0x1: Reply Requested on the Same Link | |||
| All other bits are reserved and must be transmitted as 0 and ignored | All other bits are reserved and must be transmitted as 0 and ignored | |||
| by the receiver. | by the receiver. | |||
| When Control Code flag for Reply Request is set to 0x0 in the | When Control Code flag for Reply Request is set to 0x0 in the | |||
| Session-Sender test packet, the Session-Reflector does not transmit | Session-Sender test packet, the Session-Reflector does not transmit a | |||
| reply test packet to the Session-Sender and terminates the STAMP test | reply test packet to the Session-Sender and terminates the STAMP test | |||
| packet. Only the one-way measurement is applicable in this case. | packet. Only the one-way measurement is applicable in this case. | |||
| Optionally, the Session-Reflector may locally stream performance | Optionally, the Session-Reflector may locally stream performance | |||
| metrics via telemetry using the information from the received test | metrics via telemetry using the information from the received test | |||
| packet. All other Return Path Sub-TLVs MUST be ignored in this case. | packet. All other Return Path Sub-TLVs MUST be ignored in this case. | |||
| When Control Code flag for Reply Request is set to 0x1 in the | When Control Code flag for Reply Request is set to 0x1 in the | |||
| Session-Sender test packet, the Session-Reflector transmits the reply | Session-Sender test packet, the Session-Reflector transmits the reply | |||
| test packet over the same incoming link where the test packet is | test packet over the same incoming link where the test packet is | |||
| received in the reverse direction towards the Session-Sender. The | received in the reverse direction towards the Session-Sender. The | |||
| link may be a physical interface, virtual link, or Link Aggregation | link may be a physical interface, virtual link, LAG [IEEE802.1AX], or | |||
| Group (LAG) [IEEE802.1AX], or LAG member. All other Return Path Sub- | LAG member. All other Return Path Sub-TLVs MUST be ignored in this | |||
| TLVs MUST be ignored in this case. When using LAG member links, | case. When using LAG member links, the STAMP extension for the | |||
| STAMP extension for Micro-Session ID TLV defined in | Micro-Session ID TLV defined in [STAMP-ON-LAG] can be used to | |||
| [I-D.ietf-ippm-stamp-on-lag] can be used to identify the link. | identify the link. | |||
| 4.1.2. Return Address Sub-TLV | 4.1.2. Return Address Sub-TLVs | |||
| The STAMP reply test packet may be transmitted to the Session-Sender | The STAMP reply test packet may be transmitted to the Session-Sender | |||
| to the specified Return Address in the Return Address Sub-TLV instead | to the specified Return Address in the Return Address Sub-TLV instead | |||
| of transmitting to the Source Address in the Session-Sender test | of transmitting to the Source Address in the Session-Sender test | |||
| packet. | packet. | |||
| The formats of the IPv4 and IPv6 Return Address Sub-TLVs are shown in | The formats of the IPv4 and IPv6 Return Address Sub-TLVs in the | |||
| Figure 4. | Return Path TLV are shown in Figure 5. | |||
| 0 1 2 3 | 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 | 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=2 | Length=4 | | |STAMP TLV Flags| Type=2 | Length=4 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Return IPv4 Address | | | Return IPv4 Address | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 0 1 2 3 | 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 | 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=2 | Length=16 | | |STAMP TLV Flags| Type=2 | Length=16 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| | Return IPv6 Address | | | Return IPv6 Address | | |||
| | | | | | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 4: Return Address Sub-TLV in Return Path TLV | Figure 5: Formats of the Return Address Sub-TLVs in the Return | |||
| Path TLV | ||||
| The TLV fields are defined as follows: | The TLV fields are defined as follows: | |||
| * Type : Type (value 2) for IPv4 Return Address or IPv6 Return | Type: Type (value 2) for the Return IPv4 Address or Return IPv6 | |||
| Address. | Address. | |||
| The Return Address requests that the Session-Reflector reply test | The Return Address requests that the Session-Reflector reply test | |||
| packet be sent to the specified address, rather than to the Source | packet be sent to the specified address rather than to the Source | |||
| Address in the Session-Sender test packet. | Address in the Session-Sender test packet. | |||
| STAMP TLV Flags : The STAMP TLV Flags follow the procedures described | STAMP TLV Flags: The STAMP TLV Flags follow the procedures described | |||
| in [RFC8972] and this document. | in [RFC8972] and this document. | |||
| Length : A two-octet field equal to the length of the Return Address | Length: A 2-octet field equal to the length of the Return Address | |||
| field in octets. The length is 4 octets for IPv4 address and 16 | field in octets. The length is 4 octets for an IPv4 address and | |||
| octets for IPv6 address. | 16 octets for an IPv6 address. | |||
| 4.1.3. Return Segment List Sub-TLVs | 4.1.3. Return Path Segment List Sub-TLVs | |||
| The format of the Segment List Sub-TLVs in the Return Path TLV is | The format of the Segment List Sub-TLVs in the Return Path TLV is | |||
| shown in Figures 5 and 6. The Segments carried in Segment List Sub- | shown in Figures 6 and 7. The Segments carried in Segment List Sub- | |||
| TLVs are described in [RFC8402]. The segment entries MUST be in | TLVs are described in [RFC8402]. The segment entries MUST be in | |||
| network order. | network order. | |||
| The Session-Sender MUST only insert one Segment List Return Path Sub- | The Session-Sender MUST only insert one Return Path Segment List Sub- | |||
| TLV in the test packet and Segment List MUST contain at least one | TLV in the test packet, and the Segment List MUST contain at least | |||
| Segment. The Session-Reflector MUST only process the first Segment | one Segment. The Session-Reflector MUST only process the first | |||
| List Return Path Sub-TLV in the test packet and ignore other Segment | Return Path Segment List Sub-TLV in the test packet and ignore other | |||
| List Return Path Sub-TLVs if present. | Return Path Segment List Sub-TLVs if present. | |||
| TLV fields are defined as follows: | The TLV fields are defined as follows: | |||
| The Segment List Sub-TLV can be one of the following Types: | The Return Path Segment List Sub-TLV can be one of the following | |||
| Types: | ||||
| * Type (value 3): SR-MPLS Label Stack of the Return Path | Type (value 3): SR-MPLS Label Stack of the Return Path | |||
| * Type (value 4): SRv6 Segment List of the Return Path | Type (value 4): SRv6 Segment List of the Return Path | |||
| STAMP TLV Flags : The STAMP TLV Flags follow the procedures described | STAMP TLV Flags: The STAMP TLV Flags follow the procedures described | |||
| in [RFC8972] and this document. | in [RFC8972] and this document. | |||
| Length : A two-octet field equal to the length of the Segment List | Length: A 2-octet field equal to the length of the Segment List | |||
| field in octets. Length MUST NOT be 0. | field in octets. The length MUST NOT be 0. | |||
| 4.1.3.1. Return Path SR-MPLS Segment-List Sub-TLV | 4.1.3.1. Return Path SR-MPLS Label Stack Sub-TLV | |||
| 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 | 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=3 | Length | | |STAMP TLV Flags| Type=3 | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Segment(1) | TC |S| TTL | | | Segment(1) | TC |S| TTL | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| . . | . . | |||
| . . | . . | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Segment(n) (bottom of stack) | TC |S| TTL | | | Segment(n) (bottom of stack) | TC |S| TTL | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 5: SR-MPLS Segment List Sub-TLV in Return Path TLV | Figure 6: Format of the SR-MPLS Label Stack Sub-TLV in the Return | |||
| Path TLV | ||||
| The SR-MPLS Label Stack contains a list of 32-bit Label Stack Entry | The SR-MPLS Label Stack contains a list of 32-bit Label Stack Entries | |||
| (LSE) that includes a 20-bit label value, 8-bit Time-To-Live (TTL) | (LSEs) that includes a 20-bit label value, an 8-bit Time-To-Live | |||
| value, 3-bit Traffic Class (TC) value and 1-bit End-Of-Stack (S) | (TTL) value, a 3-bit Traffic Class (TC) value, and a 1-bit End-of- | |||
| field. Length of the Sub-TLV modulo 4 MUST be 0. | Stack (S) field. The length of the Sub-TLV modulo 4 MUST be 0. | |||
| As an example, an SR-MPLS Label Stack Sub-TLV could carry only the | As an example, an SR-MPLS Label Stack Sub-TLV could carry only the | |||
| Binding SID Label [I-D.ietf-pce-binding-label-sid] of the Return SR- | Binding SID Label [PCE-BINDING-LABEL-SID] of the Return SR-MPLS | |||
| MPLS Policy. The Binding SID Label of the Return SR-MPLS Policy is | Policy. The Binding SID Label of the Return SR-MPLS Policy is local | |||
| local to the Session-Reflector. The mechanism to signal the Binding | to the Session-Reflector. The mechanism to signal the Binding SID | |||
| SID Label to the Session-Sender is outside the scope of this | Label to the Session-Sender is outside the scope of this document. | |||
| document. | ||||
| As another example, an SR-MPLS Label Stack Sub-TLV could include the | As another example, an SR-MPLS Label Stack Sub-TLV could include the | |||
| Path Segment Identifier Label of the Return SR-MPLS Policy in the | Path Segment Identifier Label of the Return SR-MPLS Policy in the | |||
| Segment List of the SR-MPLS Policy. | Segment List of the SR-MPLS Policy. | |||
| 4.1.3.2. Return Path SRv6 Segment-List Sub-TLV | 4.1.3.2. Return Path SRv6 Segment List Sub-TLV | |||
| 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 | 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=4 | Length | | |STAMP TLV Flags| Type=4 | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| | Segment(1) (128-bit IPv6 address) | | | Segment(1) (128-bit IPv6 Address) | | |||
| | | | | | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| . . | . . | |||
| . . | . . | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| | Segment(n) (128-bit IPv6 address) (bottom of stack) | | | Segment(n) (128-bit IPv6 Address) (bottom of stack) | | |||
| | | | | | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 6: SRv6 Segment List Sub-TLV in Return Path TLV | Figure 7: Format of the SRv6 Segment List Sub-TLV in the Return | |||
| Path TLV | ||||
| The SRv6 Segment List contains a list of 128-bit IPv6 addresses | The SRv6 Segment List contains a list of 128-bit IPv6 addresses | |||
| representing the SRv6 SIDs. Length of the Sub-TLV modulo 16 MUST be | representing the SRv6 SIDs. The length of the Sub-TLV modulo 16 MUST | |||
| 0. | be 0. | |||
| As an example, an SRv6 Segment List Sub-TLV could carry only the SRv6 | As an example, a Return Path SRv6 Segment List Sub-TLV could carry | |||
| Binding SID [I-D.ietf-pce-binding-label-sid] of the Return SRv6 | only the SRv6 Binding SID [PCE-BINDING-LABEL-SID] of the Return SRv6 | |||
| Policy. The SRv6 Binding SID of the Return SRv6 Policy is local to | Policy. The SRv6 Binding SID of the Return SRv6 Policy is local to | |||
| the Session-Reflector. The mechanism to signal the SRv6 Binding SID | the Session-Reflector. The mechanism to signal the SRv6 Binding SID | |||
| to the Session-Sender is outside the scope of this document. | to the Session-Sender is outside the scope of this document. | |||
| As another example, an SRv6 Segment List Sub-TLV could include the | As another example, a Return Path SRv6 Segment List Sub-TLV could | |||
| SRv6 Path Segment Identifier of the Return SRv6 Policy in the Segment | include the SRv6 Path Segment Identifier of the Return SRv6 Policy in | |||
| List of the SRv6 Policy. | the Segment List of the SRv6 Policy. | |||
| 5. Interoperability with TWAMP Light | 5. Interoperability with TWAMP Light | |||
| This document does not introduce any additional considerations for | This document does not introduce any additional considerations for | |||
| interoperability with TWAMP Light than those described in Section 4.6 | interoperability with the Two-Way Active Measurement Protocol (TWAMP) | |||
| of [RFC8762]. | Light than those described in Section 4.6 of [RFC8762]. | |||
| As described in [RFC8762], there are two possible combinations for | As described in [RFC8762], there are two possible combinations for | |||
| such an interoperability use case: | such an interoperability use case: | |||
| - STAMP Session-Sender with TWAMP Light Session-Reflector | * STAMP Session-Sender with TWAMP Light Session-Reflector | |||
| - TWAMP Light Session-Sender with STAMP Session-Reflector | * TWAMP Light Session-Sender with STAMP Session-Reflector | |||
| If any of STAMP extensions defined in this document are used by STAMP | ||||
| Session-Sender, the TWAMP Light Session-Reflector will view them as | If any of the STAMP extensions defined in this document are used by | |||
| the Packet Padding field. | STAMP Session-Sender, the TWAMP Light Session-Reflector will view | |||
| them as the Packet Padding field. | ||||
| 6. Security Considerations | 6. Security Considerations | |||
| The security considerations specified in [RFC8762] and [RFC8972] also | The security considerations specified in [RFC8762] and [RFC8972] also | |||
| apply to the extensions defined in this document. Specifically, the | apply to the extensions defined in this document. Specifically, the | |||
| authenticated mode and the message integrity protection using HMAC, | authenticated mode and the message integrity protection using Hashed | |||
| as defined in [RFC8762] Section 4.4, also apply to the procedure | Message Authentication Code (HMAC), as defined in Section 4.4 of | |||
| described in this document. | [RFC8762], also apply to the procedures described in this document. | |||
| STAMP uses the well-known UDP port number that could become a target | STAMP uses the well-known UDP port number that could become a target | |||
| of denial of service (DoS) or could be used to aid on-path attacks. | of denial of service (DoS) or could be used to aid on-path attacks. | |||
| Thus, the security considerations and measures to mitigate the risk | Thus, the security considerations and measures to mitigate the risk | |||
| of the attack documented in Section 6 of [RFC8545] equally apply to | of the attack documented in Section 6 of [RFC8545] equally apply to | |||
| the STAMP extensions in this document. | the STAMP extensions in this document. | |||
| If desired, attacks can be mitigated by performing basic validation | If desired, attacks can be mitigated by performing basic validation | |||
| checks of the timestamp fields (such as T2 is later than T1 in the | checks of the timestamp fields (such as T2 is later than T1 in the | |||
| Reference Topology in Section 2.3) in received reply test packets at | reference topology in Section 2.3) in received reply test packets at | |||
| the Session-Sender. The minimal state associated with these | the Session-Sender. The minimal state associated with these | |||
| protocols also limit the extent of measurement disruption that can be | protocols also limit the extent of measurement disruption that can be | |||
| caused by a corrupt or invalid test packet to a single test cycle. | caused by a corrupt or invalid test packet to a single test cycle. | |||
| The usage of STAMP extensions defined in this document is intended | The usage of STAMP extensions defined in this document is intended | |||
| for deployment in a single network administrative domain. As such, | for deployment in a single network administrative domain. As such, | |||
| the Session-Sender address, Session-Reflector address, and Return | the Session-Sender address, Session-Reflector address, and Return | |||
| Path are provisioned by the operator for the STAMP session. It is | Path are provisioned by the operator for the STAMP session. It is | |||
| assumed that the operator has verified the integrity of the Return | assumed that the operator has verified the integrity of the Return | |||
| Path and identity of the far-end Session-Reflector. | Path and identity of the far-end Session-Reflector. | |||
| The STAMP extensions defined in this document may be used for | The STAMP extensions defined in this document may be used for | |||
| potential address spoofing. For example, a Session-Sender may | potential address spoofing. For example, a Session-Sender may | |||
| specify a Return Path IP Address that is different from the Session- | specify a Return Path IP Address that is different from the Session- | |||
| Sender address. The Session-Reflector MAY drop the Session-Sender | Sender address. The Session-Reflector MAY drop the Session-Sender | |||
| test packet when it cannot determine whether the Return Path IP | test packet when it cannot determine whether the Return Path IP | |||
| Address is local on the Session-Sender. To help Session-Reflector to | Address is local on the Session-Sender. To help the Session- | |||
| make that determination, the Return Path IP Address may also be | Reflector to make that determination, the Return Path IP Address may | |||
| provisioned by the operator, for example, in an access control list. | also be provisioned by the operator, for example, in an access | |||
| control list. | ||||
| 7. IANA Considerations | 7. IANA Considerations | |||
| IANA has created the "STAMP TLV Types" registry for [RFC8972]. IANA | IANA has allocated a value for the Destination Address TLV Type and a | |||
| has early allocated a value for the Destination Address TLV Type and | value for the Return Path TLV Type from the IETF Review TLV range in | |||
| a value for the Return Path TLV Type from the IETF Review TLV range | the "STAMP TLV Types" registry [RFC8972] as follows. | |||
| of the same registry. | ||||
| +======================+======================+===========+ | +=======+=======================================+===========+ | |||
| | Value | Description | Reference | | | Value | Description | Reference | | |||
| +======================+======================+===========+ | +=======+=======================================+===========+ | |||
| | 9 (Early Allocation) | Destination Node | This | | | 9 | Destination Node IPv4 or IPv6 Address | RFC 9503 | | |||
| | | IPv4 or IPv6 Address | document | | +-------+---------------------------------------+-----------+ | |||
| +----------------------+----------------------+-----------+ | | 10 | Return Path | RFC 9503 | | |||
| | 10 (Early | Return Path | This | | +-------+---------------------------------------+-----------+ | |||
| | Allocation) | | document | | ||||
| +----------------------+----------------------+-----------+ | ||||
| Table 1: STAMP TLV Types | Table 1: STAMP TLV Types | |||
| IANA is requested to create a sub-registry for "Return Path Sub-TLV | IANA has created the "Return Path Sub-TLV Types" registry. All code | |||
| Type". All code points in the range 1 through 175 in this registry | points in the range 1 through 175 in this registry shall be allocated | |||
| shall be allocated according to the "IETF Review" procedure as | according to the "IETF Review" procedure as specified in [RFC8126]. | |||
| specified in [RFC8126]. Code points in the range 176 through 239 in | Code points in the range 176 through 239 shall be allocated according | |||
| this registry shall be allocated according to the "First Come, First | to the "First Come First Served" procedure as specified in [RFC8126]. | |||
| Served" procedure as specified in [RFC8126]. Remaining code points | Remaining code points shall be allocated according to Table 2: | |||
| are allocated according to Table 2: | ||||
| +===========+==========================+===============+ | +=========+=========================+ | |||
| | Value | Description | Reference | | | Range | Registration Procedures | | |||
| +===========+==========================+===============+ | +=========+=========================+ | |||
| | 0 - 175 | IETF Review | This document | | | 1-175 | IETF Review | | |||
| +-----------+--------------------------+---------------+ | +---------+-------------------------+ | |||
| | 176 - 239 | First Come, First Served | This document | | | 176-239 | First Come First Served | | |||
| +-----------+--------------------------+---------------+ | +---------+-------------------------+ | |||
| | 240 - 251 | Experimental Use | This document | | | 240-251 | Experimental Use | | |||
| +-----------+--------------------------+---------------+ | +---------+-------------------------+ | |||
| | 252 - 255 | Private Use | This document | | | 252-254 | Private Use | | |||
| +-----------+--------------------------+---------------+ | +---------+-------------------------+ | |||
| Table 2: Return Path Sub-TLV Type Registry | Table 2: Return Path Sub-TLV | |||
| Types Registry | ||||
| IANA is requested to allocate the values for the following Sub-TLV | IANA has allocated values for the following Sub-TLV Types in the | |||
| Types from this registry. | "Return Path Sub-TLV Types" registry. | |||
| +======+========================================+===============+ | +=======+========================================+===========+ | |||
| | Type | Description | Reference | | | Value | Description | Reference | | |||
| +======+========================================+===============+ | +=======+========================================+===========+ | |||
| | 0 | Reserved | This document | | | 0 | Reserved | RFC 9503 | | |||
| +------+----------------------------------------+---------------+ | +-------+----------------------------------------+-----------+ | |||
| | 1 | Return Path Control Code | This document | | | 1 | Return Path Control Code | RFC 9503 | | |||
| +------+----------------------------------------+---------------+ | +-------+----------------------------------------+-----------+ | |||
| | 2 | Return IPv4 or IPv6 Address | This document | | | 2 | Return IPv4 or IPv6 Address | RFC 9503 | | |||
| +------+----------------------------------------+---------------+ | +-------+----------------------------------------+-----------+ | |||
| | 3 | SR-MPLS Label Stack of the Return Path | This document | | | 3 | SR-MPLS Label Stack of the Return Path | RFC 9503 | | |||
| +------+----------------------------------------+---------------+ | +-------+----------------------------------------+-----------+ | |||
| | 4 | SRv6 Segment List of the Return Path | This document | | | 4 | SRv6 Segment List of the Return Path | RFC 9503 | | |||
| +------+----------------------------------------+---------------+ | +-------+----------------------------------------+-----------+ | |||
| | 255 | Reserved | This document | | | 255 | Reserved | RFC 9503 | | |||
| +------+----------------------------------------+---------------+ | +-------+----------------------------------------+-----------+ | |||
| Table 3: Return Path Sub-TLV Types | Table 3: Return Path Sub-TLV Types | |||
| IANA is requested to create a sub-registry for "Return Path Control | IANA has created the "Return Path Control Code Flags" registry for | |||
| Code Flags" for the Return Path Control Code Sub-TLV. All code | Return Path Control Code Sub-TLVs. All code points in the bit | |||
| points in the bit position 31 (counting from bit 31 as the least | position 31 (counting from bit 31 as the least significant bit) | |||
| significant bit) through 12 in this registry shall be allocated | through 12 in this registry shall be allocated according to the "IETF | |||
| according to the "IETF Review" procedure as specified in [RFC8126]. | Review" procedure as specified in [RFC8126]. Code points in the bit | |||
| Code points in the bit position 11 through 8 in this registry shall | position 11 through 8 shall be allocated according to the "First Come | |||
| be allocated according to the "First Come, First Served" procedure as | First Served" procedure as specified in [RFC8126]. Remaining code | |||
| specified in [RFC8126]. Remaining code points are allocated | points shall be allocated according to Table 4: | |||
| according to Table 4: | ||||
| +=========+==========================+===============+ | +=======+=========================+ | |||
| | Bit | Description | Reference | | | Range | Registration Procedures | | |||
| +=========+==========================+===============+ | +=======+=========================+ | |||
| | 31 - 12 | IETF Review | This document | | | 31-12 | IETF Review | | |||
| +---------+--------------------------+---------------+ | +-------+-------------------------+ | |||
| | 11 - 8 | First Come, First Served | This document | | | 11-8 | First Come First Served | | |||
| +---------+--------------------------+---------------+ | +-------+-------------------------+ | |||
| | 7 - 4 | Experimental Use | This document | | | 7-4 | Experimental Use | | |||
| +---------+--------------------------+---------------+ | +-------+-------------------------+ | |||
| | 3 - 0 | Private Use | This document | | | 3-0 | Private Use | | |||
| +---------+--------------------------+---------------+ | +-------+-------------------------+ | |||
| Table 4: Return Path Control Code Flags Registry | Table 4: Return Path Control | |||
| Code Flags Registry | ||||
| IANA is requested to allocate the value for the following Return Path | IANA has allocated a value in the "Return Path Control Code Flags" | |||
| Control Code Flag from this registry. | registry as follows. | |||
| +=====+===============+===============+ | +=======+===============+===========+ | |||
| | Bit | Description | Reference | | | Value | Description | Reference | | |||
| +=====+===============+===============+ | +=======+===============+===========+ | |||
| | 31 | Reply Request | This document | | | 31 | Reply Request | RFC 9503 | | |||
| +-----+---------------+---------------+ | +-------+---------------+-----------+ | |||
| Table 5: Return Path Control Code Flags | Table 5: Return Path Control Code | |||
| Flags | ||||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| skipping to change at page 16, line 39 ¶ | skipping to change at line 703 ¶ | |||
| <https://www.rfc-editor.org/info/rfc8762>. | <https://www.rfc-editor.org/info/rfc8762>. | |||
| [RFC8972] Mirsky, G., Min, X., Nydell, H., Foote, R., Masputra, A., | [RFC8972] Mirsky, G., Min, X., Nydell, H., Foote, R., Masputra, A., | |||
| and E. Ruffini, "Simple Two-Way Active Measurement | and E. Ruffini, "Simple Two-Way Active Measurement | |||
| Protocol Optional Extensions", RFC 8972, | Protocol Optional Extensions", RFC 8972, | |||
| DOI 10.17487/RFC8972, January 2021, | DOI 10.17487/RFC8972, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8972>. | <https://www.rfc-editor.org/info/rfc8972>. | |||
| 8.2. Informative References | 8.2. Informative References | |||
| [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., | [IEEE802.1AX] | |||
| Decraene, B., Litkowski, S., and R. Shakir, "Segment | IEEE, "IEEE Standard for Local and metropolitan area | |||
| Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, | networks -- Link Aggregation", IEEE Std 802.1AX-2014, | |||
| July 2018, <https://www.rfc-editor.org/info/rfc8402>. | DOI 10.1109/IEEESTD.2014.7055197, December 2014, | |||
| <https://doi.org/10.1109/IEEESTD.2014.7055197>. | ||||
| [IPPM-STAMP-YANG] | ||||
| Mirsky, G., Min, X., and W. S. Luo, "Simple Two-way Active | ||||
| Measurement Protocol (STAMP) Data Model", Work in | ||||
| Progress, Internet-Draft, draft-ietf-ippm-stamp-yang-11, | ||||
| 13 March 2023, <https://datatracker.ietf.org/doc/html/ | ||||
| draft-ietf-ippm-stamp-yang-11>. | ||||
| [PCE-BINDING-LABEL-SID] | ||||
| Sivabalan, S., Filsfils, C., Tantsura, J., Previdi, S., | ||||
| and C. Li, Ed., "Carrying Binding Label/Segment Identifier | ||||
| (SID) in PCE-based Networks.", Work in Progress, Internet- | ||||
| Draft, draft-ietf-pce-binding-label-sid-16, 27 March 2023, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-pce- | ||||
| binding-label-sid-16>. | ||||
| [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
| Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
| RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
| <https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
| [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, <https://www.rfc-editor.org/info/rfc8402>. | ||||
| [RFC8545] Morton, A., Ed. and G. Mirsky, Ed., "Well-Known Port | [RFC8545] Morton, A., Ed. and G. Mirsky, Ed., "Well-Known Port | |||
| Assignments for the One-Way Active Measurement Protocol | Assignments for the One-Way Active Measurement Protocol | |||
| (OWAMP) and the Two-Way Active Measurement Protocol | (OWAMP) and the Two-Way Active Measurement Protocol | |||
| (TWAMP)", RFC 8545, DOI 10.17487/RFC8545, March 2019, | (TWAMP)", RFC 8545, DOI 10.17487/RFC8545, March 2019, | |||
| <https://www.rfc-editor.org/info/rfc8545>. | <https://www.rfc-editor.org/info/rfc8545>. | |||
| [RFC9256] Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and | [RFC9256] Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov, | |||
| P. Mattes, "Segment Routing Policy Architecture", | A., and P. Mattes, "Segment Routing Policy Architecture", | |||
| RFC 9256, DOI 10.17487/RFC9256, July 2022, | RFC 9256, DOI 10.17487/RFC9256, July 2022, | |||
| <https://www.rfc-editor.org/info/rfc9256>. | <https://www.rfc-editor.org/info/rfc9256>. | |||
| [I-D.ietf-pce-binding-label-sid] | [STAMP-ON-LAG] | |||
| Sivabalan, S., Filsfils, C., Tantsura, J., Previdi, S., | ||||
| and C. L. (editor), "Carrying Binding Label/Segment | ||||
| Identifier in PCE-based Networks.", Work in Progress, | ||||
| Internet-Draft, draft-ietf-pce-binding-label-sid-16, 27 | ||||
| March 2023, <https://www.ietf.org/archive/id/draft-ietf- | ||||
| pce-binding-label-sid-16.txt>. | ||||
| [I-D.ietf-ippm-stamp-yang] | ||||
| Mirsky, G., Min, X., and W. S. Luo, "Simple Two-way Active | ||||
| Measurement Protocol (STAMP) Data Model", Work in | ||||
| Progress, Internet-Draft, draft-ietf-ippm-stamp-yang-11, | ||||
| 13 March 2023, <https://www.ietf.org/archive/id/draft- | ||||
| ietf-ippm-stamp-yang-11.txt>. | ||||
| [I-D.ietf-ippm-stamp-on-lag] | ||||
| Li, Z., Zhou, T., Guo, J., Mirsky, G., and R. Gandhi, | Li, Z., Zhou, T., Guo, J., Mirsky, G., and R. Gandhi, | |||
| "Simple Two-Way Active Measurement Protocol Extensions for | "Simple Two-Way Active Measurement Protocol Extensions for | |||
| Performance Measurement on LAG", Work in Progress, | Performance Measurement on LAG", Work in Progress, | |||
| Internet-Draft, draft-ietf-ippm-stamp-on-lag-03, 2 July | Internet-Draft, draft-ietf-ippm-stamp-on-lag-05, 17 | |||
| 2023, <https://www.ietf.org/archive/id/draft-ietf-ippm- | October 2023, <https://datatracker.ietf.org/doc/html/ | |||
| stamp-on-lag-03.txt>. | draft-ietf-ippm-stamp-on-lag-05>. | |||
| [IEEE802.1AX] | ||||
| IEEE Std. 802.1AX, "IEEE Standard for Local and | ||||
| metropolitan area networks - Link Aggregation", November | ||||
| 2008. | ||||
| Appendix A. Destination Node Address TLV Use-case Example | Appendix A. Destination Node Address TLV Use-Case Example | |||
| The STAMP test packets can be encapsulated with an SR-MPLS Segment | STAMP test packets can be encapsulated with 1) an SR-MPLS Label Stack | |||
| List and IPv4 header containing destination IPv4 address from 127/8 | and IPv4 header containing an IPv4 Destination Address from the 127/8 | |||
| range or STAMP test packets encapsulated with outer IPv6 header and | range or 2) an outer IPv6 header and a Segment Routing Header (SRH) | |||
| Segment Routing Header (SRH) with inner IPv6 header containing IPv6 | with an inner IPv6 header containing an IPv6 Destination Address from | |||
| destination IPv6 address ::1/128. | the ::1/128 range. | |||
| In an ECMP environment, the hashing function in forwarding may decide | In an ECMP environment, the hashing function in forwarding may decide | |||
| the outgoing path using the source address, destination address, UDP | the outgoing path using the Source Address, Destination Address, UDP | |||
| ports, IPv6 flow-label, etc. from the packet. Hence, for IPv4, for | ports, IPv6 flow-label, etc. from the packet. Hence, for IPv4, for | |||
| example, different values of IPv4 destination address from 127/8 | example, different values of an IPv4 Destination Address from the | |||
| range may be used in the IPv4 header of the STAMP test packets to | 127/8 range may be used in the IPv4 header of the STAMP test packets | |||
| measure different ECMP paths. For IPv6, for example, different | to measure different ECMP paths. For IPv6, for example, different | |||
| values of flow-label may be used in the IPv6 header of the STAMP test | values of flow-label may be used in the IPv6 header of the STAMP test | |||
| packets to measure different ECMP paths. | packets to measure different ECMP paths. | |||
| In those cases, the STAMP test packets may reach a node that is not | In those cases, the STAMP test packets may reach a node that is not | |||
| the Session-Reflector for this STAMP session in an error condition, | the Session-Reflector for this STAMP session in an error condition, | |||
| and this un-intended node may transmit reply test packet that can | and this unintended node may transmit a reply test packet that can | |||
| result in reporting of invalid measurement metrics. The intended | result in the reporting of invalid measurement metrics. The intended | |||
| Session-Reflector address can be carried in the Destination Node | Session-Reflector address can be carried in the Destination Node | |||
| Address TLV to help detect this error. | Address TLV to help detect this error. | |||
| Acknowledgments | Acknowledgments | |||
| The authors would like to thank Thierry Couture for the discussions | The authors would like to thank Thierry Couture for the discussions | |||
| on the use-cases for Performance Measurement in Segment Routing. The | on the use cases for Performance Measurement in Segment Routing. The | |||
| authors would also like to thank Greg Mirsky, Mike Koldychev, Gyan | authors would also like to thank Greg Mirsky, Mike Koldychev, Gyan | |||
| Mishra, Tianran Zhou, Al Mortons, Reshad Rahman, Zhenqiang Li, Frank | Mishra, Tianran Zhou, Al Morton, Reshad Rahman, Zhenqiang Li, Frank | |||
| Brockners, Henrik Nydell, and Cheng Li for providing comments and | Brockners, Henrik Nydell, and Cheng Li for providing comments and | |||
| suggestions. Thank you Joel Halpern for Gen-ART review, Martin Duke | suggestions. Thank you to Joel Halpern for the Gen-ART review, | |||
| for AD review, and Kathleen Moriarty for Security review. The | Martin Duke for the AD review, and Kathleen Moriarty for the Security | |||
| authors would like to thank Robert Wilton, Eric Vyncke, Paul Wouters, | review. The authors would also like to thank Robert Wilton, Éric | |||
| John Scudder, Roman Danyliw, and Jim Guichard for IESG review. | Vyncke, Paul Wouters, John Scudder, Roman Danyliw, Lars Eggert, Erik | |||
| Kline, Warren Kumari, and Jim Guichard for the IESG review. | ||||
| Contributors | Contributors | |||
| The following people have substantially contributed to this document: | The following person has contributed substantially to this document: | |||
| Daniel Voyer | Daniel Voyer | |||
| Bell Canada | Bell Canada | |||
| Email: daniel.voyer@bell.ca | Email: daniel.voyer@bell.ca | |||
| Authors' Addresses | Authors' Addresses | |||
| Rakesh Gandhi (editor) | Rakesh Gandhi (editor) | |||
| Cisco Systems, Inc. | Cisco Systems, Inc. | |||
| Canada | Canada | |||
| End of changes. 129 change blocks. | ||||
| 359 lines changed or deleted | 368 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||