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


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

<!ENTITY I-D.ietf-mpls-mna-requirements SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-mpls-mna-requirements.xml">
<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3031 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3031.xml">
<!ENTITY RFC3032 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3032.xml">
<!ENTITY RFC4385 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4385.xml">
<!ENTITY RFC5920 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5920.xml">
<!ENTITY RFC7274 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7274.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC9017 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9017.xml">
<!ENTITY I-D.ietf-mpls-opportunistic-encrypt SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-mpls-opportunistic-encrypt.xml">
<!ENTITY I-D.ietf-mpls-1stnibble SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-mpls-1stnibble.xml">
<!ENTITY RFC3272 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3272.xml">
<!ENTITY RFC4928 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4928.xml">
<!ENTITY RFC5714 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5714.xml">
<!ENTITY RFC6790 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6790.xml">
<!ENTITY RFC8279 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8279.xml">
<!ENTITY RFC8296 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8296.xml">
<!ENTITY RFC8402 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml">
<!ENTITY RFC8491 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8491.xml">
<!ENTITY RFC8662 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8662.xml">
<!ENTITY RFC9088 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9088.xml">
<!ENTITY RFC9089 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9089.xml">
]>


<rfc ipr="trust200902" docName="draft-ietf-mpls-mna-fwk-09" category="info" submissionType="IETF">
  <front>
    <title abbrev="MNA Framework">MPLS Network Actions (MNA) Framework</title>

    <author initials="L." surname="Andersson" fullname="Loa Andersson">
      <organization>Huawei Technologies</organization>
      <address>
        <email>loa@pi.nu</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="T." surname="Li" fullname="Tony Li">
      <organization>Juniper Networks</organization>
      <address>
        <email>tony.li@tony.li</email>
      </address>
    </author>

    <date year="2024" month="June" day="19"/>

    
    <workgroup>MPLS Working Group</workgroup>
    

    <abstract>


<t>This document specifies an architectural framework for the MPLS
Network Actions (MNA) technologies.  MNA technologies are used to
indicate actions that impact the forwarding or other processing (such
as monitoring) of the packet along the Label Switched Path (LSP) of
the packet and to transfer any additional data needed for these
actions.</t>

<t>The document provides the foundation for the development of a common
set of network actions and information elements supporting additional
operational models and capabilities of MPLS networks.  Some of these
actions are defined in existing MPLS specifications, while others
require extensions to existing specifications to meet the requirements
found in "Requirements for Solutions that Support MPLS Network Actions
(MNA)".</t>



    </abstract>



  </front>

  <middle>


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

<t>This document specifies an architectural framework for the MPLS
Network Actions (MNA) technologies.  MNA technologies are used to
indicate actions for Label Switched Paths (LSPs) and/or MPLS packets
and to transfer data needed for these actions.</t>

<t>The document provides the foundation for the development of a common
set of network actions and information elements supporting additional
operational models and capabilities of MPLS networks.  MNA solutions
derived from this framework are intended to address the requirements
found in <xref target="I-D.ietf-mpls-mna-requirements"/>. In addition, MNA may
support actions that overlap existing MPLS functionality. This may be
beneficial for numerous reasons, such as making it more efficient to
combine existing functionality and new functions in the same MPLS
packet.</t>

<t>MPLS forwarding actions are instructions to MPLS routers to apply
additional actions when forwarding a packet. These might include
load-balancing a packet given its entropy, whether or not to perform
fast-reroute on a failure, and whether or not a packet has metadata
relevant to the forwarding actions along the path.</t>

<t>This document generalizes the concept of MPLS "forwarding actions" into
"network actions" to include any action that an MPLS router is
requested to take on the packet. That includes any MPLS forwarding
action, but may include other operations (such as security functions,
OAM procedures, etc.) that are not directly related to forwarding of
the packet. MPLS network actions are always triggered by an MNA
packet but may have implications for subsequent traffic, including
non-MNA packets, as discussed in <xref target="State"/>.</t>

<t>MNA technologies may redefine the semantics of the Label, Traffic
Class (TC), and Time to Live (TTL) fields in an MPLS Label Stack Entry
(LSE) within a NAS.</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 BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
These words may also appear in this document in
lower case as plain English words, absent their normative meanings.</t>

<t>Although this is an Informational document, these conventions are
applied to achieve clarity in the requirements that are presented.</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<section anchor="normative-definitions"><name>Normative Definitions</name>

