<?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.6 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!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 I-D.bestbar-teas-ns-packet SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.bestbar-teas-ns-packet.xml">
<!ENTITY I-D.kompella-mpls-nffrr SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.kompella-mpls-nffrr.xml">
<!ENTITY I-D.nsdt-teas-ns-framework SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.nsdt-teas-ns-framework.xml">
]>

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

<rfc ipr="trust200902" docName="draft-kompella-mpls-mspl4fa-02" category="std">

  <front>
    <title abbrev="MSPL for FA">Multi-purpose Special Purpose Label for Forwarding Actions</title>

    <author initials="K." surname="Kompella" fullname="Kireeti Kompella">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>1133 Innovation Way</street>
          <city>Sunnyvale</city>
          <region>CA</region>
          <code>94089</code>
          <country>United States</country>
        </postal>
        <email>kireeti.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="V.P." surname="Beeram" fullname="Vishnu Pavan Beeram">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>1133 Innovation Way</street>
          <city>Sunnyvale</city>
          <region>CA</region>
          <code>94089</code>
          <country>United States</country>
        </postal>
        <email>vbeeram@juniper.net</email>
      </address>
    </author>
    <author initials="T." surname="Saad" fullname="Tarek Saad">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>1133 Innovation Way</street>
          <city>Sunnyvale</city>
          <region>CA</region>
          <code>94089</code>
          <country>United States</country>
        </postal>
        <email>tsaad@juniper.net</email>
      </address>
    </author>
    <author initials="I." surname="Meilik" fullname="Israel Meilik">
      <organization>Broadcom</organization>
      <address>
        <email>israel.meilik@broadcom.com</email>
      </address>
    </author>

    <date year="2022" month="February" day="08"/>

    <area>Routing</area>
    <workgroup>MPLS WG</workgroup>
    <keyword>special purpose label, slice, oam, nffrr, flow id, fragmentation</keyword>

    <abstract>


<t>The MPLS architecture introduced Special Purpose Labels (SPLs) to
indicate special forwarding actions and offered a few simple examples,
such as Router Alert.  In the two decades since the original
architecture was crafted, the range, complexity and sheer number of
such actions has grown; in addition, there now is need for “associated
data” for some of the forwarding actions.  Likewise, the capabilities
and scale of forwarding engines has also improved vastly over the same
time period.  There is a pressing need to match the needs with the
capabilities to deliver the next generation of MPLS architecture.</t>

<t>In this memo, we propose an alternate mechanism whereby a single SPL
can encode multiple forwarding actions and carry associated data, some
in the label stack and some after the label stack.  This proposal also
solves the problem of scarcity of base SPLs.</t>

<t>This approach can immediately address several use cases:</t>

<t><list style="symbols">
  <t>to carry a Slice Selector for IETF network slicing;</t>
  <t>to signal that further fast reroute may have harmful consequences;</t>
  <t>to indicate that there is relevant data after the label stack;</t>
  <t>among others.</t>
</list></t>



    </abstract>


  </front>

  <middle>


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

<t>Base Special Purpose Labels (bSPLs) are a precious commodity; there
are only 16 such values, of which 8 have already been allocated.
There are currently five requests for bSPLs that the authors are aware
of; this document proposes another use case for a bSPL, in all
consuming nearly all the remaining values.  This document suggests a
method whereby a single bSPL can be used for all the purposes
currently requested.  This leads to perhaps the more valuable
long-term contribution of this document: an approach to the definition
and use of bSPLs (and SPLs in general) whereby a single value can be
used for multiple purposes, and provide a flexible yet efficient means
of carrying associated data.</t>

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

<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 BCP 14 <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="FAI:">
  Forwarding Actions Indicator</t>
  <t hangText="FFB:">
  Forwarding Flags Block</t>
  <t hangText="ISD:">
  In-Stack Data</t>
  <t hangText="sISD:">
  Standard ISD</t>
  <t hangText="uISD:">
  User-Defined ISD</t>
  <t hangText="PSD:">
  Post-Stack Data</t>
  <t hangText="SPL:">
  Special-purpose label</t>
  <t hangText="bSPL:">
  Base special-purpose label</t>
