Internet-Draft | MNA Requirements | September 2023 |
Bocci, et al. | Expires 21 March 2024 | [Page] |
This document specifies requirements for MPLS network actions which affect the forwarding or other processing of MPLS packets. These requirements are derived from a number of proposals for additions to the MPLS label stack to allow forwarding or other processing decisions to be made, either by a transit or terminating LSR (i.e. the LER).¶
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 21 March 2024.¶
Copyright (c) 2023 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.¶
There is significant interest in developing the MPLS data plane to address the requirements of new use cases [I-D.ietf-mpls-mna-usecases], which require a general mechanism, termed MPLS network actions, for enhanced forwarding or other processing of MPLS packets. It is intended that this mechanism will be conformant to the greatest extent possible with the existing MPLS architecture as specified by, among other documents, [RFC3031], [RFC3032], and [RFC6790].¶
This document specifies the requirements for MPLS network actions, as well as the encoding and use of the ancillary data.¶
The MPLS architecture is specified in [RFC3031] and provides a mechanism for forwarding packets through a network without requiring any analysis of the packet payload's network layer header by intermediate nodes (Label Switching Routers - LSRs). Formally, inspection may only occur at network ingress (the Label edge router - LER) where the packet is assigned to a forwarding equivalence class (FEC).¶
MPLS uses switching based on a label pushed on the packet to achieve efficient forwarding and traffic engineering of flows associated with the FEC. While originally used for IP traffic, MPLS has been extended to support point-to-point, point-to-multipoint and multipoint-to-multipoint layer 2 and layer 3 services. An overview of the development of MPLS is provided in [I-D.bryant-mpls-dev-primer].¶
A number of applications have emerged which require LSRs to make forwarding or other processing decisions based on inspection of the network layer header, or some other ancillary information in the protocol stack encapsulated deeper in the packet. An early example of this was generation of a hash of the payload header to be used for load balancing over Equal Cost Multipath (ECMP) or Link Aggregation Group (LAG) next hops. This is based on an assumption that the network layer protocol is IP. MPLS was extended to avoid the need for LSRs to perform this operation if load balancing was needed based on the payload and instead use only the MPLS label stack, using the Entropy Label / Entropy Label Indicator [RFC6790] which are inserted at the LER. Other applications where the intermediate LSRs may need to inspect and process a packet on an LSP include OAM, which can make use of mechanisms such the Router Alert Label [RFC3032] or the Generic Associated Channel Label (GAL) [RFC5586] to indicate that an intercepted packet should be processed locally. See [I-D.bryant-mpls-dev-primer] for detailed list of such applications.¶
There have been a number of new proposals for how network actions and associated ancillary data is to be carried in MPLS and how its presence is indicated to the LSR or egress LER, for example In-situ OAM [I-D.gandhi-mpls-ioam-sr] and Service Function Chaining (SFC) [RFC7665]. A summary of these proposals is contained in [I-D.bryant-mpls-dev-primer], and an overview of use cases is provided in [I-D.ietf-mpls-mna-usecases]. [I-D.song-mpls-extension-header] discusses some of the issues with these proposals (note that this document draws on the requirements and issues without endorsing a specific solution from [I-D.song-mpls-extension-header]):¶
These solutions rely on either the built-in next-protocol indicator in the header or the knowledge of the format and size of the header to access the following packet data. The node is required to be able to parse the new header, which is unrealistic in an incremental deployment environment. A piecemeal solution often assumes the new header is the only extra header and its location in the packet is fixed by default. It is impossible or difficult to support multiple new headers in one packet due to the conflicted assumption. An example of this is that the GAL/G-ACH mechanism assumes that if the GAL is present, only a single G-ACH header follows.¶
New use cases therefore require the definition of extensions to the MPLS architecture and label stack operations that can be used across these use cases in order to minimise implementation complexity and promote interoperability and extensibility.¶
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.¶
Although this document is not a protocol specification, this convention is adopted for clarity of description of requirements.¶
This document specifies requirements of MPLS Network Action (MNA) Indicators (NAIs),
and the associated Ancillary Data, as well as the alert mechanism (the MPLS Network Action Sub-Stack Indicator)
to indicate to an LSR or LER that NAIs are present in a packet. The requirements are for
the behavior of the
protocol mechanisms and procedures that constitute building blocks
out of which indicators for network actions and associated ancillary data are constructed.
It does not specify the detailed actions and
processing of any network actions or ancillary
data by an LSR or LER. The purpose of this
document is to identify the toolkit and any new protocol work that is
required. This new protocol work MUST be based on the existing MPLS
architecture.¶
This document makes no request of IANA.¶
Note to RFC Editor: this section may be removed on publication as an RFC.¶
The mechanisms required by this document introduce new security considerations to MPLS. Individual solution specifications meeting these requirements MUST address any security considerations.¶
The authors gratefully acknowledge the contributions from Greg Mirsky, Yingzhen Qu, Haoyu Song, Tarek Saad, Loa Andersson, Tony Li, Adrian Farrel, Jie Dong and Bruno Decraene, and participants in the MPLS working group who have provided comments.¶
The authors also gratefully acknowledge the input of the members of the MPLS Open Design Team.¶