<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.0.31 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-bryant-mpls-rfc6374-sfl-01" category="std">

  <front>
    <title abbrev="RFC6374 SFL">RFC6374 Synonymous Flow Labels</title>

    <author initials="S." surname="Bryant" fullname="Stewart Bryant">
      <organization>Independent</organization>
      <address>
        <email>stewart.bryant@gmail.com</email>
      </address>
    </author>
    <author initials="G." surname="Swallow" fullname="George Swallow">
      <organization>Cisco Systems</organization>
      <address>
        <email>swallow@cisco.com</email>
      </address>
    </author>
    <author initials="S." surname="Sivabalan" fullname="Siva Sivabalan">
      <organization>Cisco Systems</organization>
      <address>
        <email>msiva@cisco.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="M." surname="Chen" fullname="Mach(Guoyi) Chen">
      <organization>Huawei</organization>
      <address>
        <email>mach.chen@huawei.com</email>
      </address>
    </author>
    <author initials="Z." surname="Li" fullname="Zhenbin(Robin)  Li">
      <organization>Huawei</organization>
      <address>
        <email>lizhenbin@huawei.com</email>
      </address>
    </author>

    <date year="2016" month="August" day="09"/>

    <area>Routing</area>
    <workgroup>MPLS</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document describes a method of providing flow identification
   information when making RFC6374 performance measurements.  This
   allows RFC6374 measurements to be made on multi-point to point LSPs
   and allows the measurement of flows within an MPLS construct using
   RFC6374.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t><xref target="I-D.ietf-mpls-flow-ident"/> describes the requirement for
   introducing flow identities when using RFC6374 <xref target="RFC6374"/> packet Loss
   Measurements (LM).  In summary RFC6374 uses the LM packet as the
   packet accounting demarcation point.  Unfortunately this gives rise
   to a number of problems that may lead to significant packet
   accounting errors in certain situations.  For example:</t>

<t><list style="numbers">
  <t>Where a flow is subjected to Equal Cost Multi-Path (ECMP)
treatment packets can arrive out of order with respect to the LM
packet.</t>
  <t>Where a flow is subjected to ECMP treatment, packets can arrive
at different hardware interfaces, thus requiring reception of an
LM packet on one interface to trigger a packet accounting action
on a different interface which may not be co-located with it.
This is a difficult technical problem to address with the
required degree of accuracy.</t>
  <t>Even where there is no ECMP (for example on RSVP-TE, MPLS-TP LSPs
and PWs) local processing may be distributed over a number of
processor cores, leading to synchronization problems.</t>
  <t>Link aggregation techniques may also lead to synchronization
issues.</t>
  <t>Some forwarder implementations have a long pipeline between
processing a packet and incrementing the associated counter again
leading to synchronization difficulties.</t>
</list></t>

<t>An approach to mitigating these synchronization issue is described in
   <xref target="I-D.tempia-ippm-p3m"/> and
   <xref target="I-D.chen-ippm-coloring-based-ipfpm-framework"/> in which packets are
   batched by the sender and each batch is marked in some way such that
   adjacent batches can be easily recognized by the receiver.</t>

<t>An additional problem arises where the LSP is a multi-point to point
   LSP, since MPLS does not include a source address in the packet.
   Network management operations require the measurement of packet loss
   between a source and destination.  It is thus necessary to introduce
   some source specific information into the packet to identify packet
   batches from a specific source.</t>

