<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8126 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC9534 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9534.xml">
<!ENTITY RFC8754 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8754.xml">
<!ENTITY RFC8762 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8762.xml">
<!ENTITY RFC8972 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8972.xml">
<!ENTITY I-D.ietf-ippm-asymmetrical-pkts SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ippm-asymmetrical-pkts.xml">
]>
<rfc submissionType="IETF" docName="draft-gandhi-ippm-stamp-ber-05" category="std" ipr="trust200902" consensus="true">
    <!-- Generated by id2xml 1.5.0 on 2020-02-06T01:41:26Z -->
    <?rfc compact="yes"?>
    <?rfc text-list-symbols="oo*+-"?>
    <?rfc subcompact="no"?>
    <?rfc sortrefs="no"?>
    <?rfc symrefs="yes"?>
    <?rfc strict="yes"?>
    <?rfc toc="yes"?>
    <front>
        <title abbrev="STAMP for Residual Bit Error Rate"> Simple Two-Way Active Measurement Protocol (STAMP) Extensions for Residual Bit Error Rate Measurement</title>
    <seriesInfo name="Internet-Draft" value="draft-gandhi-ippm-stamp-ber-05"/>    

    <author fullname="Rakesh Gandhi" initials="R." role="editor" surname="Gandhi">
    <organization>Cisco Systems, Inc.</organization>
    <address>
    <postal><street>Canada</street>
    </postal>
        <email>rgandhi@cisco.com</email>
    </address>
    </author>

    <author fullname="Peter Schoenmaker" initials="P." surname="Schoenmaker">
    <organization>Meta Platforms, Inc.</organization>
    <address>
    <postal><street>United Kingdom</street>
    </postal>
        <email>psch@meta.com</email>
    </address>
    </author>

    <author fullname="Richard Foote" initials="R." surname="Foote">
      <organization>Nokia</organization>
      <address>
        <email>footer.foote@nokia.com</email>
      </address>
    </author>

    <date year="2026"/>
    <workgroup>IPPM Working Group</workgroup>
    <abstract>
        <t>
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. 
Networks may experience transmission bit errors due to various factors, including poor fiber quality.
Even with efficient CRC and FEC mechanisms, some bit errors may escape detection and correction, referred to as residual bit errors. 
This document further augments the STAMP extensions specified in RFC 8972 to enable the measurement of residual bit error rate within the "Extra Padding" TLV of STAMP packets.
    </t>
    </abstract>
    </front>

    <middle>

   <section title="Introduction" anchor="sect-1">
<t>
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.
</t>

<t>
<xref target="RFC8972" format="default"/> introduces optional extensions for STAMP in the form of Type-Length-Value (TLV) objects, including the capability to transmit "Extra Padding" TLV within STAMP test packets.
</t>

<t>
Networks may experience transmission bit errors due to various factors, such as poor fiber quality, thereby corrupting packets. 
Bit errors can be single bit errors or a burst of bit errors at a time.
The bit errors in the received packets can be detected using Cyclic Redundancy Check (CRC).
Packets with CRC checksum failures may be dropped or corrected using Forward Error Correction (FEC). 
Even with efficient CRC and FEC mechanisms, 
some bit errors may escape detection and correction, referred to as residual bit errors. 
These bit errors result in upper-layer (such as UDP or TCP) checksum failures and packet drops.
It is beneficial to measure the Residual Bit Error Rate (BER) using active measurement packets between two nodes to detect service degradation. 
For accurate BER measurement, 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 measure BER on high-capacity links.
</t>

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

<t>
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 <xref target="RFC8972" format="default"/> for authenticating STAMP TLVs does not include checking the "Extra Padding" TLV.
</t>

