<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"[
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC2474 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2474.xml">
<!ENTITY RFC4656 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4656.xml">
<!ENTITY RFC5618 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5618.xml">
<!ENTITY RFC5357 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5357.xml">
<!ENTITY RFC6038 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6038.xml">
<!ENTITY RFC5226 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
]>
<?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-ietf-ippm-type-p-monitor-00">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<front>
	<title abbrev='DSCP and ECN Monitoring in TWAMP'>Differentiated Service Code Point and Explicit Congestion Notification Monitoring in Two-Way Active Measurement Protocol (TWAMP)</title>
	<author initials='J.' surname="Hedin" fullname='Jonas Hedin'>
		<organization>Ericsson</organization>
		<address>
			<email>jonas.hedin@ericsson.com</email>
		</address> 
	</author>
	<author initials='G.' surname="Mirsky" fullname='Greg Mirsky'>
		<organization>Ericsson</organization>
		<address>
			<email>gregory.mirsky@ericsson.com</email>
		</address> 
	</author>
 	<author initials='S.' surname=" Baillargeon" fullname='Steve  Baillargeon'>
		<organization>Ericsson</organization>
		<address>
			<email>steve.baillargeon@ericsson.com</email>
		</address> 
	</author>

    <date day="18" month="December" year="2014" />

    <area>Transport</area>

    <workgroup>Network Working Group</workgroup>

    <keyword>Internet-Draft</keyword>

   <keyword>IPPM</keyword>
   
   <keyword>TWAMP </keyword>
   
   <keyword>Type-P descriptor</keyword>
	
	<abstract>
	<t>
	This document describes an OPTIONAL feature for TWAMP <xref target="RFC5357"/> allowing the monitoring of the Differentiated Service Code Point and 
	Explicit  Congestion Notification fields with the TWAMP-Test protocol.
	 </t>
	</abstract>
</front>

<middle>
  <section anchor="intro" title="Introduction">
        <t>
        One-Way Active Measurement Protocol (OWAMP) <xref target ="RFC4656"/> defines Type-P descriptor and negotiation of  its value in OWAMP-Control protocol. 
        Two-Way Active Measurement Protocol (TWAMP) <xref target="RFC5357"/> states that only Differentiated Service Code Point (DSCP) 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 value of DSCP (found in the Session-Sender packet) MUST be used in the test packet reflected by the Session-Reflector. However 
        the TWAMP-Test protocol does not specify any methods to determine or report when the DSCP value has changed or is different than expected in the forward
        or reverse direction. Re-marking the  DSCP (changing its original value) in IP networks is possible and often accomplished by a Diffserv policy configured o
         a single node along the IP path. In many cases, a change of the DSCP value of indicates an unintentional or errorneous behavior. At best, the Session-Sender 
         can detect a change of the DSCP reverse direction assuming  such change is actually detectable.
       </t>
       <t>
        This document describes an OPTIONAL feature for TWAMP. It is called the DSCP and ECN monitoring feature. This feature allows the
        Session-Sender to know the actual DSCP value received at the Session-Reflector. Furthermore this OPTIONAL feature also tracks the 
        Explicit Congestion Notification (ECN) 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 Service Codepoint
</t>
           <t>ECN:              Explicit Congestion Notification
</t>
            <t>IPPM:            IP Performance Measurement
</t>
           <t>TWAMP:        Two-Way Active Measuremnt 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
           been used to identify and select specific communication capabilities. At the same time
           the Modes field been recognized and used as extension mechanism <xref target="RFC6038"/>.
           The new feature requires new bit position to identify the ability of a Session-Reflector
           to return value of received DSCP and ECN values back to a Session-Sender,
           and to support the new Session-Reflector packet format in the TWAMP-Test protocol. See the
           <xref target="iana-consider"/> for details on the assigned value and bit position.
          </t>
          <section anchor="conn-setup" title="Setting Up Connection to Monitor DSCP and ECN">
             <t>
                The Server sets DSCP and ECN Monitoring flag in Modes field of the Server Greeting message
                to indicate its capabilities and willingness to monitor them.
                If the Control-Client agrees to monitor DSCP and ECN on some or all test sessions invoked with
                this control connection, it MUST set the DSCP and ECN Monitoring flag in Modes field in the Setup Response
                message.  
             </t>   
           </section>
           
           <section anchor="test-extension" title="TWAMP-Test Extension">
             <t>
             Monitoring of DSCP and ECN requires support by Session-Reflector and changes format of its test
             packet format both in unauthenticated, authenticated and encrypted modes.
             Monitoring of DSCP and ECN does not alter Session-Sender 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"/>.
             </t>
             
             <section anchor="session-reflector-change" title="Session-Reflector Packet Format for DSCP and ECN Monitoring">
              <t>
              When Session-Reflector supports DSCP and ECN Monitoring it MUST construct Sender DSCP and ECN (S-DSCP-ECN) field for each
              test packet it sends to Session-Sender according to the following procedure:
              </t>
              <t>
              <list>
              <t>- first six bits MUST be copied Differentiated Service field from received Session-Sender test packet into Sender DSCP (S-DSCP) field;</t>
              <t>- following two bits MUST be copied ECN field from received Session-Sender test packet into Sender ECN (S-ECN) field.</t>
               </list>
               </t>
