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

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

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

<rfc ipr="trust200902" docName="draft-kbbma-mpls-1stnibble-02" category="std">

  <front>
    <title abbrev="1st nibble">IANA Registry for the First Nibble Following a Label Stack</title>

    <author initials="K." surname="Kompella" fullname="Kireeti Kompella" role="editor">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>1133 Innovation Way</street>
          <city>Sunnyvale</city>
          <code>94089</code>
          <country>USA</country>
        </postal>
        <phone>+1-408-745-2000</phone>
        <email>kireeti.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="S." surname="Bryant" fullname="Stewart Bryant">
      <organization>University of Surrey 5GIC</organization>
      <address>
        <email>sb@stewartbryant.com</email>
      </address>
    </author>
    <author initials="M." surname="Bocci" fullname="Matthew Bocci">
      <organization>Nokia</organization>
      <address>
        <email>matthew.bocci@nokia.com</email>
      </address>
    </author>
    <author initials="G." surname="Mirsky" fullname="Greg Mirsky">
      <organization>Ericsson</organization>
      <address>
        <email>gregimirsky@gmail.com</email>
      </address>
    </author>
    <author initials="L." surname="Andersson" fullname="Lars Olaf (Loa) Andersson">
      <organization>Bronze Dragon Consulting</organization>
      <address>
        <email>loa@pi.nu</email>
      </address>
    </author>

    <date year="2022" month="July" day="10"/>

    <area>Routing</area>
    <workgroup>MPLS Working Group</workgroup>
    <keyword>load balancing, ECMP, control word</keyword>

    <abstract>


<t>The goal of this memo is to create a new IANA registry (called the
MPLS First Nibble registry) for the first nibble (4-bit field)
immediately following an MPLS label stack.  The memo offers a
rationale for such a registry, describes how the registry should be
managed, and provides some initial entries.  Furthermore, this memo
sets out some documentation requirements for registering new values.
Finally, it provides some recommendations that makes processing MPLS
packets easier and more robust.</t>

<t>There is an important caveat on the use of this registry versus the IP
version number registry.</t>

<t>This memo, if published, would update <xref target="RFC4928"/> and <xref target="RFC8469"/>.</t>



    </abstract>


  </front>

  <middle>


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

<t>An MPLS packet consists of a label stack, an optional &quot;post-stack
header&quot; (PSH) and an optional embedded packet (in that order).  By
PSH, we mean existing artifacts such as Control Words, BIER headers
and the like, as well as new types of PSH being discussed in the MPLS
Open Design Team meetings.  However, in the data plane, there are
scant clues regarding the PSH, and no clue as to the type of embedded
packet; this information is communicated via other means, such as the
routing protocols that signal the labels in the stack.  Nonetheless,
in order to better handle an MPLS packet in the data plane, it is
common practice for network equipment to &quot;guess&quot; the type of embedded
packet.  Such equipment may also need to process the post-stack
header.  Both of these require parsing the data after the label stack.
To do this, the &quot;first nibble&quot; (the top four bits of the first octet
following the label stack) is often used.</t>

<t>The semantics and usage of the first nibble is not well documented,
nor are the assignments of values.  This memo serves three purposes:</t>

<t><list style="symbols">
  <t>To document the assignments already made</t>
  <t>To provide for the clear documentation of future assignments through
the creation of an &quot;MPLS First Nibble registry&quot;</t>
  <t>Provide a method to tracking usage by requiring more consistent
documentation</t>
  <t>To reiterate the importance that any MPLS packet not carrying plain
IPv4 or IPv6 packets MUST contain a PSH</t>
</list></t>

<t>There have been suggestions during discussions at the MPLS Open Design
Team meetings that this document may serve as a registry for the PSH
&quot;headers of headers&quot; types; however, this change needs WG consensus.</t>

<section anchor="conventions-and-definitions" title="Conventions and Definitions">

<t>The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL
NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, &quot;NOT RECOMMENDED&quot;,
&quot;MAY&quot;, and &quot;OPTIONAL&quot; in this document are to be interpreted as
described in BCP14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<t><list style="hanging">
  <t hangText="LSR:">
  label switching router.</t>
  <t hangText="MPLS packet:">
  one whose Layer 2 header declares the type to be MPLS.  For
