Internet-Draft MPLS MNA Encodings July 2022
Rajamanickam, et al. Expires 26 January 2023 [Page]
Workgroup:
MPLS Working Group
Internet-Draft:
draft-jags-mpls-mna-hdr-01
Published:
Intended Status:
Standards Track
Expires:
Authors:
J. Rajamanickam, Ed.
Cisco Systems, Inc.
R. Gandhi, Ed.
Cisco Systems, Inc.
J. Bhattacharya
Cisco Systems, Inc.
B. Decraene
Orange
R. Zigler
Broadcom
W. Cheng
China Mobile
L. Jalil
Verizon
H. Song
Futurewei Technologies
X. Min
ZTE Corp.
B. Wen
Comcast
S. Boutros
Ciena

MPLS Network Action (MNA) Header Encodings

Abstract

This document defines the MPLS Network Action (MNA) Header encoding formats to carry Network Actions and optionally Ancillary Data in the MPLS Label Stack and after the Label Stack. The MPLS Network Action can influence the forwarding decisions or can carry additional OAM information in the MPLS packet. This document follows the MNA requirements specified in draft-ietf-mpls-mna-requirements.

Status of This Memo

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 26 January 2023.

Table of Contents

1. Introduction

[RFC3032] defines MPLS Header for carrying a stack of MPLS labels which are used to forward packets in an MPLS network. Today's new applications require the MPLS packets to carry network action indicators and optional Ancillary Data (AD) that would be used in MPLS packet forwarding decision or for OAM purpose. Ancillary Data can be used to carry additional information, for example, a network slice identifier, In-Situ OAM (IOAM) data, etc. Several use-cases are described in [I-D.ietf-mpls-mna-usecases].

This document defines MPLS data plane extension header format to encode MPLS Network Actions (MNA) those are efficient to process in hardware. The MPLS Network Actions are encoded in the form of flags and opcodes. These MPLS Network Actions can be encoded without Ancillary Data (AD) or with In-Stack Ancillary Data (ISD) or with Post-Stack Ancillary Data (PSD) after the Bottom of the Stack (BOS). A new Special Purpose Label (SPL) will be assigned to indicate the presence of MPLS Network Action Sub-stack (MNAS) in the MPLS packet. This document follows the MNA requirements specified in [I-D.ietf-mpls-mna-requirements].

2. Conventions Used in This Document

2.1. Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2.2. Abbreviations

The MNA terminology defined in [I-D.andersson-mpls-mna-fwk] and [I-D.ietf-mpls-mna-requirements] are used in this document.

  • AD: Ancillary Data.
  • ADL: Additional Data Length.
  • BOS: Bottom Of Stack.
  • I2E: Ingress-To-Egress.
  • HPI: Hop-By-Hop Post-Stack Network Action Processing Indicator.
  • ISD: In-Stack Data.
  • IS-NAI-Opcode: In-Stack Network Action Opcode.
  • INE: In-Stack Network Action Extension Presence Indicator.
  • INI: In-Stack Network Action Presence Indicator.
  • MPLS: Multiprotocol Label Switching.
  • MNA: MPLS Network Action.
  • NAI: Network Action Indicator.
  • NAI-OP: Network Action Indicator Opcode.
  • NASI: Network Action Sub-stack Indicator.
  • PNI: Post-Stack Network Action Presence Indicator.
  • PSD: Post-Stack Data.
  • SPL: Special Purpose Label in the range of 0-15.
  • TC: Traffic Class.
  • TTL: Time To Live.

3. Overview

Encoding MPLS Network Actions requires two main parts.


 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Label                    | TC  |S|      TTL      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: MPLS Label Stack Entry (LSE) Format

New In-Stack MPLS Network Action encoding format is defined in this document to carry the In-Stack Network Action and its Ancillary Data in the MPLS Label Stack.

The MPLS Network Action encoding formats defined in this document are flexible and allow to add In-Stack and Post-Stack MPLS Network Actions in a desired order in the same MPLS packet.