<t>
         <figure align="left" anchor="sender-dscp-ecn-format"
                title="Sender DSCP and ECN field format">
          <artwork><![CDATA[    
 
 0     1     2     3     4     5     6     7     8 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |               S-DSCP              |   S-ECN   |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
            </t>

               <t>
                For unauthenticated mode:
         <figure align="left" anchor="reflector-unauthenticated-format"
                title=" Session-Reflector test packet format with DSCP and ECN monitoring 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        |             MBZ               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                     Receive Timestamp                       |
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                  Sender Sequence Number                     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                     Sender Timestamp                        |
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |    Sender Error Estimate    |             MBZ               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Sender TTL  |  S-DSCP-ECN   |             MBZ               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                             |
 +                                                             +
 |                                                             |
 .                                                             .
 .                        Packet Padding                       .
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
            </t>
            <t>
                     For authenticated and encrypted modes:
         <figure align="left" anchor="reflector-authenticated-format"
                title=" Session-Reflector test packet format with DSCP and ECN monitoring 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        |                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
 |                        MBZ (6 octets)                       |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                      Receive Timestamp                      |
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                       MBZ (8 octets)                        |
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                   Sender Sequence Number                    |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                             |
 |                      MBZ (12 octets)                        |
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                      Sender Timestamp                       |
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |    Sender Error Estimate    |                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
 |                       MBZ (6 octets)                        |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Sender TTL  |  S-DSCP-ECN   |                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
 |                                                             |
 +                                                             +
 |                       MBZ (14 octets)                       |
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                             |
 |                      HMAC (16 octets)                       |
 |                                                             |
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                             |
 .                                                             .
 .                   Packet Padding                            .
 |                                                             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ]]></artwork>
        </figure>
                     
                     </t>
             <t>
              The DSCP value is often copied into reflected test packets with current TWAMP implementations (with or without TWAMP-Control protocol).
              With DSCP and ECN Monitoring Extenstion Session-Reflector handles DSCP as following:
              <list>
              <t>The Session-Reflector MUST extracts the S-DSCP-ECN value from the DSCP and ECN values of received packets;</t>
              <t>The Session-Reflector MUST transmit each reflected test packet with DSCP set to the negotiated/provisioned value;</t>
              <t>If the negotiated/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.</t>
              </list> 
              </t>
              
                </section>      
             
                <section anchor="session-sender-consider" title="DSCP and ECN Monitoring 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
                monitoring and Symmetrical Size and/or Reflects Octets modes being negotiated between
                Server and Control-Client in Unauthenticated mode, then because Sender DSCP and Sender ECN increase size of
                unauthenticated Session-Reflector packet by 4 octets the Padding Length value SHOULD be >= 28 octets to allow for
                the truncation process that TWAMP recommends in Section 4.2. 1 of <xref target="RFC5357"/>.
                </t>
                <t>
         <figure align="left" anchor="sender-unauthenticated-format"
                title=" Session-Sender test packet format with DSCP and ECN monitoring 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        |                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
 |                                                             |
 |                       MBZ (28 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 value of Type-P descriptor
             synchronized between Session-Sender and Session-Reflector and whether different values considered as error condition and should be reported.
             
             We assume that by some means Session-Sender and Session-Reflector of given TWAMP-Test session informed to use the same DSCP value.
             Same means, i.e. configuration, could be used to inform Session-Reflector to support DSCP and ECN monitoring mode by copying data from
             received TWAMP test packets. Then Session-Sender may be informed to use Sender DSCP and ECN field in reflected TWAMP test packet.</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 Monitoring Capability as follows:
     </t>

  <texttable anchor="type-p-monitor-table" title="New Type-P Descriptor Monitoring Capability">
    <ttcol align='left'>Value</ttcol>
    <ttcol align='left'>Description</ttcol>
    <ttcol align='left'>Semantics</ttcol>
    <ttcol align='left'>Reference</ttcol>
    <c>X&nbsp;(proposed&nbsp;128)</c>
    <c>DSCP and ECN&nbsp;Monitoring&nbsp;Capability&nbsp;</c>
    <c>bit&nbsp;position&nbsp;Y&nbsp;(proposed&nbsp;7)</c>
    <c>This&nbsp;document</c>
    </texttable>

     </section>
     
     <section anchor="security" title="Security Considerations">
     <t>
     Monitoring 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"/>.
     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"/> and
     <xref target="RFC5357"/>.
     </t>
     </section>
      
     
      <section title="Acknowledgements">
         <t>
           
Authors greatly appreciate thorough review and thoughtful comments by Chritofer Flinta and Samita Chakrabarti.
         </t>  
      </section>

  </middle>
  
    <back>
    <references title="Normative References">
     
     &RFC2119;
     
     &RFC2474;
 
     &RFC4656;
     
     &RFC5618;
     
     &RFC5357;
     
     &RFC6038;
    </references>

    <references title="Informative References">

    &RFC2629;
    &RFC5226;
 
 <!--?rfc.include='reference.IANA'?-->
    </references>
 </back>
 </rfc>   
    
