Internet-Draft STAMP CoS ECN Update November 2026
White, et al. Expires 6 May 2027 [Page]
Workgroup:
IP Performance Measurement
Internet-Draft:
draft-ietf-ippm-stamp-cos-ecn-02
Updates:
8972 (if approved)
Published:
Intended Status:
Standards Track
Expires:
Authors:
G. White
CableLabs
G. Mirsky
Ciena
X. Min
ZTE Corp.

Update of the Simple Two-way Active Measurement Protocol Class-of-Service Extension - ECN

Abstract

The Simple Two-Way Active Measurement Protocol (STAMP) enables one-way and round-trip measurement of network metrics between IP hosts, and has a facility for defining optional extensions. This document updates the definition of the Class of Service TLV (originally defined in RFC 8972) to enable the measurement of manipulation of the value of the Explicit Congestion Notification (ECN) field of the IP header by middleboxes between two STAMP hosts, and to enable discovery and measurement of paths that provide differential treatment of packets depending on the value of their ECN field.

Status of This Memo

This Internet-Draft is submitted in full conformance with the 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 and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 6 May 2027.

▲

Table of Contents

1. Introduction

[RFC8972] defined several extensions to the Simple Two-way Active Measurement Protocol (STAMP). Among those is a Class of Service (CoS) TLV that enables measurements that utilize the Differentiated Services Code Point (DSCP) marking in both directions. Also, the CoS TLV supports outbound measurements that utilize the Explicit Congestion Notification (ECN) field, but it lacked support for such measurements on the return path. Experience deploying STAMP and its extensions demonstrated that it is helpful to an operator to monitor ECN's consistency in both directions. This specification updates the definition of the CoS TLV in a backward compatible manner to support monitoring of ECN in the return path of the STAMP test session.

The ECN monitoring capabilities defined in this document can help operators detect ECN bleaching and investigate its location along a path. These capabilities can also complement hop-by-hop measurements using on-path telemetry, as described in [I-D.ietf-ippm-on-path-active-measurements]. Section 4.3 discusses these uses.

Another STAMP extension header [I-D.ietf-ippm-stamp-ext-hdr] defines a mechanism that can be used by a Session-Sender to request that the Session-Reflector copy the entire IP header from the received test packet into the reflected test packet. That capability could be used in place of the CoS TLV to observe the DSCP and ECN values in the forward direction in situations where there is no need to control the return path DSCP or ECN value.

2. Conventions Used in This Document

2.1. Acronyms

CoS:
Class of Service
DSCP:
Differentiated Services Code Point
ECN:
Explicit Congestion Notification
STAMP:
Simple Two-way Active Measurement Protocol

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

3. Class of Service TLV

3.1. TLV Definition

The STAMP Session-Sender MAY include a CoS TLV in the STAMP test packet. The format of the CoS TLV is presented in Figure 1.


     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |STAMP TLV Flags|    CoS Type   |           Length              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   DSCP1   |   DSCP2   |EC2|RPD|EC1|RPE|     Reserved          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 1: Class of Service TLV

Where the fields are defined as follows.

3.2. Session-Reflector Behavior

A STAMP Session-Reflector that receives a test packet with the CoS TLV MUST include the CoS TLV in the reflected test packet. The Session-Reflector MUST copy the value of the DSCP and ECN fields of the IP header of the received STAMP test packet into the DSCP2 and EC2 fields, respectively, in the CoS TLV in the reflected test packet.

A Session-Reflector might have a local policy configuration that limits the DSCP values that it can use for reflected test packets. This local policy could be (for example) a system default policy, a global policy for the Session-Reflector, or a policy that is configured for specific destination addresses or networks. The Session-Reflector MUST verify whether the use of the value of the DSCP1 field is permitted in the reflected test packet. If it is, the Session-Reflector MUST set the DSCP field's value in the IP header of the reflected test packet equal to the value of the DSCP1 field of the received test packet. Otherwise, the Session-Reflector MUST use the DSCP value of the received STAMP packet and set the value of the RPD field to 0b01. Upon receiving the reflected packet, if the value of the RPD field is 0b00, the Session-Sender will save the DSCP value for analysis of the CoS in the reverse direction. If the value of the RPD field in the received reflected packet is 0b01, only CoS in the forward direction can be analyzed.