</list></t>

</section>
<section anchor="revision-history" title="Revision History">

<t>This section (to be removed before publication) offers highlights from
the draft’s revision history.</t>

<section anchor="changes-from-00-to-01" title="Changes from -00 to -01">

<t><list style="numbers">
  <t>This section added.</t>
  <t>Added a section discussing when data should be put in the LS FAD vs
in the PL FAD.</t>
  <t>Tweaked the bits in the FAI.  Added a field “edist”.</t>
  <t>Elaborated on the use of the H bit and the FAH data.</t>
  <t>Updated the processing of the LS FAD.</t>
  <t>Added processing of edist.</t>
  <t>Updated the FAI example.</t>
  <t>Updated the Issues section.</t>
</list></t>

</section>
<section anchor="changes-from-01-to-02" title="Changes from -01 to -02">

<t><list style="numbers">
  <t>Updated Abstract and Introduction to focus on FAI; moved description
of use cases to separate section.</t>
  <t>Added terminology.</t>
  <t>Changed terminology: LS FAD and PL FAD to ISD and PSD, respectively.</t>
  <t>Updated text on criteria for putting associated data in ISD.</t>
  <t>Introduced the terms FAI Block, FFB Block, sISD Block and uISD
Block.  Introduced an “end of block” bit, s.  Updated flag bits;
updated processing of ISD.</t>
  <t>Removed field edist.</t>
  <t>Updated the section on preventing the FAI from reaching the Top of Stack.</t>
  <t>Updated the section on Readable Stack Depth</t>
</list></t>

</section>
</section>
<section anchor="slice-selector" title="Slice Selector">

<t>Network slicing is an important ongoing effort both for network
design, as well as for standardization, in particular at the IETF
<xref target="I-D.nsdt-teas-ns-framework"/>.  A key issue is identifying which
slice a packet belongs to, by means of a “slice selector” carried in
the packet header.  <xref target="I-D.bestbar-teas-ns-packet"/> describes several
such methods for MPLS networks, of which the Global Identifier for
Slice Selector (GISS) is one of the more practical solutions.  This
document shows how to realize the GISS using a base special purpose
label (bSPL).</t>

<t>In MPLS networks, a GISS is a data plane construct identifying packets
belonging to a slice aggregate (the set of packets that belong to the
slice).  The GISS dictates forwarding actions for the slice aggregate:
QoS behavior and next hop selection.  The purpose of the GISS is
detailed in <xref target="I-D.bestbar-teas-ns-packet"/>.  To embed a GISS in a
label stack, one must preface it with a bSPL identifying it as such.
For reasons that will become apparent, this bSPL is called the
Forwarding Actions Indicator (FAI).</t>

</section>
</section>
<section anchor="multi-purpose-bspl-the-forwarding-actions-indicator" title="Multi-purpose bSPL: the Forwarding Actions Indicator">

<t>This document proposes the use of a single bSPL to tell routers one or
more forwarding actions they should take on a packet, e.g.:</t>

<t><list style="symbols">
  <t>to treat a packet according to its slice, given its GISS;</t>
  <t>to load balance a packet, given its entropy;</t>
  <t>whether or not to perform fast reroute on a failure
<xref target="I-D.kompella-mpls-nffrr"/>;</t>
  <t>whether or not a packet has metadata relevant to intermediate
hops along the path;</t>
  <t>and perhaps other functions in the future.</t>
</list></t>

<t>This bSPL is called the “Forwarding Actions Indicator” (FAI).  There are
other suggestions for this name, including “Network Functions Indicator”
and “Network Actions Indicator”.  We’ll let WG consensus determine the
final choice of name, but for now, we’ll continue to use FAI.</t>

