<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "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"?>
<rfc category="exp" docName="draft-du-ippm-self-contained-alt-mark-00"
     ipr="trust200902">
  <front>
    <title abbrev="Self-Contained Alternate-Marking">Self-Contained
    Alternate-Marking Mechanism for Performance Monitoring in High-Quality
    Network</title>

    <author fullname="Zongpeng Du" initials=" Z." surname="Du">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street>No.32 XuanWuMen West Street</street>

          <city>Beijing</city>

          <code>100053</code>

          <country>China</country>
        </postal>

        <email>duzongpeng@foxmail.com</email>
      </address>
    </author>

    <author fullname="Peng Liu" initials="P." surname="Liu">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street>No.32 XuanWuMen West Street</street>

          <city>Beijing</city>

          <code>100053</code>

          <country>China</country>
        </postal>

        <email>liupengyjy@chinamobile.com</email>
      </address>
    </author>

    <date month="October" year="2021"/>

    <area>Routing Area</area>

    <workgroup>Network Working Group</workgroup>

    <keyword>IPPM, Self-contained, Alternate-marking</keyword>

    <abstract>
      <t>This document introduces a self-contained method that can involve the
      client in based on some extensions to the alternate-marking (coloring)
      technique.</t>
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>The network operators are planning to provide network services with
      higher quality than the traditional BE (Best Effort) service, such as
      the DetNet service <xref target="RFC8655"/> and the Network Slicing
      service. In these practices, it is important to monitor the performance
      of the service, such as the packet loss, delay, and jitter of the flow
      with guaranteed quality.</t>

      <t>In <xref target="RFC8321"/>, an alternate-marking method for passive
      and hybrid performance monitoring is proposed. It marks the packet by
      using one or more bits in the packet headers, and collects the number of
      packets in a block sent on one end and the number of packets in the same
      block received on the other end. Finally, the two values are compared
      and accordingly, the packet loss of the flow are computed.</t>

      <t>The alternate-marking method is potential applied to any kind of
      packet-based traffic, and easy to implement. However, a controller or
      NMS needs to collect the information from the coloring point and the
      monitoring point, and correlate the two pieces of information by using
      the same block ID. It is hard to make it an end-to-end solution because
      the client is not in the scope.</t>

      <t>In this document, we propose a method that can involve the client in
      based on some extensions to the alternate-marking (coloring) technique.
      In this method, the block information is serialized and encoded in the
      packets of the block by the client. Then, the monitoring points can
      recover the information from the received packets, such as the block ID,
      number of packets in the block, timestamps in the packet, and compute
      the target measurement values.</t>

      <t/>
    </section>

    <section title="Traditional Mechanism Description">
      <t>As described in <xref target="RFC8321"/>, the alternate-marking
      method is based on the &ldquo;block&rdquo;, which represents a
      measurable entity unambiguously recognizable by all network devices
      along the path.</t>

      <t>In the alternate-marking (coloring) technique, the coloring point
      creates packet blocks, colors the packets in the block, and reports
      information including block ID to the controller or the NMS. The
      monitoring points recognize the coloring information, record some needed
      information and report it to the controller or the NMS.</t>

      <t/>

      <t><figure>
          <artwork><![CDATA[
              ___________________________
             |       Controller or       |
             |            NMS            |
              ---------------------------
              /      \         \         \ 
             /        \          \           \
            /    Information including Block ID  \
           /            \            \               \
          /              \             \                \
     __________      ____________   ____________    ____________
    | Coloring |    | Monitoring | | Monitoring |  |            |
    |  point   |    |   point1   | |   point2   |  |     ...    |    
     ----------      ------------   ------------    ------------
Coloring Information:
    000000111111     000000111111   000000111110         ...

                   Traffic Flow  
====================================================================>


   Figure 1: Mechanism in the traditional alternate-marking method

]]></artwork>
        </figure></t>

      <t/>

      <t/>

      <t>For example, if some packets are lost in the network, the packet
      numbers of the same block will be different between the coloring point
      and the monitoring point. If we need to compute the delay or jitter of
      the flow, the coloring point and the monitoring point can also report
      the timestamps of the packets in the block to the controller or NMS.</t>

      <t>Traffic coloring can be implemented by setting a specific bit in the
      packet header and changing the value of that bit periodically. Thus, we
      only need two colors, and the packets belonging to the same block have
      the same color, whilst consecutive blocks will have different
      colors.</t>

      <t>When the color changes, the previous block terminates and the new one
      begins. Two mechanisms of switching color are introduced in <xref
      target="RFC8321"/>. The first one is to switch the color after a fixed
      number of packets. The second one is to switch according to a fixed
      timer. For example, the timer may be 5 minutes.</t>

      <t/>
    </section>

    <section title="Proposed Mechanism Description">
      <t/>

      <t>To make the block information self-contained in the block, we need to
      occupy another specific bit to encode the block information. Thus, the
      client in the proposed mechanism needs not to report anything to the
      controller or NMS, and the monitoring points can compute target
      measurement values themselves and report any problem if needed.</t>

      <t>For example, we assume the fixed timer mechanism is used, and there
      are about 300 packets in a block. In the client, each packet carries one
      bit of the block information. Thus, if all the packets are received
      orderly, a monitoring point can recover the block information encoded in
      those 300 packets.</t>

      <t/>

      <t><figure>
          <artwork><![CDATA[
              ___________________________
             |       Controller or       |
             |            NMS            |
              ---------------------------
                     \         \         \ 
                      \          \           \
                       \ Target Measurement Values\
                        \            \               \
                         \             \                \
     __________      ____________   ____________    ____________
    | Coloring |    | Monitoring | | Monitoring |  |            |
    |  point   |    |   point1   | |   point2   |  |     ...    |    
     ----------      ------------   ------------    ------------
Coloring Information:
    000000111111     000000111111   000000111110         ...
Block Information:
    001101010100     001101010100   001101010100         ...

                   Traffic Flow  
====================================================================>


 Figure 2: Mechanism in the self-contained alternate-marking method

]]></artwork>
        </figure></t>

      <t/>

      <t>The block information can include the block ID (32 bits), CRC
      (32bits), and some TLVs as described below. <list style="symbols">
          <t>TLV 1 may be the interval of the block (32bits).</t>

          <t>TLV 2 may be the packet number of the last block (32bits).</t>

          <t>TLV 3 may be the timestamp of the first packet in the block
          (32bits).</t>
        </list></t>

      <t/>

      <t>The encoding of the block information is done in the client, and the
      monitoring points need to understand the meaning of the encoding.</t>

      <t/>
    </section>

    <section title="Analysis of the Potential Problems">
      <t>As described in the last section, we assume that all the packets in a
      block are received in the monitoring point orderly. Normally, it is hard
      for the IP network with a relatively high packet loss rate. However, the
      situation may be much better in the DetNet service or the Network
      Slicing service, for which no or few packets would be lost. Meanwhile,
      an additional recovery block may also appear after several blocks, in
      which we will encode recovery information for the past several blocks,
      instead of the block information. Other fault tolerance mechanisms can
      also be considered.</t>

      <t>Another problem is similar to the situation in <xref
      target="RFC8321"/>. It is whether we can find at least two reserved bits
      in the packet header to encode the coloring information and the block
      information. The detailed analysis can be found in that document.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>TBD.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.8321"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.8655"?>
    </references>
  </back>
</rfc>