Ethernet, that means the Ethertype is 0x8847 or 0x8848.</t>
  <t hangText="Label Stack:">
  (of an MPLS packet) all labels (four octet fields) after the Layer 2
header, up to and including the label with the BoS bit set
(<xref target="RFC3032"/>).</t>
  <t hangText="MPLS First Nibble (MFN):">
  the most significant four bits of the first octet following the
label stack.</t>
  <t hangText="MPLS Payload:">
  all data after the label stack, including the MFN, an optional
post-stack header and the embedded packet.</t>
  <t hangText="Post-stack Header (PSH):">
  optional field of interest to the egress LSR (and possibly to
transit LSRs).  Examples include a control word or an associated
channel. The PSH MUST indicate its length, so that a parser knows
where the embedded packet starts.</t>
  <t hangText="Embedded Packet:">
  All octets beyond the PSH (if any).  This could be an IPv4 or IPv6
packet (e.g., for traffic engineering of IP packets, or for a Layer
3 VPN <xref target="RFC4364"/>), an Ethernet packet (for VPLS (<xref target="RFC4761"/>,
<xref target="RFC4762"/>) or EVPN <xref target="RFC7432"/>), or some other type of Layer 2
frame <xref target="RFC4446"/>.</t>
</list></t>

<figure title="Example of an MPLS Packet With Label Stack" anchor="ex-mpls-pkt"><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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
  X |                        Layer 2 Header                         | |
    |                                                               | |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/
                                              TC   S       TTL
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
  Y |             Label-1                   | TC  |0|      TTL      | |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             Label-2                   | TC  |0|      TTL      | |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               ...                     | TC  |0|      TTL      | |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             Label-n                   | TC  |1|      TTL      | |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/
]]></artwork></figure>

<figure anchor="ex-mpls-pkt-ip"><artwork><![CDATA[
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
  A | (MFN) |                   IP packet                           | |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                             data                              | |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                   ...                                |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        end of IP packet                       | |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/
]]></artwork></figure>

<figure anchor="ex-mpls-pkt-nonip"><artwork><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\   B | (MFN) |                 non-IP packet                         | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             data                              | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                               ...                                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      end of non-IP packet                     | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/ ~~~~
]]></artwork></figure>

<figure anchor="ex-mpls-pkt-psh"><artwork><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\   C | (MFN) |                      PSH                              | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              PSH                              | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                               ...                                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          end of PSH                           | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        embedded packet                        | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/ ~~~~
]]></artwork></figure>

<t><xref target="ex-mpls-pkt"/> shows an MPLS packet with Layer 2 header X and a label
stack Y ending with Label-n.  Then, there are three examples of an
MPLS payload.  The full MPLS packet thus would consist of [X Y A], or
[X Y B], or [X Y C].</t>

<t>A. The first payload is a bare IP packet, i.e., no PSH.  The MFN (MPLS
First Nibble) in this case overlaps with the IP version number.</t>

<t>B. The next payload is a bare non-IP packet; again, no PSH.  The MFN
here is the first nibble of the payload, whatever it happens to be.</t>

<t>C. The last example is an MPLS Payload that starts with a PSH followed
by the embedded packet.  Here, the embedded packet could be IP or
non-IP.</t>

</section>
</section>
<section anchor="rationale" title="Rationale">

<section anchor="why-look-at-the-first-nibble" title="Why Look at the First Nibble">

<t>An MPLS packet can contain many types of embedded packet.  The most
common types are:</t>

<t><list style="numbers">
  <t>An IPv4 packet (whose IP header has version number 4).</t>
  <t>An IPv6 packet (whose IP header has version number 6).</t>
  <t>A Layer 2 Ethernet frame (i.e., not including the Preamble or the
Start frame delimiter), starting with the destination MAC address.</t>
</list></t>

<t>Many other packet types are possible, and in principle, any Layer 2
embedded packet is permissible; indeed, in the past, PPP, Frame Relay
and ATM packets were reasonably common.</t>

<t>In addition, there may be a post-stack header ahead of the embedded
packet, and this needs be to parsed.  The MPLS First Nibble is
currently used for both of these purposes.</t>

<section anchor="load-balancing" title="Load Balancing">

<t>There are four common ways to load balance an MPLS packet:</t>