<t>The FAI uses the label’s TC bits and TTL field to inform the
forwarding plane of the required actions.  Each of these actions may
have associated data.  This data may be carried in the label stack as
“In-Stack Data” (ISD) or after the label stack as “Post-Stack Data”
(PSD).</t>

<section anchor="the-fai-bspl" title="The FAI bSPL">

<t>The design of the bSPL hinges on two key insights: forwarding engines
do not interpret the TC bits or the TTL field for labels that are not
at the top of the label stack (ToS); nor do they do so for SPLs.  For
non-ToS labels, the important bit fields are the label value field (to
compute entropy and identify SPLs) and the End of Stack (S) bit (to
know when the label stack ends).  [If you know of a forwarding engine
that looks at other bit fields of labels below the ToS, please contact
the authors.]  This means that for a bSPL that will never appear at
the ToS, the TC bits and the TTL bits can be used to carry additional
information.  Furthermore, for the ISD, the entire 4-octet label word,
the S bit excepted, can be used to carry data.  We use this technique
to make the FAI bSPL multipurpose, and to make the ISD words compact
and efficient.</t>

<section anchor="isd-vs-psd" title="ISD vs PSD">

<t>A pertinent question is when one should put data in the ISD versus in
the PSD.  One alternative is to put all such data in the PSD.
However, this would mean that accessing such information would require
finding the End of Stack, and parsing the PSD.  For certain types of
data, this would be a severe burden on the packet forwarding engine.
Examples of such data are the Entropy label (needed for efficient load
balancing) and the GISS (needed for accurate packet forwarding).
Having any of this data in the PSD would hurt forwarding performance.</t>

<t>This memo suggests that data that is required for accurate and optimal
forwarding should be put in the ISD, and data that is optional from a
forwarding point of view should be put in the PSD.  Furthermore, each
flag bit should have no more than one word of associated ISD.
The EG flag can thus have up to 2 words of associated data.</t>

<t>By the above criteria, this memo suggests that in-situ OAM data and
the Flow ID be carried in the PSD.</t>

</section>
</section>
<section anchor="format-of-the-fai-bspl" title="Format of the FAI bSPL">

