| rfc9322.original | rfc9322.txt | |||
|---|---|---|---|---|
| IPPM T. Mizrahi | Internet Engineering Task Force (IETF) T. Mizrahi | |||
| Internet-Draft Huawei | Request for Comments: 9322 Huawei | |||
| Intended status: Standards Track F. Brockners | Category: Standards Track F. Brockners | |||
| Expires: 19 February 2023 Cisco | ISSN: 2070-1721 Cisco | |||
| S. Bhandari | S. Bhandari | |||
| Thoughtspot | Thoughtspot | |||
| B. Gafni | B. Gafni | |||
| Nvidia | Nvidia | |||
| M. Spiegel | M. Spiegel | |||
| Barefoot Networks, an Intel company | Barefoot Networks | |||
| 18 August 2022 | November 2022 | |||
| In-situ OAM Loopback and Active Flags | In Situ Operations, Administration, and Maintenance (IOAM) Loopback and | |||
| draft-ietf-ippm-ioam-flags-10 | Active Flags | |||
| Abstract | Abstract | |||
| In-situ Operations, Administration, and Maintenance (IOAM) collects | In situ Operations, Administration, and Maintenance (IOAM) collects | |||
| operational and telemetry information in packets while they traverse | operational and telemetry information in packets while they traverse | |||
| a path between two points in the network. This document defines two | a path between two points in the network. This document defines two | |||
| new flags in the IOAM Trace Option headers, specifically the Loopback | new flags in the IOAM Trace Option headers, specifically the Loopback | |||
| and Active flags. | and Active flags. | |||
| 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 19 February 2023. | 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/rfc9322. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2022 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 . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Conventions | |||
| 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 2.1. Requirements Language | |||
| 2.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.2. Terminology | |||
| 3. New IOAM Trace Option Flags . . . . . . . . . . . . . . . . . 3 | 3. New IOAM Trace Option Flags | |||
| 4. Loopback in IOAM . . . . . . . . . . . . . . . . . . . . . . 3 | 4. Loopback in IOAM | |||
| 4.1. Loopback: Encapsulating Node Functionality . . . . . . . 5 | 4.1. Loopback: Encapsulating Node Functionality | |||
| 4.1.1. Loopback Packet Selection . . . . . . . . . . . . . . 5 | 4.1.1. Loopback Packet Selection | |||
| 4.2. Receiving and Processing Loopback . . . . . . . . . . . . 6 | 4.2. Receiving and Processing Loopback | |||
| 4.3. Loopback on the Return Path . . . . . . . . . . . . . . . 7 | 4.3. Loopback on the Return Path | |||
| 4.4. Terminating a Looped Back Packet . . . . . . . . . . . . 7 | 4.4. Terminating a Looped-Back Packet | |||
| 5. Active Measurement with IOAM . . . . . . . . . . . . . . . . 7 | 5. Active Measurement with IOAM | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 6. IANA Considerations | |||
| 7. Performance Considerations . . . . . . . . . . . . . . . . . 10 | 7. Performance Considerations | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 8. Security Considerations | |||
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 12 | 9. References | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 9.1. Normative References | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 12 | 9.2. Informative References | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 12 | Acknowledgments | |||
| Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | Contributors | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| IOAM [RFC9197] is used for monitoring traffic in the network by | IOAM [RFC9197] is used for monitoring traffic in the network by | |||
| incorporating IOAM data fields into in-flight data packets. | incorporating IOAM data fields into in-flight data packets. | |||
| IOAM data may be represented in one of four possible IOAM options: | IOAM data may be represented in one of four possible IOAM options: | |||
| Pre-allocated Trace Option, Incremental Trace Option, Proof of | Pre-allocated Trace, Incremental Trace, Proof of Transit (POT), and | |||
| Transit (POT) Option, and Edge-to-Edge Option. This document defines | Edge-to-Edge. This document defines two new flags in the Pre- | |||
| two new flags in the Pre-allocated and Incremental Trace options: the | allocated and Incremental Trace options: the Loopback and Active | |||
| Loopback and Active flags. | flags. | |||
| The Loopback flag is used to request that each transit device along | The Loopback flag is used to request that each transit device along | |||
| the path loops back a truncated copy of the data packet to the | the path loops back a truncated copy of the data packet to the | |||
| sender. The Active flag indicates that a packet is used for active | sender. The Active flag indicates that a packet is used for active | |||
| measurement. The term active measurement in the context of this | measurement. The term "active measurement" in the context of this | |||
| document is as defined in [RFC7799]. | document is as defined in [RFC7799]. | |||
| 2. Conventions | 2. Conventions | |||
| 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. Terminology | 2.2. Terminology | |||
| Abbreviations used in this document: | Abbreviations used in this document: | |||
| IOAM: In-situ Operations, Administration, and Maintenance | IOAM: In situ Operations, Administration, and Maintenance | |||
| OAM: Operations, Administration, and Maintenance [RFC6291] | OAM: Operations, Administration, and Maintenance [RFC6291] | |||
| 3. New IOAM Trace Option Flags | 3. New IOAM Trace Option Flags | |||
| This document defines two new flags in the Pre-allocated and | This document defines two new flags in the Pre-allocated and | |||
| Incremental Trace options: | Incremental Trace options: | |||
| Bit 1 "Loopback" (L-bit). When set, the Loopback flag triggers | Bit 1 "Loopback" (L-bit): When set, the Loopback flag triggers the | |||
| sending a copy of a packet back towards the source, as further | sending of a copy of a packet back towards the source, as further | |||
| described in Section 4. | described in Section 4. | |||
| Bit 2 "Active" (A-bit). When set, the Active flag indicates that a | Bit 2 "Active" (A-bit): When set, the Active flag indicates that a | |||
| packet is an active measurement packet rather than a data packet, | packet is an active measurement packet rather than a data packet, | |||
| where "active" is used in the sense defined in [RFC7799]. The | where "active" is used in the sense defined in [RFC7799]. The | |||
| packet may be an IOAM probe packet, or a replicated data packet | packet may be an IOAM probe packet or a replicated data packet | |||
| (the second and third use cases of Section 5). | (the second and third use cases of Section 5). | |||
| 4. Loopback in IOAM | 4. Loopback in IOAM | |||
| The Loopback flag is used to request that each transit device along | The Loopback flag is used to request that each transit device along | |||
| the path loops back a truncated copy of the data packet to the | the path loops back a truncated copy of the data packet to the | |||
| sender. Loopback allows an IOAM encapsulating node to trace the path | sender. Loopback allows an IOAM encapsulating node to trace the path | |||
| to a given destination, and to receive per-hop data about both the | to a given destination and to receive per-hop data about both the | |||
| forward and the return path. Loopback is intended to provide an | forward and return paths. Loopback is intended to provide an | |||
| accelerated alternative to Traceroute, that allows the encapsulating | accelerated alternative to Traceroute that allows the encapsulating | |||
| node to receive responses from multiple transit nodes along the path | node to receive responses from multiple transit nodes along the path | |||
| in less then one round-trip-time, and by sending a single packet. | in less than one round-trip time (RTT) and by sending a single | |||
| packet. | ||||
| As illustrated in Figure 1, an IOAM encapsulating node can push an | As illustrated in Figure 1, an IOAM encapsulating node can push an | |||
| IOAM encapsulation that includes the Loopback flag onto some or all | IOAM encapsulation that includes the Loopback flag onto some or all | |||
| of the packets it forwards, using one of the IOAM encapsulation | of the packets it forwards using one of the IOAM encapsulation types, | |||
| types, e.g., [I-D.ietf-sfc-ioam-nsh], or | e.g., [IOAM-NSH] or [IOAM-IPV6-OPTIONS]. The IOAM transit node and | |||
| [I-D.ietf-ippm-ioam-ipv6-options]. The IOAM transit node and the | the decapsulating node both create copies of the packet and loop them | |||
| decapsulating node both creates copies of the packet and loop them | ||||
| back to the encapsulating node. The decapsulating node also | back to the encapsulating node. The decapsulating node also | |||
| terminates the IOAM encapsulation, and then forwards the packet | terminates the IOAM encapsulation and then forwards the packet | |||
| towards the destination. The two IOAM looped back copies are | towards the destination. The two IOAM looped-back copies are | |||
| terminated by the encapsulating node. | terminated by the encapsulating node. | |||
| +--------+ +--------+ +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ +--------+ +--------+ | |||
| | | | IOAM |.....| IOAM |.....| IOAM | | | | | | | IOAM |.....| IOAM |.....| IOAM | | | | |||
| +--------+ +--------+ +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ +--------+ +--------+ | |||
| | L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 | | | L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 | | |||
| +--------+ +--------+ +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ +--------+ +--------+ | |||
| Source Encapsulating Transit Decapsulating Destination | Source Encapsulating Transit Decapsulating Destination | |||
| Node Node Node | Node Node Node | |||
| <------------ IOAM domain -----------> | <------------ IOAM-Domain -----------> | |||
| IOAM encap. with Loopback flag | IOAM encap. with Loopback flag | |||
| Data packet ------->============================>-----------> | Data packet ------->============================>-----------> | |||
| | | | | | | |||
| IOAM looped back | | | IOAM looped back | | | |||
| <=============+ | | <=============+ | | |||
| IOAM looped back| | IOAM looped back| | |||
| <===========================+ | <===========================+ | |||
| Figure 1: Loopback in IOAM. | Figure 1: Loopback in IOAM | |||
| Loopback can be used only if a return path from transit nodes and | Loopback can be used only if a return path from transit nodes and | |||
| destination nodes towards the source (encapsulating node) exists. | destination nodes towards the source (encapsulating node) exists. | |||
| Specifically, loopback is only applicable in encapsulations in which | Specifically, loopback is only applicable in encapsulations in which | |||
| the identity of the encapsulating node is available in the | the identity of the encapsulating node is available in the | |||
| encapsulation header. If an encapsulating node receives a looped | encapsulation header. If an encapsulating node receives a looped- | |||
| back packet that was not originated from the current encapsulating | back packet that was not originated from the current encapsulating | |||
| node, the packet is dropped. | node, the packet is dropped. | |||
| 4.1. Loopback: Encapsulating Node Functionality | 4.1. Loopback: Encapsulating Node Functionality | |||
| The encapsulating node either generates synthetic packets with an | The encapsulating node either generates synthetic packets with an | |||
| IOAM trace option that has the Loopback flag set, or sets the loopack | IOAM trace option that has the Loopback flag set or sets the Loopback | |||
| flag in a subset of the in-transit data packets. Loopback is used | flag in a subset of the in-transit data packets. Loopback is used | |||
| either proactively or on-demand, i.e., when a failure is detected. | either proactively or on-demand, i.e., when a failure is detected. | |||
| The encapsulating node also needs to ensure that sufficient space is | The encapsulating node also needs to ensure that sufficient space is | |||
| available in the IOAM header for loopback operation, which includes | available in the IOAM header for loopback operation, which includes | |||
| transit nodes adding trace data on the original path and then again | transit nodes adding trace data on the original path and again on the | |||
| on the return path. | return path. | |||
| An IOAM trace option that has the Loopback flag set MUST have the | An IOAM trace option that has the Loopback flag set MUST have the | |||
| value '1' in the most significant bit of IOAM-Trace-Type, and '0' in | value '1' in the most significant bit of IOAM-Trace-Type and '0' in | |||
| the rest of the bits of IOAM-Trace-Type. Thus, every transit node | the rest of the bits of IOAM-Trace-Type. Thus, every transit node | |||
| that processes this trace option only adds a single data field, which | that processes this trace option only adds a single data field, which | |||
| is the Hop_Lim and node_id data field. A transit node that receives | is the Hop_Lim and node_id data field. A transit node that receives | |||
| a packet with an IOAM trace option that has the Loopback flag set and | a packet with an IOAM trace option that has the Loopback flag set and | |||
| the IOAM-Trace-Type is not equal to '1' in the most significant bit | the IOAM-Trace-Type is not equal to '1' in the most significant bit | |||
| and '0' in the rest of the bits, MUST NOT loop back a copy of the | and '0' in the rest of the bits MUST NOT loop back a copy of the | |||
| packet. The reason for allowing only a single data field per hop is | packet. The reason for allowing only a single data field per hop is | |||
| to minimize the impact of amplification attacks. | to minimize the impact of amplification attacks. | |||
| IOAM encapsulating nodes MUST NOT push an IOAM encapsulation with the | IOAM encapsulating nodes MUST NOT push an IOAM encapsulation with the | |||
| Loopback flag onto data packets that already include an IOAM | Loopback flag onto data packets that already include an IOAM | |||
| encapsulation. This requirement is intended to prevent IOAM Loopback | encapsulation. This requirement is intended to prevent IOAM Loopback | |||
| nesting, where looped back packets may be subject to loopback in a | nesting where looped-back packets may be subject to loopback in a | |||
| nested IOAM domain. | nested IOAM-Domain. | |||
| 4.1.1. Loopback Packet Selection | 4.1.1. Loopback Packet Selection | |||
| If an IOAM encapsulating node incorporates the Loopback flag into all | If an IOAM encapsulating node incorporates the Loopback flag into all | |||
| the traffic it forwards it may lead to an excessive amount of looped | the traffic it forwards, it may lead to an excessive amount of looped | |||
| back packets, which may overload the network and the encapsulating | back packets, which may overload the network and the encapsulating | |||
| node. Therefore, an IOAM encapsulating node that supports the | node. Therefore, an IOAM encapsulating node that supports the | |||
| Loopback flag MUST support the ability to incorporate the Loopback | Loopback flag MUST support the ability to incorporate the Loopback | |||
| flag selectively into a subset of the packets that are forwarded by | flag selectively into a subset of the packets that are forwarded by | |||
| it. | it. | |||
| Various methods of packet selection and sampling have been previously | Various methods of packet selection and sampling have been previously | |||
| defined, such as [RFC7014] and [RFC5475]. Similar techniques can be | defined, such as [RFC7014] and [RFC5475]. Similar techniques can be | |||
| applied by an IOAM encapsulating node to apply Loopback to a subset | applied by an IOAM encapsulating node to apply loopback to a subset | |||
| of the forwarded traffic. | of the forwarded traffic. | |||
| The subset of traffic that is forwarded or transmitted with a | The subset of traffic that is forwarded or transmitted with a | |||
| Loopback flag SHOULD NOT exceed 1/N of the interface capacity on any | Loopback flag SHOULD NOT exceed 1/N of the interface capacity on any | |||
| of the IOAM encapsulating node's interfaces. This requirement | of the IOAM encapsulating node's interfaces. This requirement | |||
| applies to the total traffic that incorporates a Loopback flag, | applies to the total traffic that incorporates a Loopback flag, | |||
| including traffic that is forwarded by the IOAM encapsulating node | including traffic that is forwarded by the IOAM encapsulating node | |||
| and probe packets that are generated by the IOAM encapsulating node. | and probe packets that are generated by the IOAM encapsulating node. | |||
| In this context N is a parameter that can be configurable by network | In this context, N is a parameter that can be configurable by network | |||
| operators. If there is an upper bound, M, on the number of IOAM | operators. If there is an upper bound, M, on the number of IOAM | |||
| transit nodes in any path in the network, then configuring N such | transit nodes in any path in the network, then configuring N such | |||
| that N >> M (i.e., N is much greater than M) is RECOMMENDED. The | that N >> M (i.e., N is much greater than M) is RECOMMENDED. The | |||
| rationale is that a packet that includes the Loopback flag triggers a | rationale is that a packet that includes the Loopback flag triggers a | |||
| looped back packet from each IOAM transit node along the path for a | looped-back packet from each IOAM transit node along the path for a | |||
| total of M looped back packets. Thus, if N >> M then the number of | total of M looped-back packets. Thus, if N >> M, then the number of | |||
| looped back packets is significantly lower than the number of data | looped-back packets is significantly lower than the number of data | |||
| packets forwarded by the IOAM encapsulating node. It is RECOMMENDED | packets forwarded by the IOAM encapsulating node. It is RECOMMENDED | |||
| that the default value of N satisfies N>100, to be used in the | that the default value of N satisfies N>100 to be used in the absence | |||
| absence of explicit operator configuration or if there is no prior | of explicit operator configuration or if there is no prior knowledge | |||
| knowledge about the network topology or size. | about the network topology or size. | |||
| An IOAM domain in which the Loopback flag is used MUST be configured | An IOAM-Domain in which the Loopback flag is used MUST be configured | |||
| such that there is expected to be a return path from each of the IOAM | such that there is expected to be a return path from each of the IOAM | |||
| transit and IOAM decapsulating nodes; if this expectation does not | transit and IOAM decapsulating nodes; if this expectation does not | |||
| apply, or if the encapsulating node's identity is not available in | apply, or if the encapsulating node's identity is not available in | |||
| the encapsulation header, then configuration MUST NOT enable the | the encapsulation header, then configuration MUST NOT enable the | |||
| Loopback flag to be set. | Loopback flag to be set. | |||
| 4.2. Receiving and Processing Loopback | 4.2. Receiving and Processing Loopback | |||
| A Loopback flag that is set indicates to the transit nodes processing | A Loopback flag that is set indicates to the transit nodes processing | |||
| this option that they are to create a copy of the received packet and | this option that they are to create a copy of the received packet and | |||
| send the copy back to the source of the packet. In this context the | send the copy back to the source of the packet. In this context, the | |||
| source is the IOAM encapsulating node, and it is assumed that the | source is the IOAM encapsulating node and it is assumed that the | |||
| source address is available in the encapsulation header. Thus, the | source address is available in the encapsulation header. Thus, the | |||
| source address of the original packet is used as the destination | source address of the original packet is used as the destination | |||
| address in the copied packet. If IOAM is used over an encapsulation | address in the copied packet. If IOAM is used over an encapsulation | |||
| that does not include the address of the encapsulating node, then the | that does not include the address of the encapsulating node, then the | |||
| transit/decapsulating node does not loop back a copy of the original | transit/decapsulating node does not loop back a copy of the original | |||
| packet. The address of the node performing the copy operation is | packet. The address of the node performing the copy operation is | |||
| used as the source address; the specific method of source address | used as the source address; the specific method of source address | |||
| assignment is encapsulation specific, e.g., if an IPv6 encapsulation | assignment is encapsulation specific, e.g., if an IPv6 encapsulation | |||
| is used, then the source address can be assigned as specified in | is used, then the source address can be assigned as specified in | |||
| [RFC6724]. The copy is also truncated, i.e., any payload that | [RFC6724]. The copy is also truncated, i.e., any payload that | |||
| resides after the IOAM option(s) is removed before transmitting the | resides after the IOAM option(s) is removed before transmitting the | |||
| looped back packet back towards the encapsulating node. Creating the | looped-back packet back towards the encapsulating node. Creating the | |||
| copy that is looped back, and specifically the truncation, may | copy that is looped back, and specifically the truncation, may | |||
| require some encapsulation-specific updates in the encapsulation | require some encapsulation-specific updates in the encapsulation | |||
| header. The original packet continues towards its destination. The | header. The original packet continues towards its destination. The | |||
| L-bit MUST be cleared in the copy of the packet that a node sends | L-bit MUST be cleared in the copy of the packet that a node sends | |||
| back towards the source. | back towards the source. | |||
| An IOAM node that supports the reception and processing of the | An IOAM node that supports the reception and processing of the | |||
| Loopback flag MUST support the ability to limit the rate of the | Loopback flag MUST support the ability to limit the rate of the | |||
| looped back packets. The rate of looped back packets SHOULD be | looped-back packets. The rate of looped-back packets SHOULD be | |||
| limited so that the number of looped back packets is significantly | limited so that the number of looped-back packets is significantly | |||
| lower than the number of packets that are forwarded by the device. | lower than the number of packets that are forwarded by the device. | |||
| The looped back data rate SHOULD NOT exceed 1/N of the interface | The looped-back data rate SHOULD NOT exceed 1/N of the interface | |||
| capacity on any of the IOAM node's interfaces. Using N>100 is | capacity on any of the IOAM node's interfaces. Using N>100 is | |||
| RECOMMENDED. Depending on the IOAM node's architecture | RECOMMENDED. Depending on the IOAM node's architecture | |||
| considerations, the loopback response rate may be limited to a lower | considerations, the loopback response rate may be limited to a lower | |||
| number in order to avoid overloading the IOAM node. | number in order to avoid overloading the IOAM node. | |||
| 4.3. Loopback on the Return Path | 4.3. Loopback on the Return Path | |||
| On its way back towards the source, the copied packet is processed | On its way back towards the source, the copied packet is processed | |||
| like any other packet with IOAM information, including adding | like any other packet with IOAM information, including adding | |||
| requested data at each transit node (assuming there is sufficient | requested data at each transit node (assuming there is sufficient | |||
| space). | space). | |||
| 4.4. Terminating a Looped Back Packet | 4.4. Terminating a Looped-Back Packet | |||
| Once the return packet reaches the IOAM domain boundary, IOAM | Once the return packet reaches the IOAM-Domain boundary, IOAM | |||
| decapsulation occurs as with any other packet containing IOAM | decapsulation occurs as with any other packet containing IOAM | |||
| information. Note that the looped back packet does not have the | information. Note that the looped-back packet does not have the | |||
| L-bit set. The IOAM encapsulating node that initiated the original | L-bit set. The IOAM encapsulating node that initiated the original | |||
| loopback packet recognizes a received packet as an IOAM looped-back | loopback packet recognizes a received packet as an IOAM looped-back | |||
| packet by checking the Node ID in the Hop_Lim/node_id field that | packet by checking the Node ID in the Hop_Lim/node_id field that | |||
| corresponds to the first hop. If the Node ID and IOAM-Namespace | corresponds to the first hop. If the Node ID and IOAM-Namespace | |||
| match the current IOAM node, it indicates that this is a looped back | match the current IOAM node, it indicates that this is a looped-back | |||
| packet that was initiated by the current IOAM node, and processed | packet that was initiated by the current IOAM node and processed | |||
| accordingly. If there is no match in the Node ID, the packet is | accordingly. If there is no match in the Node ID, the packet is | |||
| processed like a conventional IOAM-encapsulated packet. | processed like a conventional IOAM-encapsulated packet. | |||
| Note that an IOAM encapsulating node may either be an endpoint (such | Note that an IOAM encapsulating node may be either an endpoint (such | |||
| as an IPv6 host), or a switch/router that pushes a tunnel | as an IPv6 host) or a switch/router that pushes a tunnel | |||
| encapsulation onto data packets. In both cases, the functionality | encapsulation onto data packets. In both cases, the functionality | |||
| that was described above avoids IOAM data leaks from the IOAM domain. | that was described above avoids IOAM data leaks from the IOAM-Domain. | |||
| Specifically, if an IOAM looped-back packet reaches an IOAM boundary | Specifically, if an IOAM looped-back packet reaches an IOAM boundary | |||
| node that is not the IOAM node that initiated the loopback, the node | node that is not the IOAM node that initiated the loopback, the node | |||
| does not process the packet as a loopback; the IOAM encapsulation is | does not process the packet as a loopback; the IOAM encapsulation is | |||
| removed, preventing IOAM information from leaking out from the IOAM | removed, preventing IOAM information from leaking out from the IOAM- | |||
| domain, and since the packet does not have any payload it is | Domain. Since the packet does not have any payload, it is | |||
| terminated. | terminated. | |||
| 5. Active Measurement with IOAM | 5. Active Measurement with IOAM | |||
| Active measurement methods [RFC7799] make use of synthetically | Active measurement methods [RFC7799] make use of synthetically | |||
| generated packets in order to facilitate measurement. This section | generated packets in order to facilitate measurement. This section | |||
| presents use cases of active measurement using the IOAM Active flag. | presents use cases of active measurement using the IOAM Active flag. | |||
| The Active flag indicates that a packet is used for active | The Active flag indicates that a packet is used for active | |||
| measurement. An IOAM decapsulating node that receives a packet with | measurement. An IOAM decapsulating node that receives a packet with | |||
| the Active flag set in one of its Trace options must terminate the | the Active flag set in one of its Trace options must terminate the | |||
| packet. The Active flag is intended to simplify the implementation | packet. The Active flag is intended to simplify the implementation | |||
| of decapsulating nodes by indicating that the packet should not be | of decapsulating nodes by indicating that the packet should not be | |||
| forwarded further. It is not intended as a replacement for existing | forwarded further. It is not intended as a replacement for existing | |||
| active OAM protocols, which may run in higher layers and make use of | active OAM protocols, which may run in higher layers and make use of | |||
| the Active flag. | the Active flag. | |||
| An example of an IOAM deployment scenario is illustrated in Figure 2. | An example of an IOAM deployment scenario is illustrated in Figure 2. | |||
| The figure depicts two endpoints, a source and a destination. The | The figure depicts two endpoints: a source and a destination. The | |||
| data traffic from the source to the destination is forwarded through | data traffic from the source to the destination is forwarded through | |||
| a set of network devices, including an IOAM encapsulating node, which | a set of network devices, including an IOAM encapsulating node (which | |||
| incorporates one or more IOAM options, a decapsulating node, which | incorporates one or more IOAM options), a decapsulating node (which | |||
| removes the IOAM options, optionally one or more transit nodes. The | removes the IOAM options), and optionally one or more transit nodes. | |||
| IOAM options are encapsulated in one of the IOAM encapsulation types, | The IOAM options are encapsulated in one of the IOAM encapsulation | |||
| e.g., [I-D.ietf-sfc-ioam-nsh], or [I-D.ietf-ippm-ioam-ipv6-options]. | types, e.g., [IOAM-NSH] or [IOAM-IPV6-OPTIONS]. | |||
| +--------+ +--------+ +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ +--------+ +--------+ | |||
| | | | IOAM |.....| IOAM |.....| IOAM | | | | | | | IOAM |.....| IOAM |.....| IOAM | | | | |||
| +--------+ +--------+ +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ +--------+ +--------+ | |||
| | L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 | | | L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 |<===>| L2/L3 | | |||
| +--------+ +--------+ +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ +--------+ +--------+ | |||
| Source Encapsulating Transit Decapsulating Destination | Source Encapsulating Transit Decapsulating Destination | |||
| Node Node Node | Node Node Node | |||
| <------------ IOAM domain -----------> | <------------ IOAM-Domain -----------> | |||
| Figure 2: Network using IOAM. | Figure 2: Network Using IOAM | |||
| This document focuses on three possible use cases of active | This document focuses on three possible use cases of active | |||
| measurement using IOAM. These use cases are described using the | measurement using IOAM. These use cases are described using the | |||
| example of Figure 2. | example of Figure 2. | |||
| * Endpoint active measurement: synthetic probe packets are sent | Endpoint active measurement: | |||
| between the source and destination, traversing the IOAM domain. | synthetic probe packets are sent between the source and | |||
| Since the probe packets are sent between the endpoints, these | destination, traversing the IOAM-Domain. Since the probe packets | |||
| packets are treated as data packets by the IOAM domain, and do not | are sent between the endpoints, these packets are treated as data | |||
| require special treatment at the IOAM layer. Specifically, the | packets by the IOAM-Domain and do not require special treatment at | |||
| Active flag is not used in this case, and the IOAM layer does not | the IOAM layer. Specifically, the Active flag is not used in this | |||
| need to be aware that an active measurement mechanism is used at a | case and the IOAM layer does not need to be aware that an active | |||
| higher layer. | measurement mechanism is used at a higher layer. | |||
| * IOAM active measurement using probe packets within the IOAM | IOAM active measurement using probe packets within the IOAM- | |||
| domain: probe packets are generated and transmitted by the IOAM | Domain: | |||
| encapsulating node, and are expected to be terminated by the | probe packets are generated and transmitted by the IOAM | |||
| encapsulating node and are expected to be terminated by the | ||||
| decapsulating node. IOAM data related to probe packets may be | decapsulating node. IOAM data related to probe packets may be | |||
| exported by one or more nodes along its path, by an exporting | exported by one or more nodes along its path by an exporting | |||
| protocol that is outside the scope of this document (e.g., | protocol that is outside the scope of this document (e.g., | |||
| [I-D.spiegel-ippm-ioam-rawexport]). Probe packets include a Trace | [IOAM-RAWEXPORT]). Probe packets include a Trace Option that has | |||
| Option which has its Active flag set, indicating that the | its Active flag set, indicating that the decapsulating node must | |||
| decapsulating node must terminate them. The specification of | terminate them. The specification of these probe packets and the | |||
| these probe packets and the processing of these packets by the | processing of these packets by the encapsulating and decapsulating | |||
| encapsulating and decapsulating nodes is outside the scope of this | nodes is outside the scope of this document. | |||
| document. | ||||
| * IOAM active measurement using replicated data packets: probe | IOAM active measurement using replicated data packets: | |||
| packets are created by the encapsulating node by selecting some or | probe packets are created by the encapsulating node by selecting | |||
| all of the en route data packets and replicating them. A selected | some or all of the en route data packets and replicating them. A | |||
| data packet, and its (possibly truncated) copy is forwarded with | selected data packet and its (possibly truncated) copy is | |||
| one or more IOAM options, while the original packet is forwarded | forwarded with one or more IOAM options while the original packet | |||
| normally, without IOAM options. To the extent possible, the | is forwarded normally without IOAM options. To the extent | |||
| original data packet and its replica are forwarded through the | possible, the original data packet and its replica are forwarded | |||
| same path. The replica includes a Trace Option that has its | through the same path. The replica includes a Trace Option that | |||
| Active flag set, indicating that the decapsulating node should | has its Active flag set, indicating that the decapsulating node | |||
| terminate it. The current document defines the role of the Active | should terminate it. The current document defines the role of the | |||
| flag in allowing the decapsulating node to terminate the packet, | Active flag in allowing the decapsulating node to terminate the | |||
| but the replication functionality and the functionality of the | packet, but the replication functionality and the functionality of | |||
| decapsulating node in this context is outside the scope of this | the decapsulating node in this context is outside the scope of | |||
| document. | this document. | |||
| If the volume of traffic that incorporates the Active flag is large, | If the volume of traffic that incorporates the Active flag is large, | |||
| it may overload the network and the IOAM node(s) that process the | it may overload the network and the IOAM node(s) that process the | |||
| active measurement packet. Thus, the rate of the traffic that | active measurement packet. Thus, the rate of the traffic that | |||
| includes the Active flag SHOULD NOT exceed 1/N of the interface | includes the Active flag SHOULD NOT exceed 1/N of the interface | |||
| capacity on any of the IOAM node's interfaces. Using N>100 is | capacity on any of the IOAM node's interfaces. Using N>100 is | |||
| RECOMMENDED. Depending on the IOAM node's architecture | RECOMMENDED. Depending on the IOAM node's architecture | |||
| considerations, the rate of Active-enabled IOAM packets may be | considerations, the rate of Active-enabled IOAM packets may be | |||
| limited to a lower number in order to avoid overloading the IOAM | limited to a lower number in order to avoid overloading the IOAM | |||
| node. | node. | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| IANA is requested to allocate the following bits in the "IOAM Trace | IANA has allocated the following bits in the "IOAM Trace-Flags" | |||
| Flags Registry" as follows: | registry as follows: | |||
| Bit 1 "Loopback" (L-bit) | Bit 1 "Loopback" (L-bit) | |||
| Bit 2 "Active" (A-bit) | Bit 2 "Active" (A-bit) | |||
| The "Reference" specified in the registry for both bits should be the | This document is specified as the "Reference" in the registry for | |||
| current document. | both bits. | |||
| Note that bit 0 is the most significant bit in the Flags Registry. | Note that bit 0 is the most significant bit in the "IOAM Trace-Flags" | |||
| This bit was allocated by [RFC9197] as the 'Overflow' bit. | registry. This bit was allocated by [RFC9197] as the 'Overflow' bit. | |||
| 7. Performance Considerations | 7. Performance Considerations | |||
| Each of the flags that are defined in this document may have | Each of the flags that are defined in this document may have | |||
| performance implications. When using the loopback mechanism a copy | performance implications. When using the loopback mechanism, a copy | |||
| of the data packet is sent back to the sender, thus generating more | of the data packet is sent back to the sender (thus, generating more | |||
| traffic than originally sent by the endpoints. Using active | traffic than originally sent by the endpoints). Using active | |||
| measurement with the Active flag requires the use of synthetic | measurement with the Active flag requires the use of synthetic | |||
| (overhead) traffic. | (overhead) traffic. | |||
| Each of the mechanisms that use the flags above has a cost in terms | Each of the mechanisms that use the flags above has a cost in terms | |||
| of the network bandwidth, and may potentially load the node that | of the network bandwidth and may potentially load the node that | |||
| analyzes the data. Therefore, it MUST be possible to use each of the | analyzes the data. Therefore, it MUST be possible to use each of the | |||
| mechanisms on a subset of the data traffic; an encapsulating node | mechanisms on a subset of the data traffic; an encapsulating node | |||
| needs to be able to set the Loopback and Active flag selectively, in | needs to be able to set the Loopback and Active flags selectively in | |||
| a way that considers the effect on the network performance, as | a way that considers the effect on the network performance, as | |||
| further discussed in Section 4.1.1 and Section 5. | further discussed in Sections 4.1.1 and 5. | |||
| Transit and decapsulating nodes that support Loopback need to be able | Transit and decapsulating nodes that support loopback need to be able | |||
| to limit the looped back packets (Section 4.2) so as to ensure that | to limit the looped-back packets (as discussed in Section 4.2) so as | |||
| the mechanisms are used at a rate that does not significantly affect | to ensure that the mechanisms are used at a rate that does not | |||
| the network bandwidth, and does not overload the source node in the | significantly affect the network bandwidth and does not overload the | |||
| case of loopback. | source node in the case of loopback. | |||
| 8. Security Considerations | 8. Security Considerations | |||
| The security considerations of IOAM in general are discussed in | The security considerations of IOAM in general are discussed in | |||
| [RFC9197]. Specifically, an attacker may try to use the | [RFC9197]. Specifically, an attacker may try to use the | |||
| functionality that is defined in this document to attack the network. | functionality that is defined in this document to attack the network. | |||
| IOAM is assumed to be deployed in a restricted administrative domain, | IOAM is assumed to be deployed in a restricted administrative domain, | |||
| thus limiting the scope of the threats above and their effect. This | thus limiting the scope of the threats above and their effect. This | |||
| is a fundamental assumption with respect to the security aspects of | is a fundamental assumption with respect to the security aspects of | |||
| IOAM, as further discussed in [RFC9197]. However, even given this | IOAM as further discussed in [RFC9197]. However, even given this | |||
| limited scope, security threats should still be considered and | limited scope, security threats should still be considered and | |||
| mitigated. Specifically, an attacker may attempt to overload network | mitigated. Specifically, an attacker may attempt to overload network | |||
| devices by injecting synthetic packets that include an IOAM Trace | devices by injecting synthetic packets that include an IOAM Trace | |||
| Option with one or more of the flags defined in this document. | Option with one or more of the flags defined in this document. | |||
| Similarly, an on-path attacker may maliciously set one or more of the | Similarly, an on-path attacker may maliciously set one or more of the | |||
| flags of transit packets. | flags of transit packets. | |||
| * Loopback flag: an attacker that sets this flag, either in | Loopback flag: | |||
| synthetic packets or transit packet, can potentially cause an | an attacker that sets this flag, either in synthetic packets or | |||
| amplification, since each device along the path creates a copy of | transit packets, can potentially cause an amplification since each | |||
| the data packet and sends it back to the source. The attacker can | device along the path creates a copy of the data packet and sends | |||
| potentially leverage the Loopback flag for a Distributed Denial of | it back to the source. The attacker can potentially leverage the | |||
| Service (DDoS) attack, as multiple devices send looped-back copies | Loopback flag for a DDoS attack as multiple devices send looped- | |||
| of a packet to a single victim. | back copies of a packet to a single victim. | |||
| * Active flag: the impact of synthetic packets with the Active flag | Active flag: | |||
| is no worse than synthetic data packets in which the Active flag | the impact of synthetic packets with the Active flag is no worse | |||
| is not set. By setting the Active flag in en route packets an | than synthetic data packets in which the Active flag is not set. | |||
| attacker can prevent these packets from reaching their | By setting the Active flag in en route packets, an attacker can | |||
| destination, since the packet is terminated by the decapsulating | prevent these packets from reaching their destination since the | |||
| device; however, note that an on-path attacker may achieve the | packet is terminated by the decapsulating device. However, note | |||
| same goal by changing the destination address of a packet. | that an on-path attacker may achieve the same goal by changing the | |||
| Another potential threat is amplification; if an attacker causes | destination address of a packet. Another potential threat is | |||
| transit switches to replicate more packets than they are intended | amplification; if an attacker causes transit switches to replicate | |||
| to replicate, either by setting the Active flag or by sending | more packets than they are intended to replicate (either by | |||
| synthetic packets, then traffic is amplified, causing bandwidth | setting the Active flag or by sending synthetic packets), then | |||
| degredation. As mentioned in Section 5, the specification of the | traffic is amplified, causing bandwidth degradation. As mentioned | |||
| replication mechanism is not within the scope of this document. A | in Section 5, the specification of the replication mechanism is | |||
| specification that defines the replication functionality should | not within the scope of this document. A specification that | |||
| also address the security aspects of this mechanism. | defines the replication functionality should also address the | |||
| security aspects of this mechanism. | ||||
| Some of the security threats that were discussed in this document may | Some of the security threats that were discussed in this document may | |||
| be worse in a wide area network in which there are nested IOAM | be worse in a wide area network in which there are nested IOAM- | |||
| domains. For example, if there are two nested IOAM domains that use | Domains. For example, if there are two nested IOAM-Domains that use | |||
| loopback, then a looped-back copy in the outer IOAM domain may be | loopback, then a looped-back copy in the outer IOAM-Domain may be | |||
| forwarded through another (inner) IOAM domain and may be subject to | forwarded through another (inner) IOAM-Domain and may be subject to | |||
| loopback in that (inner) IOAM domain, causing the amplification to be | loopback in that (inner) IOAM-Domain, causing the amplification to be | |||
| worse than in the conventional case. | worse than in the conventional case. | |||
| In order to mitigate the performance-related attacks described above, | In order to mitigate the performance-related attacks described in | |||
| as described in Section 7 it should be possible for IOAM-enabled | Section 7, it should be possible for IOAM-enabled devices to | |||
| devices to selectively apply the mechanisms that use the flags | selectively apply the mechanisms that use the flags defined in this | |||
| defined in this document to a subset of the traffic, and to limit the | document to a subset of the traffic and to limit the performance of | |||
| performance of synthetically generated packets to a configurable | synthetically generated packets to a configurable rate. | |||
| rate. Specifically, IOAM nodes should be able to: | Specifically, IOAM nodes should be able to: | |||
| * Limit the rate of IOAM packets with the Loopback flag (IOAM | * Limit the rate of IOAM packets with the Loopback flag (IOAM | |||
| encapsulating nodes), as discussed in Section 4.1.1. | encapsulating nodes) as discussed in Section 4.1.1. | |||
| * Limit the rate of looped back packets (IOAM transit and | * Limit the rate of looped back packets (IOAM transit and | |||
| decapsulating nodes), as discussed in Section 4.2. | decapsulating nodes) as discussed in Section 4.2. | |||
| * Limit the rate of IOAM packets with the Active flag (IOAM | * Limit the rate of IOAM packets with the Active flag (IOAM | |||
| encapsulating nodes), as discussed in Section 5. | encapsulating nodes) as discussed in Section 5. | |||
| As defined in Section 4, transit nodes that process a packet with the | As defined in Section 4, transit nodes that process a packet with the | |||
| Loopback flag only add a single data field, and truncate any payload | Loopback flag only add a single data field and truncate any payload | |||
| that follows the IOAM option(s), thus significanly limiting the | that follows the IOAM option(s), thus significantly limiting the | |||
| possible impact of an amplification attack. | possible impact of an amplification attack. | |||
| 9. Acknowledgments | 9. References | |||
| The authors thank Martin Duke, Tommy Pauly, Donald Eastlake, Paul | ||||
| Kyzivat, Bernard Aboba, Greg Mirsky, and other members of the IPPM | ||||
| working group for many helpful comments. | ||||
| 10. References | ||||
| 10.1. Normative References | 9.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>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC9197] Brockners, F., Ed., Bhandari, S., Ed., and T. Mizrahi, | [RFC9197] Brockners, F., Ed., Bhandari, S., Ed., and T. Mizrahi, | |||
| Ed., "Data Fields for In Situ Operations, Administration, | Ed., "Data Fields for In Situ Operations, Administration, | |||
| and Maintenance (IOAM)", RFC 9197, DOI 10.17487/RFC9197, | and Maintenance (IOAM)", RFC 9197, DOI 10.17487/RFC9197, | |||
| May 2022, <https://www.rfc-editor.org/info/rfc9197>. | May 2022, <https://www.rfc-editor.org/info/rfc9197>. | |||
| 10.2. Informative References | 9.2. Informative References | |||
| [I-D.ietf-ippm-ioam-ipv6-options] | [IOAM-IPV6-OPTIONS] | |||
| Bhandari, S. and F. Brockners, "In-situ OAM IPv6 Options", | Bhandari, S., Ed. and F. Brockners, Ed., "In-situ OAM IPv6 | |||
| Work in Progress, Internet-Draft, draft-ietf-ippm-ioam- | Options", Work in Progress, Internet-Draft, draft-ietf- | |||
| ipv6-options-08, 16 June 2022, | ippm-ioam-ipv6-options-09, 11 October 2022, | |||
| <https://www.ietf.org/archive/id/draft-ietf-ippm-ioam- | <https://datatracker.ietf.org/doc/html/draft-ietf-ippm- | |||
| ipv6-options-08.txt>. | ioam-ipv6-options-09>. | |||
| [I-D.ietf-sfc-ioam-nsh] | [IOAM-NSH] Brockners, F., Ed. and S. Bhandari, Ed., "Network Service | |||
| Brockners, F. and S. Bhandari, "Network Service Header | Header (NSH) Encapsulation for In-situ OAM (IOAM) Data", | |||
| (NSH) Encapsulation for In-situ OAM (IOAM) Data", Work in | Work in Progress, Internet-Draft, draft-ietf-sfc-ioam-nsh- | |||
| Progress, Internet-Draft, draft-ietf-sfc-ioam-nsh-10, 18 | 11, 30 September 2022, | |||
| May 2022, <https://www.ietf.org/archive/id/draft-ietf-sfc- | <https://datatracker.ietf.org/doc/html/draft-ietf-sfc- | |||
| ioam-nsh-10.txt>. | ioam-nsh-11>. | |||
| [I-D.spiegel-ippm-ioam-rawexport] | [IOAM-RAWEXPORT] | |||
| Spiegel, M., Brockners, F., Bhandari, S., and R. | Spiegel, M., Brockners, F., Bhandari, S., and R. | |||
| Sivakolundu, "In-situ OAM raw data export with IPFIX", | Sivakolundu, "In-situ OAM raw data export with IPFIX", | |||
| Work in Progress, Internet-Draft, draft-spiegel-ippm-ioam- | Work in Progress, Internet-Draft, draft-spiegel-ippm-ioam- | |||
| rawexport-06, 21 February 2022, | rawexport-06, 21 February 2022, | |||
| <https://www.ietf.org/archive/id/draft-spiegel-ippm-ioam- | <https://datatracker.ietf.org/doc/html/draft-spiegel-ippm- | |||
| rawexport-06.txt>. | ioam-rawexport-06>. | |||
| [RFC5475] Zseby, T., Molina, M., Duffield, N., Niccolini, S., and F. | [RFC5475] Zseby, T., Molina, M., Duffield, N., Niccolini, S., and F. | |||
| Raspall, "Sampling and Filtering Techniques for IP Packet | Raspall, "Sampling and Filtering Techniques for IP Packet | |||
| Selection", RFC 5475, DOI 10.17487/RFC5475, March 2009, | Selection", RFC 5475, DOI 10.17487/RFC5475, March 2009, | |||
| <https://www.rfc-editor.org/info/rfc5475>. | <https://www.rfc-editor.org/info/rfc5475>. | |||
| [RFC6291] Andersson, L., van Helvoort, H., Bonica, R., Romascanu, | [RFC6291] Andersson, L., van Helvoort, H., Bonica, R., Romascanu, | |||
| D., and S. Mansfield, "Guidelines for the Use of the "OAM" | D., and S. Mansfield, "Guidelines for the Use of the "OAM" | |||
| Acronym in the IETF", BCP 161, RFC 6291, | Acronym in the IETF", BCP 161, RFC 6291, | |||
| DOI 10.17487/RFC6291, June 2011, | DOI 10.17487/RFC6291, June 2011, | |||
| skipping to change at page 13, line 33 ¶ | skipping to change at line 576 ¶ | |||
| <https://www.rfc-editor.org/info/rfc6724>. | <https://www.rfc-editor.org/info/rfc6724>. | |||
| [RFC7014] D'Antonio, S., Zseby, T., Henke, C., and L. Peluso, "Flow | [RFC7014] D'Antonio, S., Zseby, T., Henke, C., and L. Peluso, "Flow | |||
| Selection Techniques", RFC 7014, DOI 10.17487/RFC7014, | Selection Techniques", RFC 7014, DOI 10.17487/RFC7014, | |||
| September 2013, <https://www.rfc-editor.org/info/rfc7014>. | September 2013, <https://www.rfc-editor.org/info/rfc7014>. | |||
| [RFC7799] Morton, A., "Active and Passive Metrics and Methods (with | [RFC7799] Morton, A., "Active and Passive Metrics and Methods (with | |||
| Hybrid Types In-Between)", RFC 7799, DOI 10.17487/RFC7799, | Hybrid Types In-Between)", RFC 7799, DOI 10.17487/RFC7799, | |||
| May 2016, <https://www.rfc-editor.org/info/rfc7799>. | May 2016, <https://www.rfc-editor.org/info/rfc7799>. | |||
| Acknowledgments | ||||
| The authors thank Martin Duke, Tommy Pauly, Donald Eastlake, Paul | ||||
| Kyzivat, Bernard Aboba, Greg Mirsky, and other members of the IPPM | ||||
| working group for many helpful comments. | ||||
| Contributors | Contributors | |||
| The Editors would like to recognize the contributions of the | The Editors would like to recognize the contributions of the | |||
| following individuals to this document. | following individuals to this document. | |||
| Ramesh Sivakolundu | Ramesh Sivakolundu | |||
| Cisco Systems, Inc. | Cisco Systems, Inc. | |||
| 170 West Tasman Dr. | 170 West Tasman Dr. | |||
| SAN JOSE, CA 95134 | San Jose, CA 95134 | |||
| U.S.A. | United States of America | |||
| Email: sramesh@cisco.com | ||||
| Email: sramesh@cisco.com | ||||
| Carlos Pignataro | ||||
| Cisco Systems, Inc. | ||||
| 7200-11 Kit Creek Road | ||||
| Research Triangle Park, NC 27709 | ||||
| United States | ||||
| Email: cpignata@cisco.com | ||||
| Aviv Kfir | ||||
| Nvidia | ||||
| Email: avivk@nvidia.com | Carlos Pignataro | |||
| Cisco Systems, Inc. | ||||
| 7200-11 Kit Creek Road | ||||
| Research Triangle Park, NC 27709 | ||||
| United States of America | ||||
| Email: cpignata@cisco.com | ||||
| Jennifer Lemon | Aviv Kfir | |||
| Broadcom | Nvidia | |||
| 270 Innovation Drive | Email: avivk@nvidia.com | |||
| San Jose, CA 95134 | ||||
| US | ||||
| Email: jennifer.lemon@broadcom.com | Jennifer Lemon | |||
| Broadcom | ||||
| 270 Innovation Drive | ||||
| San Jose, CA 95134 | ||||
| United States of America | ||||
| Email: jennifer.lemon@broadcom.com | ||||
| Authors' Addresses | Authors' Addresses | |||
| Tal Mizrahi | Tal Mizrahi | |||
| Huawei | Huawei | |||
| Israel | Israel | |||
| Email: tal.mizrahi.phd@gmail.com | Email: tal.mizrahi.phd@gmail.com | |||
| Frank Brockners | Frank Brockners | |||
| Cisco Systems, Inc. | Cisco Systems, Inc. | |||
| Hansaallee 249, 3rd Floor | 3rd Floor | |||
| 40549 DUESSELDORF | Hansaallee 249 | |||
| 40549 Duesseldorf | ||||
| Germany | Germany | |||
| Email: fbrockne@cisco.com | Email: fbrockne@cisco.com | |||
| Shwetha Bhandari | Shwetha Bhandari | |||
| Thoughtspot | Thoughtspot | |||
| 3rd Floor, Indiqube Orion, 24th Main Rd, Garden Layout, HSR Layout | 3rd Floor | |||
| Bangalore, KARNATAKA 560 102 | Indiqube Orion | |||
| Garden Layout | ||||
| HSR Layout | ||||
| 24th Main Rd | ||||
| Bangalore 560 102 | ||||
| Karnataka | ||||
| India | India | |||
| Email: shwetha.bhandari@thoughtspot.com | Email: shwetha.bhandari@thoughtspot.com | |||
| Barak Gafni | Barak Gafni | |||
| Nvidia | Nvidia | |||
| 350 Oakmead Parkway, Suite 100 | Suite 100 | |||
| Sunnyvale, CA | 350 Oakmead Parkway | |||
| Sunnyvale, CA 94085 | ||||
| United States of America | ||||
| Email: gbarak@nvidia.com | Email: gbarak@nvidia.com | |||
| Mickey Spiegel | Mickey Spiegel | |||
| Barefoot Networks, an Intel company | Barefoot Networks, an Intel company | |||
| 4750 Patrick Henry Drive | 4750 Patrick Henry Drive | |||
| Santa Clara, CA, 95054 | Santa Clara, CA 95054 | |||
| United States of America | United States of America | |||
| Email: mickey.spiegel@intel.com | Email: mickey.spiegel@intel.com | |||
| End of changes. 90 change blocks. | ||||
| 261 lines changed or deleted | 265 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||