<?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="std" ipr="trust200902" docName="draft-bailmir-ippm-twamp-dscp-ctrl-mon-02" updates="5357, 7750">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<front>

	<title abbrev='Control and Monitor DSCP in TWAMP'>Control and Monitoring Differentiated Service Code Point in Two-Way Active Measurement Protocol (TWAMP)</title>

     <author initials='G.' surname="Mirsky" fullname='Greg Mirsky'>
		<organization>ZTE Corp.</organization>
		<address>
			<email>gregimirsky@gmail.com</email>
		</address> 
	</author>
	
     <author initials='S.' surname=" Baillargeon" fullname='Steve  Baillargeon'>
		<organization>Ericsson</organization>
		<address>
			<email>steve.baillargeon@ericsson.com</email>
		</address> 
	</author>

<!--	
	<author initials='J.' surname="Hedin" fullname='Jonas Hedin'>
		<organization>Ericsson</organization>
		<address>
			<email>jonas.hedin@ericsson.com</email>
		</address> 
	</author>
-->
    <date day="21" month="February" year="2017" />

    <area>Transport</area>

    <workgroup>Network Working Group</workgroup>

    <keyword>Internet-Draft</keyword>

   <keyword>IPPM</keyword>
   
   <keyword>TWAMP </keyword>
   
   <keyword>DSCP</keyword>
	
	<abstract>
	<t>
	This document describes an optional extension for Two-Way Active Measurement Protocol (TWAMP)
              allowing control and monitoring of the Differentiated Service Code Point (DSCP) field in forward and reverse directions
              within single test session with the TWAMP-Test protocol.
             This document, if accepted,
 will be an update to the TWAMP core protocol specified in RFC 5357 and 
             DSCP Monitoring mode defined in RFC 7750
.
	 </t>
	</abstract>
</front>

<middle>
  <section anchor="intro" title="Introduction">
        <t>
        The One-Way Active Measurement Protocol (OWAMP) <xref target ="RFC4656"/> defines the Type-P Descriptor field and negotiation of  its value in OWAMP-Control protocol. 
        The Two-Way Active Measurement Protocol (TWAMP) <xref target="RFC5357"/> states that only a Differentiated Services Code Point (DSCP) 
        <xref target="RFC2474"/>, <xref target="RFC3168"/>, <xref target="RFC3260"/> value can
        be defined by Type-P Descriptor and the negotiated value must be used by both Session-Sender and Session-Reflector. The TWAMP specification also states
        that the same DSCP value (found in the Session-Sender packet) MUST be used in the test packet reflected by the Session-Reflector. 
        The <xref target="RFC7750"/> introduced optional DSCP Monitoring mode that can be negotiated using TWAMP Control 
        protocol and supported by TWAMP-Test protocol or by TWAMP Light mode. Still 
        the TWAMP-Test protocol does not support discovery of how Differentiated Services policies configured
        along the IP path process various DSCP values in single test session.
 Hence method defined in <xref target="RFC7750"/>
        can be characterized as per-session DSCP Monitoring. To provide higher efficiency and flexibility to monitoring 
        how Differentiated Services policies being applied this document proposes ability to control DSCP value to be used
        by Session-Reflector for each TWAMP-Test packet. Such method can be characterized as per-packet DSCP monitoring
        with TWAMP.
       </t>
       <t>
        This document describes an OPTIONAL feature for TWAMP. It is called the DSCP and  ECN Testing. It allows the
        Session-Sender to use set of DSCP values through single test session and to instruct the Session-Reflector
        on what DSCP value it must use for the reflected test packet. Furthermore this feature tracks the 
        Explicit Congestion Notification (ECN) <xref target="RFC2474"/>, <xref target="RFC3168"/>, <xref target="RFC3260"/>
        value received at the Session-Reflector. This is helpful to determine if ECN is actually operating
        or if an ECN-capable node has detected congestion in the forward direction.
        </t>
         
     <section title="Conventions used in this document">
         <section title="Terminology">

            <t>DSCP:          Differentiated Services Code Point
</t>
           <t>ECN:              Explicit Congestion Notification
</t>
            <t>IPPM:            IP Performance Metrics