<t>This document adopts the definitions of the following terms and
abbreviations from <xref target="I-D.ietf-mpls-mna-requirements"/> as
normative: "Network Action", "Network Action Indication (NAI)",
"Ancillary Data (AD)", and "Scope".</t>

<t>In addition, this document also defines the following terms:</t>

<t><list style="symbols">
  <t>Network Action Sub-Stack (NAS): A set of related, contiguous LSEs in
the MPLS label stack for carrying information related to network
actions. The Label, TC, and TTL values in the LSEs in the NAS may be
redefined, but the meaning of the S bit is unchanged.</t>
  <t>Network Action Sub-Stack Indicator (NSI): The first LSE in the NAS
contains a special label that indicates the start of the NAS.</t>
</list></t>

</section>
<section anchor="abbreviations"><name>Abbreviations</name>

<texttable title="Abbreviations" anchor="Tab-apprev">
      <ttcol align='left'>Abbreviation</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>AD</c>
      <c>Ancillary Data</c>
      <c><xref target="I-D.ietf-mpls-mna-requirements"/></c>
      <c>BIER</c>
      <c>Bit Index Explicit Replication</c>
      <c><xref target="RFC8279"/></c>
      <c>BoS</c>
      <c>Bottom of Stack</c>
      <c><xref target="RFC6790"/></c>
      <c>bSPL</c>
      <c>Base Special Purpose Label</c>
      <c><xref target="RFC9017"/></c>
      <c>ECMP</c>
      <c>Equal Cost Multipath</c>
      <c><xref target="RFC3272"/></c>
      <c>EL</c>
      <c>Entropy Label</c>
      <c><xref target="RFC6790"/></c>
      <c>ERLD</c>
      <c>Entropy Readable Label Depth</c>
      <c><xref target="RFC8662"/></c>
      <c>eSPL</c>
      <c>Extended Special Purpose Label</c>
      <c><xref target="RFC9017"/></c>
      <c>HBH</c>
      <c>Hop by hop</c>
      <c>In the MNA context, this document.</c>
      <c>I2E</c>
      <c>Ingress to Egress</c>
      <c>In the MNA context, this document.</c>
      <c>IGP</c>
      <c>Interior Gateway Protocol</c>
      <c>&#160;</c>
      <c>ISD</c>
      <c>In-stack data</c>
      <c><xref target="I-D.ietf-mpls-mna-requirements"/></c>
      <c>LSE</c>
      <c>Label Stack Entry</c>
      <c><xref target="RFC3032"/></c>
      <c>MNA</c>
      <c>MPLS Network Actions</c>
      <c><xref target="I-D.ietf-mpls-mna-requirements"/></c>
      <c>MSD</c>
      <c>Maximimum SID Depth</c>
      <c><xref target="RFC8491"/></c>
      <c>NAI</c>
      <c>Network Action Indicator</c>
      <c><xref target="I-D.ietf-mpls-mna-requirements"/></c>
      <c>NAS</c>
      <c>Network Action Sub-Stack</c>
      <c>This document</c>
      <c>NSI</c>
      <c>Network Action Sub-Stack Indicator</c>
      <c>This document</c>
      <c>PSD</c>
      <c>Post-stack data</c>
      <c><xref target="I-D.ietf-mpls-mna-requirements"/> and <xref target="PSD"/></c>
      <c>RLD</c>
      <c>Readable Label Depth</c>
      <c>This document</c>
      <c>SID</c>
      <c>Segment Identifier</c>
      <c><xref target="RFC8402"/></c>
      <c>SPL</c>
      <c>Special Purpose Label</c>
      <c><xref target="RFC9017"/></c>
</texttable>

</section>
</section>
</section>
<section anchor="structure"><name>Structure</name>

<t>An MNA solution specifies one or more network actions to apply to an
MPLS packet.  These network actions and their ancillary data may be carried in
sub-stacks within the MPLS label stack and/or post-stack
data.  A solution must specify where in the label stack the network
actions sub-stacks occur, if and how frequently they should be
replicated within the label stack, and how the network action
sub-stack and post-stack data are encoded.</t>

<t>It seems highly likely that some ancillary data will be needed at many
points along an LSP.  Replication of ancillary data throughout the
label stack would be highly inefficient, as would a full rewrite of
the label stack at each hop, so MNA allows encoding of network actions
and ancillary data deeper in the label stack, requiring
implementations to look past the first LSE.  Processing of the label
stack past the top of stack LSE was first introduced with the Entropy
Label.<xref target="RFC6790"/></t>