<t><list style="numbers">
  <t>One can use the top label alone.</t>
  <t>One can do better by using all the (non-SPL) labels in the stack.</t>
  <t>One can do even better by &quot;divining&quot; the type of embedded packet,
and using fields from the guessed header.</t>
  <t>One can do best by using either an Entropy Label <xref target="RFC6790"/> or a
FAT Pseudowire Label <xref target="RFC6391"/>; see <xref target="Rec"/>.)</t>
</list></t>

<t>Load balancing based on just the top label means that all packets with
that top label will go the same way -- this is far from ideal.  Load
balancing based on the entire label stack (not including SPLs) is
better, but may still be uneven.  If, however, the embedded packet is
an IP packet, then the combination of (&lt;source IP address&gt;,
&lt;dest IP address&gt;, &lt;transport protocol&gt;, &lt;source
port&gt;, and &lt;dest port&gt;) from the IP header of the embedded
packet forms an excellent basis for load balancing.  This is what is
typically used for load balancing IP packets.</t>

<t>An MPLS packet doesn&#39;t, however, carry a payload type identifier.
There is a simple (but dangerous) heuristic that is commonly used to
guess the type of the embedded packet.  The first nibble, i.e., the
four most significant bits of the first octet, of an IP header
contains the IP version number.  This in turn indicates where to find
the relevant fields for load balancing.  The heuristic goes roughly as
follows:</t>

<section anchor="heur" title="Heuristic for Load Balancing">

<t><list style="numbers">
  <t>If the MFN is 0x4 (0100b), treat the payload as an IPv4 packet, and
find the relevant fields for load balancing on that basis.</t>
  <t>If the MFN is 0x6 (0101b), treat the payload as an IPv6 packet, and
find the relevant fields for load balancing on that basis.</t>
  <t>If the MFN is anything else, the MPLS payload is not an IP packet;
fall back to load balancing using the label stack.</t>
</list></t>

<t>This heuristic has been implemented in many (legacy) routers, and
performs well in the case of <xref target="ex-mpls-pkt"/>, A.  However, this
heuristic can work very badly for <xref target="ex-mpls-pkt"/>, B.  For example, if
payload B is an Ethernet frame, then the MFN is the first nibble of
the OUI of the destination MAC address, which can be 0x4 or 0x6, and
if so would lead to very bad load balancing.  This behavior can happen
to other types of non-IP payload as well.</t>

<t>This in turn led to the idea of inserting a PSH (e.g., a pseudowire
control word <xref target="RFC4385"/>, a DetNet control word <xref target="RFC8964"/> or a
BIER header <xref target="RFC8296"/>) where the MPLS First Nibble is NOT 0x4 or
0x6, to explicitly prevent forwarding engines from confusing the MPLS
payload with an IP packet.  <xref target="RFC8469"/> recommends the use of a
control word when the embedded packet is an Ethernet frame.  RFC 8469
was published at the request of the operator community and the IEEE
RAC as a result of operational difficulties with pseudowires that did
not contain the control word.</t>

<t>This memo introduces a requirement and a recommendation, the first
building on the above; the second deprecating the use of the heuristic
in <xref target="heur"/>.  The intent of both of these is that legacy routers
continue to operate as they have, with no new problems introduced as a
result of this memo.  However, new implementations SHOULD follow these
recommendations for more robust operation.</t>

</section>
</section>
<section anchor="Req" title="Requirement">

<t>Going forward, network equipment MUST use a post-stack header with an
MPLS First Nibble value that is not 0x4 or 0x6 in all cases when the
MPLS payload is not an IP packet. Effectively, <xref target="ex-mpls-pkt"/>, B is
disallowed.  [AGREED???]</t>

<t>This replaces the following text from <xref target="RFC4928"/>, section 3, paragraph 3:</t>

<t>&quot;It is REQUIRED, however, that applications depend upon in-order
packet delivery restrict the first nibble values to 0x0 and 0x1.  This
will ensure that their traffic flows will not be affected if some
future routing equipment does similar snooping on some future
version(s) of IP.&quot;</t>

<t>This also replaces the following text from <xref target="RFC8469"/>, section 4,
paragraph 1:</t>

<t>&quot;This document updates [RFC4448] to state that both the ingress
provider edge (PE) and the egress PE SHOULD support the Ethernet PW CW
and that, if supported, the CW MUST be used.&quot;</t>