A Session-Reflector might have a local policy configuration that limits the ECN values that it can use for reflected test packets. This local policy could be (for example) a system default policy, a global policy for the Session-Reflector, or a policy that is configured for specific destination addresses or networks. Additionally, a Session-Reflector could have platform limitations that prevent it from setting the ECN value in reflected test packets. The Session-Reflector MUST set the ECN value in the IP header of the reflected STAMP test packet to the value of the EC1 field, if it is permitted and capable to do so. If the Session-Reflector is able to set the ECN value in the IP header of the reflected STAMP test packet to the EC1 value, it MUST then set the RPE field in the CoS TLV in the reflected test packet to the value 0b11. If the Session-Reflector is unable to set the ECN value in the IP header of the reflected STAMP test packet to the EC1 value, it MUST instead set the ECN value in the IP header to 0b00 and set the RPE field in the CoS TLV to the value 0b10 in the reflected test packet. If the Session-Reflector is unable to set the ECN value in the IP header of the reflected STAMP test packet to the EC1 value, and the Session-Reflector is unable to set the ECN value in the IP header of the reflected STAMP test packet to 0b00, it MUST set the Conformant Reflected Packet STAMP TLV flag (Section 6.2 of [RFC10052]) to 1. As a result, the Session-Sender can detect whether the EC1 value was used by inspecting the value of the RPE field and the Conformant Reflected Packet STAMP TLV flag in the received reflected test packet.

3.3. Interoperability with RFC 8972

The extended CoS TLV defined in this draft is backward compatible with the specification in Section 4.4 of [RFC8972]. The handling of the DSCP1, DSCP2, EC2 and RPD fields defined here is identical to the handling defined for the equivalent fields in Section 4.4 of [RFC8972].

Consider a case when an implementation that supports this specification performs as Session-Sender, and the intended Session-Reflector's support of the CoS TLV is according to Section 4.4 of [RFC8972]. If the operator requires monitoring ECN in the reverse direction, the value of the EC1 field will be set to a non-zero value. Because the Session-Reflector would treat the EC1 field as part of the Reserved field, it would ignore its value as per Section 4.4 of [RFC8972]. Further, the Session-Reflector would treat the RPE field as part of the Reserved field and thus it would send the value 0b00 in the reflected STAMP packet, rather than sending the value 0b10 or 0b11. Consequently, the Session-Sender will determine that the Session-Reflector does not implement the current version of the CoS TLV, and that the ECN value in the IP header of the reflected test packet was not set as requested.

Also, this specification supports the case when the Session-Reflector supports the extended CoS TLV as defined in this specification and the Session-Sender supports the CoS TLV according to Section 4.4 of [RFC8972]. In that scenario, the Session-Sender will set its [RFC8972] Reserved field to zeros. The Session-Reflector will interpret the first two bits of that field as the EC1 field, as shown in Figure 1 and thus will set the value of the ECN field in the IP header of the reflected packet to 0b00. Further the Session-Reflector will set the RPE field to 0b11. The Session-Sender will treat the RPE field as part of the Reserved field and will ignore its value.

3.4. Congestion Response

[RFC3168] and [RFC9330] require applications that send packets marked with the ECT0 or ECT1 codepoints to implement a response to congestion notifications from the network. While the STAMP protocol doesn't include the concept of a connection between a Session-Sender and a Session-Reflector, there are situations in which the Session-Sender may send multiple STAMP packets to the same Session-Reflector within the round-trip time between them, and there are situations in which the Session-Sender may elicit multiple STAMP packets from a Session-Reflector in response to a single sent STAMP packet. The Session-Sender therefore generally controls both its own sending rate and the rate of packets sent in response by an individual Session-Reflector, and is responsible for implementing an appropriate congestion response.

When using this CoS TLV with either an ECT0 or an ECT1 value in the ECN field of the IP header of the STAMP packet, the Session-Sender gains the ability (via observing a CE reflected value in the EC2 field) to detect that congestion was present on the path from the Session-Sender to the Session-Reflector. Similarly, when using this CoS TLV with either an ECT0 or an ECT1 value in the EC1 field, the Session-Sender gains the ability (via observing a CE in the ECN field of the IP header of the reflected packet) to detect that congestion was present on the path from the Session-Reflector to the Session-Sender.