</t>
           <t>TWAMP:        Two-Way Active Measurement Protocol
</t>
           <t>OWAMP:       One-Way Active Measurement Protocol
</t>
 
         </section>    
         
        <section title="Requirements Language">
             <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 
	  <xref target="RFC2119"></xref>.
             </t>
          </section>
      </section>
     </section>
      
     <section anchor="twamp-extensions" title="TWAMP Extensions">
          <t>
           TWAMP connection establishment follows the procedure defined in
           Section 3.1 of <xref target="RFC4656"/> and Section 3.1 of <xref target="RFC5357"/> where the Modes field
           is used to identify and select specific communication capabilities. At the same time
           the Modes field been recognized and used as an extension mechanism <xref target="RFC6038"/>.
           The new feature requires a new flag to identify the ability of a Session-Reflector
           to support the new Session-Sender packet format in the TWAMP-Test protocol and
           to use received DSCP and ECN values in the reflected to a Session-Sender test packet,
           See the
 <xref target="iana-consider"/> for details on the assigned bit position.
          </t>
          <section anchor="conn-setup" title="Setting Up Connection to Test DSCP and ECN">
             <t>
                The Server sets the DSCP and ECN Testing flag in the Modes field of the Server Greeting message
                to indicate its capabilities and willingness to monitor them.
                If the Control-Client agrees to test DSCP and ECN on some or all test sessions invoked with
                this control connection, it MUST set the DSCP and ECN Testing flag in the Modes field in the Setup
                Response
 message.  
             </t>   
           </section>
           
           <section anchor="test-extension" title="TWAMP-Test Extension">
             <t>
   Testing of DSCP and ECN requires support by the Session-Sender
   and changes the test packet format in all the original
   (unauthenticated, authenticated and encrypted) modes. 
             Testing of DSCP and ECN does not alter the Session-Reflector test packet format but certain considerations
             must be taken when and if this mode is accepted in combination with Symmetrical Size mode <xref target="RFC6038"/>
             and/or with DSCP and ECN Monitoring mode <xref target="RFC7750"/>.
             </t>
             
             <section anchor="session-reflector-change" title="Session-Sender Packet Format for DSCP and ECN Testing">
              <t>
              When the Session-Sender supports DSCP and ECN Testing it constructs the Reflector 
              DSCP and ECN (R-DSCP-ECN) field, presented in 
              <xref target="reflector-dscp-ecn-format"/>, for each
              test packet it sends to Session-Reflector according to the following procedure:
              </t>
               <t>
              <list style="symbols">
              <t>
              value of the Reflector DSCP (R-DSCP) field MUST be set to the value that the Session-Reflector MUST use for the reflected test packet;
              </t>
              <t>
              value of the Reflector ECN (R-ECN) field MUST be set to the value that the Session-Reflector MAY use for the reflected test packet.
              </t>
               </list>
               </t>
               <t>
               When the Session-Reflector supports DSCP and ECN Testing mode it uses R-DSCP-ECN field of the received test packet to construct
               the reflected test packet according to the following procedure
               </t>
              <t>
              <list style="symbols">
              <t>
              the R-DSCP field MUST be used as six (least-significant) bits of the Differentiated Service field of the reflected test packet;
              </t>
              <t>
              the R-ECN field MAY be used as the two bits of the ECN field of the reflected test packet.
              </t>
               </list>
               </t>
<t>
         <figure align="center" anchor="reflector-dscp-ecn-format"
                title="Sender DSCP and ECN field format">
          <artwork><![CDATA[    
 
   0   1   2   3   4   5   6   7 
 +---+---+---+---+---+---+---+---+
 |         R-DSCP        | R-ECN |
 +---+---+---+---+---+---+---+---+
]]></artwork>
        </figure>
            </t>

<t>

Formats of the test packet transmitted by the Session-Sender in unauthenticated, authenticated and encrypted modes
been defined in Section 4.1.2 <xref target="RFC4656"/>. For the Session-Sender that supports 
DSCP and ECN Testing these formats are displayed in <xref target="sender-unauthenticated-format"/>
and <xref target="sender-authenticated-format"/>.

