RFC 9533: One-Way and Two-Way Active Measurement Protocol Extensions for Performance Measurement on a Link Aggregation Group
- Z. Li,
- T. Zhou,
- J. Guo,
- G. Mirsky,
- R. Gandhi
Abstract
This document defines extensions to the One-Way Active Measurement
Protocol (OWAMP) and the Two-Way Active Measurement Protocol (TWAMP) to
implement performance measurement on every member link of a Link
Aggregation Group (LAG). Knowing the measured metrics of each member
link of a LAG enables operators to enforce the performance
Status of This Memo
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://
1. Introduction
A Link Aggregation Group (LAG), as defined in [IEEE802.1AX], provides mechanisms to combine multiple physical links into a single logical link. This logical link offers higher bandwidth and better resiliency because, if one of the physical member links fails, the aggregate logical link can continue to forward traffic over the remaining operational physical member links.¶
Usually, when forwarding traffic over a LAG, a hash-based mechanism is used to load balance the traffic across the LAG member links. The link delay might vary between member links because of different transport paths, especially when a LAG is used in a wide area network. To provide low-latency service for time-sensitive traffic, we need to explicitly steer the traffic across the LAG member links based on the link delay, loss, and so on. That requires a solution to measure the performance metrics of every member link of a LAG. Hence, the measured performance metrics can work together with Layer 2 bundle member link attributes advertisement [RFC8668] for traffic steering.¶
According to the classifications in [RFC7799], OWAMP [RFC4656] and TWAMP [RFC5357] are active measurement methods, and they can complement passive and hybrid methods. With either method, one test session over the LAG can be used to measure the performance of a member link using a specially constructed 5-tuple. The session can be used to measure an average of some or all member links of the LAG by varying one or more elements of that 5-tuple. However, without the knowledge of each member link, a test session cannot measure the performance of every physical member link.¶
This document extends OWAMP and TWAMP to implement performance measurement on every member link of a LAG. It can provide the same metrics as OWAMP and TWAMP can measure, such as delay, jitter, and packet loss.¶
1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
2. Micro Sessions on a LAG
This document addresses the scenario where a LAG directly connects two nodes. An example of this is in Figure 1, where the LAG consisting of four links connects nodes A and B. The goal is to measure the performance of each link of the LAG.¶
To measure the performance metrics of every member link of a LAG, multiple sessions (one session for each member link) need to be established between the two endpoints that are connected by the LAG. These sessions are called "micro sessions" in the remainder of this document. Although micro sessions are in fact OWAMP or TWAMP sessions established on member links of a LAG, test packets of micro TWAMP sessions MUST carry member link information for validation.¶
All micro sessions of a LAG share the same Sender IP Address and Receiver IP Address. As for the UDP port, the micro sessions may share the same Sender Port and Receiver Port pair or each micro session may be configured with a different Sender Port and Receiver Port pair. From the operational point of view, the former is simpler and is RECOMMENDED.¶
Test packets of a micro session MUST carry the member link information for validation checks. For example, when a micro TWAMP Session-Sender receives a reflected test packet, it checks whether the test packet is from the expected member link.¶
3. Micro OWAMP Session
3.1. Micro OWAMP-Control
To support the micro OWAMP session, a new command,
Request
When an OWAMP Server receives a Request
3.2. Micro OWAMP-Test
Micro OWAMP-Test reuses the OWAMP-Test packet format and procedures as defined in Section 4 of [RFC4656] with the following additions:¶
The micro OWAMP Session-Sender MUST send the micro OWAMP-Test
packets over the member link with which the session is associated.
When it receives a test packet, the micro OWAMP Session
4. Micro TWAMP Session
4.1. Micro TWAMP-Control
To support the micro TWAMP session, a new command,
Request
When a TWAMP Server receives a Request
4.2. Micro TWAMP-Test
The micro TWAMP-Test protocol is based on the TWAMP-Test protocol [RFC5357] with the extensions described in the following subsections.¶
4.2.1. Sender Packet Format and Content
The micro TWAMP Session-Sender packet format is based on the TWAMP Session-Sender packet format as defined in Section 4.1.2 of [RFC5357]. Two new fields (Sender Micro-session ID and Reflector Micro-session ID) are added to carry the LAG member link identifiers.¶
For unauthenticated mode, the format is as below:¶
For authenticated and encrypted mode, the format is as below:¶
Except for the Sender Micro-session ID field and the Reflector Micro-session ID field, all the other fields are the same as defined in Section 4.1.2 of [RFC5357] and follow the procedure and guidelines defined therein.¶
- Sender Micro-session ID (2 octets in length):
- This field is defined to carry the LAG member link identifier of the Sender side. In the future, it may be used generically to cover use cases beyond LAGs. The value of this field MUST be unique within a TWAMP session at the Session-Sender.¶
- Reflector Micro-session ID (2 octets in length):
- This field is
defined to carry the LAG member link identifier of the Reflector
side. In the future, it may be used generically to cover
use cases beyond LAGs. The value of this field MUST be unique
within a TWAMP session at the Session
-Reflector .¶
4.2.2. Sender Behavior
The micro TWAMP Session-Sender inherits the behaviors of the TWAMP Session-Sender as defined in Section 4.1 of [RFC5357]. In addition, the micro TWAMP Session-Sender MUST send the micro Session-Sender test packets over the member link with which the session is associated.¶
When sending the test packet, the micro TWAMP Session-Sender MUST put the Sender member link identifier that is associated with the micro TWAMP session in the Sender Micro-session ID. If the Session-Sender knows the Reflector member link identifier, the Reflector Micro-session ID field (see Figures 2 and 3) MUST be set. Otherwise, the Reflector Micro-session ID field MUST be zero.¶
A test packet with a Sender member link identifier is sent to the
Session
The Reflector member link identifier carried in the Reflector
Micro-session ID field is used by the Session
When receiving a reflected test packet, the micro TWAMP Session-Sender MUST use the receiving member link to correlate the reflected test packet to a micro TWAMP session. If there is no such session, the reflected test packet MUST be discarded. If a matched session exists, the micro Session-Sender MUST use the Sender Micro-session ID to validate whether the reflected test packet is correctly received from the expected member link. If the validation fails, the test packet MUST be discarded. The micro Session-Sender MUST use the Reflector Micro-session ID to validate the Reflector's behavior. If the validation fails, the test packet MUST be discarded.¶
4.2.3. Reflector Packet Format and Content
The micro TWAMP Session
For unauthenticated mode, the format is as below:¶
For authenticated and encrypted mode, the format is as below:¶
Except for the Sender Micro-session ID field and the Reflector Micro-session ID field, all the other fields are the same as defined in Section 4.2.1 of [RFC5357] and follow the same procedure and guidelines defined therein.¶
- Sender Micro-session ID (2 octets in length):
- This field is defined to carry the LAG member link identifier of the Sender side. In the future, it may be used generically to cover use cases beyond LAGs. The value of this field MUST be unique within a TWAMP session at the Session-Sender.¶
- Reflector Micro-session ID (2 octets in length):
- This field is
defined to carry the LAG member link identifier of the Reflector
side. In the future, it may be used generically to cover
use cases beyond LAGs. The value of this field MUST be unique
within a TWAMP session at the Session
-Reflector .¶
4.2.4. Reflector Behavior
The micro TWAMP Session
In addition, when receiving a test packet, the micro TWAMP
Session
When sending a response to the received test packet, the micro
TWAMP Session
5. Applicability
To set up the micro OWAMP sessions, the Control-Client sends
the Request
For micro TWAMP sessions, a similar set up procedure is used. Then, the micro TWAMP Session-Sender sends micro
Session-Sender packets with the Sender Micro-session ID and the
Reflector Micro-session ID. If the Reflector Micro-session ID field is set, the micro Session
6. IANA Considerations
6.1. Micro OWAMP-Control Command
IANA has allocated the following command type from the "OWAMP-Control Command Numbers" registry.¶
6.2. Micro TWAMP-Control Command
IANA has allocated the following command type from the "TWAMP-Control Command Numbers" registry.¶
7. Security Considerations
This document does not introduce additional security requirements and mechanisms other than those described in [RFC4656] and [RFC5357].¶
8. References
8.1. Normative References
- [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC4656]
-
Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M. Zekauskas, "A One-way Active Measurement Protocol (OWAMP)", RFC 4656, DOI 10
.17487 , , <https:///RFC4656 www >..rfc -editor .org /info /rfc4656 - [RFC5357]
-
Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J. Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)", RFC 5357, DOI 10
.17487 , , <https:///RFC5357 www >..rfc -editor .org /info /rfc5357 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [RFC8668]
-
Ginsberg, L., Ed., Bashandy, A., Filsfils, C., Nanduri, M., and E. Aries, "Advertising Layer 2 Bundle Member Link Attributes in IS-IS", RFC 8668, DOI 10
.17487 , , <https:///RFC8668 www >..rfc -editor .org /info /rfc8668
8.2. Informative References
- [IEEE802.1AX]
-
IEEE, "IEEE Standard for Local and Metropolitan Area Networks -- Link Aggregation", IEEE Std 802.1AX-2020, DOI 10
.1109 , , <https:///IEEESTD .2020 .9105034 ieeexplore >..ieee .org /document /9105034 - [RFC7799]
-
Morton, A., "Active and Passive Metrics and Methods (with Hybrid Types In-Between)", RFC 7799, DOI 10
.17487 , , <https:///RFC7799 www >..rfc -editor .org /info /rfc7799
Acknowledgements
The authors would like to thank Fang Xin, Henrik Nydell, Mach Chen, Min Xiao, Jeff Tantsura, Marcus Ihlar, and Richard Foote for the valuable comments to this work.¶