</section>
<section anchor="Rec" title="Recommendation">

<t>It is RECOMMENDED that, going forward, if good load balancing of MPLS
packets is desired, either an Entropy Label or a FAT Pseudowire Label
SHOULD be used; furthermore, going forward, the heuristic in <xref target="heur"/>
MUST NOT be used.  [AGREED???]</t>

<t>A consequence of Recommendation 2 is that, while legacy routers may
look for a MPLS First Nibble of 0x4 or 0x6, no router will look for a
MPLS First Nibble of 0x7 (or whatever the next IP version number will
be) for load balancing purposes.  This means that the values 0x4 and
0x6 are used to (sometimes incorrectly) identify IPv4 and IPv6
packets, but no other First Nibble values will be used to identify IP
packets.</t>

<t>This obviates the need for paragraph 4, section 3 in <xref target="RFC4928"/>:</t>

<t>&quot;This behavior implies that if in the future an IP version is defined
with a version number of 0x0 or 0x1, then equipment complying with
this BCP would be unable to look past one or more MPLS headers, and
loadsplit traffic from a single LSP across multiple paths based on a
hash of specific fields in the IPv0 or IPv1 headers.  That is, IP
traffic employing these version numbers would be safe from
disturbances caused by inappropriate loadsplitting, but would also not
be able to get the performance benefits.&quot;</t>

<t>This also expands the MFN Registry to all 16 possible values, not just
0x0 and 0x1.</t>

</section>
<section anchor="parsing-the-post-stack-header" title="Parsing the Post-stack Header">

<t>Given the above recommendations on the use of a post-stack header and
future non-use of the heuristic (<xref target="heur"/>) via the use of Entropy or
FAT Pseudowire Labels, the main reason for creating a First Nibble
registry is to document the types of post-stack headers that may
follow a label stack, and to simplify their parsing.</t>

</section>
</section>
<section anchor="why-create-a-registry" title="Why Create a Registry">

<t>The MPLS WG is currently engaged in updating the MPLS architecture;
part of this work involves the use of post-stack headers.  This is not
possible if post-stack header values are allocated on an ad hoc basis,
and their parsing and semantics is ill-specified.  Consider that the
MPLS First Nibble value of 0x0 has two different formats, depending on
whether the post-stack header is a pseudowire control word or a DetNet
control word; disambiguation requires the context of the service label.
This was a considered decision; documenting this would be helpful to
future implementors.</t>

<t>With a registy, post-stack headers become easier to parse; the values
are unique, not needing means outside the data plane to interpret them
correctly; and their semantics and usage are documented.  (Thank you,
IANA!)</t>

</section>
<section anchor="caveat" title="Caveat">

<t>The use of the MPLS First Nibble stemmed from the desire to
heuristically identify IP packets for load balancing purposes.  It was
then discovered that non-IP packets, misidentified as IP when the
heuristic failed, were being badly load balanced, leading to
<xref target="RFC4928"/>.  This situation may confuse some as to relationship
between the MPLS First Nibble Registry and the IP Version Numbers
registry.  These registries are quite different:</t>

<t><list style="numbers">
  <t>The IP Version Numbers registry&#39;s explicit purpose is to track IP
version numbers in an IP header.</t>
  <t>The MPLS First Nibble registry&#39;s purpose is to track post-stack
header types.</t>
</list></t>

<t>The only intersection points between the two registries is for values
0x4 and 0x6 (for backward compatibility).  There is no need to track
future IP version number allocations in the MPLS First Nibble
registry.</t>

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

<section anchor="mpls-first-nibble-registry" title="MPLS First Nibble Registry">

<t>This memo recommends the creation of an IANA registry called &quot;The
MPLS First Nibble Registry&quot; with the following values:</t>

