You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
title: Reduced Hardware Requirements for MPLS Network Actions Through Stack Management
46
+
author:
47
+
-
48
+
ins: F. Ihle
49
+
name: Fabian Ihle
50
+
org: University of Tuebingen
51
+
-
52
+
ins: M. Menth
53
+
name: Michael Menth
54
+
org: University of Tuebingen
55
+
date: 2025-06-06
56
+
ann: Accepted for publication in ACM/IRTF Applied Networking Research Workshop.
44
57
45
58
--- abstract
46
59
The MPLS Network Action (MNA) framework provides a general mechanism for the encoding and processing of network actions and their data.
@@ -58,14 +71,14 @@ These network actions are processed by all nodes on a path (hop-by-hop), by only
58
71
59
72
This document introduces a network action for stack management operations.
60
73
Those operations include a MOVE-N-LSE and a POP-N-LSE operation.
61
-
With the MOVE-N-LSE operation, a number of N LSEs from below the NAS are brought to the top-of-stack.
62
-
This can be leveraged to enable for more efficient MPLS processing with MNA.
74
+
With the MOVE-N-LSE operation, a number of N LSEs from below the NAS is brought to the top-of-stack.
75
+
This can be leveraged to enable more efficient MPLS processing with MNA.
63
76
An example for this is given in this document using a mechanism called HBH preservation.
64
-
With the POP-NLSE operation, a number of N LSEs below the NAS is popped.
77
+
With the POP-N-LSE operation, a number of N LSEs below the NAS is popped.
65
78
This can be used to facilitate mechanisms such as Stateless MNA-based Egress Protection (SMEP).
66
-
SMEP provides an alternative to the rerouting mechanism defined for the PLR in {{?RFC8679}} allowing the PLR to be stateless.
67
-
In this context, the POP-N LSE operation eliminates the need to encode Bypass MPLS Labels (BML) in the ancillary data of the SMEP network action.
68
-
However, the stack management operations are not tied to specific use cases and may be used in a more generalized way.
79
+
SMEP provides an alternative to the rerouting mechanism defined for the PLR in {{?RFC8679}} allowing the PLR to be stateless by carrying Bypass MPLS Labels (BML) in the stack.
80
+
81
+
However, the stack management operations are not tied to specific use cases and may also be applied for various other use cases.
69
82
70
83
# Conventions and Definitions
71
84
@@ -76,10 +89,10 @@ This document makes use of the terms defined in {{?I-D.ietf-mpls-mna-hdr}}.
@@ -88,22 +101,22 @@ This section describes the stack management network action encoding and the proc
88
101
## Network Action Encoding
89
102
The network action for stack management operations is encoded as follows:
90
103
91
-
- Network Action Indication: The stack management network action is indicated by opcode TBA1.
104
+
- Network action indication: The stack management network action is indicated by opcode TBA1.
92
105
93
106
- Format: The stack management network action MUST be encoded using a Format B or a Format C LSE as defined in {{?I-D.ietf-mpls-mna-hdr}}, see {{fig-lseops-encoding-b}} and {{fig-lseops-encoding-c}}.
94
107
95
108
- Scope: The stack management network action can be used in any scope, i.e., in the select, HBH, and I2E scope. The scope depends on the use case.
96
109
97
-
- Ancillary Data: The stack management network actions requires four bits of in-stack ancillary data per operation (pop and move) to encode the parameter N.
98
-
The parameter N corresponds to the number of LSEs to apply the operation to.
99
-
For example, the POP-N-LSE operation with N=2 pops 2 LSEs that follow after the NAS.
100
-
In Format B, the four least-signifact bits of the ancillary data field contain the number of LSEs for the MOVE-N-LSE operation.
101
-
The next four bits contain the number of LSEs for the POP-N-LSE operation.
102
-
All other ancillary data bits MUST be set to zero and are reserved for future use.
103
-
For Format C, the same encoding of POP-N-LSEs and MOVE-N-LSEs applies to the first data field of the LSE.
104
-
The second data field, i.e., the 4-bit wide ancillary data field, MUST be set to zero and is reserved for future use.
110
+
- Ancillary data: The stack management network action requires four bits of in-stack ancillary data per operation (pop and move) to encode the number of labels, i.e., the numbers `MOVE-N` and `POP-N`.
111
+
- In Format B, the four least-significant bits of the ancillary data field contain the value of `MOVE-N`.
112
+
The next four bits contain the value of `POP-N`.
113
+
All other ancillary data bits MUST be set to zero and are reserved for future use.
114
+
- In Format C, the same encoding of POP-N-LSEs and MOVE-N-LSEs applies to the first data field of the LSE.
115
+
The second data field, i.e., the 4-bit wide ancillary data field, MUST be set to zero and is reserved for future use.
105
116
106
-
- Post-Stack Data: None.
117
+
- Post-stack data: None.
118
+
119
+
{{fig-lseops-encoding-b}} and {{fig-lseops-encoding-c}} illustrate the stack management operation encoding in Format B and C.
107
120
108
121
~~~~
109
122
{::include ./drawings/lseops-encoding-b.txt}
@@ -117,24 +130,96 @@ The second data field, i.e., the 4-bit wide ancillary data field, MUST be set to
117
130
118
131
## Processing
119
132
120
-
A node that processes the stack management network action MUST perform the MOVE-N-LSE and POP-N-LSE operation according to the corresponding parameter N > 0.
121
-
If N = 0, the corresponding operation is not performed.
133
+
A node that processes the stack management network action MUST perform the MOVE-N-LSE and POP-N-LSE operation according to the corresponding parameter `N > 0`.
134
+
If `N = 0`, the corresponding operation is not applied.
135
+
136
+
- For `MOVE-N > 0`, `MOVE-N` LSEs below the NAS are brought to the top-of-stack.
137
+
- For `POP-N > 0`, `POP-N` LSEs below the NAS are popped.
122
138
123
-
The ingress LER MUST ensure that no invalid state, e.g., a MOVE-N-LSE operation with N > \#LSEs below the NAS, results from the processing of the stack management network action.
139
+
The ingress LER MUST ensure that no invalid state, e.g., a MOVE-N-LSE operation with `MOVE-N > #LSEs below the NAS`, results from the processing of the stack management network action.
140
+
141
+
If multiple NAS with the stack management network action are present in the stack and are processed by a single node, all values for `MOVE-N` or `POP-N` are summed up respectively.
142
+
The operation, i.e., pop or move, is then applied based on the summed up value.
124
143
125
144
# Use Cases and Examples
126
-
This section illustrates one use case for each operation in an example.
145
+
This section explains one use case for each operation and illustrates it in an example.
146
+
147
+
## MOVE-N-LSE
148
+
First, we describe the concept of HBH preservation.
149
+
Then, we explain how the MOVE-N-LSE operation is used for this concept, and give an example.
150
+
151
+
### HBH Preservation
152
+
In the MNA framework, each node must be able to access the HBH-scoped Network Action Substack (NAS).
153
+
The HBH-scoped NAS must be within the readable label depth (RLD) of each node.
154
+
To achieve this, redundant copies of the NAS are placed at different positions in the MPLS stack {{?I-D.ietf-mpls-mna-hdr}}.
155
+
This increases the overall stack size.
156
+
Further, routers must scan through unrelated stack entries to find the HBH-scoped NAS.
157
+
This adds parsing overhead and is difficult on hardware with limited RLD.
158
+
159
+
The HBH preservation mechanism keeps the HBH-scoped NAS within reach of all nodes by placing the NAS always below the top-of-stack label.
160
+
When a node pops the top label, it moves the next forwarding label below the NAS to the top.
161
+
This prevents the NAS from being exposed and removed.
162
+
Nodes can process it without scanning through unrelated labels.
163
+
This avoids redundant copies and reduces RLD pressure {{IhMe25-2}}.
164
+
165
+
### MOVE-N-LSE Operation for HBH Preservation
166
+
The stack management network action with the MOVE-N-LSE operation is added to the HBH-scoped NAS with `MOVE-N = 1` to apply the HBH preservation mechanism.
167
+
Each node popping the top-of-stack label and processing this action brings one LSE from below the NAS to the top.
168
+
This prevents the HBH-scoped NAS from being exposed to the top.
169
+
170
+
However, this mechanism poses a challenge when there are MNA-incapable nodes on the path.
171
+
An MNA-incapable node pops the top-of-stack forwarding label and exposes the HBH-scoped NAS to the top, leading to packet drop at the next hop.
172
+
To fix this, the MOVE-N-LSE operation can be leveraged to bring LSEs at the preceding node of an MNA-incapable node to the top using a select-scoped NAS.
173
+
This way, forwarding labels for upcoming MNA-incapable nodes are brought to the top and the HBH-scoped NAS is never exposed.
174
+
The MNA-capabilities are signaled to the ingress LER.
175
+
Therefore, the ingress LER places a select-scoped network action for the preceding node of MNA-incapable nodes in the MPLS stack.
176
+
No information about MNA capabilities of neighboring nodes is required in a transit node as all node capabilities are signaled to the ingress LER.
Stateless MNA-based Egress Protection (SMEP) is a proposed mechanism within the MNA framework {{?I-D.ihle-mpls-mna-stateless-egress-protection-00}}.
130
-
SMEP encodes egress protection information such as Bypass MPLS Labels (BMLs) in the MPLS label stack as network actions.
131
-
This approach eliminates the need for the Point of Local Repair (PLR) to maintain bypass forwarding states or engage in additional signaling for bypass tunnel mappings.
132
-
Instead, all necessary information is delivered to the PLR via the MPLS stack enabling failover to alternative egress paths in case of egress node or link failures.
178
+
### Example
179
+
An example is illustrated in {{fig-hbh-preservation}}.
180
+
181
+
~~~~
182
+
{::include ./drawings/hbh-preservation.txt}
183
+
~~~~
184
+
{: #fig-hbh-preservation title="Example using the MOVE-N-LSE operation."}
133
185
134
-
However, in the proposed SMEP network action encoding, the 20 bit BMLs are split across the AD fields of a network action.
135
-
This requires the PLR to extract the BML from the network action first.
136
-
With the POP-N-LSE operation, the BMLs are contained as forwarding LSEs in the MPLS stack without the need to encode the bypass tunnel information in the AD fields of a network action.
137
-
An example is given in {{fig-smep}}.
186
+
In {{fig-hbh-preservation}}, a MNA-capable node is followed by two MNA-incapable nodes.
187
+
Therefore, the stack management network action with `MOVE-N = 2` for the MOVE-N-LSE operation is pushed by the ingress LER as a select-scoped NAS for the LSR R1.
188
+
Further, to enable the HBH preservation mechanism, the stack management action with `MOVE-N = 1` for the MOVE-N-LSEs operation is added to the HBH-scoped NAS.
189
+
R1 brings three LSEs to the top-of-stack, two from the MOVE-N-LSE operation in the select-scoped NAS and one from the HBH-scoped NAS.
190
+
At the MNA-incapable LSRs R2 and R3, the forwarding label is popped without exposing the NAS to the top.
191
+
Finally, the MNA-capable LSR R4 processes the HBH-scoped NAS and brings one LSE from below the NAS to the top.
192
+
193
+
## POP-N-LSE
194
+
First, we describe the concept of Stateless MNA-based Egress Protection (SMEP).
195
+
Then, we explain how the POP-N-LSE operation is used for this concept, and give an example.
196
+
197
+
### Stateless MNA-based Egress Protection (SMEP)
198
+
The egress protection framework defined in {{?RFC8679}} is comprehensive.
199
+
It provides a mechanism for rerouting traffic in the event of an egress failure, and explains how rerouted services and their associated context can be restored.
200
+
Stateless MNA-based Egress Protection (SMEP) provides an alternative to the rerouting mechanism defined for the PLR, allowing the PLR to be stateless {{?I-D.ihle-mpls-mna-stateless-egress-protection-00}}.
201
+
Thus, the PLR does not need to maintain a table that maps transport tunnels to backup paths.
202
+
Likewise, the PLR is not involved in the signaling of such information.
203
+
Instead, this information is supplied from the ingress to the PLR in the network action.
204
+
Signaling is only needed between ingress, egress, and the protector, but not with the PLR anymore.
205
+
206
+
However, in the proposed SMEP network action encoding in {{?I-D.ihle-mpls-mna-stateless-egress-protection-00}}, the 20 bit BMLs are split across the AD fields of a network action.
207
+
This requires the PLR to extract the BML from the network action.
208
+
209
+
### POP-N-LSE Operation for SMEP
210
+
The POP-N-LSE operation simplifies the application of SMEP.
211
+
The BMLs are contained as forwarding LSEs in the MPLS stack without the need to encode the bypass tunnel information in the AD fields of a network action.
212
+
The processing at the PLR is as follows:
213
+
214
+
1. If the PLR does not detect an egress failure
215
+
- The PLR executes the POP-N-LSE action and pops all BMLs.
216
+
- The packet is forwarded as usual to the egress node.
217
+
2. If the PLR detects an egress failure
218
+
- The POP-N-LSE action is ignored and is popped along with the top-of-stack label.
219
+
- The BML is now the top-of-stack label. The packet is forwarded to the protector based on the BML.
220
+
221
+
### Example
222
+
An example of the POP-N-LSE Operation for SMEP is given in {{fig-smep}}.
138
223
139
224
~~~~
140
225
{::include ./drawings/smep.txt}
@@ -143,45 +228,28 @@ An example is given in {{fig-smep}}.
143
228
144
229
The example network contains an LSP R1-R2-R3 and a bypass tunnel R2-R3'-R3''.
145
230
The label stack contains the forwarding labels L1, L2, L3, L3', and L3''.
146
-
If there is no egress failure, the LSR R2 executes the POP-N-LSE action and pops the BMLs L3' and L3''.
231
+
If there is no egress failure, the LSR R2 executes the POP-N-LSE action with `POP-N = 2` and pops the BMLs L3' and L3''.
147
232
The packet is forwarded as usual according to the top-of-stack label L3.
148
233
If the LSR R2 detects an egress failure it becomes the PLR.
149
234
The POP-N-LSE action is ignored and the NAS is popped along with the top-of-stack label.
150
235
This time, the BMLs L3' and L3'' are at the top-of-stack.
151
236
The packet is forwarded according to those labels to the alternative egress node R3''.
152
-
This mechanism requires configuration or an indication to only execute the POP-N-LSE operation if there is no egress failure detected.
153
237
154
-
## MOVE-N-LSE: HBH Preservation
155
-
An efficient way to structure the MPLS stack with different NAS is to place to HBH-scoped NAS always below the top-of-stack forwarding label.
156
-
This reduces the required allocation of resources to a minimum as no irrelevant LSEs are parsed to find the HBH NAS located deeper in the stack.
157
-
Placing the HBH-scoped NAS close to the top and popping the top-of-stack forwarding label exposes the HBH-scoped NAS to the top which results in popping this NAS.
158
-
To prevent this, an LSR MAY bring the forwarding label from below the NAS to the top-of-stack using the MOVE-N-LSE operation.
238
+
# Implementation Status
159
239
160
-
In the following example, the stack management network action with the MOVE-N-LSE operation is added to the HBH-scoped NAS if one is present in the stack.
161
-
This brings one LSE from below the NAS to the top.
162
-
The MOVE-N-LSEs operation is only applied if the top-of-stack forwarding label is popped.
163
-
However, this mechanism poses a challenge when there are MNA-incapable nodes on the path.
164
-
An MNA-incapable node pops the top-of-stack forwarding label and exposes the HBH-scoped NAS to the top, leading to packet drop at the next hop.
165
-
To fix this, the MOVE-N-LSE operation can be leveraged to bring N LSEs at the preceding node of an MNA-incapable node to the top using a select-scoped NAS.
166
-
This way, forwarding labels for the upcoming N MNA-incapable nodes are brought to the top and the HBH-scoped NAS is never exposed to the top.
167
-
The MNA-capabilities are signaled to the ingress LER.
168
-
Therefore, the ingress LER places a select-scoped network action for the preceding node of MNA-incapable nodes in the MPLS stack.
169
-
No information about MNA capabilities of neighboring nodes is required in a transit node as all node capabilities are signalled to the ingress LER.
240
+
\[Note to the RFC Editor - remove this section before publication, as well as remove the reference to {{?rfc7942}}\]
170
241
171
-
If multiple NAS with the stack management network action and N > 0 for the MOVE-N-LSE operation are present in the stack, all values for N are summed up and that number of LSEs below the last processed NAS is brought to the top.
172
-
An example is illustrated in {{fig-hbh-preservation}}.
242
+
This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in {{?rfc7942}}.
243
+
The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs.
244
+
Please note that the listing of any individual implementation here does not imply endorsement by the IETF.
245
+
Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors.
246
+
This is not intended as, and must not be construed to be, a catalog of available implementations or their features. Readers are advised to note that other implementations may exist.
173
247
174
-
~~~~
175
-
{::include ./drawings/hbh-preservation.txt}
176
-
~~~~
177
-
{: #fig-hbh-preservation title="Example using the MOVE-N-LSE operation."}
248
+
## University of Tuebingen Implementation
249
+
250
+
The stack management network action defined in this document has been implemented using the MOVE-N-LSE operation for HBH preservation with a P4 pipeline {{IhMe25-2}}.
251
+
The implementation code can be found at [https://github.com/uni-tue-kn/P4-MNA](https://github.com/uni-tue-kn/P4-MNA).
178
252
179
-
In {{fig-hbh-preservation}}, a MNA-capable node is followed by two MNA-incapable nodes.
180
-
Therefore, the stack management network action with N=2 for the MOVE-N-LSE operation is pushed by the ingress LER as a select-scoped NAS for the LSR R1.
181
-
Further, to enable the HBH preservation mechanism, the stack management action with N=1 for the MOVE-N-LSEs operation is added to the HBH-scoped NAS.
182
-
LSR R1 brings three LSEs to the top-of-stack, two from the MOVE-N-LSE operation in the select-scoped NAS and one from the HBH-scoped NAS.
183
-
At the MNA-incapable LSRs R2 and R3, the forwarding label is popped without exposing the HBH-scoped NAS to the top.
184
-
Finally, the MNA-capable LSR R4 processes the HBH-scoped NAS and brings one LSE from below the NAS to the top as indicated in the HBH-scoped NAS.
185
253
186
254
# Security Considerations
187
255
@@ -191,9 +259,9 @@ The security issues discussed in {{?I-D.ietf-mpls-mna-hdr}} apply to this docume
191
259
192
260
This document requests that IANA allocates a new codepoint with the name "Stack Management" in the "Network Action Opcodes Registry" introduced in {{?I-D.ietf-mpls-mna-hdr}}.
0 commit comments