<t>
This document further augments the STAMP extensions defined in <xref target="RFC8972" format="default"/> to enable the measurement of residual bit error rate within the "Extra Padding" TLV of STAMP packets.
 </t>

   </section>

   <section title="Conventions Used in This Document" anchor="sect-2">
       
   <section title="Requirements Language" anchor="sect-2.1">

   <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" format="default"/> <xref target="RFC8174" format="default"/>
   when, and only when, they appear in all capitals, as shown here.
   </t>

    </section>

   <section title="Abbreviations" anchor="sect-2.2">

    <t> BER:    Bit Error Rate </t>
    <t> CRC:    Cyclic Redundancy Check </t>
    <t> FEC:    Forward Error Correction </t>
    <t> MTU:    Maximum Transmission Unit </t>
    <t> STAMP:  Simple Two-Way Active Measurement Protocol </t>
    <t> TLV:    Type-Length-Value </t>

    </section>

  <section title="STAMP Reference Topology" anchor="sect-2.3">

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

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

   <figure anchor="stamp-reference-topology">
        <name>STAMP Reference Topology</name>
  <artwork name="" type="" align="left" alt=""><![CDATA[
                  T1                             T2   
                 /                                 \   
        +-------+    Test Packet                   +-------+
        |       | - - - - - - -  - - - - - - - - ->|       |
        |   S1  |==================================|   R1  |
        |       |<- - - - - - -  - - - - - - - - - |       |
        +-------+            Reply Test Packet     +-------+
                 \                                /
                 T4                             T3

  STAMP Session-Sender                     STAMP Session-Reflector
]]></artwork>
    </figure>

    </section>
    </section>

    <section title="Overview" anchor="sect-3">
 <t>
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. <xref target="RFC8972" format="default"/> defines an optional TLV extension specifically for transmitting "Extra Padding" (Type=1) TLV in the STAMP test packets. The "Extra Padding" TLV can be filled using either a predefined fixed pattern or a random pattern of bits <xref target="RFC8972" format="default"/>.
</t>

<t>
This document defines a procedure to measure residual BER within the "Extra Padding" TLV. The process involves the Session-Sender transmitting the extra padding filled with a predefined bit pattern. The Session-Reflector then checks for bit errors by comparing the received padding against the predefined bit pattern. This allows for the detection of a single bit error or a burst of bit errors and the measurement of the residual BER. 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 bit errors. The Session-Reflector also returns the bit error count to the Session-Sender.
</t>

<t>
Residual BER is measured 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 Residual BER is calculated using the number of bit errors detected and the number of bits received in the extra padding.
</t>

<t>
As specified in <xref target="RFC8972" format="default"/>, 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.
</t>
  
    <section title="Bit Errors in Non-measurement Fields of STAMP" anchor="sect-3.1">
<t>
Note that the procedure and extensions defined in this document do not use the base STAMP packets, packet headers, or STAMP TLVs other than the "Extra Padding" TLV
for residual BER measurement. It is possible that the bit errors impact those non-measurement fields of the STAMP test packets, causing verification failures. Such STAMP test packets are reported using a different measurement metric. 
The integrity of those fields can be verified using the HMAC mechanisms defined in <xref target="RFC8762" format="default"/> and <xref target="RFC8972" format="default"/>. 
</t>
    </section>
    </section>

    <section title="STAMP Procedure" anchor="sect-4">
<t>
This document defines two TLV options for STAMP: "Bit Pattern in Padding" TLV (Type=TBA1) and "Bit Error Count in Padding" TLV (Type=TBA2). 
</t>
<t>
An example of a STAMP test packet used for measuring residual BER is shown in Figure 2. 
It uses the "Extra Padding" TLV, the optional "Bit Pattern in Padding" TLV, and the "Bit Error Count in Padding" TLV.
</t>

   <figure anchor="stamp-stamp-ber">
        <name>Example STAMP Packet to Measure Residual BER</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 Packet RFC 8972                              |
.                                                               .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STAMP TLV Flags|     Type=1    |           Length              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
~                     Extra Padding                             ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STAMP TLV Flags|     Type=TBA1 |           Length              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
~                     Bit Pattern in Padding                    ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STAMP TLV Flags|  Type=TBA2    |           Length=4            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Bit Error Count in Padding                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|STAMP TLV Flags|  Type=TBA3    |           Length=4            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Maximum Bit Error Burst Size in Padding   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ]]></artwork>
    </figure>


    <section title="STAMP Session-Sender" anchor="sect-4.1">
<t>
When a STAMP Session-Sender is set up to measure BER, it adds an "Extra Padding" (Type=1) TLV, a "Bit Error Count in Padding" (Type=TBA2) TLV, and optionally, a "Bit Pattern in Padding" (Type=TBA1) TLV in Session-Sender test packets. The Session-Sender test packets carry only one "Bit Error Count in Padding" TLV, only one "Extra Padding" TLV <xref target="RFC8972" format="default"/> and 
optionally carry only one "Bit Pattern in Padding" TLV and only one "Maximum Bit Error Burst Size in Padding" TLV.
</t>

