Internet-Draft STAMP for Bit Error Rate April 2025
Gandhi & Schoenmaker Expires 18 October 2025 [Page]
Workgroup:
IPPM Working Group
Internet-Draft:
draft-gandhi-ippm-stamp-ber-00
Published:
Intended Status:
Standards Track
Expires:
Authors:
R. Gandhi, Ed.
Cisco Systems, Inc.
P. Schoenmaker
Meta Platforms, Inc.

Simple Two-Way Active Measurement Protocol (STAMP) Extensions for Bit Error Detection and Bit Error Rate Measurement

Abstract

The Simple Two-Way Active Measurement Protocol (STAMP), as defined in RFC 8762, along with its optional extensions specified in RFC 8972, can be utilized for active measurement. This document further augments the STAMP extensions specified in RFC 8972 to enable the detection of bit errors and the measurement of the bit error rate (BER) within the "Extra Padding Data" of STAMP packets.

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 18 October 2025.

Table of Contents

1. Introduction

The Simple Two-Way Active Measurement Protocol (STAMP) is designed to measure various performance metrics in IP networks without relying on a control channel to pre-signal session parameters, as specified in [RFC8762]. STAMP test packets are sent between a Session-Sender and a Session-Reflector to measure delay and packet loss along the path.

[RFC8972] introduces optional extensions for STAMP in the form of Type-Length-Value (TLV) objects, including the capability to transmit "Extra Padding Data" within STAMP test packets.

Networks may experience transmission bit errors due to various factors, such as poor fiber quality. The bit error can be a single bit error or a burst of bit errors at a time. It is beneficial to detect bit errors and measure the bit error rate (BER) using active measurement packets between two nodes. For accurate bit error detection, transmitting large-sized active measurement packets is preferable, especially on links with low bit error rates. Furthermore, there is a need to transmit test packets at a high rate to detect bit errors on high-capacity links.

The STAMP test packets use a UDP header with a checksum field that may be used for checking the integrity of the header and data. The UDP checksum is optional for the IPv4 header and may be set to 0 for the IPv6 header for the STAMP destination UDP port. However, the checksum field does not provide an accurate measurement of bit errors.

Authenticated mode provides data integrity protection for the STAMP test packets by adding a Hashed Message Authentication Code (HMAC), such as HMAC-SHA-256 [RFC8762]. However, the authenticated mode does not provide an accurate measurement of bit errors. In addition, the HMAC TLV defined in [RFC8972] for authenticating STAMP TLVs does not include checking the "Extra Padding Data" TLV.

This document further augments the STAMP extensions defined in [RFC8972] to enable the detection of bit errors and the measurement of BER within the "Extra Padding Data" of STAMP packets.

2. Conventions Used in This Document

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

BER: Bit Error Rate

MTU: Maximum Transmission Unit

STAMP: Simple Two-way Active Measurement Protocol

TLV: Type-Length-Value

2.3. STAMP Reference Topology

In the "STAMP Reference Topology" shown in Figure 1, the STAMP Session-Sender S1 initiates Session-Sender test packets, and the STAMP Session-Reflector R1 transmits reply Session-Reflector test packets.

T1 is a transmit timestamp, and T4 is a receive timestamp added by node S1. T2 is a receive timestamp, and T3 is a transmit timestamp added by node R1.

                  T1                             T2
                 /                                 \
        +-------+    Test Packet                   +-------+
        |       | - - - - - - -  - - - - - - - - ->|       |
        |   S1  |==================================|   R1  |
        |       |<- - - - - - -  - - - - - - - - - |       |
        +-------+            Reply Test Packet     +-------+
                 \                                /
                 T4                             T3

  STAMP Session-Sender                     STAMP Session-Reflector
Figure 1: STAMP Reference Topology

3. Overview