<t>A network action sub-stack contains:</t>

<t><list style="symbols">
  <t>Network Action Sub-Stack Indicator (NSI): The first LSE in the NAS
contains a special purpose label, called the MNA label, which
is used to indicate the start of a network action sub-stack.</t>
  <t>Network Action Indicators (NAI): Optionally, a set of indicators that
describes the set of network actions. If the set of indicators is not
in the sub-stack, a solution could encode them in post-stack data. A
network action is said to be present if there is an indicator in the
packet that invokes the action.</t>
  <t>In-Stack Data (ISD): A set of zero or more LSEs that carry ancillary data
for the network actions that are present. Network action indicators
are not considered ancillary data.</t>
</list></t>

<t>Each network action present in the network action sub-stack may have
zero or more LSEs of in-stack data. The ordering of the in-stack data
LSEs corresponds to the ordering of the network action indicators. The
encoding of the in-stack data, if any, for a network action must be
specified in the document that defines the network action. In-stack
data may be referenced by multiple network actions.</t>

<t>Certain network actions may also specify that data is carried after
the label stack. This is called post-stack data. The encoding of the
post-stack data, if any, for a network action must be specified in the
document that defines the network action.  If multiple network actions
are present and have post-stack data, the ordering of their post-stack
data corresponds to the ordering of the network action indicators.</t>

<t>A solution must specify the order for network actions to be
applied to the packet for the actions to have consistent
semantics. Since there are many possible orderings, especially with
bit catalogs (<xref target="Catalogs"/>), the solution must provide an unambiguous
specification. The precise semantics of an action are dependent on the
contents of the packet, including any ancillary data, and the state of
the router.</t>

<t>This document assumes that the MPLS WG will select not more than one
solution for the encoding of ISD and not more than one solution for
the encoding of PSD.</t>

<section anchor="scopes"><name>Scopes</name>

<t>A network action may need to be processed by every node along the
path, or some subset of the nodes along its path. Some of the scopes
that an action may have are:</t>

<t><list style="symbols">
  <t>Hop-by-hop (HBH): Every node along the path will perform the action.</t>
  <t>Ingress-to-Egress (I2E): Only the last node on the path will perform
the action.</t>
  <t>Select: Only specific nodes along the path will perform the action.</t>
</list></t>

<t>If a solution supports the select scope, it must describe how it
specifies the set of nodes to perform the actions.</t>

<t>This framework does not place any constraints on the scope of, or the
ancillary data for, a network action.  Any network action may appear in
any scope or combination of scopes, may have no ancillary data, and may
require in-stack data, and/or post-stack data.  Some combinations may
be sub-optimal, but this framework does not place any limitations on
an MNA solution.  A specific MNA solution may define such constraints.</t>

</section>
<section anchor="partial-processing"><name>Partial Processing</name>

<t>As described in <xref target="RFC3031"/>, legacy devices that do not recognize the
MNA label will discard the packet if the top label is the MNA label.</t>

<t>Devices that do recognize the MNA label might not implement all of the
network actions that are present. A solution must specify how
unrecognized network actions that are present should be handled.</t>

<t>One alternative is that an implementation should stop processing
network actions when it encounters an unrecognized network
action. Subsequent present network actions would not be
applied. The result is dependent on the solution's order of
operations.</t>

<t>Another alternative is that an implementation should drop any packet
that contains any unrecognized present network actions.</t>

<t>A third alternative is that an implementation should perform all
recognized present network actions, but ignore all unrecognized
present network actions.</t>

<t>Other alternatives may also be possible and should be specified by the
solution.</t>

<t>In some solutions, an indication may be provided in the packet or in
the action as to how the forwarder should proceed if it does not
recognize the action. Where an action needs to be processed at every hop,
it is recommended that care be taken not to construct an LSP that
traverses nodes that do not support that action. It is recognised that
in some circumstances it may not be possible to construct an LSP that
avoids such nodes, such as when a network is re-converging
following a failure or when IPFRR <xref target="RFC5714"/> is taking place.</t>

</section>
<section anchor="signaling"><name>Signaling</name>

<t>A node that wishes to make use of MNA and apply network actions to a
packet must understand the nodes that the packet will transit, whether
or not the nodes support MNA, and the network actions that are to be
invoked. These capabilities are presumed to be signaled by protocols
that are out-of-scope for this document and are presumed to have
per-network action granularity. If a solution requires alternate
signaling, it must specify that explicitly.</t>

<t>If a node does not support MNA, then it is presumed to simply ignore
it.</t>