<t>
The Session-Sender MUST add an "Extra Padding" TLV <xref target="RFC8972" format="default"/> when it adds a "Bit Pattern in Padding" TLV to the Session-Sender test packets. The variable-length data in the "Bit Pattern in Padding" TLV MUST contain the bit pattern employed in the "Extra Padding" TLV. It is RECOMMENDED to have the length of the extra padding as an integer multiple of the length of the Bit Pattern to ease implementation.
</t>

<t>
The Session-Sender MUST also add an "Extra Padding" TLV <xref target="RFC8972" format="default"/> when it adds a "Bit Error Count in Padding" TLV in the Session-Sender test packets. The bit error count in padding MUST be set to 0.
</t>

<t>
Note that the integrity of the "Bit Pattern in Padding" and "Bit Error Count in Padding" TLVs can be protected using the HMAC mechanisms defined in <xref target="RFC8972" format="default"/>. 
</t>

    <section title="Considerations for Bit Pattern" anchor="sect-4.1.1">
<t>
It is possible that the bit pattern in the "Bit Pattern in Padding" TLV itself has bit errors. This can result in a measurement error due to a mismatch between the bit pattern and the extra padding. 
One way to avoid this issue is for the Session-Sender and Session-Reflector to use the local configuration with the default value of "0xFF00" as the bit pattern, which is repeated in the extra padding.
In this case, the "Bit Pattern in Padding" TLV is not transmitted in the STAMP test packets. 
</t>

    </section>

    </section>

    <section title="STAMP Session-Reflector" anchor="sect-4.2">
<t>
When the Session-Reflector receives a STAMP test packet with a "Bit Pattern in Padding" TLV, the Session-Reflector that supports this TLV MUST check the extra padding in the "Extra Padding" TLV against the bit pattern to detect any bits that do not match the bit pattern and count them as bit errors.
</t>

<t>
When the Session-Reflector receives a STAMP test packet with a "Bit Error Count in Padding" TLV, the Session-Reflector that supports this TLV MUST check the "Extra Padding" TLV against the expected bit pattern 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" 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" TLV.
</t>

<t>
The Session-Reflector corrects the bit errors in the "Extra Padding" TLV by matching the bit pattern and reflects the corrected "Extra Padding" TLV to the Session-Sender. The corrected "Extra Padding" TLV is used to measure the residual BER in the reverse direction.
</t>

    <section title="STAMP TLV Conformant Check" anchor="sect-4.2.1">

<t>
If a Session-Reflector receives a STAMP test packet with a "Bit Pattern in Padding" TLV, a "Bit Error Count in Padding" TLV, or a "Maximum Bit Error Burst Size in Padding" TLV, without an "Extra Padding" TLV or with more than one "Extra Padding" TLV, it MUST set the C flag (Conformant) defined in <xref target="I-D.ietf-ippm-asymmetrical-pkts" format="default"/> to 1 in the STAMP TLV Flags in the reflected STAMP test packet for those STAMP TLVs.
</t>

<t>
If a Session-Reflector receives a STAMP test packet that contains more than one "Bit Pattern in Padding" TLV or more than one "Bit Error Count in Padding" TLV, 
or more than one "Maximum Bit Error Burst Size in Padding" TLV, 
it MUST set the C flag (Conformant) defined in <xref target="I-D.ietf-ippm-asymmetrical-pkts" format="default"/> to 1 in the STAMP TLV Flags in the reflected STAMP test packet for those STAMP TLVs. 
</t>

    </section>

    </section>

    <section title="Considerations for Link Aggregation Group" anchor="sect-4.3">
<t>
Networks may experience transmission bit errors differently for different link members of a Link Aggregation Group (LAG). 
The procedure and extensions defined in this document are equally applicable to measuring residual BER in both directions for each individual member of the LAG.
</t>

<t>
For delay measurement of LAG member links, a separate STAMP micro-session is created for each member of the LAG. The STAMP extension for the Micro-Session ID TLV, as defined in <xref target="RFC9534" format="default"/>, is used to identify each member link of the LAG associated with the STAMP micro-session on the Session-Sender and Session-Reflector. The Session-Reflector replies on the same member of the LAG in the reverse direction based on the information in the received Session-Sender test packet and on either the local configuration for the micro-session or the information from the data plane where the test packet was received.
</t> 

<t>
Note that in order to get a good approximation of the BER, it is RECOMMENDED to transmit the STAMP test packets with padding that matches the link MTU size.
</t>
    </section>

    </section>

    <section title="STAMP Extensions" anchor="sect-5">

    <section title="Bit Pattern in Padding STAMP TLV" anchor="sect-5.1">