The optional extensions for STAMP test packets [RFC8762] are defined in [RFC8762] in the form of TLVs. The Session-Sender transmits optional STAMP TLVs, and the Session-Reflector reflects all received STAMP TLVs from the Session-Sender test packets. [RFC8972] defines an optional TLV extension specifically for transmitting "Extra Padding Data" (Type=1) in the STAMP test packets. The "Extra Padding Data" can be filled using either a predefined fixed pattern or a random pattern of bits [RFC8972].

This document defines a procedure to detect bit errors within the "Extra Padding Data" TLV. The process involves the Session-Sender transmitting the extra padding data filled with a predefined bit pattern. The Session-Reflector then checks for bit errors by comparing the received data against the predefined bit pattern. This allows for the detection of a single bit error or a burst of bit errors and the accurate measurement of the bit error rate. The Session-Reflector does not discard the STAMP test packet with bit errors but instead reflects it back to the Session-Sender after correcting the errors. The Session-Reflector also returns the bit error count to the Session-Sender.

Bit errors can be detected in both the forward and reverse directions between the Session-Sender and the Session-Reflector using the procedure and extensions defined in this document. The bit error rate is computed as the ratio of the number of bit errors detected to the number of bits transmitted in the extra padding data.

As specified in [RFC8972], the Session-Sender and Session-Reflector test packets are symmetric in size. The Session-Sender and Session-Reflector MUST ensure that the resulting test packets do not exceed the path MTU after adding the STAMP TLVs.

Note that the procedure and extensions defined in this document does not detect bit errors in the base STAMP packets, packet headers, and STAMP TLVs other than the "Extra Padding Data" TLV.

4. STAMP Procedure

This document defines two TLV options for STAMP: "Bit Pattern in Padding Data" STAMP TLV (Type=TBA1) and "Bit Error Count in Padding Data" STAMP TLV (Type=TBA2). An example of STAMP test packet used for detecting bit errors is shown in Figure 2 using "Extra Padding Data" TLV, "Bit Pattern in Padding Data" STAMP TLV, and "Bit Error Count in Padding Data" STAMP TLV.

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 Packet RFC 8972                              |
.                                                               .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STAMP TLV Flags|     Type=1     |          Length              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
~                     Extra Padding                             ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STAMP TLV Flags|     Type=TBA1  |          Length              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
~                     Bit Pattern in Padding Data               ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STAMP TLV Flags|     Type=TBA2  |          Length=4            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Bit Error Count in Padding Data           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Example STAMP Packet to Detect Bit Errors

4.1. STAMP Session-Sender

When a STAMP Session-Sender is set up to detect bit errors and measure bit error rate, it adds the STAMP TLVs for "Extra Padding Data" (Type=1), "Bit Error Count in Padding Data" (Type=TBA2), and optionally, "Bit Pattern in Padding Data" (Type=TBA1) in Session-Sender test packets.

The Session-Sender MUST add the "Extra Padding Data" STAMP TLV [RFC8972] when it adds the "Bit Pattern in Padding Data" STAMP TLV to the Session-Sender test packets. The variable-length data in the "Bit Pattern in Padding Data" STAMP TLV MUST contain the bit pattern employed in the "Extra Padding Data" STAMP TLV. It is RECOMMENDED to have the length of the extra padding data as an integer multiple of the length of the Bit Pattern to ease implementation.

The Session-Sender MUST also add the "Extra Padding Data" STAMP TLV [RFC8972] when it adds the "Bit Error Count in Padding Data" STAMP TLV in the Session-Sender test packets. The data in the Bit Error Count STAMP TLV MUST be set to 0.

The bit pattern employed in the extra padding data can be locally configured on the Session-Reflector. In that case, the "Bit Pattern in Padding Data" STAMP TLV need not be transmitted in the STAMP test packets. However, the "Bit Error Count in Padding Data" STAMP TLV MUST be transmitted to reflect the detected bit error counts.

4.2. STAMP Session-Reflector

When the Session-Reflector receives a STAMP test packet with a "Bit Pattern in Padding Data" STAMP TLV, the Session-Reflector that supports this TLV MUST check the extra padding data against the bit pattern to detect any bits that do not match the bit pattern and count them as bit errors.

