Internet-Draft | MNA Operational Architecture | September 2022 |
Andersson, et al. | Expires 30 March 2023 | [Page] |
MPLS Network Action (MNA) allows MPLS packet to carry instruction and data for in-network services and functions in an MPLS network. This document describes the network operations to support MNAs and what actions an MNA capable Label Switching Router (LSR) takes when MNA is present or absent in an packet.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 30 March 2023.¶
Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Multi-protocol Label Switching (MPLS) is a widely deployed forwarding technology. It uses label stack entries prepended to the payload. The label stack entries are used to identify the forwarding actions by each LSR. Actions may include pushing, swapping or popping the labels, and using the labels to determine the next hop for forwarding the packet. Labels may also be used to establish the context under which the packet is forwarded.¶
MPLS Network Actions (MNA) is used to support actions for Label Switched Paths (LSPs) and/or MPLS packets in addition to the normal forwarding. [I-D.ietf-mpls-mna-fwk] provides the architectural framework for MNA and [I-D.ietf-mpls-mna-requirements] provides the design requirements for MNA. MNA can support actions encoded within or below the label stack. The presence of MNA is indicated by a bSPL in the label stack.¶
This document specifies the architecture for the extension of MPLS to include MNA. MNAs carry information on in-network services and functions in an MPLS network. This document describes an architecture for MNAs and what actions an MNA capable Label Switching Router (LSR) takes when MNA is present or absent in an packet.¶
The MNA encoded below the label stack is supported by MPLS Extension Header (EH), which is described in [I-D.song-mpls-extension-header].¶
Below some example use cases for MPLS EH are listed. More use cases for MNA in general can be found in [I-D.ietf-mpls-mna-usecases]¶
It is possible to distinguish between two types of MPLS MNAs, "Hop by Hop" (HBH) and "End to end" (E2E).¶
An HBH MNA is processed by every MNA capable node along an LSP, HBH MNAs MAY be inserted by an ingress LER or a transit LSR. A HBH MNA MUST be removed by an LSR along the LSP or by the egress LER. An LSR along the LSP may be configured to ignore HBH MNAs.¶
An E2E MNA will be inserted by an upstream LSR and, processed and MUST be removed by a downstream LSR, no other LSR in between will process the E2E MNA.¶
Note: This document separates the concepts of LSP and MNA path, and allows an MNA to be applied on any section of an LSP. Another extreme is to strictly limit that MNAs can only initiate and terminate at LERs. This is simpler yet inflexible. A decision needs to be made after examining all the potential use cases.¶
Only MNA capable LSRs will process MNAs if they are configured to do so. LSR that are MNA non-capable will ignore the MNA and forward the packet as if the information was not there.¶
This document describes the interaction between MNA capable neighbor LSRs, and between MNA capable LSRs and a neighbor that is MNA non-capable.¶
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
This document specifies the use of MNA with MPLS.¶
Applications carried over an MPLS network may require that specific instructions and/or metadata are added to user packets. One such example is In-situ OAM (IOAM) [RFC9197]. It is likely that new applications will emerge over time.¶
One or more MNAs may be added by an ingress node to an MNA Path (NAP) and be removed by one or more MNA capable nodes along the NAP. Such ingress and egress nodes may be nodes at the head end and tail end of a Label Switched Path (LSP), or any other intermediate node of the LSP that is MNA capable. For more details on NAPs see Figure 1.¶
This section lists the abbreviations and concepts that are used throughout this document in the context of MNA.¶
The following concepts new for MPLS are defined:¶
Any MNA capable node along an LSP may add an MNA as long as it can be verified that there is another MNA capable LSR downstream that can remove it. Any MNA capable node downstream can be configured to remove an MNA. An NAP starts when an MNA is added and ends where it is removed. If there is no node downstream capable to remove the MNA, it MUST NOT be added. It is assumed that a control plane will make this determination, the specification of which is outside the scope of this document.¶
In the context of the MNA, an MNA capable node assumes that all user packets on the default LSP carry MNAs. As an optimization a second parallel LSP may be instantiated using a Forwarding Equivalence Class (FEC) that does not permit MNAs, thus indicating to the LSR that there are no MNAs in the packet.¶
For an MNA capable LSP between two MNA capable LSRs there are two label mappings:¶
MNA capable nodes may process MNAs, i.e. add, augment, remove or do required processing.¶
An MNA capable node may not add an MNA to a packet if unless it is sure that there is a downstream node that can remove it.¶
If an LSP forks due to ECMP, the node that does the forking MUST be sure that all LSP branches (which may be re-merged) eventually terminate at an MNA capable node which will remove the MNA.¶
MNA capable nodes may process MNAs, i.e. add, remove or do required processing.¶
Figure 1 is used for illustration of NAPs.¶
<------------------LSP--------------------> A------b------c------D------E------F------G <------------------NAP1-------------------> <------------NAP2-----------> <--------NAP3--------> <-----NAP4----> <-NAP5-> A, D, E, F and G are MNA capable nodes b and c are non-MNA-capable nodes.
Further discussion on the information needed in the packet to identify and process the post stack MNAs can be found in [I-D.song-mpls-extension-header].¶
A node that is MNA capable MUST have a way to announce this capability to other nodes in the same domain. Additions to the IGPs should be a baseline for such capabilities.¶
LSPs for MNA handling and processing in an MPLS network may be set up by LDP [RFC5036], a centralized controller and/or MPLS-SR. To enable this small extensions to the protocols are required.¶
In the examples in Section 3.6 and Section 3.7 we for simplicity assume that the payload of the packet is IP. It is of course possible that the payload will be a Pseudo-Wire (PW) or a Virtual Private Network (VPN). This will be described in a later version of the document.¶
It is anticipated that the difference in establishment procedures for IP, PW and VPN will be minor.¶
It is possible to use the simplified physical topology show in Figure 2 which uses LDP Downstream on Demand (DoD) to illustrate how LSP setup work in a network with a mix of MNA capable and non-MNA-capable nodes. In LDP DoD the action to set up an LSP is taken by the node at the head-end of the potential LSP.¶
+---+ +---+ +---+ +---+ +---+ | | | | | | | | | | | A +------+ b +------+ D +------+ E +------+ G + | | | | | | | | | | +---+ +---+ +---+ +---+ +---+ A, D, E, and G are MNA capable nodes b is a non-MNA-capable node.
The following steps would be taken assuming that node A wants to set up connectivity with node G to support MNA handling and processing:¶
This will result in installed labels like this.¶
+---+ +---+ +---+ +---+ +---+ | |...203...| |...202...| |...201...| |...php...| | | A +---------+ b +---------+ D +---------+ E +---------+ G + | | | | | |...301...| |...php...| | +---+ +---+ +---+ +---+ +---+ A, D, E and G are MNA capable nodes. b is a non-MNA-capable node.
In LDP Downstream Unsolicited (DU) the initiative to establish a LSP is taken by the egress router. The egress will establish an LSP to every prefix it learns of from the IGP. With the exception from how the set up of the LSP(s) are triggered the label mappings are similar to how it is done with LDP DoD.¶
The same topology as in the LDP DoD example Figure 2 will be used for LDP DU.¶
An MNA capable node will always search the label stack for MNAs, with the exception of when a packet is received on the new "no MNA present" FEC.¶
Non-MNA-capable nodes will never search the label stack for MNAs.¶
Given the configuration in Figure 3 packets will be forwarded as follows through the network.¶
If Node A sends a packet with a post-stack MNA:¶
If Node A sends a packet without any MNA:¶
Extension Headers for RSVP-TE tunnels is for further study. Essentially it expected to be similar to the LDP case.¶
TBA¶
TBA¶
MPLS MNA will require code point allocations from more than one IANA registry. It is not yet decided which document that will make which allocation. However, tentatively the "No MNA present" FEC will be assigned from this document.¶
IANA is requested to allocate lowest free value from the "IETF Review" range as new FEC from the "Forwarding Equivalence Class (FEC) Type Name Space" in the "Label Distribution Protocol (LDP) Parameters", like this:¶
Value | Hex | Name | Label Distribution Discipline | Reference | Note/Reg. Date |
---|---|---|---|---|---|
TBD | TBD | No MNA present | DoD or DU | This Document | TBA |
TBA¶