</t>
               <t>
                For unauthenticated mode:
         <figure align="left" anchor="sender-unauthenticated-format"
                title=" Session-Sender test packet format with DSCP and ECN Testing in unauthenticated mode">
          <artwork><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                  Sequence Number                            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                          Timestamp                          |
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |       Error Estimate        |  R-DSCP-ECN   |               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               +              
 |                                                             |
 ~                        Packet Padding                       ~
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
            </t>
<!--
             <t>
              The DSCP and ECN values (part of the Type-P Descriptor <xref target="RFC4656"/>) can be 
              provisioned through TWAMP-Control or by other means (CLI or Central Controller).
              The DSCP and ECN values are often copied into reflected test packets with current TWAMP implementations without TWAMP-Control protocol.
              With DSCP and ECN Monitoring Extension, the Session-Reflector handles DSCP as following:
              <list style="symbols">
              <t>the Session-Reflector MUST extract the DSCP and ECN values from the received packet
              and MUST populate with them S-DSCP-ECN field of the corresponding reflected packet;</t>
              <t>the Session-Reflector MUST transmit each reflected test packet with DSCP set to the provisioned value;</t>
              <t>if the provisioned DSCP value is not known (e.g. TWAMP Light), the choice of the DSCP is implementation specific.
              For instance, Session-Reflector MAY copy the DSCP value from the received test packet and set it as DSCP in a reflected packet.
              Alternatively Session-Reflector MAY set DSCP value to CS0 (zero) <xref target="RFC2474"/>;</t>
              <t>if the provisioned ECN value is not known, ECN SHOULD be set to Not-ECT codepoint value <xref target="RFC3168"/>.
              Otherwise, the provisioned ECN value for the session SHALL be used.</t>
              </list> 
              </t>