A new SPL value (TBA1) is assigned to indicate the presence of the MPLS Network Action Sub-stack (NAS).


 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     NASI=SPL (TBA1)                   | TC  |S|      TTL      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|        Flag-Based-NAI               |ADL|E|S| INE,INI=1,IL  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: New SPL as MPLS Network Action Sub-stack Indicator with ISD

 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     NASI=SPL (TBA1)                   | TC  |S|      TTL      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|        Flag-Based-NAI               | 0 |E|S| HPI,PNI=1,IL=0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: New SPL as MPLS Network Action Sub-stack Indicator with PSD

First Word:

Second Word:

This word contains the Base Header, which indicates the some of the base attributes of the In-Stack and Post-Stack NAIs encoded. In this case, the TTL fields is re-purposed to encode the Base Header Information. But the Label and TC fields are used to encode the Flag-based In-Stack NAIs.

TTL Field

The following are the information that are encoded as part of TTL field.

Label Field

This field encoding the Flag-based NAIs which does not require any Ancillary data to be carried to process the In-Stack NAIs.

TC Field

4. In-Stack MPLS Network Action Encoding

This section describes the encoding format of the MPLS Network Actions carried as part of the MPLS Label Stack. The encoding format defined is flexible (e.g., stackable opcodes in desired order), extensible (by defining new NAI-Opcodes) and ASIC friendly (by using Sub-stack Length, Opcode+Data in the same field). This encoding format allows to carry Flag-based NAIs and the NAIs that required Ancillary Data in the same packet.


 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      NASI=SPL (TBA1)                  | TC  |S|    TTL        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|        Flag-Based-NAI               |ADL|E|S|   IL, INI=1   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IS-NAI-Opcode |    Ancillary Data     |ADL|E|S| Ancillary Data|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: In-Stack Network Action Encoding Format

First Word:

Second Word:

This word contains the base MNA indicators and the Flag Based NAIs that has been described in the above section.

Third Word:

This word contains the NAIs that requires some Ancillary Data to be processed.

Label Field:

The first 8 bits are used to define the In-Stack Network Action Opcode (IS-NAI-Opcode). The opcode method of identifying a specific Network Actions are common in today's hardware ASICs (Similar to any IPv4/IPv6/VxLAN header processing), so this method is easy to be adopted by the existing hardware. This will allow the hardware ASICs to serially or in-parallel process the Network Actions.

This opcode ranges from 1 to 255. NAI-Opcode value of 0 is marked as invalid to avoid the label value aliasing with the reserved SPLs.

IS-NAI-Opcode/Flag-Based-NAI Bits MUST define the following procedure before it can be used:

Next 12 bits in the Label field and the 8 bits from the TTL field are used to carry Ancillary Data corresponding to the IS-NAI-Opcode.

TC Field:

This field is used to indicate the following.

TTL Field:

This 8-bit field is used to carry In-Stack Ancillary Data apart from the 12 bits in the Label field.

NOTE:

4.1. In-Stack MPLS Network Action Encoding more than 20 bits of Ancillary Data

In some cases, the In-Stack Network Action can require more than 20 bits of supporting Ancillary Data. In these cases, the following Ancillary Data encoding should be used. This is applicable for the Flag-based In-Stack NAI encoding described in the section 3.1


 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     NASI=SPL (TBA1)                   | TC  |S|      TTL      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|        Flag-Based-NAI               |ADL|E|S|   IL, INI=1   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IS-NAI-Opcode |    Ancillary Data     |ADL|E|S| Ancillary Data|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|     Additional Ancillary Data             |S| Ancillary Data|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: In-Stack Network Action With Additional Ancillary Data Encoding Format

First and Second Word:

These values are already described in the above section.

Third Word:

These values are also described above, but the ADL length will be set to "1", to indicate the presence of additional word data that is carried. This ADL length is corresponding to the specific opcode.

Fourth Word:

This is the Additional Ancillary Data that is encoded to support the IS-NAI-Opcode. The below is the format to encode single additional word to carry Ancillary Data. This format would be replicated for each additional word of Ancillary Data encoded.

  • The first bit in the Label field MUST be set to "1". This is to prevent aliasing the label field with other SPLs on the legacy routers.
  • Next 19 bits of the Label field can be used to encode Ancillary Data.
  • The TC field carries part of Additional Ancillary Data.
  • The TTL field carries a part of the Additional Ancillary Data.

5. Post-Stack MPLS Network Action Encoding

Based on the PNI and HPI flags, the Post-Stack Network Actions will be processed. The details of the Post-Stack Network Action encoding have been provided in [I-D.song-mpls-extension-header].

6. In-Stack Network Action Encoding Example-1 - Carrying Flag-based In-Stack Network Action without Ancillary Data


 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     NASI=SPL (TBA1)                   |  TC |S|      TTL      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|        Flag-Based-NAI               | 0 |E|S| IL=0, INI=1   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: Example In-Stack Network Action Encoding Carrying Flag-based NA

Second Word:

Label Field:

TC Field:

TTL Field:


 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     NASI=SPL (TBA1)                   | TC  |S|     TTL       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|        Flag-Based-NAI               | 1 |E|S| IL=1, INI=1   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1| Additional Flag-Based-NAI                 |S| Flag-Based-NAI|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: Example In-Stack Network Action Encoding Carrying Flag-based NA with Flag position is more than 20

In this Example, let us assume that an application-C has been allocated a Flag position of "21" by IANA, If the application-C needs to execute its Network Action on the MPLS packet then the 2nd bit in the third Label field will be set to indicate the Flags position "21".

ADL is set to "1" indicates the Flag-Based-NAI word is encoded.

If the Flag-Based-NAI contains Hop-By-Hop NA then this bit will be set to "0".

IL is set to "1" indicates the additional In-Stack NAI word encoded.

INI flag is set to indicate the presence of the In-Stack NAI.

While encoding the Additional Ancillary Data, the Most Significant bit of the third Label Field MUST be set to "1" to prevent from aliasing with the reserved SPLs in the case of legacy devices.

7. In-Stack Network Action Encoding Example-2 - Carrying Only Network Actions that require Ancillary Data


 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     NASI=SPL (TBA1)                   | TC  |S|    TTL        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|        Flag-Based-NAI=0             | 0 |E|S| IL=1, INI=1   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|IS-NAI-Opcode  |  Ancillary Data       | 0 |E|S| Ancillary Data|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 8: Example In-Stack Network Action that requires Ancillary Data

In this Example, the MNA is carrying only the In-Stack Network Action that requires Ancillary Data.

Second Word:

IL length is set to "1" to indicate an additional 1 word of IS-NA is encoded.

INI flag is set to "1" to indicate the presence of In-Stack MPLS Network Actions.

Third Word:

Label Field:

TC Field:

TTL Field:


 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     NASI=SPL (TBA1)                   | TC  |S|     TTL       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|        Flag-Based-NAI=0             | 0 |E|S| IL=2, INI=1   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|IS-NAI-Opcode  |   Ancillary Data      | 1 |E|S| Ancillary Data|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|  Additional Ancillary Data              |E|S| Ancillary Data|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 9: Example In-Stack Network Action that requires Ancillary Data of more than 20-bit length

In this example, the IS-NA carries more than 20-bit of Ancillary Data.

Second Word:

Third Word:

Fourth Word:

Since it carried additional "1" word worth of Ancillary Data, ADL value in the second MPLS TC field is set to "1".

While encoding the Additional Ancillary Data, the Most Significant bit of the Label Field MUST be set to "1" to prevent from aliasing with the reserved SPLs in the case of legacy devices.

8. In-Stack Network Action Encoding Example-3 - Carrying Multiple Network Actions that require Ancillary Data


 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     NASI=SPL (TBA1)                   |  TC |S|     TTL       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|        Flag-Based-NAI=0             | 0 |E|S| IL=2, INI=1   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|IS-NAI-Opcode=3| Ancillary Data3       | 0 |E|S|Ancillary Data3|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|IS-NAI-Opcode=5| Ancillary Data5       | 0 |E|S|Ancillary Data5|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 10: Example In-Stack Network Action Carrying Multiple NA with the Ancillary Data