<t>
The "Bit Pattern in Padding" TLV is optional and is carried by the Session-Sender and Session-Reflector test packets. The format of the TLV is shown in Figure 3.
</t>

   <figure anchor="stamp-padding-stamp-ber">
        <name>Bit Pattern in Padding STAMP 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=TBA1    |         Length                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
~                  Bit Pattern in Padding                       ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ]]></artwork>
    </figure>

<t>
The TLV fields are defined as follows:
</t>
<t>
STAMP TLV Flags: The STAMP TLV Flags follow the procedures described in <xref target="RFC8972" format="default"/>.
</t>
<t>
Type: Type (value TBA1)
</t>
<t>
Length: A two-octet field equal to the length of the Data in octets.
</t>
<t>
Bit Pattern in Padding: The repeated bit pattern used in extra padding.
</t>

    </section>

    <section title="Bit Error Count in Padding STAMP TLV" anchor="sect-5.2">
<t>
The "Bit Error Count in Padding" TLV is optional and is carried by the Session-Sender and Session-Reflector test packets. The format of the TLV is shown in Figure 4.
</t>

   <figure anchor="stamp-padding-stamp-ber-count">
        <name>Bit Error Count in Padding STAMP 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=TBA2    |         Length=4              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Bit Error Count in Padding                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ]]></artwork>
    </figure>

<t>
The TLV fields are defined as follows:
</t>
<t>
STAMP TLV Flags: The STAMP TLV Flags follow the procedures described in <xref target="RFC8972" format="default"/>.
</t>
<t>
Type: Type (value TBA2)
</t>
<t>
Length: A two-octet field set to 4 for the size of the Data.
</t>
<t>
Bit Error Count in Padding: The count of bit errors in extra padding.
</t>

    </section>

    <section title="Maximum Bit Error Burst Size in Padding STAMP TLV" anchor="sect-5.3">
<t>
The "Maximum Bit Error Burst Size in Padding" TLV is optional and is carried by the Session-Sender and Session-Reflector test packets. The format of the TLV is shown in Figure 5.
</t>

   <figure anchor="stamp-padding-stamp-ber-burst">
        <name>Maximum Bit Error Burst Size in Padding STAMP 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=TBA3    |         Length=4              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Maximum Bit Error Burst Size in Padding              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ]]></artwork>
    </figure>

<t>
The TLV fields are defined as follows:
</t>
<t>
STAMP TLV Flags: The STAMP TLV Flags follow the procedures described in <xref target="RFC8972" format="default"/>.
</t>
<t>
Type: Type (value TBA3)
</t>
<t>
Length: A two-octet field set to 4 for the size of the Data.
</t>
<t>
Maximum Bit Error Burst Size in Padding: The maximum size of the bit error burst, i.e., the maximum number of consecutive bit errors in extra padding.
</t>

    </section>


    </section>

    <section title="Operational Considerations" anchor="sect-6">

    <section title="Configuration Data Model Parameters" anchor="sect-6.1">
<t>
    The configuration data model for the residual BER measurement using STAMP MUST allow the setting of the following parameters:
</t>

<list>
<t>
    - Padding size (number of bytes) 
</t>
<t>
    - Padding bit pattern (with variable length of bytes)
</t>
<t>
    - Transmit interval for STAMP test packets
</t>
<t>
    - Computation interval as a multiple of transmit interval for reporting the BER measurements
</t>
</list>

    </section>
    <section title="Operational Data Model Parameters" anchor="sect-6.2">
<t>
    The operational data model for the residual BER measurement using STAMP MUST allow the generation of the following parameters:
</t>

<t>
    Forward direction (near-end) residual BER measurement: 
</t>
<list>
    <t>
        - Total number of packets received in the computation interval
    </t>
    <t>
        - Total number of packets received with non-zero Bit Error Count in TLV in the computation interval 
    </t>
    <t>
        - Total number of bits in the padding TLV of all received packets in the computation interval 
    </t>
    <t>
        - Total Bit Error Count in TLV of all received packets in the computation interval 
    </t>
</list>


<t>
    Reverse direction (far-end) residual BER measurement: 
</t>

<list>
        <t>
        - Total number of packets received in the computation interval 
        </t>
        <t>
        - Total number of packets received with bit errors in the computation interval 
        </t>
        <t>
        - Total number of bits in the padding TLV of all received packets in the computation interval 
        </t>
        <t>
        - Total number of bit errors in all received packets in the computation interval 
        </t>