-->
              <t>
              Neither Session-Reflector, nor Session-Sender in the DSCP and ECN Testing mode analyze, nor act on ECN value of the 
              received TWAMP test packet and therefore ignore congestion indications from the network.
              It is expected that sending rates are low enough, as TWAMP deployment experience had demonstrated
              since TWAMP base RFC 5357 publication in 2008, that ignoring these congestion indications 
              will not significantly contribute to network congestion.
              </t>
                          
            <t>
                     For authenticated and encrypted modes:
         <figure align="left" anchor="sender-authenticated-format"
                title=" Session-Sender test packet format with DSCP and ECN Testing in authenticated or encrypted modes">
          <artwork><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                    Sequence Number                          |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                             |
 |                     MBZ (12 octets)                         |
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                       Timestamp                             |
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |       Error Estimate        |  R-DSCP-ECN   |               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               +
 |                        MBZ (5 octets)                       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                             |
 |                      HMAC (16 octets)                       |
 |                                                             |
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                             |
 ~                     Packet Padding                          ~
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]></artwork>
        </figure>
                     
                     </t>

                </section>      
             
                <section anchor="session-sender-consider-monitor" title="Combining DSCP and ECN Testing and Monitoring extensions ">
                <t>
                <xref target="RFC7750"/> defined DSCP and ECN Monitoring extension.
                Using testing and monitoring modes in the same test session allows test DSCP in forward and reverse
                directions because Session-Reflector returns received DSCP and ECN values in S-DSCP-ECN field in
                the reflected test packet.
                </t>
                </section>

                <section anchor="session-sender-consider" title="DSCP and ECN Testing with RFC 6038 extensions ">
                <t>
                <xref target="RFC6038"/> defined two extensions to TWAMP.  First, to ensure that  Session-Sender and Session-Reflector exchange
                TWAMP-Test packets of equal size. Second, to specify number of octets to be reflected by Session-Reflector. If DSCP and ECN
                Testing and Symmetrical Size and/or Reflects Octets modes are being negotiated between
                Server and Control-Client in Unauthenticated mode, then, because R-DSCP-ECN field increases size of
                unauthenticated Session-Sender packet by 4 octets, the Padding Length value SHOULD be >= 26 octets to allow for
                the truncation process that TWAMP recommends in Section 4.2.1 of <xref target="RFC5357"/>.
                </t>
                <t>
                If DSCP and ECN Testing mode to be used in combination with Symmetrical Size <xref target="RFC6038"/>
                and DSCP and ECN Monitoring <xref target="RFC7750"/> modes, then the Padding Length value SHOULD be >= 27 octets
                to allow the truncation process that TWAMP recommends in Section 4.2.1 of <xref target="RFC5357"/>.
                </t>
                <t>
         <figure align="left" anchor="sender-symmetrical-unauthenticated-format"
                title=" Session-Sender test packet format with DSCP and ECN Testing and Symmetrical Test Packet in unauthenticated mode">
          <artwork><![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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                    Sequence Number                          |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                          Timestamp                          |
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |       Error Estimate        |  R-DSCP-ECN   |               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               +  
 |                                                             |
 |                       MBZ (26 octets)                       |
 |                                                             |
 +             +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |             |                                               |
 +-+-+-+-+-+-+-+                                               +
 |                                                             |
 .                                                             .
 .                        Packet Padding                       .
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
            </t>               
             </section>
 
            <section anchor="twamp-light-aspect" title="Consideration for TWAMP Light mode">
             <t>
             Appendix I of <xref target="RFC5357"/> does not explicitly state how the value of the Type-P Descriptor
 is
             synchronized between Session-Sender and Session-Reflector and whether different values are considered
             as error condition and should be reported.
           </t>
            <t>            
             In order to test DSCP over round-trip path between Session-Sender and Session-Reflector it is sufficient that
             Session-Reflector uses received DSCP value for the reflected test packet. If the Session-Reflector supports
             both testing and monitoring of DSCP, then TWAMP Light mode MAY be used to test DSCP in forward and reverse directions.
             </t>
            </section>             
 
           </section>

     </section>
 
     <section anchor="iana-consider" title="IANA Considerations">
     <t>
     The TWAMP-Modes registry defined in <xref target="RFC5618"/>. 
     </t>
     <t>
     IANA is requested to reserve a new DSCP and ECN Testing Capability as follows:
     </t>

  <texttable anchor="type-p-monitor-table" title="New Type-P Descriptor Testing Capability">
    <ttcol align='left'>Bit&nbsp;</ttcol>
    <ttcol align='left'>Description</ttcol>
    <ttcol align='left'>Semantics&nbsp;Definition&nbsp;</ttcol>
    <ttcol align='left'>Reference</ttcol>
    <c>TBA</c>
    <c>DSCP and ECN&nbsp;Testing&nbsp;Capability&nbsp;</c>
    <c><xref target="twamp-extensions"/></c>
    <c>This&nbsp;document</c>
    </texttable>

     </section>
     
     <section anchor="security" title="Security Considerations">
     <t>
     Testing of DSCP and ECN does not appear to introduce any additional security threat to hosts that
     communicate with TWAMP as defined in <xref target="RFC5357"/>, and existing extensions <xref target="RFC6038"/>.
     Sections such as 3.2, 4., 4.1.2, 4.2, and 4.2.1 of <xref target="RFC5357"/> discuss 
     unauthenticated, authenticated, and encrypted modes in varying degrees of detail.
     The security considerations that apply to any active measurement of live networks are
     relevant here as well.  See the Security Considerations sections in <xref target="RFC4656"/>, <xref target="RFC5357"/>, and
     <xref target="RFC7750"/>.
     </t>

     </section>
      
     
      <section title="Acknowledgments">
         <t>
<!--          
         Authors greatly appreciate thorough review and thoughtful comments by Bill Cerveny,
         Christofer Flinta and Samita Chakrabarti.
-->
         TBD
         </t>  
      </section>

  </middle>
  
    <back>
    <references title="Normative References">
     
  <?rfc include="reference.RFC.2119"?>
  <?rfc include="reference.RFC.4656"?>
  <?rfc include="reference.RFC.5618"?>
  <?rfc include="reference.RFC.5357"?>
  <?rfc include="reference.RFC.6038"?>
  <?rfc include="reference.RFC.2474"?>
  <?rfc include="reference.RFC.3168"?>
  <?rfc include="reference.RFC.7750"?>  
     
    </references>


   <references title="Informative References">

  <?rfc include="reference.RFC.3260"?>  
 
    </references>

 </back>
 </rfc>