<?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.5.26 (Ruby 2.6.8) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC6790 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6790.xml">
<!ENTITY I-D.bocci-mpls-miad-adi-requirements SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.bocci-mpls-miad-adi-requirements.xml">
<!ENTITY I-D.jags-mpls-ext-hdr SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.jags-mpls-ext-hdr.xml">
<!ENTITY I-D.gandhi-mpls-ioam SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.gandhi-mpls-ioam.xml">
]>


<rfc ipr="trust200902" docName="draft-li-mpls-redefining-eli-00" category="info" submissionType="IETF">
  <front>
    <title abbrev="Redefining ELI">Redefining ELI considered harmful; NPL considered harmful</title>

    <author initials="S." surname="Bryant" fullname="Stewart Bryant">
      <organization>University of Surrey 5GIC</organization>
      <address>
        <email>sb@stewartbryant.com</email>
      </address>
    </author>
    <author initials="J." surname="Drake" fullname="John Drake">
      <organization>Juniper Networks</organization>
      <address>
        <email>jdrake@juniper.net</email>
      </address>
    </author>
    <author initials="T." surname="Li" fullname="Tony Li">
      <organization>Juniper Networks</organization>
      <address>
        <email>tony.li@tony.li</email>
      </address>
    </author>

    <date year="2022" month="April" day="07"/>

    
    <workgroup>MPLS Working Group</workgroup>
    

    <abstract>


<t>Recent work on MPLS Network Actions (MNA) has produced two drafts that
propose to redefine the MPLS Entropy Label Indicator (ELI) for use
with MNA. <xref target="I-D.jags-mpls-ext-hdr"/> <xref target="I-D.gandhi-mpls-ioam"/> This work
also proposes the use of a Network Programming Label (NPL) as another
option for use with MNA. This document considers both of these options
harmful in the sense of <xref target="GOTO"/>.</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>Recent work on MPLS Network Actions (MNA) has produced
two drafts that propose to redefine the MPLS Entropy Label Indicator
(ELI) for use with MNA. <xref target="I-D.jags-mpls-ext-hdr"/>
<xref target="I-D.gandhi-mpls-ioam"/> This work also proposes the use of a Network
Programming Label (NPL) as another option for use with MNA. This
document considers both of these options harmful in the sense of
<xref target="GOTO"/>.</t>

<section anchor="REQ-lang"><name>Requirement Language</name>

<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 BCP14
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all
capitals, as shown here.</t>

</section>
</section>
<section anchor="on-the-redefinition-of-eli"><name>On the Redefinition of ELI</name>

<t>In <xref target="I-D.jags-mpls-ext-hdr"/>, there are six claims of advantages to
reusing ELI versus using a new Special Purpose Label (SPL) or a
NPL.</t>

<section anchor="backward-compatiblity"><name>Backward Compatiblity</name>

<t>An important consideration when contemplating the use of ELI is the
question of backward compatibility. There are two risks with reuse of
ELI that need to be articulated.</t>

<section anchor="risk-of-bit-reuse"><name>Risk of Bit Reuse</name>

<t>As part of the proposal to reuse ELI, the TC and TTL fields of the
Entropy Label (EL) Label Stack Entry (LSE) will be reused to provide
fields for the In-Stack Extension Header Length (IL) and Entropy Label
Control fields (ELC).</t>

<t><xref target="RFC6790"/> says the following regarding these fields:</t>

<ul empty="true"><li>
  <t>The TTL for the EL MUST be zero to ensure that it is not used
  inadvertently for forwarding.  The TC for the EL may be any value.</t>
</li></ul>

<t>This proposal violates the first constraint. There is a small, but not
inconsequential risk that an implementation will actually check the
TTL field and change its behavior if the value is non-zero.</t>

</section>
<section anchor="threeLSEs"><name>Risk of additional LSEs</name>

<t><xref target="RFC6790"/> defines the Entropy Label as containing two LSEs,
one containing the ELI and one containing the EL.</t>

<t>This proposal also suggests adding additional LSEs after these two
LSEs. If a legacy Label Switch Router (LSR) sees the ELI and decides
to remove it from the label stack, then it will only remove the first
two LSEs, leaving any additional LSEs on the label stack and
effectively corrupting it, with unknown consequences.</t>

<t>This is a significant and unacceptable risk.</t>