If a Session-Sender sends multiple STAMP packets with the CoS TLV to a Session-Reflector within an RTT with either the ECT0 or ECT1 value in the ECN field of the IP header, it MUST observe the reflected EC2 field and be capable of reducing its sending rate upon observation of a CE value. If a Session-Sender sends multiple STAMP packets with the CoS TLV to a Session-Reflector within an RTT with either the ECT0 or ECT1 value in the EC1 field, it MUST observe the ECN value in the IP header of the reflected packets and be capable of reducing its sending rate upon observation of a CE value. If a Session-Sender sends a STAMP packet containing both the CoS TLV and the Reflected Test Packet Control TLV ([I-D.ietf-ippm-asymmetrical-pkts]) to a Session-Reflector, and specifies either the ECT0 or ECT1 value in the EC1 field, it MUST observe the ECN value in the IP header of the reflected packets and be capable of adjusting the Reflected Test Packet Control parameters in any future STAMP packet sent to the same Session-Reflector based on the observation of CE values. The specific congestion response behavior is left to the implementer, but it MUST be consistent with the congestion response requirements defined in [RFC3168] and [RFC9330].

The CoS TLV can be used to characterize the CE-marking behavior of a path under a range of traffic conditions, including overload. Such measurements may require a Session-Sender to maintain a specified test traffic rate or pattern despite observing CE markings. The congestion response capabilities described above MUST be enabled except when conducting such measurements in a controlled environment with the agreement of the operators of the networks under test. In these cases, operators SHOULD establish limits on the rate and duration of test traffic, including reflected traffic, and take measures to prevent unintended impact on traffic outside the scope of the test.

4. Operational Considerations

This document extends the STAMP Class of Service (CoS) TLV to support the measurement of Explicit Congestion Notification (ECN) treatment in both the forward and reverse directions of a STAMP test session. The extension does not introduce new protocol state or session establishment procedures, but it does introduce additional operational considerations for deployment, monitoring, and troubleshooting.

4.1. Deployment Considerations

To obtain meaningful ECN measurements, both the Session-Sender and Session-Reflector SHOULD support the extended CoS TLV specified in this document. In deployments where a Session-Reflector only supports the CoS TLV defined in [RFC8972], a Session-Sender can detect the absence of reverse-path ECN support through the behavior of the RPE field and SHOULD limit its analysis accordingly.

Operators SHOULD verify that the platform hosting the Session-Reflector is capable of setting and reporting ECN values in reflected test packets. Platform limitations or operating system restrictions may prevent the requested ECN value from being applied.

4.2. Configuration and Policy Considerations

The behavior of a Session-Reflector may be influenced by local policy governing the use of DSCP and ECN values in reflected packets. Such policies can be configured globally or on a per-destination basis.

Operators SHOULD understand and document these policies because policy-enforced remarking may otherwise be incorrectly interpreted as network impairment or middlebox behavior.

When measurements are performed across administrative domains, operators SHOULD coordinate ECN handling policies to facilitate consistent interpretation of measurement results.

4.3. Monitoring and Observability

The extension improves observability of ECN processing by providing information about ECN handling on both directions of the measurement path. Specifically, a Session-Sender can determine:

  • The ECN value received by the Session-Reflector.
  • Whether the Session-Reflector applied the requested reverse-path ECN value.
  • Whether Congestion Experienced (CE) markings were observed on either path.

Operators SHOULD collect and analyze the EC2 field, the ECN value observed in reflected packets, and the RPE field. These values can assist in identifying ECN bleaching, ECN remarking, differential treatment of ECN-marked packets, or congestion occurring along the measured path.

ECN bleaching, in which a network device clears the ECN field to Not-ECT, has been observed in deployed networks [ECN-Traversal]. Operators can investigate this failure mode using the CoS TLV. For example, when a Session-Sender transmits an ECT(0)- or ECT(1)-marked test packet and the reflected EC2 field reports Not-ECT, the measurement reveals bleaching on the forward path. Operators can use this information to identify and correct misconfigurations that prevent ECN from operating as intended.

When these measurements reveal ECN bleaching, operators can use complementary diagnostic tools to help locate the responsible devices. For example, traceroute-like techniques can inspect the quoted IP headers in ICMP responses to detect changes to the ECN field along a path; [Tracebox] describes a tool for investigating such header modifications. While these techniques are independent of STAMP and do not require the use of STAMP packets or the CoS TLV, differences in probe traffic and paths can affect how their results relate to the STAMP measurements.

