<?xmlversion="1.0" encoding="US-ASCII"?>version='1.0' encoding='UTF-8'?> <!DOCTYPE rfcSYSTEM "rfc2629.dtd"> <?rfc toc="yes"?> <?rfc tocompact="yes"?> <?rfc tocdepth="3"?> <?rfc tocindent="yes"?> <?rfc symrefs="yes"?> <?rfc sortrefs="yes"?> <?rfc comments="yes"?> <?rfc inline="yes"?> <?rfc compact="yes"?> <?rfc subcompact="no"?>[ <!ENTITY nbsp " "> <!ENTITY zwsp "​"> <!ENTITY nbhy "‑"> <!ENTITY wj "⁠"> ]> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" consensus="true" number="9534" docName="draft-ietf-ippm-stamp-on-lag-06" ipr="trust200902" sortRefs="true" submissionType="IETF"tocInclude="true">tocInclude="true" obsoletes="" updates="" xml:lang="en" tocDepth="3" symRefs="true" version="3"> <front> <title abbrev="STAMP PM on LAG">Simple Two-Way Active Measurement Protocol Extensions for Performance Measurement onLAG</title>a Link Aggregation Group</title> <seriesInfo name="RFC" value="9534"/> <author fullname="Zhenqiang Li" initials="Z." surname="Li"> <organization>China Mobile</organization> <address> <postal> <street>No. 29 FinanceAvenue, Xicheng District</street>Avenue</street> <cityarea>Xicheng District</cityarea> <city>Beijing</city> <code/> <country>China</country> </postal> <email>li_zhenqiang@hotmail.com</email> </address> </author> <author fullname="Tianran Zhou" initials="T." surname="Zhou"> <organization>Huawei</organization> <address> <postal><street/><country>China</country> </postal> <email>zhoutianran@huawei.com</email> </address> </author> <author fullname="Jun Guo" initials="J." surname="Guo"> <organization>ZTE Corp.</organization> <address> <postal><street/> <city/> <region/> <code/><country>China</country> </postal><phone/> <facsimile/><email>guo.jun2@zte.com.cn</email> <uri/> </address> </author> <author fullname="Greg Mirsky" initials="G." surname="Mirsky"> <organization>Ericsson</organization> <address> <postal><street/><country>United States of America</country> </postal> <email>gregimirsky@gmail.com</email> </address> </author> <author fullname="Rakesh Gandhi" initials="R." surname="Gandhi"><organization>Cisco</organization><organization>Cisco Systems, Inc.</organization> <address> <postal><street/> <city/> <region/> <code/><country>Canada</country> </postal><phone/> <facsimile/><email>rgandhi@cisco.com</email> <uri/> </address> </author> <dateday="11" month="December" year="2023"/> <area>Operation and Managementmonth="January" year="2024"/> <area>Transport Area</area> <workgroup>IPPM</workgroup> <keyword>STAMP</keyword> <keyword>Performance Measurement</keyword> <keyword>LAG</keyword> <keyword>Micro Session</keyword> <abstract> <t>This document extends SimpleTwo-WayTwo-way Active Measurement Protocol (STAMP) 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 aperformance basedperformance-based traffic steering policy across the member links.</t> </abstract><note title="Requirements Language"> <t>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 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t> </note></front> <middle> <sectiontitle="Introduction"> <t>Linknumbered="true" toc="default"> <name>Introduction</name> <t>A Link Aggregation Group (LAG), as defined in <xreftarget="IEEE802.1AX"/>,target="IEEE802.1AX" format="default"/>, provides mechanisms to combine multiple physical links into a single logical link. This logical link offers higher bandwidth and betterresiliency, becauseresiliency 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.</t> <t>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 providelow latencylow-latency service fortime sensitivetime-sensitive traffic, we need to explicitly steer the traffic across the LAG member links based on the link delay,lossloss, and so on. That requires a solution to measure the performance metrics of each member link of a LAG. Hence, the measured performance metrics can work together with <xreftarget="RFC8668">layertarget="RFC8668" format="default">Layer 2 bundle member link attributes advertisement</xref> for traffic steering.</t> <t>According to the classifications in <xreftarget="RFC7799"/>,target="RFC7799" format="default"/>, <xreftarget="RFC8762">Simple Two-Waytarget="RFC8762" format="default">Simple Two-way Active Measurement Protocol (STAMP)</xref> is an active measurement method, and it can complement passive and hybrid methods. It provides a mechanism to measure both one-way and round-trip performance metrics, like delay, delay variation, and packet loss.OneA STAMP test session over the LAG can be used to measure the performance of a member linkwith fixed five tuples. Or itusing a specially constructed 5-tuple. The session can be used to measure an average ofsome/allsome or all member links of the LAG by varyingthe five tuples.one or more elements of that 5-tuple. However, without the knowledge of each member link, a STAMP test session cannot measure the performance of every physical member link.</t> <t>This document extends STAMP to implement performance measurement on every member link of a LAG. It can provide the same metrics as <xreftarget="RFC4656">OWAMP</xref>target="RFC4656" format="default">One-Way Active Measurement Protocol (OWAMP)</xref> and <xreftarget="RFC5357">TWAMP</xref>target="RFC5357" format="default">Two-Way Active Measurement Protocol (TWAMP)</xref> can measure, such as delay, jitter, and packet loss.</t> <section numbered="true" toc="default"> <name>Requirements Language</name> <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t> </section> </section> <sectiontitle="Micro Sessionnumbered="true" toc="default"> <name>Micro Sessions onLAG">a LAG</name> <t>This document addresses the scenario where a LAG directly connects two nodes. An example of this is inFigure 1,<xref target="PMonLAG"/>, 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.</t> <figurealign="center" anchor="PMonLAG" title="Performanceanchor="PMonLAG"> <name>Performance Measurement onLAG"> <artwork><![CDATA[+---+a LAG</name> <artwork name="" type="" align="left" alt=""><![CDATA[ +---+ +---+ | |-----------------------| | | A |-----------------------| B | | |-----------------------| | | |-----------------------| | +---+ +---+ ]]></artwork> </figure> <t>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 twoend pointsendpoints that are connected by the LAG. These sessions are calledmicro sessions"micro sessions" in the remainder of this document. Although micro sessions are in fact STAMP sessions established on member links of a LAG, test packets of micro sessionsMUST<bcp14>MUST</bcp14> carry member link information for validation.</t> <t>All micro sessions of a LAG share the same Sender IP Address and Receiver IPAddress of the LAG.Address. As for the UDPPort,port, the micro sessions may share the same Sender Port and Receiver Portpair,pair or each micro sessionismay be configured with a different Sender Port and Receiver Port pair.But fromFrom the operational point of view, the former is simpler and isRECOMMENDED.</t><bcp14>RECOMMENDED</bcp14>.</t> <t>Test packets of a micro sessionMUST<bcp14>MUST</bcp14> carry the member link information for validationcheck.checks. For example, when a micro STAMP Session-Sender receives a reflected test packet, it checks whether the test packet is from the expected member link. The member link information is encoded in the Micro-session ID TLV introduced inSection 3 of this document, and the<xref target="validation"/>, which also provides a detailed description aboutthemember linkvalidation is also in this section.</t>validation.</t> <t>A micro STAMP Session-SenderMAY<bcp14>MAY</bcp14> include the <xreftarget="RFC8972">Follow-Uptarget="RFC8972" format="default">Follow-Up Telemetry TLV</xref> to request information from the micro Session-Reflector. This timestamp might be important for the micro Session-Sender, as it improves the accuracy of network delay measurement by minimizing the impact of egress queuing delays on the measurement.</t> </section> <sectiontitle="Membernumbered="true" toc="default" anchor="validation"> <name>Member LinkValidation">Validation</name> <t>Test packetsMUST<bcp14>MUST</bcp14> carry member link information in the Micro-session ID TLV introduced in this section for validationcheck.checks. The micro Session-Sender verifies whether the test packet is received from the expected member link. It also verifies whether the packet is sent from the expected member link at the Reflector side. The micro Session-Reflector verifies whether the test packet is received from the expected member link.</t> <sectiontitle="Micro-sessionnumbered="true" toc="default"> <name>Micro-session IDTLV"> <t><xref target="RFC8972">STAMP TLV</xref> mechanismTLV</name> <t>The <xref target="RFC8972" format="default">STAMP TLV mechanism</xref> extends STAMP test packets with one or more optional TLVs. This document defines the TLV Type (valueTBA1)11) for the Micro-session ID TLV that carries the micro STAMP Session-Sender member link identifier and Session-Reflector member link identifier in the Sender Micro-session ID field and the Reflector Micro-session IDfieldfield, respectively. The format of the Micro-session ID TLV is shown as follows:</t><t><figurealign="center" anchor="STAMPSender" title="Micro-sessionanchor="STAMPSender"> <name>Micro-session IDTLV"> <artwork><![CDATA[TLV</name> <artwork name="" type="" align="left" alt=""><![CDATA[ 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |STAMP TLV Flags| Type =TBA111 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sender Micro-session ID | Reflector Micro-session ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> </figure><list style="symbols"> <t>Type (one-octet<dl spacing="normal"> <dt>Type (1 octet inlength): Itlength):</dt> <dd>This field is defined to indicate this TLV is a Micro-session ID TLV. ValueTBA1 is11 has been allocated by IANA(Section 5).</t> <t>Length (2-octets(<xref target="IANA"/>).</dd> <dt>Length (2 octets inlength): Itlength):</dt> <dd>This field is defined to carry the length of the Value field in octets. The Length field valueMUST<bcp14>MUST</bcp14> be4.</t> <t>Sender4.</dd> <dt>Sender Micro-session ID(2-octets(2 octets inlength): Itlength):</dt> <dd>This field isnowdefined to carry the LAG member link identifier of the Sender side. In the future, it may be used generically to coveruse-casesuse cases beyondLAG.LAGs. The value of this fieldMUST<bcp14>MUST</bcp14> be unique within a STAMP session at theSession-Sender.</t> <t>ReflectorSession-Sender.</dd> <dt>Reflector Micro-session ID(2-octets(2 octets inlength): Itlength):</dt> <dd>This field isnowdefined to carry the LAG member link identifier of the Reflector side. In the future, it may be used generically to coveruse-casesuse cases beyondLAG.LAGs. The value of this fieldMUST<bcp14>MUST</bcp14> be unique within a STAMP session at theSession-Reflector.</t> </list> </t>Session-Reflector.</dd> </dl> </section> <sectiontitle="Micronumbered="true" toc="default"> <name>Micro STAMP-TestProcedures">Procedures</name> <t>The micro STAMP-Test reuses the procedures as defined in Section4<xref target="RFC8762" sectionFormat="bare" section="4" format="default"/> of <xreftarget="RFC8762">STAMP</xref>target="RFC8762" format="default">STAMP</xref> with the following additions.</t> <t>The micro STAMP Session-SenderMUST<bcp14>MUST</bcp14> send the micro STAMP-Test packets over the member link with which the session is associated. The mapping between a micro STAMP session and the Sender/Reflector member link identifiers can be configured by augmenting the <xreftarget="I-D.ietf-ippm-stamp-yang">STAMPtarget="I-D.ietf-ippm-stamp-yang" format="default">STAMP YANG</xref>. The detailed augmentation is not in the scope of this document.</t> <t>When sending a test packet, the micro STAMP Session-SenderMUST<bcp14>MUST</bcp14> set the Sender Micro-session ID field with the member link identifier associated with the micro STAMP session. If the Session-Sender knows the Reflector member link identifier, the Reflector Micro-session ID fieldMUST<bcp14>MUST</bcp14> be set. Otherwise, the Reflector Micro-session ID fieldMUST<bcp14>MUST</bcp14> be zero. The Reflector member link identifier can be obtained frompre-configurationpreconfiguration or learned from data plane (e.g., the reflected test packet). This document does not specify the way to obtain the Reflector member link identifier.</t> <t>When the micro STAMP Session-Reflector receives a test packet, if the Reflector Micro-session ID is not zero, the micro STAMP Session-ReflectorMUST<bcp14>MUST</bcp14> use the Reflector member link identifier to check whether it is associated with the micro STAMP session. If the validation fails, the test packetMUST<bcp14>MUST</bcp14> be discarded. If the Reflector Micro-session ID is zero, it will not be verified. If all validations passed, the Session-Reflector sends a reflected test packet to the Session-Sender. The micro STAMP Session-ReflectorMUST<bcp14>MUST</bcp14> put the Sender and Reflector member link identifiers that are associated with the micro STAMP session in the Sender Micro-session ID and Reflector Micro-session IDfieldsfields, respectively. The Sender member link identifier is copied from the received test packet.</t> <t>When receiving a reflected test packet, the micro Session-SenderMUST<bcp14>MUST</bcp14> 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 packetMUST<bcp14>MUST</bcp14> be discarded. The micro Session-SenderMUST<bcp14>MUST</bcp14> use the Reflector Micro-session ID to validate the Reflector's behavior. If the validation fails, the test packetMUST<bcp14>MUST</bcp14> be discarded.</t> <t>Two modes of the STAMP Session-Reflector, stateless and stateful, characterize the expectedbehavior,behavior as described in Section4<xref target="RFC8762" sectionFormat="bare" section="4" format="default"/> of <xreftarget="RFC8762">STAMP</xref>.target="RFC8762" format="default">STAMP</xref>. The micro STAMP-Test also supports both stateless and stateful modes. However, the micro STAMP-Test does not introduce any additional state to STAMP,i.e,i.e., any procedure with regard to the Micro-session ID is stateless.</t> </section> </section> <sectiontitle="Applicability">numbered="true" toc="default"> <name>Applicability</name> <t>The micro STAMP Session-Sender sends micro Session-Sender packets with the Micro-session ID TLV. The micro Session-Reflector checks whether a test packet is received from the member link associated with the correct micro STAMPsession,session if the Reflector Micro-session ID field is set. When reflecting, the micro STAMP Session-Reflector copies the Sender Micro-session ID from the received micro Session-Sender packet to the micro Session-Reflectorpacket,packet and sets the Reflector Micro-session ID field with the member link identifier that is associated with the micro STAMP session. When receiving the micro Session-Reflector packet, the micro Session-Sender uses the Sender Micro-session ID to check whether the packet is received from the member link associated with the correct micro STAMP session. The micro Session-Sender also use the Reflector Micro-session ID to validate the Reflector's behavior.</t> </section> <section anchor="IANA"title="IANA Considerations"> <t>Innumbered="true" toc="default"> <name>IANA Considerations</name> <t>IANA has allocated the"STAMP TLV Types" registry created for [RFC8972], a newfollowing STAMP TLV Type for the Micro-session ID TLVis requested from IANA as follows:<figure align="center" title="New STAMPin the "STAMP TLVType"> <artwork><![CDATA[+----------------+-------------------+-----------------+------------+ |Types" registry <xref target="RFC8972" format="default"/>:</t> <table anchor="reg_table"> <name>New STAMP TLVType | Description | Semantics | Reference | | Value | | Definition | | +----------------+-------------------+-----------------+------------+ | TBA1 | Micro-session | Section 3 | This | | | ID TLV | | Document | +----------------+-------------------+-----------------+------------+]]></artwork> </figure></t>Type</name> <thead> <tr> <th>Value</th> <th>Description</th> <th>Reference</th> </tr> </thead> <tbody> <tr> <td>11</td> <td>Micro-session ID</td> <td>This Document</td> </tr> </tbody> </table> </section> <section anchor="Security"title="Security Considerations">numbered="true" toc="default"> <name>Security Considerations</name> <t>The STAMP extension defined in this document is intended for deployment in the LAG scenario where Session-Sender and Session-Reflector are directly connected. As such, it's assumed that a node involved in a STAMPprotocoloperation has previously verified the integrity of the LAG connection and the identity of its one-hop-away peer node.</t> <t>This document does not introduce any additional securityissuesissues, and the security mechanisms defined in <xreftarget="RFC8762"/>target="RFC8762" format="default"/> and <xreftarget="RFC8972"/>target="RFC8972" format="default"/> apply in this document.</t> </section><section anchor="Acknowledgements" title="Acknowledgements"> <t>The authors would like to thank Mach Chen, Min Xiao, Fang Xin, Marcus Ihlar, Richard Foote for the valuable comments to this work.</t> </section></middle> <back><references title="Normative References"> <?rfc include="reference.RFC.2119"?> <?rfc include='reference.RFC.8174'?> <?rfc include='reference.RFC.8762'?> <?rfc include='reference.RFC.8972'?><displayreference target="I-D.ietf-ippm-stamp-yang" to="STAMP-YANG"/> <references> <name>References</name> <references> <name>Normative References</name> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8762.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8972.xml"/> </references><references title="Informative References"><references> <name>Informative References</name> <referenceanchor="IEEE802.1AX">anchor="IEEE802.1AX" target="https://ieeexplore.ieee.org/document/9105034"> <front> <title>IEEE Standard for Local andmetropolitan area networks -Metropolitan Area Networks -- Link Aggregation</title> <author><organization>IEEE Std. 802.1AX</organization><organization>IEEE</organization> </author> <datemonth="November" year="2008"/>month="May" year="2020"/> </front> <seriesInfo name="IEEE Std" value="802.1AX-2020"/> <seriesInfo name="DOI" value="10.1109/IEEESTD.2020.9105034"/> </reference><?rfc include='reference.RFC.7799'?> <?rfc include='reference.RFC.8668'?> <?rfc include='reference.RFC.4656'?> <?rfc include='reference.RFC.5357'?> <?rfc include='reference.I-D.ietf-ippm-stamp-yang'?><xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7799.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8668.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4656.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5357.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ippm-stamp-yang.xml"/> </references> </references> <section anchor="Acknowledgements" numbered="false" toc="default"> <name>Acknowledgements</name> <t>The authors would like to thank <contact fullname="Mach Chen"/>, <contact fullname="Min Xiao"/>, <contact fullname="Fang Xin"/>, <contact fullname="Marcus Ihlar"/>, and <contact fullname="Richard Foote"/> for the valuable comments to this work.</t> </section> </back> </rfc>