<t>Signalling the use of the MNA label stack will avoid this problem,
but it also implies that the MNA label stack will not be seen by
legacy LSRs.</t>

</section>
<section anchor="BOS"><name>Risk of Bottom of Stack (BOS) data</name>

<t>If the MNA label stack implies that there is BOS data after the label
stack, and a legacy LSR processes the packet, then it will be unaware
of the BOS data and risks processing the BOS data as part of the
payload.</t>

<t>This is another significant and unacceptable risk.</t>

</section>
</section>
<section anchor="claim-1-faster-deployment"><name>Claim 1: Faster Deployment</name>

<t>The first claim is that reusing the ELI will speed deployment:</t>

<ul empty="true"><li>
  <t>Faster deployment in an existing network that has EL already deployed
   with an incremental benefit (e.g., incremental signaling extension
   for ELI capability).</t>
</li></ul>

<t>To understand this claim, consider the deployment cycle for MNA. The
steps that we, as a community, must undertake are:</t>

<t><list style="numbers">
  <t>Reach rough consensus. We must determine what we will do for
MNA. This will become a set of Internet drafts.</t>
  <t>Develop software. We must write forwarding plane and signalling
code in accordance with the above drafts. There may be some overlap
between draft development and software development.</t>
  <t>Testing. Software for a production network requires a significant
testing effort.</t>
  <t>Deployment. Even given production ready software, it must be
deployed throughout a substantial portion of an operator network. To
have significant field experience, multiple operators will have to do
this in parallel. As software upgrades are frequently service
impacting, they require scheduling maintenance windows and are not
done frequently. Further, systems are typically upgraded individually,
as failures from mass upgrades can lead to mass downtime.</t>
</list></t>

<t>Based on previous experience, this entire process is likely to take
around three to five years, depending on operator urgency. However,
the magnitude of this effort is not the issue, the claim is that using
ELI would help shorten this process.</t>

<t>Using ELI will not help shorten the consensus process
appreciably. There are many issues that need to be resolved. Using ELI
will not shorten the development cycle at all. Writing code for ELI or
another SPL will take the same amount of time. Similarly, there are no
advantages to reusing ELI during testing.</t>

<t>Finally, we must consider whether using ELI can impact the deployment
time scale. As noted in <xref target="threeLSEs"/> and <xref target="BOS"/>, exposing an
ELI label stack with added LSEs or BOS data is not compatible with
legacy LSRs. To avoid this, an operator would have to restrict their
use of the MNA label stack to only functions that could be encoded
without additional LSEs or BOS data. While this is not impossible, it
greatly limits the functionality that can be deployed and creates an
enormous operational burden on the network operator because they must
enable some, but not all MNA related functionality. If they enable
the wrong set of functions, their traffic will be lost. This seems
very limiting and fragile.</t>

<t>This is an unacceptable combination of risk and burden.</t>

<t>Signaling cannot alleviate this. Signaling would direct traffic around
legacy nodes, which would not be different than using a new SPL. As
such, the reuse of the ELI does not seem to add significant benefits
to shorten the deployment time cycle.</t>

</section>
<section anchor="claim-2-smaller-label-stack"><name>Claim 2: Smaller label stack</name>

<t>The second claim is that reusing the ELI will result in a smaller
label stack:</t>

<ul empty="true"><li>
  <t>Single label for Entropy in the MPLS header which helps with keeping
  label stack size smaller.</t>
</li></ul>

<t>If we use a new SPL to indicate a MNA label stack and entropy is one
of the defined functions within the MNA label stack, then this is not
true. There is no need to have both a MNA label stack and an ELI
simultaneously. All proposals on the table are already taking this
approach.</t>

<t>This claim is false.</t>

</section>
<section anchor="claim-3-no-new-hardware"><name>Claim 3: No new hardware</name>

<t>The third claim is:</t>

<ul empty="true"><li>
  <t>When EL is already enabled in the network, the proposed scheme does
  not require hardware to support an additional SPL indicator.</t>
</li></ul>

<t>This claim is either suggesting that (a) an additional SPL indicator
is burdensome, or (b) that hardware is required to support a new SPL
indicator, or (c) both.</t>

<t>If point (a) is the interpretation, then it must be noted that there
are already many SPLs allocated and in use. One more is not a
significant difference and this is a trivial claim.</t>