<texttable title="MPLS First Nibble Values" anchor="first-nibble">
      <ttcol align='right'>Value</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <ttcol align='left'>Allocation Policy</ttcol>
      <c>0x0</c>
      <c>PW Control Word</c>
      <c>RFC 4385</c>
      <c>&#160;</c>
      <c>0x0</c>
      <c>DetNet Control Word</c>
      <c>RFC 8964</c>
      <c>&#160;</c>
      <c>0x1</c>
      <c>PW Assoc Channel</c>
      <c>RFC 4385</c>
      <c>&#160;</c>
      <c>0x2</c>
      <c>Unallocated</c>
      <c>&#160;</c>
      <c>Standards Action</c>
      <c>0x3</c>
      <c>Unallocated</c>
      <c>&#160;</c>
      <c>Standards Action</c>
      <c>0x4</c>
      <c>IPv4 header</c>
      <c>RFC  791</c>
      <c>&#160;</c>
      <c>0x5</c>
      <c>BIER header</c>
      <c>RFC 8296</c>
      <c>&#160;</c>
      <c>0x6</c>
      <c>IPv6 header</c>
      <c>RFC 8200</c>
      <c>&#160;</c>
      <c>0x7-e</c>
      <c>Unallocated</c>
      <c>&#160;</c>
      <c>Standards Action</c>
      <c>0xf</c>
      <c>Reserved for expansion</c>
      <c>&#160;</c>
      <c>Standards Action</c>
</texttable>

<section anchor="allocation-policy" title="Allocation Policy">

<t>All new values registered here MUST use the Standards Action policy
<xref target="RFC8126"/>.</t>

</section>
</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference anchor='RFC4928' target='https://www.rfc-editor.org/info/rfc4928'>
<front>
<title>Avoiding Equal Cost Multipath Treatment in MPLS Networks</title>
<author fullname='G. Swallow' initials='G.' surname='Swallow'><organization/></author>
<author fullname='S. Bryant' initials='S.' surname='Bryant'><organization/></author>
<author fullname='L. Andersson' initials='L.' surname='Andersson'><organization/></author>
<date month='June' year='2007'/>
<abstract><t>This document describes the Equal Cost Multipath (ECMP) behavior of currently deployed MPLS networks.  This document makes best practice recommendations for anyone defining an application to run over an MPLS network that wishes to avoid the reordering that can result from transmission of different packets from the same flow over multiple different equal cost paths.  These recommendations rely on inspection of the IP version number field in packets.  Despite the heuristic nature of the recommendations, they provide a relatively safe way to operate MPLS networks, even if future allocations of IP version numbers were made for some purpose.  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='128'/>
<seriesInfo name='RFC' value='4928'/>
<seriesInfo name='DOI' value='10.17487/RFC4928'/>
</reference>



<reference anchor='RFC8469' target='https://www.rfc-editor.org/info/rfc8469'>
<front>
<title>Recommendation to Use the Ethernet Control Word</title>
<author fullname='S. Bryant' initials='S.' surname='Bryant'><organization/></author>
<author fullname='A. Malis' initials='A.' surname='Malis'><organization/></author>
<author fullname='I. Bagdonas' initials='I.' surname='Bagdonas'><organization/></author>
<date month='November' year='2018'/>
<abstract><t>The pseudowire (PW) encapsulation of Ethernet, as defined in RFC 4448, specifies that the use of the control word (CW) is optional.  In the absence of the CW, an Ethernet PW packet can be misidentified as an IP packet by a label switching router (LSR). This may lead to the selection of the wrong equal-cost multipath (ECMP) path for the packet, leading in turn to the misordering of packets.  This problem has become more serious due to the deployment of equipment with Ethernet Media Access Control (MAC) addresses that start with 0x4 or 0x6.  The use of the Ethernet PW CW addresses this problem.  This document RECOMMENDS the use of the Ethernet PW CW in all but exceptional circumstances.</t><t>This document updates RFC 4448.</t></abstract>
</front>
<seriesInfo name='RFC' value='8469'/>
<seriesInfo name='DOI' value='10.17487/RFC8469'/>
</reference>



<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></author>
<date month='March' year='1997'/>
<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='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<date month='May' year='2017'/>
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>