<section anchor="readable-label-depth"><name>Readable Label Depth</name>

<t>Readable Label Depth (RLD) is defined as the number of LSEs, starting
from the top of the stack, that a router can read in an incoming MPLS
packet with no performance impact.  <xref target="RFC8662"/> introduced Entropy
Readable Label Depth (ERLD). Readable Label Depth is the same concept,
but generalized and not specifically associated with the Entropy Label
(EL) or MNA.</t>

<t>ERLD is not redundant with RLD because ERLD specifically
specifies a value of zero if a system does not support the Entropy
Label. Since a system could reasonably support MNA or other MPLS
functions and needs to advertise an RLD value but not support the
Entropy Label, another advertised value is required.</t>

<t>A node that pushes an NAS onto the label stack is responsible for
ensuring that all nodes that are expected to process the NAS will have
the entire NAS within their RLD. A node SHOULD use signaling (e.g.,
<xref target="RFC9088"/>, <xref target="RFC9089"/>) to determine this.</t>

<t>Per <xref target="RFC8662"/>, a node that does not support EL will advertise a
value of zero for its ERLD, so advertising ERLD alone does not suffice
in all cases. A node MAY advertise both ERLD and RLD and SHOULD do so
if its ERLD and RLD values are different. If a node's ERLD and RLD
values are the same, it MAY only advertise ERLD for efficiency
reasons. If a node supports MNA but does not support EL, then it
SHOULD advertise RLD.</t>

<t>RLD is advertised by an IGP MSD-Type value of (TBA) and MAY be
advertised as a Node Maximum Segment Identifier (SID) Depth (MSD),
Link MSD, or both.</t>

<t>An MNA node MUST use the RLD determined by selecting the first
advertised non-zero value from:</t>

<t><list style="symbols">
  <t>The RLD advertised for the link.</t>
  <t>The RLD advertised for the node.</t>
  <t>The non-zero ERLD for the node.</t>
</list></t>

<t>A node's RLD is a function of its hardware capabilities and is not
expected to depend on the specifics of the MNA solution.</t>

</section>
</section>
<section anchor="State"><name>State</name>

<t>A network action can affect the state stored in the network. This
implies that a packet may affect how subsequent packets are
handled. In particular, one packet may affect subsequent packets in
the same LSP.</t>

</section>
</section>
<section anchor="carry"><name>Encoding</name>

<t>Several possible ways to encode NAIs have been proposed.  In this
section, we summarize the proposals and some considerations for
the various alternatives.</t>

<t>When network actions are carried in the MPLS label stack, then
regardless of their type, they are represented by a set of LSEs termed
a network action sub-stack (NAS).  An NAS consists of a special label,
optionally followed by LSEs that specify which network actions are to
be performed on the packet and the in-stack ancillary data for each
indicated network action. Different network actions may be placed
together in one NAS or may be carried in different sub-stacks.</t>

<t><xref target="I-D.ietf-mpls-mna-requirements"/> requires that a solution not add
unnecessary LSEs to the sub-stack (Section 3.1, requirement
9). Accordingly, solutions should also make efficient use of the bits
within the sub-stack (except the S-bit), as inefficient use of the
bits could result in the addition of unnecessary LSEs.</t>

<section anchor="NAI"><name>The MNA Label</name>

<t>The first LSE in a network action sub-stack contains a special label
that indicates a network action sub-stack. A solution has several
choices for this special label.</t>

<section anchor="existing-base-spl"><name>Existing Base SPL</name>

<t>A solution may reuse an existing Base SPL (bSPL). If it elects to do
so, it must explain how the usage is backward compatible, including
in the case where there is ISD.</t>

<t>If an existing inactive bSPL is selected that will not be
backward compatible, then it must first be retired per
<xref target="RFC7274"/> and then reallocated.</t>

</section>
<section anchor="new-base-spl"><name>New Base SPL</name>

<t>A solution may select a new bSPL.</t>

</section>
<section anchor="new-extended-spl"><name>New Extended SPL</name>

<t>A solution may select a new Extended SPL (eSPL). If it elects to do so, it must
address the requirement for the minimal number of LSEs.</t>

</section>
<section anchor="user-defined-label"><name>User-Defined Label</name>

<t>A solution may allow the network operator to define the label that
indicates the network action sub-stack. This creates management
overhead for the network operator to coordinate the use of this label
across all nodes on the path using management or signaling
protocols. The user-defined label could be network-wide or
LSP-specific.  If a solution elects to use a user-defined label, the
solution should justify this overhead.</t>