<t>{{I-D.ietf-mpls-sfl-framework specifies a method of encoding per
   flow instructions in an MPLS label stack using a technique called
   Synonymous Flow Labels (SFL) in which labels which mimic the
   behaviour of other labels provide the packet batch identifiers and
   enable the per batch packet accounting.  This memo specifies how SFLs
   are used to perform RFC6374 performance measurements.</t>

</section>
<section anchor="requirements-language" 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"/>.</t>

</section>
<section anchor="rfc6374-packet-loss-measurement-with-sfl" title="RFC6374 Packet Loss Measurement with SFL">

<t>The packet format of an RFC6374 Query message using SFLs is shown in
   <xref target="qpsfl"/>.</t>

<figure title="RFC6734 Query Packet with SFL" anchor="qpsfl"><artwork><![CDATA[
+-------------------------------+
|                               |
|             LSP               |
|            Label              |
+-------------------------------+
|                               |
|        Synonymous Flow        |
|            Label              |
+-------------------------------+
|                               |
|                               |
|  RFC6374 Measurement Message  |
|                               |
|  +-------------------------+  |
|  |                         |  |
|  |     RFC6374 Fixed       |  |
|  |     Header              |  |
|  |                         |  |
|  +-------------------------+  |
|  |                         |  |
|  |      Optional SFL TLV   |  |
|  |                         |  |
|  +-------------------------+  |
|  |                         |  |
|  |      Optional Return    |  |
|  |      Information        |  |
|  |                         |  |
|  +-------------------------+  |
|                               |
+-------------------------------+
]]></artwork></figure>

<t>The MPLS label stack is exactly the same as that used for the user
   data service packets being instrumented except for the replacement of
   the appropriate label with an SFL . The RFC6374 measurement message
   consists of the three components, the RFC6374 fixed header as
   specified in <xref target="RFC6374"/> carried over the ACH channel type specified
   the type of measurement being made (currently: loss, delay or loss
   and delay) as specified in RFC6374.</t>

<t>Two optional TLVs MAY also be carried if needed.  The first is the
   SFL TLV specified in Section 3.1.  This is used to provide the
   implementation with a reminder of the SFL that was used to carry the
   RFC6374 message.  This is needed because a number of MPLS
   implementations do not provide the MPLS label stack to the MPLS OAM
   handler.  This TLV is required if RFC6374 messages are sent over UDP
   <xref target="RFC7876"/>.  This TLV MUST be included
   unless, by some method outside the scope of this document, it is
   known that this information is not needed by the RFC6374 Responder.</t>

<t>The second set of information that may be needed is the return
   information that allows the responder send the RFC6374 response to
   the Querier.  This is not needed if the response is requested in-band
   and the MPLS construct being measured is a point to point LSP, but
   otherwise MUST be carried.  The return address TLV is defined in
   RFC6378 and the optional UDP Return Object is defined in
   <xref target="RFC7876"/>.</t>

<section anchor="rfc6374-sfl-tlv" title="RFC6374 SFL TLV">

<t>[Editor’s Note we need to review the following in the light of
   further thoughts on the associated signaling protocol(s).  I am
   fairly confident that we need all the fields other than SFL Batch and
   SFL Index.  The Index is useful in order to map between the label and
   information associated with the FEC.  The batch is part of the
   lifetime management process.]</t>

<t>The required RFC6374 SFL TLV is shown in <xref target="sfltlv"/>.  This contains the
   SFL that was carried in the label stack, the FEC that was used to
   allocate the SFL and the index into the batch of SLs that were
   allocated for the FEC that corresponds to this SFL.</t>

<figure title="SFL TLV" anchor="sfltlv"><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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type       |    Length     |MBZ| SFL Batch |    SFL Index  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 SFL                   |        Reserved       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 FEC                                           |
.                                                               .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>Where:</t>

<figure><artwork><![CDATA[
Type      Type is set to Synonymous Flow Label (SFL-TLV).

Length    The length of the TLV as specified in RFC6374.

MBZ       MUST be sent as zero and ignored on receive. 

SFL Batch The SFL batch that this SFL was allocated as part 
          of see [I-D.bryant-mpls-sfl-control]            

SPL Index The index into the list of SFLs that were assigned  
          against the FEC that corresponds to the SFL.         

SFL       The SFL used to deliver this packet.  This is an MPLS
          label which is a component of a label stack entry as 
          defined in Section 2.1 of RFC3032.               

Reserved  MUST be sent as zero and ignored on receive.         

FEC       The Forwarding Equivalence Class that was used to    
          request this SFL.  This is encoded as per            
          Section 3.4.1 of TBD                                 
]]></artwork></figure>

<t>This information is needed to allow for operation with hardware that
   discards the MPLS label stack before passing the remainder of the
   stack to the OAM handler.  By providing both the SFL and the FEC plus
   index into the array of allocated SFLs a number of implementation
   types are supported.</t>

</section>
</section>
<section anchor="the-application-of-sfl-to-other-pm-types" title="The Application of SFL to other PM Types">

<t>SFL can be used to enable other types of PM in addition to loss.
   Delay, Delay Variation and Throughput may be calculated based on
   measurement results collected through Loss and Delay Measurement test
   sessions.  Further details will be provided in a future version of
   this draft.</t>

</section>
<section anchor="privacy-considerations" title="Privacy Considerations">

<t>The inclusion of originating and/or flow information in a packet
   provides more identity information and hence potentially degrades the
   privacy of the communication.  Whilst the inclusion of the additional
   granularity does allow greater insight into the flow characteristics
   it does not specifically identify which node originated the packet
   other than by inspection of the network at the point of ingress, or
   inspection of the control protocol packets.  This privacy threat may
   be mitigated by encrypting the control protocol packets, regularly
   changing the synonymous labels and by concurrently using a number of
   such labels.</t>

</section>
<section anchor="security-considerations" title="Security Considerations">

<t>The issue noted in Section 5 is a security consideration.  There are
   no other new security issues associated with the MPLS dataplane.  Any
   control protocol used to request SFLs will need to ensure the
   legitimacy of the request.</t>

</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>IANA is request to allocate a new TLV from the 0-127 range on the
   MPLS Loss/Delay Measurement TLV Object Registry:</t>

<figure><artwork><![CDATA[
      Type Description                       Reference
      ---- --------------------------------- ---------
      TBD  Synonymous Flow Label             This
]]></artwork></figure>
<t>A value of 4 is recommended.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor='RFC2119' target='http://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference  anchor='RFC3032' target='http://www.rfc-editor.org/info/rfc3032'>
<front>
<title>MPLS Label Stack Encoding</title>
<author initials='E.' surname='Rosen' fullname='E. Rosen'><organization /></author>
<author initials='D.' surname='Tappan' fullname='D. Tappan'><organization /></author>
<author initials='G.' surname='Fedorkow' fullname='G. Fedorkow'><organization /></author>
<author initials='Y.' surname='Rekhter' fullname='Y. Rekhter'><organization /></author>
<author initials='D.' surname='Farinacci' fullname='D. Farinacci'><organization /></author>
<author initials='T.' surname='Li' fullname='T. Li'><organization /></author>
<author initials='A.' surname='Conta' fullname='A. Conta'><organization /></author>
<date year='2001' month='January' />
<abstract><t>This document specifies the encoding to be used by an LSR in order to transmit labeled packets on Point-to-Point Protocol (PPP) data links, on LAN data links, and possibly on other data links as well.  This document also specifies rules and procedures for processing the various fields of the label stack encoding.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3032'/>
<seriesInfo name='DOI' value='10.17487/RFC3032'/>
</reference>



<reference  anchor='RFC7876' target='http://www.rfc-editor.org/info/rfc7876'>
<front>
<title>UDP Return Path for Packet Loss and Delay Measurement for MPLS Networks</title>
<author initials='S.' surname='Bryant' fullname='S. Bryant'><organization /></author>
<author initials='S.' surname='Sivabalan' fullname='S. Sivabalan'><organization /></author>
<author initials='S.' surname='Soni' fullname='S. Soni'><organization /></author>
<date year='2016' month='July' />
<abstract><t>RFC 6374 defines a protocol for Packet Loss and Delay Measurement for MPLS networks (MPLS-PLDM).  This document specifies the procedures to be used when sending and processing out-of-band MPLS performance management Responses over an UDP/IP return path.</t></abstract>
</front>
<seriesInfo name='RFC' value='7876'/>
<seriesInfo name='DOI' value='10.17487/RFC7876'/>
</reference>




    </references>

    <references title='Informative References'>





<reference anchor='I-D.ietf-mpls-flow-ident'>
<front>
<title>MPLS Flow Identification Considerations</title>

<author initials='S' surname='Bryant' fullname='Stewart Bryant'>
    <organization />
</author>

<author initials='C' surname='Pignataro' fullname='Carlos Pignataro'>
    <organization />
</author>

<author initials='M' surname='Chen' fullname='Mach Chen'>
    <organization />
</author>

<author initials='Z' surname='Li' fullname='Zhenbin Li'>
    <organization />
</author>

<author initials='G' surname='Mirsky' fullname='Greg Mirsky'>
    <organization />
</author>

<date month='June' day='10' year='2016' />

<abstract><t>This memo discusses the desired capabilities for MPLS flow identification.  The key application that needs this is in-band performance monitoring of user data packets.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-mpls-flow-ident-01' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-mpls-flow-ident-01.txt' />
</reference>



<reference anchor='I-D.chen-ippm-coloring-based-ipfpm-framework'>
<front>
<title>IP Flow Performance Measurement Framework</title>

<author initials='M' surname='Chen' fullname='Mach Chen'>
    <organization />
</author>

<author initials='L' surname='Zheng' fullname='Lianshu Zheng'>
    <organization />
</author>

<author initials='G' surname='Mirsky' fullname='Greg Mirsky'>
    <organization />
</author>

<author initials='G' surname='Fioccola' fullname='Giuseppe Fioccola'>
    <organization />
</author>

<author initials='T' surname='Mizrahi' fullname='Tal Mizrahi'>
    <organization />
</author>

<date month='March' day='17' year='2016' />

<abstract><t>This document specifies a measurement method, the IP flow performance measurement (IPFPM).  With IPFPM, data packets are marked into different blocks of markers by changing one or more bits of packets. No additional delimiting packet is needed and the performance is measured in-service and in-band without the insertion of additional traffic.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-chen-ippm-coloring-based-ipfpm-framework-06' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-chen-ippm-coloring-based-ipfpm-framework-06.txt' />
</reference>



<reference anchor='I-D.tempia-ippm-p3m'>
<front>
<title>A packet based method for passive performance monitoring</title>

<author initials='A' surname='Capello' fullname='Alessandro Capello'>
    <organization />
</author>

<author initials='M' surname='Cociglio' fullname='Mauro Cociglio'>
    <organization />
</author>

<author initials='G' surname='Fioccola' fullname='Giuseppe Fioccola'>
    <organization />
</author>

<author initials='L' surname='Castaldelli' fullname='Luca Castaldelli'>
    <organization />
</author>

<author initials='A' surname='Bonda' fullname='Alberto Bonda'>
    <organization />
</author>

<date month='March' day='21' year='2016' />

<abstract><t>This document describes a passive method to perform packet loss, delay and jitter measurements on live traffic.  This method is based on Alternate Marking (Coloring) technique.  A report on the operational experiment done at Telecom Italia is explained in order to give an example and show the method applicability.  This technique can be applied in various situations as detailed in this document. The previous IETF drafts about this technique were: [I-D.cociglio-mboned-multicast-pm] and [I-D.tempia-opsawg-p3m].</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-tempia-ippm-p3m-03' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-tempia-ippm-p3m-03.txt' />
</reference>



<reference anchor='I-D.bryant-mpls-sfl-control'>
<front>
<title>A Control Protocol for Synonymous Flow Labels</title>

<author initials='S' surname='Bryant' fullname='Stewart Bryant'>
    <organization />
</author>

<author initials='G' surname='Swallow' fullname='George Swallow'>
    <organization />
</author>

<author initials='S' surname='Sivabalan' fullname='Siva Sivabalan'>
    <organization />
</author>

<date month='March' day='2' year='2015' />

<abstract><t>In draft-bryant-mpls-synonymous-flow-labels the concept of MPLS synonymous flow labels (SFL) was introduced.  This document describes a control protocol that runs over an associated control header to request, withdrawn and extend the lifetime of such labels.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-bryant-mpls-sfl-control-00' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-bryant-mpls-sfl-control-00.txt' />
</reference>



<reference  anchor='RFC6374' target='http://www.rfc-editor.org/info/rfc6374'>
<front>
<title>Packet Loss and Delay Measurement for MPLS Networks</title>
<author initials='D.' surname='Frost' fullname='D. Frost'><organization /></author>
<author initials='S.' surname='Bryant' fullname='S. Bryant'><organization /></author>
<date year='2011' month='September' />
<abstract><t>Many service provider service level agreements (SLAs) depend on the ability to measure and monitor performance metrics for packet loss and one-way and two-way delay, as well as related metrics such as delay variation and channel throughput.  This measurement capability also provides operators with greater visibility into the performance characteristics of their networks, thereby facilitating planning, troubleshooting, and network performance evaluation.  This document specifies protocol mechanisms to enable the efficient and accurate measurement of these performance metrics in MPLS networks.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6374'/>
<seriesInfo name='DOI' value='10.17487/RFC6374'/>
</reference>




    </references>



  </back>
</rfc>

