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:
Authors:
B. Claise
Everything OPS & Arrcus
P. Aitken
Ciena
H. Keller
Deutsche Telekom
Y. Liu
ZTE Corporation

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.

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]:

Table 1: New IPFIX Information Elements
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.

Table 2: MPLS Positional-to-Generic Migration Mapping
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

Authors' Addresses

Benoit Claise
Everything OPS & Arrcus
Paul Aitken
Ciena
Holger Keller
Deutsche Telekom
Yao Liu
ZTE Corporation