</section>
</section>
<section anchor="tc-and-ttl"><name>TC and TTL</name>

<t>In the first LSE of the network action sub-stack, only the 20 bits of
Label Value and the Bottom of Stack bit are used by NSI; the TC field
(3 bits) and the TTL (8 bits) are not used.  This could leave 11 bits
that could be used for MNA purposes.</t>

<section anchor="tc-and-ttl-retained"><name>TC and TTL retained</name>

<t>If the solution elects to retain the TC and TTL fields, then the first
LSE of the network action sub-stack would appear as:</t>

<figure><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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               Label                   | TC  |S|      TTL      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                Label:  Label value, 20 bits
                TC:     Traffic Class, 3 bits
                S:      Bottom of Stack, 1 bit
                TTL:    Time To Live
]]></artwork></figure>

<t>Further LSEs would be needed to encode NAIs.  If a solution elects to
retain these fields, it must address the requirement for the minimal
number of LSEs.</t>

</section>
<section anchor="tc-and-ttl-repurposed"><name>TC and TTL Repurposed</name>

<t>If the solution elects to reuse the TC and TTL fields, then the first
LSE of the network action sub-stack would appear as:</t>

<figure><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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                Label                  |x x x|S|x x x x x x x x|
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                Label:  Label value, 20 bits
                x:      Bit available for use in solution definition
                S:      Bottom of Stack, 1 bit
]]></artwork></figure>

<t>The solution may use more LSEs to contain NAIs.  If a solution elects
to use more LSEs it must address the requirement for the minimal
number of LSEs.</t>

</section>
</section>
<section anchor="length-of-the-nas"><name>Length of the NAS</name>

<t>A solution must have a mechanism (such as an indication of the length
   of the NAS) to enable an implementation to find the end of the NAS.
   This must be easily processed even by implementations that do not
   understand the full contents of the NAS.  Two options are described
   below, other solutions may be possible.</t>

<section anchor="lastcontinuation-bits"><name>Last/Continuation Bits</name>

<t>A solution may use a bit per LSE to indicate whether the NAS continues
into the next LSE or not. The bit may indicate continuation by being
set or by being clear. The overhead of this approach is one bit per
LSE and has the advantage that it can effectively encode an
arbitrarily sized NAS. This approach is efficient if the NAS is small.</t>

</section>
<section anchor="length-field"><name>Length Field</name>

<t>A solution may opt to have a fixed size length field at a fixed
location within the NAS. The fixed size of the length field may not be
large enough to support all possible NAS contents. This approach may
be more efficient if the NAS is longer but not longer than can be
described by the length field.</t>

<t>Advice from one hardware designer recommends a length field as this
minimizes branching in the logic.</t>

</section>
</section>
<section anchor="encoding-of-scopes"><name>Encoding of Scopes</name>

<t>A solution may choose to explicitly encode the scope of each action
contained in a network action sub-stack. For example, a NAS might
contain Action A (HBH), Action B (HBH), and Action C (HBH).  A
solution may alternately choose to have the scope encoded implicitly,
based on the actions present in the network action sub-stack. For
example, a NAS might contain HBH scope actions: A, B, C.  This choice
may have performance implications as an implementation might have to
parse the network actions that are present in a network action
sub-stack only to discover that there are no actions for it to
perform.</t>

<t>For example, suppose that an NAS is embedded in a label stack at a
depth of 6 LSEs and that the NAS contains 3 actions, each with Select
scope. These actions are not applicable at the current node and should
be ignored. If the scope is encoded explicitly with each action, then
an implementation must parse each action. However, if the scope is
encoded as part of the NAS, then an implementation need only parse the
start of the NAS and need not parse individual actions.</t>

<t>Solutions need to consider the order of scoped NAIs and their
associated AD within individual sub-stacks and the order of per-scope
sub-stacks so that network actions and the AD can be most
readily found and need not be processed by nodes that are not required
to handle those actions.</t>

</section>
<section anchor="INDEX"><name>Encoding a Network Action</name>

<t>Two options for encoding NAIs are described below, other solutions may
be possible. Any solution should allow the encoding of an arbitrary
number of NAIs.</t>

<section anchor="Catalogs"><name>Bit Catalogs</name>

<t>A solution may opt to encode the set of network actions as a list of
bits, sometimes known as a catalog. The solution must provide a
mechanism to determine how many LSEs are devoted to the catalog when
the NAIs are carried in-stack. A set bit in the catalog would indicate
that the corresponding network action is present.</t>