<reference anchor='RFC3032' target='https://www.rfc-editor.org/info/rfc3032'>
<front>
<title>MPLS Label Stack Encoding</title>
<author fullname='E. Rosen' initials='E.' surname='Rosen'><organization/></author>
<author fullname='D. Tappan' initials='D.' surname='Tappan'><organization/></author>
<author fullname='G. Fedorkow' initials='G.' surname='Fedorkow'><organization/></author>
<author fullname='Y. Rekhter' initials='Y.' surname='Rekhter'><organization/></author>
<author fullname='D. Farinacci' initials='D.' surname='Farinacci'><organization/></author>
<author fullname='T. Li' initials='T.' surname='Li'><organization/></author>
<author fullname='A. Conta' initials='A.' surname='Conta'><organization/></author>
<date month='January' year='2001'/>
<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='RFC6790' target='https://www.rfc-editor.org/info/rfc6790'>
<front>
<title>The Use of Entropy Labels in MPLS Forwarding</title>
<author fullname='K. Kompella' initials='K.' surname='Kompella'><organization/></author>
<author fullname='J. Drake' initials='J.' surname='Drake'><organization/></author>
<author fullname='S. Amante' initials='S.' surname='Amante'><organization/></author>
<author fullname='W. Henderickx' initials='W.' surname='Henderickx'><organization/></author>
<author fullname='L. Yong' initials='L.' surname='Yong'><organization/></author>
<date month='November' year='2012'/>
<abstract><t>Load balancing is a powerful tool for engineering traffic across a network.  This memo suggests ways of improving load balancing across MPLS networks using the concept of &quot;entropy labels&quot;.  It defines the concept, describes why entropy labels are useful, enumerates properties of entropy labels that allow maximal benefit, and shows how they can be signaled and used for various applications.  This document updates RFCs 3031, 3107, 3209, and 5036.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6790'/>
<seriesInfo name='DOI' value='10.17487/RFC6790'/>
</reference>



<reference anchor='RFC6391' target='https://www.rfc-editor.org/info/rfc6391'>
<front>
<title>Flow-Aware Transport of Pseudowires over an MPLS Packet Switched Network</title>
<author fullname='S. Bryant' initials='S.' role='editor' surname='Bryant'><organization/></author>
<author fullname='C. Filsfils' initials='C.' surname='Filsfils'><organization/></author>
<author fullname='U. Drafz' initials='U.' surname='Drafz'><organization/></author>
<author fullname='V. Kompella' initials='V.' surname='Kompella'><organization/></author>
<author fullname='J. Regan' initials='J.' surname='Regan'><organization/></author>
<author fullname='S. Amante' initials='S.' surname='Amante'><organization/></author>
<date month='November' year='2011'/>
<abstract><t>Where the payload of a pseudowire comprises a number of distinct flows, it can be desirable to carry those flows over the Equal Cost Multiple Paths (ECMPs) that exist in the packet switched network. Most forwarding engines are able to generate a hash of the MPLS label stack and use this mechanism to balance MPLS flows over ECMPs.</t><t>This document describes a method of identifying the flows, or flow groups, within pseudowires such that Label Switching Routers can balance flows at a finer granularity than individual pseudowires. The mechanism uses an additional label in the MPLS label stack.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6391'/>
<seriesInfo name='DOI' value='10.17487/RFC6391'/>
</reference>



<reference anchor='RFC4385' target='https://www.rfc-editor.org/info/rfc4385'>
<front>
<title>Pseudowire Emulation Edge-to-Edge (PWE3) Control Word for Use over an MPLS PSN</title>
<author fullname='S. Bryant' initials='S.' surname='Bryant'><organization/></author>
<author fullname='G. Swallow' initials='G.' surname='Swallow'><organization/></author>
<author fullname='L. Martini' initials='L.' surname='Martini'><organization/></author>
<author fullname='D. McPherson' initials='D.' surname='McPherson'><organization/></author>
<date month='February' year='2006'/>
<abstract><t>This document describes the preferred design of a Pseudowire Emulation Edge-to-Edge (PWE3) Control Word to be used over an MPLS packet switched network, and the Pseudowire Associated Channel Header.  The design of these fields is chosen so that an MPLS Label Switching Router performing MPLS payload inspection will not confuse a PWE3 payload with an IP payload.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4385'/>
<seriesInfo name='DOI' value='10.17487/RFC4385'/>
</reference>



