<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<?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"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-mirsky-ippm-asymmetrical-pkts-00" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.6.0 -->
  <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<front>
    <title abbrev="Asymmetrical Packets in STAMP">Performance Measurement with Asymmetrical Packets in STAMP</title>
    <seriesInfo name="Internet-Draft" value="draft-mirsky-ippm-asymmetrical-pkts-00"/>
    
    <author initials="G." surname="Mirsky" fullname="Greg Mirsky">
      <organization>Ericsson</organization>
      <address>
        <email>gregimirsky@gmail.com</email>
      </address>
    </author>
    
    <date year="2023"/>
    
    <area>Transport</area>
    <workgroup>Network Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
   <keyword>IPPM</keyword>
   <keyword>Performance Measurement </keyword> 
   
    <abstract>
	<t>
This document describes an optional extension to a Simple Two-way Active Measurement Protocol (STAMP)
that enables the use of STAMP test and reflected packets of variable length during a single STAMP test session.
In some use cases, the use of asymmetrical test packets allow for the creation of more realistic flows of test packets and,
thus, a closer approximation between active performance measurements and conditions experienced by the monitored application.
	 </t>
    </abstract>
  </front>
  
  <middle>
    <section anchor="intro" title="Introduction">
        <t>
Simple Two-way Active Measurement Protocol (STAMP) <xref target="RFC8762"/> defined the STAMP base functionalities
and, among them, the use of symmetrical test packets. In some scenarios, e.g., rate measurements discussed in <xref target="RFC7497"/>,
it is beneficial not only to use a variable size of the test packets transmitted downstream while controlling length,
number, and interpacket interval for reflected test packets.
This document specifies an optional extension of STAMP as defined in <xref target="RFC8972"/>
that allows for control of the length, number, and interpacket interval of a reflected STAMP
test packets transmitted in response to a received STAMP test packet.
        </t>
        
       <section anchor="acronyms-sec" numbered="true" toc="default">
        <name>Terminology</name>
        <t>STAMP              Simple Two-way Active Measurement Protocol</t>
    </section>
    
      <section numbered="true" toc="default">
        <name>Requirements Language</name>
        <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"/> and <xref target="RFC8174" format="default"/>
   when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
  </section>
        
    <section anchor="problem-statement" numbered="true" toc="default">
      <name>Problem Statement</name>
      <t>
STAMP (<xref target="RFC8762"/>) allows for variable lengths of the test packets transmitted by a Session-Sender.
<xref target="RFC7497"/> analyses rate measurement scenarios where it is beneficial to enable control
of the responding node reflecting the received test packet with a different length and, in some cases,
with a series of equally timed test packets.
</t>
    </section>
    
        <section anchor="reflected-cntrl-tlv" numbered="true" toc="default">
      <name>Reflected Test Packet Control TLV</name>
      <t>
      This document defines a new optional STAMP extension, Reflected Test Packet Control TLV.