When the Session-Reflector receives a STAMP test packet with a "Bit Error Count in Padding Data" STAMP TLV, the Session-Reflector that supports this STAMP TLV MUST check the "Extra Padding Data" against the expected bit pattern, either in the received test packet or the local configuration, to detect if there are any bits not matching the bit pattern and count them as bit errors. The Session-Reflector updates the count of bit errors in the received "Bit Error Count in Padding Data" TLV and reflects the TLV back to the Session-Sender. If no bit errors are detected, the bit error count remains as 0 in the reflected "Bit Error Count in Padding Data" TLV.

The Session-Reflector corrects the bit errors in the "Extra Padding Data" STAMP TLV by matching the bit pattern and reflects the corrected "Extra Padding Data" TLV to the Session-Sender. The corrected "Extra Padding Data" is used to detect bit errors in the reverse direction.

If the Session-Reflector receives a STAMP test packet with a "Bit Pattern in Padding Data" TLV or a "Bit Error Count in Padding Data" TLV without the "Extra Padding Data" TLV, it MUST set the U flag (Unrecognized) in the STAMP TLV Flags in the reflected STAMP packet for those STAMP TLVs. Editor's Note: We could define a new TLV Flag "Non-consistent message" for handling this condition.

Networks may experience transmission bit errors differently for different link members in a Link Aggregation Group (LAG). The STAMP extensions for LAG are defined in [RFC9534]. The procedure and extensions defined in this document are equally applicable for detecting bit errors in each individual LAG member link by creating a separate micro-session for each link, as defined in [RFC9534].

5. STAMP Extensions

5.1. Bit Pattern in Padding Data STAMP TLV

The "Bit Pattern in Padding Data" STAMP TLV is optional and is carried by Session-Sender and Session-Reflector test packets. The format of the TLV is shown in Figure 3.

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=TBA1    |         Length                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
~                  Bit Pattern in Padding Data                  ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: Bit Pattern in Padding Data STAMP TLV

The TLV fields are defined as follows:

Type: Type (value TBA1)

STAMP TLV Flags: The STAMP TLV Flags follow the procedures described in [RFC8972].

Length: A two-octet field equal to the length of the Data in octets.

5.2. Bit Error Count in Padding Data STAMP TLV

The "Bit Error Count in Padding Data" STAMP TLV is optional and is carried by Session-Sender and Session-Reflector test packets. The format of the TLV is shown in Figure 4.

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=TBA2    |         Length=4              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Bit Error Count in Padding Data              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: Bit Error Count in Padding Data STAMP TLV

The TLV fields are defined as follows:

Type: Type (value TBA2)

STAMP TLV Flags: The STAMP TLV Flags follow the procedures described in [RFC8972].

Length: A two-octet field set to 4 for the Data.

6. Security Considerations

The security considerations specified in [RFC8762], [RFC8972], [RFC9534] apply to the procedure and extensions defined in this document.

7. IANA Considerations

IANA has created the "STAMP TLV Types" registry for [RFC8972]. IANA is requested to allocate a value for the "Bit Pattern in Padding Data" TLV Type and a value for the "Bit Error Count in Padding Data" TLV Type from the IETF Review TLV range of the same registry.

Table 1: STAMP TLV Types
Value Description Reference
TBA1 Bit Pattern in Padding Data This document
TBA2 Bit Error Count in Padding Data This document

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/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[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>.

8.2. Informative References

[RFC9534]
Li, Z., Zhou, T., Guo, J., Mirsky, G., and R. Gandhi, "Simple Two-Way Active Measurement Protocol Extensions for Performance Measurement on a Link Aggregation Group", RFC 9534, DOI 10.17487/RFC9534, , <https://www.rfc-editor.org/info/rfc9534>.

Acknowledgments

The authors would like to thank Ianik Semco and Miloslav Kopka for the discussions on the bit error rate measurements.

Authors' Addresses

Rakesh Gandhi (editor)
Cisco Systems, Inc.
Canada
Peter Schoenmaker
Meta Platforms, Inc.
United Kingdom