ECN monitoring using the CoS TLV can be combined with hop-by-hop measurements as described in [I-D.ietf-ippm-on-path-active-measurements]. The CoS TLV itself does not provide observations from intermediate nodes. These hop-by-hop measurements require additional on-path telemetry encapsulations, such as IPv6 Hop-by-Hop Options for Alternate Marking or In Situ OAM (IOAM), or MPLS Network Action (MNA) Sub-Stacks, together with support and configuration at participating nodes. Correlating the resulting telemetry with ECN observations can provide additional information for investigating congestion and differential packet treatment along the measured path.

For example, the extensions defined in [I-D.ietf-ippm-stamp-ext-hdr] can be used to return collected IOAM data in IPv6 extension headers to the Session-Sender, while the CoS TLV provides ECN monitoring. The deployment and security considerations of the selected telemetry mechanism also apply.

4.4. Troubleshooting Considerations

The CoS TLV can be used to compare performance metrics, such as latency and packet loss, for test packets sent with different ECN codepoints. Interpretation of these measurements depends on the packets retaining the ECN capability indicated by the selected codepoint along the path under test, while allowing for congestion marking from ECT(0) or ECT(1) to CE. ECN bleaching or other unintended remarking can prevent packets from receiving the treatment being evaluated and lead to unexpected or misleading performance results. The ECN observations described in Section 4.3 can help operators establish whether this prerequisite is met.

Unexpected ECN-related measurement results may be caused by:

  • Middleboxes modifying or clearing ECN markings.
  • Traffic conditioning or QoS policies.
  • Session-Reflector platform limitations.
  • Network congestion resulting in CE markings.

When investigating unexpected behavior, operators SHOULD examine the EC2 and RPE fields together with the ECN field of reflected packets in order to distinguish between network-induced behavior and Session-Reflector policy enforcement.

4.5. Performance and Congestion Considerations

This extension enables the use of ECT(0) and ECT(1) markings in STAMP measurements. Implementations using these codepoints are required to monitor for CE indications and react appropriately to congestion conditions, subject to the exception for controlled measurements described in Section 3.4.

Operators SHOULD ensure that automated measurement systems utilizing ECN-marked STAMP packets comply with the congestion response requirements discussed in Section 3.4, including the conditions for controlled measurements, and do not generate excessive measurement traffic outside those conditions when CE markings are observed.

4.6. Interoperability Considerations

The extension is designed to be backward compatible with [RFC8972] implementations. Mixed deployments may therefore be introduced incrementally.

Operators SHOULD verify interoperability between Session-Senders and Session-Reflectors during deployment and SHOULD confirm that reverse-path ECN functionality is available before relying on bidirectional ECN measurement results.

5. IANA Considerations

This document includes no request to IANA.

6. Security Considerations

This document extends the functionality of the CoS TLV ([RFC8972]) and inherits all the security considerations applicable to the base STAMP specification [RFC8762] and [RFC8972].

As this specification defines a mechanism to set ECN values, this document inherits all the security considerations discussed in [RFC3168] and [RFC9330]. Monitoring and optional control of ECN for a reflected STAMP test packet using the extended CoS TLV may be used across the Internet such that the Session-Sender and the Session-Reflector are located in different domains.

In environments where a middlebox may tamper with the CoS TLV, this could affect the accuracy of ECN measurements. Implementers should consider the security implications of such tampering and take appropriate measures to mitigate potential risks. These measures could include the use of the HMAC TLV defined in Section 4.8 of [RFC8972] and/or the use of UDP port numbers from the Dynamic Ports (aka Private or Ephemeral Ports) range (Section 4.1 of [RFC8762]) as the destination UDP port number in the STAMP test packets. The use of dynamic ports makes it harder for a middlebox to detect STAMP packets compared with when it is assigned the well-known UDP port number 862.

7. References