The format of the Reflected Test Packet Control TLV is presented in <xref target="reflected-cntrl-tlv-fig" format="default"/>.
      </t>
      
            <figure anchor="reflected-cntrl-tlv-fig">
        <name>Reflected Test Packet Control TLV Format</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     |           Length              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                  Length of the Reflected Packet               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                 Number of the Reflected Packets               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |               Interval Between Reflected Packets              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       ~                            Sub-TLVs                           ~
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t>
  The interpretation of the fields is as follows:
      </t>
      <ul empty="true" spacing="normal">
        <li>
 STAMP TLV Flags is a one-octet field.
  </li>
        <li>Type is a fourteen-bit field that identifies the Reflected Test Packet Control TLV.
        IANA is requested (<xref target="iana-consider"/>) to assign (TBD1) value.</li>
        <li>Length is a two-octet field. The value is variable, not smaller than 12 octets.</li>
        <li>Length of the Reflected Packet is a four-octet field.
        The value is an unsigned integer that is the requested length of a reflected test packet in octets.</li>
        <li>Number of the Reflected Packets is a four-octet field. The value is the number of reflected test packets
        the Session-Reflector is requested to transmit in response to receiving a STAMP test packet with
        the Reflected Test Packet Control TLV.</li>
        <li>Interval Between Reflected Packets is a four-octet field. The value is an unsigned integer set to the interval in milliseconds between
        the transmission of the consecutive reflected test packets in response to receiving
        a STAMP test packet with the Reflected Test Packet Control TLV.</li>
        <li> Sub-TLVs - optional field that includes additional information communicated by a Session-Sender.</li>
      </ul>
      <t>
   A Session-Sender MAY include the Reflected Test Packet Control TLV in a STAMP
   test packet. If the received STAMP test packet includes the Reflected Test Packet Control TLV,
   the Session-Reflector MUST transmit a sequence of reflected test packets according to the following rules:
   </t>
         <ul empty="true" spacing="normal">
         <li>
         The length of the reflected test packet MUST be the largest of the length
         of the Session-Reflector packet in the mode matching mode of the received STAMP test packet,
         as defined in Section 4.3 of <xref target="RFC8762"/> with all the present in the received STAMP test packet
         STAMP extension TLVs <xref target="RFC8972"/>, excluding the Extra Padding TLV,
         and the value in the Length of the Reflected Packet aligned at a four-octets boundary.
         The Session-Reflector MUST use the Extra Padding TLV (Section 4.1 of <xref target="RFC8972"/>)
         to increase the length of the reflected test packet.
         </li>
        <li>
 The number of reflected test packets in the sequence MUST equal to the value of the Number of the Reflected Test Packets.
  </li>
  <li>
If the value of the Number of Reflected Packets is larger than one,
the interval between the transmission of two consecutive reflected packets in the sequence MUST be equal to the value
in the Interval  Between Reflected Packets in milliseconds.
  </li>
  <li>
  If the value of the Number of Reflected Packets equals zero, then the Session-Reflector MUST NOT send a reflected packet.
  Processing of the received STAMP test packet with the Reflected Test Packet Control TLV is according to the local policy.
  </li>
  <li>
  Each reflected test packet in the sequence is formed according to Section 4.3 of <xref target="RFC8762"/>.
  </li>
  </ul>
      <section anchor="theory-of-operation" numbered="true" toc="default">
      <name>Theory of Operation</name>
      <t>
TBA
</t>
    </section>
      </section>
      
    <section anchor="iana-consider" numbered="true" toc="default">
      <name>IANA Considerations</name>
        <t>
     The IANA is requested to assign a new value for the Reflected Test Packet Control TLV
     from the STAMP TLV Types subregistry according to <xref target="refl-cntrl-table"/>.
        </t>
        <table anchor="refl-cntrl-table" align="center">
          <name>New Reflected Test Packet Control Type TLV</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">&nbsp;(TBD1)</td>
              <td align="left">Reflected Test Packet Control TLV</td>
              <td align="left">This&nbsp;document</td>
            </tr>
          </tbody>
        </table>
      </section>
      
    <section anchor="security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
 Security considerations discussed in <xref target="RFC8762"/> and <xref target="RFC8972"/> 
 apply to this document. Furthermore, spoofed STAMP test packets with the Reflected Test Packet Control TLV can be exploited to conduct
 Denial-of-Service attack. Hence, implementations MUST
  provide a means of checking the source addresses of the STAMP test packets containing the Reflected Test Packet Control TLV.
      </t>
    </section>

        <section numbered="true" toc="default">
      <name>Acknowledgments</name>
      <t>
TBA
      </t>
    </section>
  </middle>
  
  <back>
      <references>
      <name>References</name>
    <references>
      <name>Normative References</name>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
      
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8762.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8972.xml"/>
    </references>
    
      <references title="Informative References">
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7497.xml"/>
      </references>
      </references>
      
  </back>
</rfc>