<t>Catalogs are efficient if the number of present network actions is
relatively high and if the size of the necessary catalog is small. For
example, if the first 16 actions are all present, a catalog can encode
this in 16 bits. However, if the number of possible actions is large,
then a catalog can become inefficient. Selecting only one action that
is the 256th action would require a catalog of 256 bits, which would
require more than one LSE when the NAIs are carried in-stack.</t>

<t>A solution may include a bit remapping mechanism so that a given
domain may optimize for its commonly used actions.</t>

</section>
<section anchor="operation-codes"><name>Operation Codes</name>

<t>A solution may opt to encode the set of present network actions as a
list of operation codes (opcodes).  Each opcode is a fixed number of
bits. The size of the opcode bounds the number of network actions
that the solution can support.</t>

<t>Opcodes are efficient if there are only one or two active network
actions. For example, if an opcode is 8 bits, then two active network
actions could be encoded in 16 bits. However, if 16
actions are required, then opcodes would consume 128 bits. Opcodes are
efficient at encoding a large number of possible actions. If only
the 256th action is to be selected, that still requires 8 bits.</t>

</section>
</section>
<section anchor="PSD"><name>Encoding of Post-Stack Data</name>

<t>A solution may carry some NAI and AD as PSD. For ease of parsing, all
AD should be co-located with its NAI.</t>

<t>If there are multiple instances of post-stack data, they should occur
in the same order as their relevant network action sub-stacks and then
in the same order as their relevant network actions occur within the
network action sub-stacks.</t>

<section anchor="first-nibble-considerations"><name>First Nibble Considerations</name>

<t>The first nibble after the label stack has been used to convey
   information in certain cases <xref target="RFC4385"/>. A consolidated view of
   first nibble uses is provided in <xref target="I-D.ietf-mpls-1stnibble"/>.</t>

<t>For example, in <xref target="RFC4928"/> this nibble is investigated to find out
   if it has the value "4" or "6". If it is not, it is assumed that
   the packet payload is not IPv4 or IPv6, and Equal Cost Multipath
   (ECMP) is not performed.</t>

<t>It should be noted that this is an inexact method. For example, an Ethernet
   Pseudowire without a control word might have "4" or "6" in the first
   nibble and thus will be ECMP'ed.</t>

<t>Nevertheless, the method is implemented and deployed, it is used
   today and will be for the foreseeable future.</t>

<t>The use of the first nibble for Bit Index Explicit Replication
   (BIER) is specified in <xref target="RFC8296"/>. BIER sets the first nibble to
   5. The same is true for a BIER payload as for any use of the first
   nibble: it is not possible to conclude that the payload is BIER
   even if the first nibble is set to 5 because an Ethernet pseudowire
   without a control word might begin with a 5.  However, the BIER
   approach meets the design goal of <xref target="RFC8296"/> to determine that the
   payload is IPv4, IPv6 or a pseudowire using a control word.</t>

<t><xref target="RFC4385"/> allocates 0b0000 for the pseudowire control word and 0b0001
 as the control word for the pseudowire Associated Channel Header
 (ACH).</t>

<t>A PSD solution should specify the contents of the first nibble, the
actions to be taken for the value, and the interaction with post-stack
data used concurrently by other MPLS applications.</t>

</section>
</section>
</section>
<section anchor="semantics"><name>Semantics</name>

<t>For MNA to be consistent across implementations and predictable in
operational environments, its semantics need to be entirely
predictable. An MNA solution MUST specify a deterministic order for
processing each of the Network Actions in a packet. Each network
action must specify how it interacts with all other previously defined
network actions. Private network actions are network actions that are
not publicly documented. Private network actions MUST be included in
the ordering of network actions, but the interactions of private
actions with other actions are outside of the scope of this document.</t>

</section>
<section anchor="definition-of-a-network-action"><name>Definition of a Network Action</name>

<t>Network actions should be defined in a document and must contain:</t>

<t><list style="symbols">
  <t>Name: The name of the network action.</t>
  <t>Network Action Indicator: The bit position or opcode that indicates
that the network action is active.</t>
  <t>Scope: The document should specify which nodes should perform the
  network action as described in <xref target="scopes"/>.</t>
  <t>State: The document should specify if the network action can modify
state in the network, and if so, the state that may be modified and
its side effects.</t>
  <t>Required/Optional: The document should specify whether a node is
required to perform the network action.</t>
  <t>In-Stack Data: The number of LSEs of in-stack data, if any, and its