</list>

<t>
    Thresholds are defined for the forward and reverse directions of the residual BER metrics measured in the computation interval for:
</t>
<t>
    - Number of bit errors per million 
</t>
<t>
    - Number of packets with bit errors per million
</t>
<t>
An alarm is generated, and event-driven telemetry is triggered when the computed metric crosses the threshold. 
</t>

    </section>

    </section>

    <section title="Security Considerations" anchor="sect-7">
<t>
The security considerations specified in <xref target="RFC8762" format="default"/> and <xref target="RFC8972" format="default"/> apply to the procedure and extensions defined in this document.
</t>

    </section>


    <section title="Implementation Status" anchor="sect-8">
    <t>
    Editorial note: Please remove this section prior to publication.
    </t>

    <section title="Open Source Implementation" anchor="sect-8.1">
    <t>
    An open-source implementation of the Simple Two-Way Active Measurement Protocol (RFC 8762) is available in Teaparty.
    </t>
    <t>
    https://github.com/cerfcast/teaparty
    </t>
    <t>
    An implementation of the solution in this document is available at the following location:
    </t>
    <t>
    https://github.com/cerfcast/teaparty/commit/592558a38dbcf9b273acb2a2fe8ab0d8f16d0709
    </t>

    <t>This implementation uses the "Experimental Use" Type 240 for Bit Pattern in Padding TLV and Type 241 for Bit Error Count in Padding TLV.
    </t>

    <t>
    Additionally, (as a bonus) there is also support for BER in the Wireshark dissector:
    </t>
    <t>
    https://github.com/cerfcast/teaparty/commit/608b9e89fce2f25ed88eaa367d0bacc693845da2
    </t>
    <t>
    Contact: 
    </t>
    <t>
    William Hawkins
    </t>
    <t>
    University of Cincinnati
    </t>
    <t>
    Email: hawkinsw@obs.cr
    </t>

    </section>

    <section title="Cisco Implementation of IOS-XR" anchor="sect-8.2">

    <t> An implementation of the solution defined in this document is shipping in IOS-XR Software Release 26.1.1
    running on Cisco's C8000 series of products.
    </t>

    <t>This implementation uses the "Experimental Use" Type 240 for Bit Pattern in Padding TLV and Type 241 for Bit Error Count in Padding TLV.
    </t>

    </section>

    </section>


    <section title="IANA Considerations" anchor="sect-9">
<t>
IANA has created the "STAMP TLV Types" registry for <xref target="RFC8972" format="default"/>. IANA is requested to allocate a value for the "Bit Pattern in Padding" TLV Type, a value for the "Bit Error Count in Padding" TLV Type, and a value for the "Maximum Bit Error Burst Size in Padding" TLV Type from the IETF Review TLV range of the same registry.
</t>

    <table anchor="iana-tlv-type-tbl" align="center">
       <name>STAMP TLV Types</name>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="center">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>

          <tr>
            <td align="left">TBA1</td>
            <td align="center">Bit Pattern in Padding</td>
            <td align="left">This document</td>
          </tr>

          <tr>
            <td align="left">TBA2</td>
            <td align="center">Bit Error Count in Padding</td>
            <td align="left">This document</td>
          </tr>

          <tr>
            <td align="left">TBA3</td>
            <td align="center">Maximum Bit Error Burst Size in Padding</td>
            <td align="left">This document</td>
          </tr>
        </tbody>
    </table>

    </section>

    </middle>

    <back>
    <references title="Normative References">
    &RFC2119;
    &RFC8174;
    &RFC8762;
    &RFC8972;
    &I-D.ietf-ippm-asymmetrical-pkts;

    </references>
    <references title="Informative References">
    &RFC9534;

    </references>
    <section title="Acknowledgments" numbered="no" anchor="acknowledgments">
<t>
The authors would like to thank Ianik Semco and Miloslav Kopka for the discussions on the bit error rate measurements. The authors would also like to thank Ruediger Geib for reviewing this document and providing many useful comments and suggestions. Thank you, Zhenqiang Li, Li Zhang, Carsten Rossenhoevel, and Xiao Min, for your review comments and suggestions. The authors would also like to thank William Hawkins for implementing the solution defined in this document and providing many useful suggestions.
</t>
    </section>

    </back>

    </rfc>