<t>If point (b) is the interpretation, then we must consider legacy
hardware. Many implementations have used microcode to process the
label stack. Adding an additional SPL is a microcode and not a
hardware change. There are possibly some implementations that do process
a label stack in pure hardware. These implementations would need a
spin to support MNA, regardless of whether or not a new SPL is used.
We must focus MNA deployment on the microcoded implementations.</t>

<t>Claim 3 is irrelevant.</t>

</section>
<section anchor="claim-4-save-an-spl"><name>Claim 4: Save an SPL</name>

<t>Claim 4 states:</t>

<ul empty="true"><li>
  <t>Save a new Special Purpose Label and related protocol extensions to
  signal its capability in LDP, RSVP-TE, BGP, IS-IS, OSPF, BGP-LS,
  etc.</t>
</li></ul>

<t>This claim makes two sub-claims. First, reusing ELI would save us from
allocating another SPL. This is true, but the risks described in
<xref target="threeLSEs"/> and <xref target="BOS"/> more than offset this small benefit.</t>

<t>Second, the claim is that reusing ELI would avoid making a signaling
change.  The development of MNA will already require that we make
signaling changes. To avoid backward compatibility problems, we will
end up signaling each and every function explicitly. Saving the
signaling effort for a separate SPL is inconsequential in this light.</t>

</section>
<section anchor="claim-5-consistent-hashing"><name>Claim 5: Consistent hashing</name>

<t>Claim 5 states:</t>

<ul empty="true"><li>
  <t>An intermediate node can compute ECMP hash with the EL field and
  avoid inconsistent load-balancing of traffic flow that can happen
  when MPLS Extension Header alters the label stack.</t>
</li></ul>

<t>If we use a new SPL, this will also be true.  The MNA substack will
contain support for an entropy action and the ISD will contain an EL
field. Transit nodes will be able to hash on this EL field.</t>

<t>Claim 5 is incorrect, as it not an advantage. It is exactly the same
as a new SPL.</t>

</section>
<section anchor="claim-6-smaller-label-stack"><name>Claim 6: Smaller label stack</name>

<t>Claim 6 states:</t>

<ul empty="true"><li>
  <t>Reduce MPLS Label stack size when EL is enabled for ECMP hashing when
  MPLS Extension Header is also used.  As there is only one field for
  EL in the MPLS Header, it simplifies the MPLS header processing.</t>
</li></ul>

<t>Assuming our MNA solution includes EL as part of its label stack,
this is always true, regardless of SPL.</t>

<t>Claim 6 is false.</t>

</section>
</section>
<section anchor="on-the-use-of-network-programming-labels-npl"><name>On the use of Network Programming Labels (NPL)</name>

<t>NPL is not defined in an IETF document that the authors could find.
An external reference <xref target="TDC"/> says:</t>

<ul empty="true"><li>
  <t>Network programming labels may be allocated from the global SR
  Global Block (SRGB) for SR Multiprotocol Label Switching (SR-MPLS)
  by a Software Defined Networking (SDN) controller.</t>
</li></ul>

<t>This would seem to imply that an NPL is specific to an SR
solution. However, the MNA requirements
<xref target="I-D.bocci-mpls-miad-adi-requirements"/> section 3.1.1, requirement
12 says:</t>

<ul empty="true"><li>
  <t>Data plane mechanisms for ADIs MUST be independent of the control
  plane type (LDP, RSVP, BGP, static, IGP, etc).</t>
</li></ul>

<t>This would seem to be contradictory.</t>

<t>If the NPL is an arbitrary label selected and and configured by
the network operator, this would seem to be an undue burden on the
operator. The purpose of standards is to avoid having unique items
that must be managed intependently.</t>

</section>
<section anchor="conclusion"><name>Conclusion</name>

<t>This document has shown that the use of ELI or NPL to initiate MNA
processing has significant risks and limitations. While some may be
willing to accept the risks on their behalf, the decisions that must
be made will affect all players in the industry and must be
commensurate with everyone's risk tolerance. Accordingly, reusing ELI
would seem to be a poor choice and that the industry would be better
served if we simply used a new SPL.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC2119;
&RFC8174;
&RFC6790;
&I-D.bocci-mpls-miad-adi-requirements;


    </references>

    <references title='Informative References'>