encoding. If this is of a variable length, then the solution must
specify how an implementation can determine this length without
implementing the network action.</t>
  <t>Post-Stack Data: The encoding of post-stack data, if any. If this is of a
variable length, then the solution must specify how an
implementation can determine this length without implementing the
network action.</t>
</list></t>

<t>A solution should create an IANA registry for network
actions.</t>

</section>
<section anchor="management-considerations"><name>Management Considerations</name>

<t>Network operators will need to be cognizant of which network actions
are supported by which nodes and will need to ensure that this is
signaled. Some solutions may require network-wide
configuration to synchronize the use of the labels that indicate the
start of an NAS. Solution documents must make clear what management
considerations apply to the solutions they are describing. Solutions
documents must describe mechanisms for performing network diagnostics
in the presence of MNAs.</t>

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

<t>An analysis of the security of MPLS systems is provided in
<xref target="RFC5920"/>, which also notes that the MPLS forwarding plane has no
built-in security mechanisms.</t>

<t>Central to the security of MPLS networks is operational security of
the network; something that operators of MPLS networks are well versed
in.  The deployment of link-level security (e.g., <xref target="MACsec"/>) prevents
the covert acquisition of the label stack for an attack.  This is
particularly important in the case of a network deploying MNA, because
the MNA information may be sensitive.  Thus the confidentiality and
authentication achieved through the use of link-level security is
particularly advantageous.</t>

<t>Some additional proposals to add encryption to the MPLS forwarding 
plane have been suggested <xref target="I-D.ietf-mpls-opportunistic-encrypt"/>, but
no mechanisms have been agreed upon at the time of publication of 
this document.  <xref target="I-D.ietf-mpls-opportunistic-encrypt"/> offers hop-by-
hop security that encrypts the label stack and is functionally 
equivalent to that provided by <xref target="MACsec"/>.  Alternatively, it also 
offers end-to-end encryption of the MPLS payload with no 
cryptographic integrity protection of the MPLS label stack.</t>

<t>Particular care would be needed when introducing any end-to-end
security mechanism to allow an in-stack MNA solution that needed to
employ on-path modification of the MNA data, or where post-stack
MNA data needed to be examined on-path.</t>

<t>A cornerstone of MPLS security is to protect the network from
processing MPLS labels originated outside the network.</t>

<t>Operators have considerable experience in excluding MPLS-encoded
packets at the network boundaries for example, by  excluding all MPLS
packets and all packets that are revealed to be carrying an MPLS 
packet as the payload of IP tunnels.  Where such packets are accepted
into an MPLS network from an untrusted third party, non-MPLS packets 
are immediately encapsulated in an MPLS label stack specified by the
MPLS network operator and MPLS packets have additional label
stack entries imported as specified by the MPLS network operator. 
Thus, it is difficult for an attacker to pass an MPLS-encoded
packet into a network or to present any instructions to the network
forwarding system.</t>

<t>Within a single well-managed domain, an adjacent domain may be
considered to be trusted provided that it is sufficiently shielded
from third-party traffic ingress and third-party traffic observation.
In such a situation, no new security vulnerabilities are introduced by
MNA.</t>

<t>In some inter-domain applications (including carrier's carrier) where
a first network's MPLS traffic is encapsulated directly over a second
MPLS network by simply pushing additional MPLS LSEs, the contents of
the first network's payload and label stack may be visible to the
forwarders in the second network.  Historically this has been benign,
and indeed useful for ECMP.  However, if the first network's traffic
has MNA information this may be exposed to MNA-capable forwarders
causing unpredictable behavior or modification of the customer MPLS
label stack or MPLS payload.  This is an increased vulnerability
introduced by MNA that SHOULD be addressed in any MNA solution.</t>

<t>Several mitigations are available to an operator:</t>

<t>a) Reject all incoming packets containing MNA information that do not
come from a trusted network. Note that it may be acceptable to accept
and process MNA information from a trusted network.</t>

<t>b) Fully encapsulate the inbound packet in a new additional MPLS label
stack such that the forwarder finds a Bottom of Stack (BoS) bit
imposed by the carrier network and only finds MNA information added by
the carrier network.</t>

<t>A mitigation that we reject as unsafe is having the ingress LSR push
sufficient additional labels such that any MNA information received in
packets entering the network from a third-party network is made
inaccessible due to it being below the RLD.  This is unsafe in the
presence of an overly conservative RLD value which can result in the
third-party MNA information becoming visible to and acted on by an
MNA forwarder in the carrier network.</t>

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