<figure title="Format for FAI, ISD and PSD" anchor="FAI-FAD"><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
                                          TC b S       TTL      
                                         -----   ---------------
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         (previous forwarding label    | TC  |0|      TTL      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Forwarding Actions Indicator  |s|u|0|0|h|N|E G|x|y|z|a|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Forwarding Actions Header         |0|0|               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Forwarding Actions Header         |1|0|               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Standard In-Stack Data (sISD)     |0|0|               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Last word of sISD                 |1|0|               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         User-defined ISD (uISD)           |0|0|               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Last word of User-defined ISD     |1|0|               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Other labels                        |0|               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         End of Stack label                  |1|               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|b b b b| Payload (potentially, PSD)                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Payload                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>The FAI’s label value MUST be the IANA allocated value.  The S bit
MUST be reflect whether the label stack ends at this label or not.</t>

<section anchor="definitions-of-the-fai-flag-bits" title="Definitions of the FAI Flag Bits">

<t>The TC and TTL bits are used as flags, defined as follows:</t>

<t><list style="hanging">
  <t hangText="s:">
  sISD is present (1) or not (0).</t>
  <t hangText="u:">
  uISD is present (1) or not (0).</t>
  <t hangText="b:">
  this is the “end of block” bit that indicates the end of the Forwarding
Flags Block and the end of the ISD Block.</t>
  <t hangText="S:">
  MUST be set if the FAI is the end of stack, and clear otherwise.</t>
  <t hangText="h:">
  If set, the PSD contains hop-by-hop information. Every node in the
path SHOULD attempt to process the hop-by-hop information, but not at
the expense of exceeding the processing time budget, which could cause
this (or other) packets to be dropped.  If clear, no hop-by-hop data
exists in the PSD: either the PSD is empty, or it contains only
end-to-end data (to be processed by the egress).</t>
  <t hangText="N:">
  If set, do not do fast reroute (NFFRR).</t>
  <t hangText="EG:">
  this is a 2-bit flag indicating whether the ISD carries Entropy
and/or GISS information.</t>
</list></t>

<t>The FAI Block consists of a Forwarding Flags Block, an sISD Block and a
uISD Block.  The two ISD Blocks are optional; their presence is
indicated by the s and u bits.  Each of these three blocks end when
the b bit is set.</t>

<t>The Forwarding Flags Block extends from the FAI bSPL up to (and
including) the first label that has the b bit set.  If the FFB
consists of just the bSPL, then its b bit must be set.</t>

<t>The sISD Block extends from the label after the FFB up to (and
including) the label with the b bit set.  If there is no sISD, the s
bit in the FFB MUST be clear.</t>

<t>The uISD Block extends from the label after the sISD Block up to (and
including) the label with the b bit set.  If there is no uISD, the u
bit in the FFB MUST be clear.</t>

<t>The EG field is used as follows:</t>

<t><list style="hanging">
  <t hangText="00:">
  No Entropy or GISS present</t>
  <t hangText="01:">
  ISD 0 contains 16 bits of Entropy in the high order 16 bits and
14 bits of GISS in the low order 16 bits (S and b bits excepted).</t>
  <t hangText="10:">
  ISD 0 contains 20 bits of Entropy in the high order 20 bits and
10 bits of GISS in the low order 12 bits (S and b bits excepted).</t>
  <t hangText="11:">
  ISD 0 contains the 30-bit Entropy; ISD 1 contains the 30-bit GISS.
In ISD 0, the S and b bits MUST be 0; the packet forwarding engine
may choose to use the S and b bits as part of the Entropy, as it
doesn’t affect the outcome.  In ISD 1, the S bit may be 0 or 1.</t>
</list></t>

</section>
<section anchor="processing-the-fai-flags-and-the-isd" title="Processing the FAI Flags and the ISD">

<t>Here’s how the Standard ISD is parsed.  One must keep track of the s
bit to know when the Standard ISD Block end, and the S bit to know
when the stack ends.  The Standard ISD data appears in the order of
the corresponding flags.</t>

<t>It is an error if the label stack ends while there are more ISD
words to process.  In particular, it is an error if the FAI’s S bit
is set, but the b bit is clear.</t>

<t><list style="numbers">
  <t>If s and u are both 0, done: there is no associated ISD.</t>
  <t>Set CL (“current label”) to the FAI label.  LL is the last label
(End of Stack); PL (“payload”) is the first 4-octet word of the
payload.</t>
  <t>While b is clear:
  <list style="numbers">
      <t>increment CL</t>
    </list></t>
  <t>Process N.  CL is unchanged.</t>
  <t>If s is set, Standard ISD is present: process standard flags.  <list style="numbers">
      <t>Process EG:</t>
      <t>If EG is 00, CL is unchanged.</t>
      <t>If EG is 01 or 10, increment CL.  CL now contains both GISS and Entropy.</t>
      <t>If EG is 11, CL+1 contains Entropy; CL+2 contains GISS.  Increment CL by 2.</t>
      <t>Process other standard data-bearing flags; increment CL by 1 for each.</t>
    </list></t>
  <t>If u is set, uISD is present.  <list style="numbers">
      <t>Process uISD until b is set.</t>
    </list></t>
</list></t>

<t>Note that how the uISD is used is not defined here; this is up to the
user.  All that is included here is how a forwarding engine can tell
where the uISD block ends.</t>

</section>
<section anchor="example-of-the-fai" title="Example of the FAI">

<figure title="Example of FAI + ISD + hop-by-hop PSD" anchor="ex-fai"><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
                                              TC b S       TTL
                                             -----   ---------------
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |      Tunnel Label-1                   | TC  |0|      TTL      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |      Tunnel Label-2                   | TC  |0|      TTL      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |      Forwarding Actions Indicator     |1|1|1|0|1|1|0|1|0|0|0|0|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |      Entropy                  |   GISS ...|1|0|      ...      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |      VPN Label                        |TC   |1|      TTL      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |b b b b|                    PSD                                |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | real payload starts ...

s  =  1: there is standard ISD.
u  =  0: there is no user-defined ISD.
N  =  1: NFFRR is set.
EG = 01: ISD 0 contains Entropy + GISS.
h  =  1: There is hop-by-hop PSD.
]]></artwork></figure>