7.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC2474]
Nichols, K., Blake, S., Baker, F., and D. Black, "Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers", RFC 2474, DOI 10.17487/RFC2474, , <https://www.rfc-editor.org/info/rfc2474>.
[RFC3168]
Ramakrishnan, K., Floyd, S., and D. Black, "The Addition of Explicit Congestion Notification (ECN) to IP", RFC 3168, DOI 10.17487/RFC3168, , <https://www.rfc-editor.org/info/rfc3168>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8762]
Mirsky, G., Jun, G., Nydell, H., and R. Foote, "Simple Two-Way Active Measurement Protocol", RFC 8762, DOI 10.17487/RFC8762, , <https://www.rfc-editor.org/info/rfc8762>.
[RFC8972]
Mirsky, G., Min, X., Nydell, H., Foote, R., Masputra, A., and E. Ruffini, "Simple Two-Way Active Measurement Protocol Optional Extensions", RFC 8972, DOI 10.17487/RFC8972, , <https://www.rfc-editor.org/info/rfc8972>.
[RFC9330]
Briscoe, B., Ed., De Schepper, K., Bagnulo, M., and G. White, "Low Latency, Low Loss, and Scalable Throughput (L4S) Internet Service: Architecture", RFC 9330, DOI 10.17487/RFC9330, , <https://www.rfc-editor.org/info/rfc9330>.
[RFC10052]
Mirsky, G., Ruffini, E., Nydell, H., Foote, R., and W. Hawkins, "Performance Measurement with Asymmetrical Traffic Using the Simple Two-Way Active Measurement Protocol (STAMP)", RFC 10052, DOI 10.17487/RFC10052, , <https://www.rfc-editor.org/info/rfc10052>.
[I-D.ietf-ippm-asymmetrical-pkts]
Mirsky, G., Ruffini, E., Nydell, H., Foote, R. F., and W. Hawkins, "Performance Measurement with Asymmetrical Traffic Using STAMP", Work in Progress, Internet-Draft, draft-ietf-ippm-asymmetrical-pkts-08, , <https://datatracker.ietf.org/doc/html/draft-ietf-ippm-asymmetrical-pkts-08>.

7.2. Informative References

[Tracebox]
Detal, G., Hesmans, B., Bonaventure, O., Vanaubel, Y., and B. Donnet, "Revealing Middlebox Interference with Tracebox", Proceedings of the ACM Internet Measurement Conference IMC 2013, , <https://www.tracebox.org/>.
[RFC8311]
Black, D., "Relaxing Restrictions on Explicit Congestion Notification (ECN) Experimentation", RFC 8311, DOI 10.17487/RFC8311, , <https://www.rfc-editor.org/info/rfc8311>.
[RFC9331]
De Schepper, K. and B. Briscoe, Ed., "The Explicit Congestion Notification (ECN) Protocol for Low Latency, Low Loss, and Scalable Throughput (L4S)", RFC 9331, DOI 10.17487/RFC9331, , <https://www.rfc-editor.org/info/rfc9331>.
[I-D.ietf-ippm-stamp-ext-hdr]
Gandhi, R., Zhou, T., Li, Z., and W. Hawkins, "Simple Two-Way Active Measurement Protocol (STAMP) Extensions for Reflecting STAMP Packet IP Headers", Work in Progress, Internet-Draft, draft-ietf-ippm-stamp-ext-hdr-11, , <https://datatracker.ietf.org/doc/html/draft-ietf-ippm-stamp-ext-hdr-11>.
[I-D.ietf-tsvwg-udp-ecn]
Duke, M., "Configuring UDP Sockets for ECN for Common Platforms", Work in Progress, Internet-Draft, draft-ietf-tsvwg-udp-ecn-08, , <https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg-udp-ecn-08>.
[I-D.ietf-ippm-on-path-active-measurements]
Fioccola, G., Zhu, K., Zhou, T., Zhu, Y., and X. Min, "On-Path Telemetry for Active Performance Measurements", Work in Progress, Internet-Draft, draft-ietf-ippm-on-path-active-measurements-03, , <https://datatracker.ietf.org/doc/html/draft-ietf-ippm-on-path-active-measurements-03>.
[ECN-Traversal]
Lim, H., Kim, S., Sippe, J., Kim, J., White, G., Lee, C., Wustrow, E., Lee, K., Grunwald, D., and S. Ha, "A Fresh Look at ECN Traversal in the Wild", arXiv 2208.14523, DOI 10.48550/arXiv.2208.14523, , <https://arxiv.org/abs/2208.14523>.

Acknowledgements

TBD

Contributors

Karthik Sundaresan, William Hawkins III, Gorry Fairhurst, Rüdiger Geib

Authors' Addresses

Greg White
CableLabs
858 Coal Creek Circle
Louisville, Colorado 80027
United States of America
Greg Mirsky
Ciena
Xiao Min
ZTE Corp.
Nanjing
China