| Internet-Draft | Generic MPLS IEs for Ordered Export | October 2026 |
| Claise, et al. | Expires 1 May 2027 | [Page] |
- Workgroup:
- OPSAWG
- Internet-Draft:
- draft-claise-opsawg-ipfix-ordered-mpls-ie-00
- Published:
- Intended Status:
- Standards Track
- Expires:
Generic MPLS Information Elements for Ordered Export in IPFIX
Abstract
This document defines new generic IPFIX Information Elements for MPLS label stacks and label attributes, intended for use with the ordered set mechanisms that provide an explicit ordering guarantee for repeated Information Elements.¶
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 1 May 2027.¶
Copyright Notice
Copyright (c) 2026 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.¶
1. Introduction
The IPFIX protocol [RFC7011] allows the same Information Element (IE) to appear multiple times in a Template Record. [I-D.claise-opsawg-ipfix-ordered-ie] defines Ordered Template Sets and Ordered Options Template Sets that provide an explicit, end-to-end ordering guarantee: the Metering Process records repeated IE values in observation order, the Exporting Process preserves and signals that order, and the Collecting Process interprets the n-th occurrence as the n-th observation at the Observation Point.¶
MPLS label stacks are one of the primary use cases for Ordered Export. As described in Section 3.2 of [I-D.claise-opsawg-ipfix-ordered-ie], the absence of an ordering guarantee has led to the definition of ten positional MPLS label stack Information Elements (mplsTopLabelStackSection through mplsLabelStackSection10, IPFIX IE 70 through IE 79), plus a cluster of MPLS label attributes.¶
This document defines new generic MPLS Information Elements that, when repeated in an Ordered Template Record, can be used instead of the positional MPLS IEs. The positional IEs are not deprecated; see Section 6. The ordering mechanism, and the general rules for repeated Information Elements are specified in [I-D.claise-opsawg-ipfix-ordered-ie].¶
2. Terminology and Definitions
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.¶
The terminology defined in [RFC7011] applies to this document.¶
The terms "Ordered Template Record", "Ordered Options Template Record", "Ordered Template Set" and "Ordered Options Template Set" are used as defined in [I-D.claise-opsawg-ipfix-ordered-ie].¶
Ordered Export: The export of repeated Information Elements using Ordered Template Sets or Ordered Options Template Sets as defined in [I-D.claise-opsawg-ipfix-ordered-ie].¶
3. Existing IEs for MPLS
The IPFIX Information Elements registry [IANA.IPFIX] currently defines ten positional label stack Information Elements, originally specified in [RFC5102]:¶
- mplsTopLabelStackSection (IPFIX IE 70)¶
- mplsLabelStackSection2 (IPFIX IE 71)¶
- mplsLabelStackSection3 (IPFIX IE 72)¶
- mplsLabelStackSection4 (IPFIX IE 73)¶
- mplsLabelStackSection5 (IPFIX IE 74)¶
- mplsLabelStackSection6 (IPFIX IE 75)¶
- mplsLabelStackSection7 (IPFIX IE 76)¶
- mplsLabelStackSection8 (IPFIX IE 77)¶
- mplsLabelStackSection9 (IPFIX IE 78)¶
- mplsLabelStackSection10 (IPFIX IE 79)¶
In addition, a cluster of Information Elements exists for attributes of the top-of-stack label only: mplsTopLabelType (IPFIX IE 46), mplsTopLabelIPv4Address (IPFIX IE 47), mplsTopLabelPrefixLength (IPFIX IE 91), mplsTopLabelIPv6Address (IPFIX IE 140), mplsTopLabelTTL (IPFIX IE 200), mplsTopLabelExp (IPFIX IE 203), and postMplsTopLabelExp (IPFIX IE 237).¶
With the Ordered Export mechanism defined in [I-D.claise-opsawg-ipfix-ordered-ie], the Exporting Process can use a single generic Information Element repeated N times in an Ordered Template Record and signal that the sequence reflects the top-to- bottom order observed by the Metering Process.¶
4. Generic MPLS Information Elements
The five Information Elements defined in this section are intended for use in Ordered Template Records and Ordered Options Template Records as defined in [I-D.claise-opsawg-ipfix-ordered-ie]. The ordering, occurrence, and observation rules defined in that document apply to these Information Elements. This section only defines the element-specific semantics.¶
4.1. mplsLabelStackEntry
Name: mplsLabelStackEntry¶
Abstract Data Type: octetArray¶
Data Type Semantics: default¶
Description: The contents of a label stack entry at any position in the MPLS label stack, encoded as the 4-octet MPLS label stack entry format defined in Section 2.1 of [RFC3032]. The encoding comprises a 20-bit label value, a 3-bit Traffic Class (TC) field, a 1-bit Stack Bottom (S) flag, and an 8-bit Time to Live (TTL) field. When this Information Element appears multiple times in an Ordered Template Record as defined in [I-D.claise-opsawg-ipfix-ordered-ie], the N-th occurrence corresponds to the label stack entry at stack position N (counting from the top) as observed by the Metering Process at the Observation Point. If only one occurrence is present, it denotes stack position 1 (the top of the stack).¶
Additional Information: See Section 2.1 of [RFC3032] for the MPLS label stack entry encoding.¶
Reference: This document.¶
4.2. mplsLabelType
Name: mplsLabelType¶
Abstract Data Type: unsigned8¶
Data Type Semantics: identifier¶
Description: The type of the MPLS label at the given stack position. The value is encoded as a single unsigned 8-bit identifier assigned by IANA in the "IPFIX MPLS label type (Value 46)" subregistry. The registry value identifies the control protocol that allocated the label at that stack position. When this Information Element appears multiple times in an Ordered Template Record as defined in [I-D.claise-opsawg-ipfix-ordered-ie], the N-th occurrence corresponds to the label type at stack position N (counting from the top) as observed by the Metering Process at the Observation Point. If only one occurrence is present, it denotes stack position 1 (the top of the stack). The value 0 (Unknown) denotes that the label type at that position is not known.¶
Additional Information: See the IANA "IPFIX MPLS label type (Value 46)" subregistry for the list of values.¶
Reference: This document.¶
4.3. mplsLabelIPv4Address
Name: mplsLabelIPv4Address¶
Abstract Data Type: ipv4Address¶
Data Type Semantics: default¶
Description: The IPv4 address of the system that the MPLS label at the given stack position will cause this Flow to be forwarded to. When this Information Element appears multiple times in an Ordered Template Record as defined in [I-D.claise-opsawg-ipfix-ordered-ie], the N-th occurrence corresponds to the next-hop IPv4 address for the label at stack position N (counting from the top) as observed by the Metering Process at the Observation Point. If only one occurrence is present, it denotes stack position 1.¶
Additional Information: mplsTopLabelIPv4Address (IPFIX IE 47) exports the same information for the top of the stack only. In an Ordered Template Record, this Information Element can be used instead of mplsTopLabelIPv4Address, and covers every stack position. IE 47 remains current; see Section 6.¶
Reference: This document.¶
4.4. mplsLabelPrefixLength
Name: mplsLabelPrefixLength¶
Abstract Data Type: unsigned8¶
Data Type Semantics: quantity¶
Description: The prefix length of the subnet of the mplsLabelIPv4Address or mplsLabelIPv6Address that the MPLS label at the given stack position will cause the Flow to be forwarded to. When this Information Element appears multiple times in an Ordered Template Record as defined in [I-D.claise-opsawg-ipfix-ordered-ie], the N-th occurrence corresponds to the prefix length for the label at stack position N (counting from the top) as observed by the Metering Process at the Observation Point. If only one occurrence is present, it denotes stack position 1.¶
Units: bits¶
Range: 0-128¶
Additional Information: mplsTopLabelPrefixLength (IPFIX IE 91) exports the same information for the top of the stack only. In an Ordered Template Record, this Information Element can be used instead of mplsTopLabelPrefixLength, and covers every stack position. IE 91 remains current; see Section 6.¶
Reference: This document.¶
4.5. mplsLabelIPv6Address
Name: mplsLabelIPv6Address¶
Abstract Data Type: ipv6Address¶
Data Type Semantics: default¶
Description: The IPv6 address of the system that the MPLS label at the given stack position will cause this Flow to be forwarded to. When this Information Element appears multiple times in an Ordered Template Record as defined in [I-D.claise-opsawg-ipfix-ordered-ie], the N-th occurrence corresponds to the next-hop IPv6 address for the label at stack position N (counting from the top) as observed by the Metering Process at the Observation Point. If only one occurrence is present, it denotes stack position 1.¶
Additional Information: mplsTopLabelIPv6Address (IPFIX IE 140) exports the same information for the top of the stack only. In an Ordered Template Record, this Information Element can be used instead of mplsTopLabelIPv6Address, and covers every stack position. IE 140 remains current; see Section 6.¶
Reference: This document.¶
4.6. TTL and TC Considerations
No separate generic IPFIX IEs for TTL and TC (Exp) are defined in this document. The TTL and TC (Exp) fields are already encoded as subfields of the 4-octet label stack entry exported by mplsLabelStackEntry (Section 4.1). mplsTopLabelTTL (IPFIX IE 200) and mplsTopLabelExp (IPFIX IE 203) can be derived from mplsLabelStackEntry when used with Ordered Export. IE 200 and IE 203 remain current; see Section 6.¶
The existing positional IPFIX IEs mplsTopLabelStackSection (IE 70) through mplsLabelStackSection10 (IE 79) encode only 3 octets (label, TC, and S fields), omitting the TTL field. mplsLabelStackEntry encodes the full 4-octet label stack entry as defined in Section 2.1 of [RFC3032], so the TTL can be exported at any stack depth without a separate TTL Information Element.¶
postMplsTopLabelExp (IPFIX IE 237) is not in scope for this document, and no generic replacement is defined here.¶
4.7. Applicability to Stack Positions
The Information Elements defined in this document differ in their applicability across stack positions.¶
mplsLabelStackEntry (Section 4.1) is meaningful at every stack position, because every MPLS label stack entry carries label, TC, S, and TTL fields as defined in [RFC3032].¶
mplsLabelType (Section 4.2), mplsLabelIPv4Address (Section 4.3), mplsLabelIPv6Address (Section 4.5), and mplsLabelPrefixLength (Section 4.4) describe attributes associated with the forwarding decision for a label. In typical MPLS data-plane operation, the forwarding decision is driven by the top-of-stack label. The values of these attributes may not be available for lower stack positions, depending on the implementation and the control-plane information available to the Metering Process.¶
Because the n-th occurrence of each of these Information Elements describes stack position n, the occurrences of mplsLabelType, mplsLabelIPv4Address, mplsLabelIPv6Address, or mplsLabelPrefixLength in a Data Record are consecutive from stack position 1. If the label type at stack position K is not known, the Exporting Process exports the value 0 (Unknown) of mplsLabelType for that position. If the value of mplsLabelIPv4Address, mplsLabelIPv6Address, or mplsLabelPrefixLength is not available for stack position K, the Exporting Process MUST NOT export an occurrence of that Information Element for stack position K or for any deeper stack position.¶
5. Use with Ordered Export
The generic MPLS Information Elements defined in this document are intended for use in Ordered Template Records and Ordered Options Template Records as defined in [I-D.claise-opsawg-ipfix-ordered-ie]. The Exporting Process includes the same generic IE multiple times in an Ordered Template Record; the Collecting Process interprets the n-th occurrence as the n-th observation by the Metering Process at the Observation Point, as specified in [I-D.claise-opsawg-ipfix-ordered-ie].¶
These Information Elements can also be used in a Template Record of a Template Set or an Options Template Set (Set ID 2 or 3). A single occurrence then describes stack position 1, the top of the stack. If an Information Element is repeated in such a Template Record, the order of the Information Elements in the Template Record is not guaranteed (see Sections 4.2 and 4.3 of [RFC7011]), and the n-th occurrence therefore does not correspond to stack position n.¶
For example, an Ordered Template Record may contain mplsLabelStackEntry repeated N times to export an N-entry label stack, with the first occurrence representing the top of the stack and the N-th occurrence representing the bottom. Similarly, mplsLabelType, mplsLabelIPv4Address, mplsLabelPrefixLength, or mplsLabelIPv6Address may be repeated to export the corresponding attribute for each stack position at which that attribute is available.¶
The ordering guarantee applies independently to each Information Element, as specified in Section 4.3 of [I-D.claise-opsawg-ipfix-ordered-ie], which defines no relative ordering between occurrences of different Information Elements. The correspondence between the Information Elements defined in this document comes from their definitions in Section 4: for every one of them, the n-th occurrence corresponds to stack position n. The n-th occurrence of mplsLabelStackEntry and the n-th occurrence of mplsLabelType therefore describe the same stack position, because each is defined that way, and not because of any ordering between the two Information Elements.¶
This document relies on the dense, consecutive export model defined in [I-D.claise-opsawg-ipfix-ordered-ie]. The cases where only a sparse subset of stack positions is exported are out of the scope of this document.¶
6. Coexistence and Migration
The generic MPLS Information Elements defined in this document do not immediately obsolete the existing positional IPFIX IEs. Collecting Processes that do not support Ordered Export continue to require the positional IPFIX IEs. An Exporting Process that needs to serve such Collecting Processes continues to export the positional IEs, and can export the generic IEs toward Collecting Processes that support Ordered Export.¶
Once Ordered Export is widely deployed, the positional MPLS IPFIX IEs listed in Appendix A may be deprecated in a future document. This document does not request deprecation of those IEs.¶
Appendix A provides the migration mapping from positional MPLS IEs to the generic IEs defined in this document when used with Ordered Export.¶
7. Operational Considerations
Ordered Export is additive, as described in [I-D.claise-opsawg-ipfix-ordered-ie]. Operators SHOULD enable Ordered Export of MPLS Information Elements only toward Collecting Processes that are known to support the Ordered Template Sets or Ordered Options Template Sets defined in [I-D.claise-opsawg-ipfix-ordered-ie]. Deployment against unaware Collecting Processes may result in silent loss of entire Ordered Sets, as discussed in Section 5.4 of [I-D.claise-opsawg-ipfix-ordered-ie].¶
The new mplsLabelStackEntry IE is 4 octets, whereas the existing positional label stack IEs are 3 octets. Deployments that do not require TTL information may observe a small increase in per-label export size when using the generic IE.¶
Verification of correct operation requires confirming that the Exporting Process preserves the Metering Process observation order and that the Collecting Process interprets the n-th occurrence as stack position n. Correct interpretation can be verified by comparing collected data against known MPLS label stacks in a test environment.¶
8. Security Considerations
This document does not change the trust model of the IPFIX protocol. The security considerations of [RFC7011] and [I-D.claise-opsawg-ipfix-ordered-ie] apply.¶
An Exporting Process that uses an Ordered Template Set but fails to preserve the Metering Process observation order will cause the Collecting Process to misinterpret MPLS label stack positions. Operators SHOULD ensure that the Exporting Process and Metering Process are correctly coordinated before using Ordered Export for MPLS Information Elements.¶
9. IANA Considerations
This document requests IANA to allocate the Information Elements defined in Section 4 in the "IPFIX Information Elements" registry [IANA.IPFIX]:¶
| ElementID | Name | Reference |
|---|---|---|
| TBD1 | mplsLabelStackEntry | Section 4.1 |
| TBD2 | mplsLabelType | Section 4.2 |
| TBD3 | mplsLabelIPv4Address | Section 4.3 |
| TBD4 | mplsLabelPrefixLength | Section 4.4 |
| TBD5 | mplsLabelIPv6Address | Section 4.5 |
10. References
10.1. Normative References
- [I-D.claise-opsawg-ipfix-ordered-ie]
- Claise, B., Aitken, P., Keller, H., and Y. Liu, "Ordered Information Element Export in IP Flow Information Export (IPFIX)", Work in Progress, Internet-Draft, draft-claise-opsawg-ipfix-ordered-ie, <https://datatracker.ietf.org/doc/draft-claise-opsawg-ipfix-ordered-ie/>.
- [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>.
- [RFC7011]
- Claise, B., Ed., Trammell, B., Ed., and P. Aitken, "Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of Flow Information", STD 77, RFC 7011, DOI 10.17487/RFC7011, , <https://www.rfc-editor.org/info/rfc7011>.
- [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>.
10.2. Informative References
- [IANA.IPFIX]
- IANA, "IP Flow Information Export (IPFIX) Entities", <https://www.iana.org/assignments/ipfix/ipfix.xhtml>.
- [RFC5102]
- Quittek, J., Bryant, S., Claise, B., Aitken, P., and J. Meyer, "Information Model for IP Flow Information Export", RFC 5102, DOI 10.17487/RFC5102, , <https://www.rfc-editor.org/info/rfc5102>.
Appendix A. MPLS Positional-to-Generic Migration
This appendix is informative. It provides the migration mapping from positional MPLS IPFIX IEs to the generic IEs defined in this document when used with Ordered Export as defined in [I-D.claise-opsawg-ipfix-ordered-ie].¶
The "Generic IE" column identifies the Information Element that can be used in place of the positional IE when Ordered Export is used. It does not indicate that the positional IE is deprecated or obsolete.¶
The positional label stack IEs (IPFIX IE 70 through IE 79) are 3 octets long and carry the Label, Exp, and S fields. The generic mplsLabelStackEntry is 4 octets long and carries the complete label stack entry of Section 2.1 of [RFC3032], which adds the TTL field as the fourth octet. The first three octets of mplsLabelStackEntry have the same layout as the positional IEs. A Collecting Process therefore cannot decode the two with the same field length. It has to account for the extra octet, and the TTL is available only with the generic IE.¶
| Positional IE | IE ID | Generic IE | IE ID | Notes |
|---|---|---|---|---|
| mplsTopLabelType | 46 | mplsLabelType | TBD2 | Top-of-stack only; generic IE covers position N |
| mplsTopLabelIPv4Address | 47 | mplsLabelIPv4Address | TBD3 | Top-of-stack only; generic IE covers position N |
| mplsTopLabelStackSection | 70 | mplsLabelStackEntry | TBD1 | Occurrence 1 (top of stack) |
| mplsLabelStackSection2 | 71 | mplsLabelStackEntry | TBD1 | Occurrence 2 |
| mplsLabelStackSection3 | 72 | mplsLabelStackEntry | TBD1 | Occurrence 3 |
| mplsLabelStackSection4 | 73 | mplsLabelStackEntry | TBD1 | Occurrence 4 |
| mplsLabelStackSection5 | 74 | mplsLabelStackEntry | TBD1 | Occurrence 5 |
| mplsLabelStackSection6 | 75 | mplsLabelStackEntry | TBD1 | Occurrence 6 |
| mplsLabelStackSection7 | 76 | mplsLabelStackEntry | TBD1 | Occurrence 7 |
| mplsLabelStackSection8 | 77 | mplsLabelStackEntry | TBD1 | Occurrence 8 |
| mplsLabelStackSection9 | 78 | mplsLabelStackEntry | TBD1 | Occurrence 9 |
| mplsLabelStackSection10 | 79 | mplsLabelStackEntry | TBD1 | Occurrence 10 |
| mplsTopLabelPrefixLength | 91 | mplsLabelPrefixLength | TBD4 | Top-of-stack only; generic IE covers position N |
| mplsTopLabelIPv6Address | 140 | mplsLabelIPv6Address | TBD5 | Top-of-stack only; generic IE covers position N |
| mplsTopLabelTTL | 200 | mplsLabelStackEntry | TBD1 | TTL is encoded in octet 4 of the 4-octet label stack entry |
| mplsTopLabelExp | 203 | mplsLabelStackEntry | TBD1 | TC (Exp) is encoded in bits 21-23 of the 4-octet label stack entry |
| postMplsTopLabelExp | 237 | (not in scope) | -- | Post-policy TC; no generic replacement defined in this document |
Acknowledgements
TBD.¶