Skip to content

Commit 444f596

Browse files
committed
Refactoring
1 parent cb4044a commit 444f596

File tree

1 file changed

+134
-66
lines changed

1 file changed

+134
-66
lines changed

draft-ihle-mpls-mna-stack-management.md

Lines changed: 134 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,20 @@ author:
4040
normative:
4141

4242
informative:
43-
43+
IhMe25-2:
44+
-: ihme25-2
45+
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.
4457

4558
--- abstract
4659
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
5871

5972
This document introduces a network action for stack management operations.
6073
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.
6376
An example for this is given in this document using a mechanism called HBH preservation.
64-
With the POP-N LSE 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.
6578
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.
6982

7083
# Conventions and Definitions
7184

@@ -76,10 +89,10 @@ This document makes use of the terms defined in {{?I-D.ietf-mpls-mna-hdr}}.
7689

7790
Further abbreviations used in this document:
7891

79-
| Abbreviation | Meaning | Reference
80-
| ---------- | -------------------------------- | -------------------
81-
| BML | Bypass MPLS Label | {{?I-D.ihle-mpls-mna-stateless-egress-protection-00}}
82-
| SMEP | Stateless MNA-based Egress Protection | {{?I-D.ihle-mpls-mna-stateless-egress-protection-00}}
92+
| Abbreviation | Meaning | Reference |
93+
| ------------ | ------------------------------------- | ----------------------------------------------------- |
94+
| BML | Bypass MPLS Label | {{?I-D.ihle-mpls-mna-stateless-egress-protection-00}} |
95+
| SMEP | Stateless MNA-based Egress Protection | {{?I-D.ihle-mpls-mna-stateless-egress-protection-00}} |
8396
{: #table_abbrev title="Abbreviations."}
8497

8598
# Stack Management Operations
@@ -88,22 +101,22 @@ This section describes the stack management network action encoding and the proc
88101
## Network Action Encoding
89102
The network action for stack management operations is encoded as follows:
90103

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.
92105

93106
- 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}}.
94107

95108
- 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.
96109

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.
105116

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.
107120

108121
~~~~
109122
{::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
117130

118131
## Processing
119132

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.
122138

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.
124143

125144
# 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.
127177

128-
## POP-N-LSE: Stateless MNA-based Egress Protection (SMEP)
129-
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."}
133185

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}}.
138223

139224
~~~~
140225
{::include ./drawings/smep.txt}
@@ -143,45 +228,28 @@ An example is given in {{fig-smep}}.
143228

144229
The example network contains an LSP R1-R2-R3 and a bypass tunnel R2-R3'-R3''.
145230
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''.
147232
The packet is forwarded as usual according to the top-of-stack label L3.
148233
If the LSR R2 detects an egress failure it becomes the PLR.
149234
The POP-N-LSE action is ignored and the NAS is popped along with the top-of-stack label.
150235
This time, the BMLs L3' and L3'' are at the top-of-stack.
151236
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.
153237

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
159239

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}}\]
170241

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.
173247

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).
178252

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.
185253

186254
# Security Considerations
187255

@@ -191,9 +259,9 @@ The security issues discussed in {{?I-D.ietf-mpls-mna-hdr}} apply to this docume
191259

192260
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}}.
193261

194-
| MNA Opcode | Description | Reference
195-
| ---------- | -------------------------------- | -------------------
196-
| TBA1 | Stack Managament| This document
262+
| MNA Opcode | Description | Reference |
263+
| ---------- | ---------------- | ------------- |
264+
| TBA1 | Stack Management | This document |
197265
{: #table_iana title="Stack Management Opcode IANA allocation."}
198266

199267
--- back

0 commit comments

Comments
 (0)