&I-D.jags-mpls-ext-hdr;
&I-D.gandhi-mpls-ioam;
<reference anchor="GOTO" target="https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf">
  <front>
    <title>Go To Statement Considered Harmful</title>
    <author initials="E. W." surname="Dijkstra" fullname="Edsger W. Dijkstra">
      <organization>Mathematisch Centrum, Amsterdam</organization>
    </author>
    <date year="1968"/>
  </front>
  <seriesInfo name="DOI" value="10.1145/362929.362947"/>
  <seriesInfo name="in" value="Communications of The Association for Computing Machinery"/>
  <seriesInfo name="volume" value="11"/>
  <seriesInfo name="number" value="3"/>
  <seriesInfo name="pages" value="147-148"/>
</reference>
<reference anchor="TDC" target="https://www.tdcommons.org/cgi/viewcontent.cgi?article=3237&amp;context=dpubs_series">
  <front>
    <title>Network Programming for Performance and Liveness Monitoring In Segment Routing Networks</title>
    <author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
      <organization></organization>
    </author>
    <author initials="R." surname="Gandhi" fullname="Rakesh Gandhi">
      <organization></organization>
    </author>
    <date year="2019" month="May"/>
  </front>
  <seriesInfo name="Technical Disclosure Commons" value=""/>
</reference>


    </references>



  </back>

<!-- ##markdown-source:
H4sIAAY2T2IAA51aa3PbuJL9jl+BzVTt2lUSEzuZZOKtuzuO7WQ85de1nJva
T1sQCUkYkwQHIK3ourK/fU83AJJSnGTqpiplScSj0X26+3SD0+lU5LYw9fJI
du1i+otoTVvqI3mrC70wNR7Is4tzmdvam0I7XciVctWiK/9TXt1cPPG7UPO5
0w+7K4jC5rWqsHLh1KKdlmZaNaWfun7UVOO3Fy/EGqJc3lzM5Cfr7mn2B2e7
RuSq1UvrNkfS1AsrfDevjPfG1u2mwarnZ3fvhWnckWxd59vDFy/evjgUQnXt
yrojIeUU//mfqf2RnGXynduouk2/BtlmrV4r1+48sw4ifazNg3betBtpF3LW
Oac38ucP5ydplK6UKY+kn//qwypzXiTLbfXV9r9n8tSpe729++92VW//zjv/
3tWm0U5e6XYNlfidDf8oaMavf4RRWa3br7a7y+SF2d7rztab0Y9/ZaMWU7LS
/Br/ClFbV6kWaiH93r4/OTw4eBs//nLw5tWRFIJsNRp0Pj3N/lBLH2yvP7fT
VeHSg6Wqi1WEhbGqot8/XN9dH7EcEZcfLESHnYCGStetPBkA+FsEII9Wbqnb
I7lq28YfPX++spVu1FL7LF+brC6f/59vIdjzVqt8BZA9d1phleen5o973zr1
+pesKRa8VIGtjuTB29e/8FevndGeznUU9XN6fY7nL7KDg1c/P3/5+vDt4duM
/rx6I5INjiBnVUG9QDEg6wlCdystj723ueHfJBRFo5quJdBfslzabeIaD7bs
yG4HB/GHuqvmGnB/Gb/z6fD81Zvpwasg6gB++tdDImDiLPsEEMbj9o8COM4K
vwQOnhrAQLlU7UqTVX2+kicwg+uqiTyuAHxXKIL73enJltmeRUzJG2eXTlUV
nZFOfKMdI6TOtYT9AckHXWvv5aWtDUyEcXHv81rO9JKNfmuDkhJQnz1p8/V6
nbUF3K+CxjMI/jxfmucPRq8RtVpNrrk0/w1HNXmp//by8OWbf+cHn9u/FU03
9/8bTL1rdXmn8xVZsoR2fF5a3znN9sU2I8Rcqo08nMjDFwdvf2yNk0y+N6Vf
4P+OLU5K5TRpZ+f5zgK3mfzA/rMz/Raxwa/Ss+l0KtWcDJq3QtzqnLTJdgEA
OegmOx3nAah7l1fH+4jtXjbOFl0OP8OAEMS9bFeqFXjQWK8RH2SM5vgMcPN6
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
snVN3i4AAA==

-->

</rfc>

