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. |