<reference anchor='RFC8964' target='https://www.rfc-editor.org/info/rfc8964'>
<front>
<title>Deterministic Networking (DetNet) Data Plane: MPLS</title>
<author fullname='B. Varga' initials='B.' role='editor' surname='Varga'><organization/></author>
<author fullname='J. Farkas' initials='J.' surname='Farkas'><organization/></author>
<author fullname='L. Berger' initials='L.' surname='Berger'><organization/></author>
<author fullname='A. Malis' initials='A.' surname='Malis'><organization/></author>
<author fullname='S. Bryant' initials='S.' surname='Bryant'><organization/></author>
<author fullname='J. Korhonen' initials='J.' surname='Korhonen'><organization/></author>
<date month='January' year='2021'/>
<abstract><t>This document specifies the Deterministic Networking (DetNet) data plane when operating over an MPLS Packet Switched Network.  It leverages existing pseudowire (PW) encapsulations and MPLS Traffic Engineering (MPLS-TE) encapsulations and mechanisms.  This document builds on the DetNet architecture and data plane framework.</t></abstract>
</front>
<seriesInfo name='RFC' value='8964'/>
<seriesInfo name='DOI' value='10.17487/RFC8964'/>
</reference>



<reference anchor='RFC8296' target='https://www.rfc-editor.org/info/rfc8296'>
<front>
<title>Encapsulation for Bit Index Explicit Replication (BIER) in MPLS and Non-MPLS Networks</title>
<author fullname='IJ. Wijnands' initials='IJ.' role='editor' surname='Wijnands'><organization/></author>
<author fullname='E. Rosen' initials='E.' role='editor' surname='Rosen'><organization/></author>
<author fullname='A. Dolganow' initials='A.' surname='Dolganow'><organization/></author>
<author fullname='J. Tantsura' initials='J.' surname='Tantsura'><organization/></author>
<author fullname='S. Aldrin' initials='S.' surname='Aldrin'><organization/></author>
<author fullname='I. Meilik' initials='I.' surname='Meilik'><organization/></author>
<date month='January' year='2018'/>
<abstract><t>Bit Index Explicit Replication (BIER) is an architecture that provides optimal multicast forwarding through a &quot;multicast domain&quot;, without requiring intermediate routers to maintain any per-flow state or to engage in an explicit tree-building protocol.  When a multicast data packet enters the domain, the ingress router determines the set of egress routers to which the packet needs to be sent.  The ingress router then encapsulates the packet in a BIER header.  The BIER header contains a bit string in which each bit represents exactly one egress router in the domain; to forward the packet to a given set of egress routers, the bits corresponding to those routers are set in the BIER header.  The details of the encapsulation depend on the type of network used to realize the multicast domain.  This document specifies a BIER encapsulation that can be used in an MPLS network or, with slight differences, in a non-MPLS network.</t></abstract>
</front>
<seriesInfo name='RFC' value='8296'/>
<seriesInfo name='DOI' value='10.17487/RFC8296'/>
</reference>



<reference anchor='RFC8126' target='https://www.rfc-editor.org/info/rfc8126'>
<front>
<title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
<author fullname='M. Cotton' initials='M.' surname='Cotton'><organization/></author>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<author fullname='T. Narten' initials='T.' surname='Narten'><organization/></author>
<date month='June' year='2017'/>
<abstract><t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t><t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t><t>This is the third edition of this document; it obsoletes RFC 5226.</t></abstract>
</front>
<seriesInfo name='BCP' value='26'/>
<seriesInfo name='RFC' value='8126'/>
<seriesInfo name='DOI' value='10.17487/RFC8126'/>
</reference>




    </references>

    <references title='Informative References'>





<reference anchor='RFC4364' target='https://www.rfc-editor.org/info/rfc4364'>
<front>
<title>BGP/MPLS IP Virtual Private Networks (VPNs)</title>
<author fullname='E. Rosen' initials='E.' surname='Rosen'><organization/></author>
<author fullname='Y. Rekhter' initials='Y.' surname='Rekhter'><organization/></author>
<date month='February' year='2006'/>
<abstract><t>This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers.  This method uses a &quot;peer model&quot;, in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no &quot;overlay&quot; visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other.  Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4364'/>
<seriesInfo name='DOI' value='10.17487/RFC4364'/>
</reference>