<t>This document requests that IANA allocate a code point from the "IGP
MSD-Types" registry in the "Interior Gateway Protocol (IGP)
Parameters" namespace for "Readable Label Depth", referencing this
document.</t>

</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>This document is the result of work started in MPLS Open Design
Team, with participation by the MPLS, PALS, and DETNET working groups.</t>

<t>The authors would like to thank Adrian Farrel for his contributions
and to John Drake, Toerless Eckert, and Jie Dong for their comments.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>

&I-D.ietf-mpls-mna-requirements;
&RFC2119;
&RFC3031;
&RFC3032;
&RFC4385;
&RFC5920;
&RFC7274;
&RFC8174;
&RFC9017;


    </references>

    <references title='Informative References'>

&I-D.ietf-mpls-opportunistic-encrypt;
&I-D.ietf-mpls-1stnibble;
&RFC3272;
&RFC4928;
&RFC5714;
&RFC6790;
&RFC8279;
&RFC8296;
&RFC8402;
&RFC8491;
&RFC8662;
&RFC9088;
&RFC9089;
<reference anchor="MACsec" >
  <front>
    <title>IEEE 802.1AE Media Access Control (MAC) Security</title>
    <author >
      <organization>IEEE Computer Society</organization>
    </author>
    <date year="2006" month="August"/>
  </front>
</reference>


    </references>



  </back>

<!-- ##markdown-source:
H4sIACoOc2YAA+19W3PbSJbme/6KXPmhpVmSbdlVLlsTG9GyJJfVIctaU7W1
8wgCKRJtEuAAoGS27f8yv2V/2Z7vnJMXgJTtmu6HiY11RbcoCnk7ee43jMdj
k9dFWc1P7Ka7G780Xdkt3Yl9d3M1tdeue6ibj/Y078q6au3hu+vTI/umyVYO
35tsNmvcPT18fZp8W9R5RZ9PbNFkd924dDTvar1sx6sqG989fBw/fWUe5rrE
7zSCVre/NvVmbfKsc/O62Z7YsrqrTbuZrcq2pbW77ZomvLy4fWPKdXNiu2bT
ds+ePn319Jkx2aZb1M2JsXZM/+N/ZdWe2KuJPa0K17RtXfk/yM6u6mz3T3VD
m3q7yR5caW9dvqjqZT0vXev/7lZZuTyxyzr7y7qcVJud9aYT+7rZZlXXX2za
uYes6QZ/49V+q8p72kTZbW19Z6ebpnFb+/Ovl2eDNdvZX1qZZcaTTPJ6tbP8
O1q+zvOyv/q7rOsW7qH/J178uv5YZoOFVvL0ZIan/1Lhib1r3U7s1WCh27ra
Jl/yEn/dVOXaNR6RhqDsaMhkWf5FfxpT1Q3tgGCCy7wcn0/6yNO4f9+UjVu5
qmvxxIc3Z8+Oj1/px+dPnx/Hj8/040/PX/6sH39+9eypfvzl2S8/6ceXx+Hj
q6fHv5wYA9x7dB/1el03HZ2r7cp87Kq82a673ceO264qZ7Ol8zt69kvY0atn
L/2Ofjn2a7/45ZXf3Mtnv7wKH1+98B9/evosfHzlT/ryxYtnYfcvX8aPPMO7
07PW5ScMdiXsy4uLC/vy6bPJ8emFfeeKkighz13b2jMis6ZeEpWfnh3Zqcs3
DSEmjy2ILk/s6WZOVGeJ7F7wt5HuwoXz7Gf1ar3p6NqndU4Q2ZrxeGyzWds1
Wd4Zc7soW0tMYoN7tO3a5eUdkZnNKps1+aLsXN5tmmxp7zxLsXQflvCSWYbZ
z5W6hGInlllS+hVN7eymdQUhHV1wUYLV2Eyn6BZZZ8vVmn7ndWg9IjawRTqW
remrxq6bGmDCd4ftJl+YrLWruiq7uqHvjkDAGEpzfHSdzZY1PYgvrrKZW9rp
Q9nlC1r+JusW9vBqeoMRJh1RYW/E2bKqvaP1MiKnrChK7JCAQVeQ2cq5guZQ
cLTO6AEmgKqLQKW93peFa/Uwm4pG03MBjoW7d8t6zc/SvjNLNE5nMa3j3yuF
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

-->

</rfc>