This is the example where the MPLS packet carries multiple In-Stack Network Actions that require Ancillary Data to process.

Thrid Word

Fourth Word

9. Node Capability Signaling

The node capability for the MPLS Network Action must be signaled before the MPLS Encapsulating node can add the necessary MPLS Network Action in the MPLS Label Stack. The capability signaling will be added in LDP, RSVP-TE, BGP, IS-IS, OSPF, BGP-LS, etc. This is outside the scope of this document.

10. Security Considerations

The security considerations in [RFC3032] also apply to the extensions defined in this document. The NASI Label MUST NOT be exposed to the node which does not support it.

11. Backward Compatibility

12. Processing In-Stack MPLS Network Actions

Encapsulating Node:

Intermediate Node:

Decapsulating Node:

13. IANA Considerations

Below are the IANA actions which this document is requesting.

The registries created by this document will be collected in a new registry grouping called "MPLS Network Action," which will be located at https://www.iana.org/assignments/mpls-network-action.

13.1. IANA Considerations for MNA Encoding Flags

IANA is requested to create a new registry with name "MNA Encoding Flags" to assign the bit position and the meaning to the Flags to repurpose TTL and TC fields in the Label Stack Entry (LSE).

Table 1: MNA Encoding Flags Registry
Bit Position Description Reference
11-0 IETF Review This document

Following MNA Encoding Flag values are assigned from this registry.

Table 2: MNA Encoding Flag Values
Value Description Reference
0-2 In-Stack Network Action Encoding Length (IL) This document
3 Reserved This document
4 In-Stack Network Action Presence Indicator (INI) This document
5 Post-Stack Network Action Presence Indicator (PNI) This document
6 Hop-By-Hop Post-Stack Network Action Processing Indicator (HPI) This document
7 In-Stack Network Action Extension Presence Indicator (INE) This document
8 End of Stack (S) This document
9-10 Additional Data Length (ADL) This document
11 Ingress-To-Egress (E) This document

13.2. IANA Considerations Flag-based Network Actions

IANA is requested to create a new registry with name "In-Stack MPLS Network Action Indicator Flags" to assign the bit position and the meaning to the Flag-based Network Actions upon the user request. Based on the need this registry will be extended more than 19 bit positions.

Table 3: In-Stack MPLS Network Action Indicator Flags Registry
Bit Position Description Reference
18-0 Unassigned This document

13.3. IANA Considerations for IS-NAI-Opcode

IANA is requested to create a new registry with name "In-Stack MPLS Network Action Indicator Opcodes" to assign IS-NAI-Opcode values. All code-points in the range 1 through 175 in this registry shall be allocated according to the "IETF Review" procedure as specified in [RFC8126]. Code points in the range 176 through 239 in this registry shall be allocated according to the "First Come First Served" procedure as specified in [RFC8126]. Remaining code-points are allocated according to Table 4:

Table 4: In-Stack MPLS Network Action Indicator Opcodes Registry
Value Description Reference
0 - 175 IETF Review This document
176 - 239 First Come First Served This document
240 - 251 Experimental Use This document
252 - 254 Private Use This document

Following IS-NAI-Opcode Indicator values are assigned from this registry.

Table 5: In-Stack Network Action Indicator Opcode Values
Value Description Reference
0 Reserved This document
1 Offset of start of Post-Stack Network Action Header This document
255 Opcode Range Extension Beyond 255 This document

13.4. IANA Considerations for New Special Purpose Label

IANA is requested to allocate a value TBA1 for the SPL label from the "Base Special-Purpose MPLS Label Values" registry to indicate the presence of MNA Sub-stack.

14. Appendix

14.1. Alternate approach for In-Stack Network Action Encoding