<reference anchor='RFC4761' target='https://www.rfc-editor.org/info/rfc4761'>
<front>
<title>Virtual Private LAN Service (VPLS) Using BGP for Auto-Discovery and Signaling</title>
<author fullname='K. Kompella' initials='K.' role='editor' surname='Kompella'><organization/></author>
<author fullname='Y. Rekhter' initials='Y.' role='editor' surname='Rekhter'><organization/></author>
<date month='January' year='2007'/>
<abstract><t>Virtual Private LAN Service (VPLS), also known as Transparent LAN Service and Virtual Private Switched Network service, is a useful Service Provider offering.  The service offers a Layer 2 Virtual Private Network (VPN); however, in the case of VPLS, the customers in the VPN are connected by a multipoint Ethernet LAN, in contrast to the usual Layer 2 VPNs, which are point-to-point in nature.</t><t>This document describes the functions required to offer VPLS, a mechanism for signaling a VPLS, and rules for forwarding VPLS frames across a packet switched network.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4761'/>
<seriesInfo name='DOI' value='10.17487/RFC4761'/>
</reference>



<reference anchor='RFC4762' target='https://www.rfc-editor.org/info/rfc4762'>
<front>
<title>Virtual Private LAN Service (VPLS) Using Label Distribution Protocol (LDP) Signaling</title>
<author fullname='M. Lasserre' initials='M.' role='editor' surname='Lasserre'><organization/></author>
<author fullname='V. Kompella' initials='V.' role='editor' surname='Kompella'><organization/></author>
<date month='January' year='2007'/>
<abstract><t>This document describes a Virtual Private LAN Service (VPLS) solution using pseudowires, a service previously implemented over other tunneling technologies and known as Transparent LAN Services (TLS).  A VPLS creates an emulated LAN segment for a given set of users; i.e., it creates a Layer 2 broadcast domain that is fully capable of learning and forwarding on Ethernet MAC addresses and that is closed to a given set of users.  Multiple VPLS services can be supported from a single Provider Edge (PE) node.</t><t>This document describes the control plane functions of signaling pseudowire labels using Label Distribution Protocol (LDP), extending RFC 4447.  It is agnostic to discovery protocols.  The data plane functions of forwarding are also described, focusing in particular on the learning of MAC addresses.  The encapsulation of VPLS packets is described by RFC 4448.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4762'/>
<seriesInfo name='DOI' value='10.17487/RFC4762'/>
</reference>



<reference anchor='RFC7432' target='https://www.rfc-editor.org/info/rfc7432'>
<front>
<title>BGP MPLS-Based Ethernet VPN</title>
<author fullname='A. Sajassi' initials='A.' role='editor' surname='Sajassi'><organization/></author>
<author fullname='R. Aggarwal' initials='R.' surname='Aggarwal'><organization/></author>
<author fullname='N. Bitar' initials='N.' surname='Bitar'><organization/></author>
<author fullname='A. Isaac' initials='A.' surname='Isaac'><organization/></author>
<author fullname='J. Uttaro' initials='J.' surname='Uttaro'><organization/></author>
<author fullname='J. Drake' initials='J.' surname='Drake'><organization/></author>
<author fullname='W. Henderickx' initials='W.' surname='Henderickx'><organization/></author>
<date month='February' year='2015'/>
<abstract><t>This document describes procedures for BGP MPLS-based Ethernet VPNs (EVPN).  The procedures described here meet the requirements specified in RFC 7209 -- &quot;Requirements for Ethernet VPN (EVPN)&quot;.</t></abstract>
</front>
<seriesInfo name='RFC' value='7432'/>
<seriesInfo name='DOI' value='10.17487/RFC7432'/>
</reference>



<reference anchor='RFC4446' target='https://www.rfc-editor.org/info/rfc4446'>
<front>
<title>IANA Allocations for Pseudowire Edge to Edge Emulation (PWE3)</title>
<author fullname='L. Martini' initials='L.' surname='Martini'><organization/></author>
<date month='April' year='2006'/>
<abstract><t>This document allocates the fixed pseudowire identifier and other fixed protocol values for protocols that have been defined in the Pseudo Wire Edge to Edge (PWE3) working group.  Detailed IANA allocation instructions are also included in this document.  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='116'/>
<seriesInfo name='RFC' value='4446'/>
<seriesInfo name='DOI' value='10.17487/RFC4446'/>
</reference>




    </references>



  </back>

<!-- ##markdown-source:
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
EySkI7FGSSGDhJuRT/ma0f8CE0bdIshKAAA=

-->

</rfc>