<t>The real payload starts after the PSD.</t>

</section>
</section>
</section>
<section anchor="issues-to-be-resolved" title="Issues to be Resolved">

<t>This section captures issues to be resolved, in this memo and others.
As the issues are fixed, they should be removed from here; ideally,
this section should be empty before publication.</t>

<section anchor="preventing-fai-from-reaching-top-of-stack" title="Preventing FAI From Reaching Top of Stack">

<t>As was said earlier, the FAI MUST NOT be at the top of stack, since
its TC and TTL bits have been repurposed.  There are two ways to
prevent this.  If an LSR X pops a label and the next label is the FAI,
X can pop the FAI and all ISD words.  This version of the memo
introduces the “end-of-block” (s) bit, whereby a forwarding engine
that knows the FAI can detect the entire FAI block, even if it doesn’t
know some of the flags.  This can be used in conjunction with <xref target="rsd"/>.</t>

<t>In case it is desired to preserve the FAI+FAD until the egress, X
should push an explicit NULL (label value 0 or 2) onto the stack above
the FAI, with the correct TC and TTL values.</t>

<t>Other options may be pursued; however, we believe this is an adequate
resolution.</t>

</section>
<section anchor="rsd" title="Repeating the FAI at “Readable Stack Depth”">

<t>For LSRs which cannot parse the entire label stack, or would prefer
not to unless needed, it is possible to repeat the FAI at “readable
stack depth” (rsd).  Say the rsd is 10 labels, and the FAI block is
3 labels.  Then, the FAI block can be repeated every 7 labels, allowing
all forwarding engines in the path to process it.  When a forwarding
label is popped and the FAI block exposed, it is deleted in its entirety,
since the same (or potentially different) FAI block is again within the
rsd.</t>

<t>Note that the s or u bits set to 0 can be used to indicate that the
corresponding ISD is absent.  Only the last FAI would contain the full
information, reducing the size of the label stack.  However, in this
case, LSRs that don’t process the whole stack may not load balance
less effectively, and potentially not adhere to the slice service
level objectives.</t>

<t>Other options will be described in future versions of this document.</t>

</section>
<section anchor="psd" title="PSD">

<t>The format of the PSD, whether or not a Control Word is present, and
handling of the first nibble, is outside the scope of this document.
The FAI will not contain details about the contents of the PSD,
besides the single flag on whether or not the PSD contains information
relevant to (most) intermediate hops.  It is assumed that another memo
will document the format of the PSD, and that that memo will provide a
means of parsing the PSD (e.g., a TLV structure) and thus determining
its contents.</t>

<t>The PSD memo should also comment on the impact of processing the PSD
on forwarding performance, especially in the case of hop-by-hop info.</t>

</section>
</section>
<section anchor="contributors" title="Contributors">

<t>Many thanks to Colby Barth, Chandra Ramachandran and Srihari Sangli
for their contributions to this draft.</t>

</section>
<section anchor="acknowledgments" title="Acknowledgments">

<t>We’d like to acknowledge the helpful discussions with Swamy SRK and
folks from the Broadcom team on the impacts to existing and future
forwarding engines.</t>

<t>The edist field was added thanks to Haoyu Song, who suggested the
optimization to find End of Stack.</t>

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