Instead of encoding In-Stack Network Action Indicator Opcode in the Label field, here is an alternate way of adding In-Stack Network Action Indicator Opcode in the TTL field.


 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      NASI=SPL (TBA1)                  |  TC |S|    TTL        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|        Flag-Based-NAI               | 0 |E|S| IL=1, INI=1   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|         Ancillary Data              |ADL|E|S| IS-NAI-Opcode |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 11: Alternate In-Stack Network Action Encoding Format

INI flag is set to "1" to indicate the presence of In-Stack MPLS Network Actions.

Since In-Stack MPLS Network Action encoding is part of the MPLS Header, the MPLS Header is redefined to encode the MPLS Network Actions.

Fourth Word:

Label Field:

  • Most significant bit is always set to "1" to avoid aliasing with the reserved SPLs.
  • Rest of the 19 bits in the Label can be used to carry the Ancillary Data corresponding to the IS-NAI-Opcode.

TC Field:

  • ADL (Additional Data Length): Length of Additional Ancillary Data that is encoded.

TTL Field:

This carries In-Stack Network Action Indicator Opcode.

15. References

15.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC3032]
Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack Encoding", RFC 3032, DOI 10.17487/RFC3032, , <https://www.rfc-editor.org/info/rfc3032>.
[RFC8126]
Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, , <https://www.rfc-editor.org/info/rfc8126>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.

15.2. Informative References

[I-D.song-mpls-extension-header]
Song, H., Li, Z., Zhou, T., Andersson, L., Zhang, Z., Gandhi, R., Rajamanickam, J., and J. Bhattacharya, "MPLS Extension Header", Work in Progress, Internet-Draft, draft-song-mpls-extension-header-07, , <https://www.ietf.org/archive/id/draft-song-mpls-extension-header-07.txt>.
[I-D.andersson-mpls-mna-fwk]
Andersson, L., Bryant, S., and M. Bocci, "MPLS Network Actions Framework", Work in Progress, Internet-Draft, draft-andersson-mpls-mna-fwk-04.txt, , <https://www.ietf.org/archive/id/draft-andersson-mpls-mna-fwk-04.txt>.
[I-D.ietf-mpls-mna-requirements]
Bocci, M., Bryant, S., and J. Drake, "Requirements for MPLS Network Action Indicators and MPLS Ancillary Data", Work in Progress, Internet-Draft, draft-ietf-mpls-mna-requirements-01.txt, , <https://www.ietf.org/archive/id/draft-ietf-mpls-mna-requirements-01.txt>.
[I-D.ietf-mpls-mna-usecases]
Saad, T., Makhijani, K., and H. Song, "Usecases for MPLS Indicators and Ancillary Data", Work in Progress, Internet-Draft, draft-ietf-mpls-mna-usecases-00, , <https://www.ietf.org/archive/id/draft-ietf-mpls-mna-usecases-00.txt>.
[RFC5586]
Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., "MPLS Generic Associated Channel", RFC 5586, DOI 10.17487/RFC5586, , <https://www.rfc-editor.org/info/rfc5586>.
[RFC4385]
Bryant, S., Swallow, G., Martini, L., and D. McPherson, "Pseudowire Emulation Edge-to-Edge (PWE3) Control Word for Use over an MPLS PSN", RFC 4385, DOI 10.17487/RFC4385, , <https://www.rfc-editor.org/info/rfc4385>.

Acknowledgments

The authors of this document would like to thank the MPLS Working Group Design Team for the discussions and comments on this document. The authors would also like to thank Amanda Baber for reviewing the IANA Considerations and providing many useful suggestions.

Contributors

TBA

Authors' Addresses

Jaganbabu Rajamanickam (editor)
Cisco Systems, Inc.
Canada
Rakesh Gandhi (editor)
Cisco Systems, Inc.
Canada
Jisu Bhattacharya
Cisco Systems, Inc.
Bruno Decraene
Orange
Royi Zigler
Broadcom
Weiqiang Cheng
China Mobile
Luay Jalil
Verizon
Haoyu Song
Futurewei Technologies
Xiao Min
ZTE Corp.
Bin Wen
Comcast
Sami Boutros
Ciena