<t>If this draft is deemed useful and adopted as a WG document, the
authors request the allocation of a bSPL for the FAI.  We suggest the
early allocation of label 8 for this.</t>

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

<t>A malicious or compromised LSR can insert the FAI and associated data
into a label stack, preventing (for example) FRR from occurring.  If
so, protection will not kick in for failures that could have been
protected, and there will be unnecessary packet loss.  Similarly,
inserting or removing a Fragmentation Header means that a packet’s
contents cannot be accurately reconstructed.  Inserting or changing
a GISS means that the packet will be misclassified, perhaps leaving
or entering a high-value slice and causing damage.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC2119;
&RFC8174;
&I-D.bestbar-teas-ns-packet;
&I-D.kompella-mpls-nffrr;


    </references>

    <references title='Informative References'>

&I-D.nsdt-teas-ns-framework;


    </references>



  </back>

<!-- ##markdown-source:
H4sIAJU5A2IAA91c/XIbOXL/H0+BcP8wlSUZyuvc7Up1lZNlyVZWlnWivL7U
JZUCOSA5q+GAN5iRzLOcZ8mz5MnSv25gPkjae1vZ9V1F+yFqBmh0N/obDQ6H
Q1WmZWaP9OsqK9PhuirWzls9WdtZajJ9Hf6+NFOb6bkr9LkrHkyRpPlCn8zK
1OVemem0sPcEYnJ9KWNOVOJmuVkR3KQw83J451Zrm2VmuFpnfrjy6+zZ3AzH
T9XMlHbhis2R9mWi0nVxpMui8uXT8fg7em0Ka470jatKWlA9uOJuUbhqTWtd
X070u5fqzm7oaULTA8aRggwYD7TP0pkdaGdWA53P50Ux0PPMPeg0oQ+FWaxs
XhqQoZSpyqUrjpTWQ/pP6zT3R/r7kf4+4M4Phajv08LaMu2+csXiSP9rladr
W+grWwJbz298ieFH+vDwm2/0RZ67e15SvzMbfj9LS2LApMrzzb3JLD8r7IKG
HOnTExniElr3u2fjb78Lf1d5Cba9zdPSJnpCVFhZza5Mmh3pO8FxlNpy/vsF
no1mbtWl7oeRvh7p59YWZtUi74fUL/NKX5t7k7ff/p1ReD9l1H7/o2A0ym3Z
Je92pCfGJC3Kbkmg7pqHf2cElZ4Q2yZHSLkY6dc2zdK7FjEXvjCkla3nTM/z
wplEtrqGnPLQ0YqH/n4aRrBAKF+aPPlPk7mcYOZOrdMj/afSzUh5XEFsmHv6
tFnhw38olbtiRay4t0dKpfm89ddwONRmSowzs1Kp26UVJTXFbEn0zsqqsERL
WbikmoH8fSbG6z4ZEX+gS0fQkxTmoVbteWN6jJgeTZhrN5/bggAaPbcP2qdk
Yqy27w1++4Hy1WypjWcjQrt8ktmiHGnaU10SirTlOrEzk1hPU/OZ5aeuSBdp
bjLVQf6BoMxgziwZDwwrTL4g40JcpKXek0QwPn5JYqnzajWlX24eEAgILwkG
mbCH/Jh4oU2SpHjO4GiFHJbJ69wSOTCkPeO9I9ppRZWY0vT4qXcrQnHOKOzy
hGi7TO/sQ+qtYDkzazOlfS9TkjZGcEYSCwCtyTYngq3gZzLvNLGxcPeEx73x
ZbbR9LlgcJ5kj5wGoUBCmrqE1rtl5Alxo9eF9R4AmYbSaRIPIh8T8cTrh7Tk
P1UbLQxMbJbGNXL7vtQLm5N6s9YRrjuyNFKK95CWXdmVG+gHwqhwLEtktkxG
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

-->

</rfc>

