rfc9790.original   rfc9790.txt 
MPLS Working Group K. Kompella Internet Engineering Task Force (IETF) K. Kompella
Internet-Draft Juniper Networks Request for Comments: 9790 Juniper Networks
Updates: 4928 (if approved) S. Bryant Updates: 4928 S. Bryant
Intended status: Standards Track University of Surrey 5GIC Category: Standards Track University of Surrey 5GIC
Expires: 8 June 2025 M. Bocci ISSN: 2070-1721 M. Bocci
Nokia Nokia
G. Mirsky, Ed. G. Mirsky, Ed.
Ericsson Ericsson
L. Andersson L. Andersson
J. Dong J. Dong
Huawei Technologies Huawei Technologies
5 December 2024 May 2025
IANA Registry and Processing Recommendations for the First Nibble IANA Registry and Processing Recommendations for the First Nibble
Following a Label Stack Following a Label Stack
draft-ietf-mpls-1stnibble-13
Abstract Abstract
This document creates a new IANA registry (called the Post-stack This document creates a new IANA registry (called the "Post-Stack
First Nibble registry) for the first nibble (4-bit field) immediately First Nibble" registry) for the first nibble (4-bit field)
following an MPLS label stack. Furthermore, this document sets out immediately following an MPLS label stack. Furthermore, this
some documentation requirements for registering new values, and document presents some requirements for registering new values and
requirements that make processing MPLS packets easier and more making the processing of MPLS packets easier and more robust.
robust.
The relationship between the IANA IP Version Numbers (RFC 2780) and The relationship between the IANA "Post-Stack First Nibble" registry
the Post-stack First Nibble registry is described in this document. and the "IP Version Numbers" registry (RFC 2780) is described in this
document.
This document updates RFC 4928 by deprecating the heuristic method This document updates RFC 4928 by deprecating the heuristic method
for identifying the type of packet encapsulated in MPLS. for identifying the type of packet encapsulated in MPLS.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering This document is a product of the Internet Engineering Task Force
Task Force (IETF). Note that other groups may also distribute (IETF). It represents the consensus of the IETF community. It has
working documents as Internet-Drafts. The list of current Internet- received public review and has been approved for publication by the
Drafts is at https://datatracker.ietf.org/drafts/current/. Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
Internet-Drafts are draft documents valid for a maximum of six months Information about the current status of this document, any errata,
and may be updated, replaced, or obsoleted by other documents at any and how to provide feedback on it may be obtained at
time. It is inappropriate to use Internet-Drafts as reference https://www.rfc-editor.org/info/rfc9790.
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 8 June 2025.
Copyright Notice Copyright Notice
Copyright (c) 2024 IETF Trust and the persons identified as the Copyright (c) 2025 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
1.1. Conventions and Definitions . . . . . . . . . . . . . . . 4 1.1. Requirements Language
1.2. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 4 1.2. Definitions
1.3. Reference Figures . . . . . . . . . . . . . . . . . . . . 5 1.3. Abbreviations
2. Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4. Reference Figures
2.1. Why Look at the First Nibble . . . . . . . . . . . . . . 7 2. Rationale
2.1.1. ECMP Load Balancing . . . . . . . . . . . . . . . . . 7 2.1. Why Look at the First Nibble
2.2. Updates of RFC 4928 . . . . . . . . . . . . . . . . . . . 9 2.1.1. ECMP Load Balancing
2.3. Why Create a Registry . . . . . . . . . . . . . . . . . . 10 2.2. Updates to RFC 4928
2.4. IP Version Numbers versus Post-stack First Nibble 2.3. Why Create a Registry
Values . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4. IP Version Numbers Versus Post-Stack First Nibble Values
2.5. Next Step to More Deterministic Load-balancing in MPLS 2.5. Next Step to More Deterministic Load Balancing in MPLS
Networks . . . . . . . . . . . . . . . . . . . . . . . . 11 Networks
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 3. IANA Considerations
3.1. The Post-stack First Nibble Registry . . . . . . . . . . 12 4. Security Considerations
4. Security Considerations . . . . . . . . . . . . . . . . . . . 13 5. References
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 5.1. Normative References
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 5.2. Informative References
6.1. Normative References . . . . . . . . . . . . . . . . . . 13 Acknowledgements
6.2. Informative References . . . . . . . . . . . . . . . . . 15 Authors' Addresses
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16
1. Introduction 1. Introduction
An MPLS packet consists of a label stack, an optional "post-stack An MPLS packet consists of a label stack, an optional Post-Stack
header" (PSH) and an optional embedded packet (in that order). Header (PSH), and an optional embedded packet (in that order).
Examples of PSH include existing artifacts such as Control Words Examples of PSH include existing artifacts such as control words
[RFC4385], BIER (Bit-Indexed Explicit Replication) headers [RFC8296] [RFC4385], BIER (Bit Index Explicit Replication) headers [RFC8296]
and the like, as well as new types of PSH being discussed by the MPLS and the like, as well as new types of PSH being discussed by the MPLS
Working Group. However, in the data plane, there are very few clues Working Group. However, in the data plane, there are very few clues
regarding the PSH, and no clue as to the type of embedded packet; regarding the PSH and no clue as to the type of embedded packet; this
this information is communicated via other means, such as the routing information is communicated via other means, such as the routing
protocols that signal the labels in the stack. Nonetheless, in order protocols that signal the labels in the stack. Nonetheless, in order
to better handle an MPLS packet in the data plane, it is common to better handle an MPLS packet in the data plane, it is common
practice for network equipment to "guess" the type of embedded practice for network equipment to "guess" the type of embedded
packet. Such equipment may also need to process the PSH. Both of packet. Such equipment may also need to process the PSH. Both of
these require parsing the data after the label stack. To do this, these require parsing the data after the label stack. To do this,
the "first nibble" (the top four bits of the first octet following the "first nibble" (the top four bits of the first octet following
the label stack) is often used. Although some existing network the label stack) is often used. Although some existing network
devices may use such a method, it needs to be stressed that the devices may use such a method, it needs to be stressed that the
correct interpretation of the Post-stack First Nibble (PFN) in a PSH correct interpretation of the Post-stack First Nibble (PFN) in a PSH
can be made only in the context associated using the control or can be made only in the context associated using the control or
management plane with the Label Stack Element (LSE) or group of LSEs management plane with the Label Stack Entry (LSE) or group of LSEs in
in the preceding label stack that characterize the type of the PSH, the preceding label stack that characterizes the type of the PSH.
and that any attempt to rely on the value in any other context is Any attempt to rely on the value in any other context is unreliable.
unreliable. Because the PFN value should not be used to deduce the Because the PFN value should not be used to deduce the type of PSH by
type of PSH by itself, and the space of PFN values is limited, the itself and the space of PFN values is limited, the reuse of PFN
re-use of PFN values, where that is possible, is encouraged. values is encouraged when possible.
The semantics and usage of the first nibble are not well documented, The semantics and usage of the first nibble are not well documented,
nor are the assignments of values. This document serves four nor are the assignments of values. This document serves four
purposes: purposes:
* To document the values already in use. * To document the values already in use.
* To provide a mechanism to document future assignments through the * To provide a mechanism to document future assignments through the
creation of a new IANA "Post-stack First Nibble registry", and creation of a new IANA "Post-Stack First Nibble" registry and
document the relationship between it and the IANA IP Version describe the relationship between it and the IANA "IP Version
Numbers [RFC2780]. Numbers" registry [RFC2780].
* Provide a method for tracking usage by requiring more detailed * Provide a method for tracking usage by requiring more detailed
documentation. documentation.
* To stress the importance that any MPLS packet not carrying plain * To stress the importance that any MPLS packet not carrying plain
IPv4 or IPv6 packets contains a PSH, including any new version of IPv4 or IPv6 packets contains a PSH, including any new version of
IP (Section 2.4). IP (Section 2.4).
Based on the analysis of load-balancing techniques in Section 2.1.1, Section 2.1.1 of this document includes an analysis of load-balancing
this document, in Section 2.1.1.1, introduces a requirement that techniques; based on this, Section 2.1.1.1 introduces a requirement
deprecates the use of the heuristic and recommends using a dedicated that deprecates the use of the heuristic and recommends using a
label value for load balancing. The intent of both is for legacy dedicated label value for load balancing. The intent is for legacy
routers to continue operating as they have, with no new problems routers to continue operating as they have, with no new problems
introduced as a result of this document. However, new introduced as a result of this document. However, new
implementations that follow this document enable a more robust implementations that follow this document enable a more robust
network operation. network operation.
Furthermore, this document updates [RFC4928] by deprecating the Furthermore, this document updates [RFC4928] by deprecating the
heuristic method for identifying the type of packet encapsulated in heuristic method for identifying the type of packet encapsulated in
MPLS. This document clearly states that the type of encapsulated MPLS. This document clearly states that the type of encapsulated
packet cannot be determined based on the PFN alone. packet cannot be determined based on the PFN alone.
1.1. Conventions and Definitions 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in
14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
MPLS packet: one whose Layer 2 header declares the type to be MPLS. 1.2. Definitions
For example, for Ethernet the Ethertype is 0x8847 or 0x8848, and
for PPP the Protocol field is 0x0281 or 0x0283.
Label Stack: (of an MPLS packet) all labels (four-octet fields) MPLS packet: A packet whose Layer 2 header declares the type to be
MPLS. For example, the Ethertype is 0x8847 or 0x8848 for
Ethernet, and the Protocol field is 0x0281 or 0x0283 for PPP.
Label Stack: For an MPLS packet, all labels (four-octet fields)
after the Layer 2 header, up to and including the label with the after the Layer 2 header, up to and including the label with the
Bottom of Stack bit set ([RFC3032]). Bottom of Stack bit set [RFC3032].
Post-stack First Nibble (PFN): the most significant four bits of the Post-stack First Nibble (PFN): The most significant four bits of the
first octet following the label stack. first octet following the label stack.
MPLS Payload: all data after the label stack, including the PFN, an MPLS Payload: All data after the label stack, including the PFN, an
optional post-stack header, and the embedded packet. optional post-stack header, and the embedded packet.
Post-stack Header (PSH): optional field of interest to the egress Post-Stack Header (PSH): Optional field of interest to the egress
Label Switching Router (LSR) (and possibly to transit LSRs). Label Switching Router (LSR) (and possibly to transit LSRs).
Examples include a control word [RFC4385], [RFC8964] or an Examples include a control word [RFC4385] [RFC8964] or an
associated channel [RFC4385], [RFC5586], [RFC9546]. The PSH MUST associated channel [RFC4385] [RFC5586] [RFC9546]. The PSH MUST
indicate its length, so that a parser knows where the embedded indicate its length, so that a parser knows where the embedded
packet starts. packet starts.
Embedded Packet: an embedded packet follows immediately after the Embedded Packet: A packet that follows immediately after the MPLS
MPLS Label Stack and an optional PSH. That could be an IPv4 or label stack and an optional PSH. The embedded packet could be an
IPv6 packet, an Ethernet packet (for VPLS ([RFC4761], [RFC4762]) IPv4 or IPv6 packet, an Ethernet packet (for Virtual Private LAN
or EVPN [RFC7432]), or some other type of Layer 2 frame [RFC4446]. Service (VPLS) [RFC4761] [RFC4762] or EVPN [RFC7432]), or some
other type of Layer 2 frame [RFC4446].
Deprecation: regardless of how the deprecation is understood in Deprecation: Regardless of how the deprecation is understood in
other IETF documents, the interpretation in this document is that other IETF documents, the interpretation in this document is that
if a practice has been deprecated, that practice should not be if a practice has been deprecated, that practice should not be
included in new implementations or deployed in new deployments. included in new implementations or deployed in new deployments.
1.2. Abbreviations 1.3. Abbreviations
LSR: Label Switching Router LSR: Label Switching Router
LSE: Label Stack Element
PSH: Post-Stack Header LSE: Label Stack Entry
PFN: Post-stack First Nibble PSH: Post-Stack Header
FAT: Flow-Aware Transport PFN: Post-stack First Nibble
SPL: Special Purpose Label FAT: Flow-Aware Transport
PW: Pseudowire SPL: Special-Purpose Label
MNA: MPLS Network Action PW: Pseudowire
BIER: Bit-Indexed Explicit Replication MNA: MPLS Network Action
1.3. Reference Figures BIER: Bit Index Explicit Replication
1.4. Reference Figures
Figure 1 echoes the format of MPLS packets as defined in [RFC3032] Figure 1 echoes the format of MPLS packets as defined in [RFC3032]
where TC indicates the Traffic Class field [RFC5462] that replaced where TC indicates the Traffic Class field [RFC5462] that replaced
the EXP (Experimental Use) field, S is the Bottom-of-Stack flag, and the EXP (Experimental Use) field, S is the Bottom of Stack flag, and
TTL is the Time to Live field. TTL is the Time to Live field.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
X | Layer 2 Header | | X | Layer 2 Header | |
| | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/
TC S TTL TC S TTL
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
Y | Label-1 | TC |0| TTL | | Y | Label-1 | TC |0| TTL | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label-2 | TC |0| TTL | | | Label-2 | TC |0| TTL | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... | TC |0| TTL | | | ... | TC |0| TTL | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label-n | TC |1| TTL | | | Label-n | TC |1| TTL | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/
Figure 1: Example of an MPLS Packet With Label Stack Figure 1: Example of an MPLS Packet with Label Stack
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
A | (PFN) | IP header | | A | (PFN) | IP header | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data | | | data | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
... | ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| end of IP packet | | | end of IP packet | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/
skipping to change at page 6, line 40 skipping to change at line 267
... | ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| end of PSH | | | end of PSH | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| embedded packet | | | embedded packet | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/
Figure 2: Examples of an MPLS Packet Payload With and Without Figure 2: Examples of an MPLS Packet Payload With and Without
Post-Stack Header Post-Stack Header
Figure 1 shows an MPLS packet with Layer 2 header X and a label stack Figure 1 shows an MPLS packet with a Layer 2 header X and a label
Y ending with Label-n. Then, there are three examples of an MPLS stack Y ending with Label-n. Figure 2 displays three examples of an
payload displayed in Figure 2. The complete MPLS packet thus would MPLS payload:
consist of [X Y A], or [X Y B], or [X Y C].
A. The first payload is a bare IP packet, i.e., no PSH. The PFN in Example A: The first payload is a bare IP packet, i.e., no PSH. The
this case overlaps with the IP version number. PFN in this case overlaps with the IP version number.
B. The next payload is a bare non-IP packet; again, no PSH. The PFN Example B: The next payload is a bare non-IP packet; again, no PSH.
here is the first nibble of the payload, whatever it happens to be. The PFN here is the first nibble of the payload, whatever it
happens to be.
C. The last example is an MPLS Payload that starts with a PSH Example C: This example is an MPLS Payload that starts with a PSH
followed by the embedded packet. Here, the embedded packet could be followed by the embedded packet. Here, the embedded packet could
IP or non-IP. be IP or non-IP.
Thus, the complete MPLS packet would consist of [X Y A], [X Y B], or
[X Y C].
2. Rationale 2. Rationale
2.1. Why Look at the First Nibble 2.1. Why Look at the First Nibble
An MPLS packet can contain one of many types of embedded packets. An MPLS packet can contain one of many types of embedded packets.
Three common types are: Three common types are:
1. An IPv4 packet (whose IP header has version number 4). 1. An IPv4 packet (whose IP header has version number 4).
2. An IPv6 packet (whose IP header has version number 6). 2. An IPv6 packet (whose IP header has version number 6).
3. A Layer 2 Ethernet frame (i.e., not including the Preamble or the 3. A Layer 2 Ethernet frame (i.e., not including the Preamble or the
Start frame delimiter), starting with the destination MAC Start frame delimiter), starting with the destination Media
address. Access Control (MAC) address.
Many other packet types are possible; in principle, any Layer 2 Many other packet types are possible; in principle, any Layer 2
embedded packet is permissible. Indeed, at some points in time, embedded packet is permissible. Indeed, at some points in time,
packets of Point-to-Point Protocol, Frame Relay, and Asynchronous packets of the Point-to-Point Protocol, Frame Relay, and Asynchronous
Transfer Mode protocols were reasonably common, and may become so Transfer Mode were reasonably common and may become so again.
again.
In addition, there may be a PSH ahead of the embedded packet. The In addition, there may be a PSH ahead of the embedded packet. The
value of PFN is considered to ensure that the PSH can be correctly value of PFN is considered to ensure that the PSH can be correctly
parsed. parsed.
2.1.1. ECMP Load Balancing 2.1.1. ECMP Load Balancing
There are four common ways to load balance an MPLS packet: There are four common ways to load balance an MPLS packet:
1. One can use the top label alone. 1. One can use the top label alone.
2. One can do better by using all of the non-SPLs (Special Purpose 2. One can do better by using all of the non-SPLs [RFC7274] in the
Labels) [RFC7274] in the stack. stack.
3. One can do even better by "divining" the type of embedded packet, 3. One can do even better by "divining" the type of embedded packet
and using fields from the guessed header. The ramifications of and using fields from the guessed header. The ramifications of
using this load-balancing technique are discussed in detail in using this load-balancing technique are discussed in detail in
Section 2.1.1.1. Section 2.1.1.1.
4. One can do best by using either an Entropy Label [RFC6790] or a 4. One can do best by using either an Entropy Label [RFC6790] or a
Flow-Aware Transport (FAT) Pseudowire Label [RFC6391] (see Flow-Aware Transport (FAT) Pseudowire Label [RFC6391] (see
Section 2.1.1.1). Section 2.1.1.1).
Load balancing based on just the top label means that all packets Load balancing based on just the top label means that all packets
with that top label will go the same way -- this is far from ideal. with that top label will go the same way, which is far from ideal.
Load balancing based on the entire label stack (not including SPLs) Load balancing based on the entire label stack (not including SPLs)
is better, but it may still be uneven. If, however, the embedded is better, but it may still be uneven. However, if the embedded
packet is an IP packet, then the combination of (<source IP address>, packet is an IP packet, then the combination of (<source IP address>,
<dest IP address>, <transport protocol>, <source port>, and <dest <dest IP address>, <transport protocol>, <source port>, and <dest
port>) from the IP header of the embedded packet forms an excellent port>) from the IP header of the embedded packet forms an excellent
basis for load-balancing. This is what is typically used for load basis for load balancing. This is what is typically used for load
balancing IP packets. balancing IP packets.
An MPLS packet doesn't, however, carry a payload type identifier. An MPLS packet doesn't, however, carry a payload type identifier.
There is a simple (but risky) heuristic that is commonly used to There is a simple (but risky) heuristic that is commonly used to
guess the type of the embedded packet. The first nibble, i.e., the guess the type of the embedded packet. The first nibble of an IP
four most significant bits of the first octet, of an IP header header, i.e., the four most significant bits of the first octet,
contains the IP version number. That, in turn, indicates where to contains the IP version number. That, in turn, indicates where to
find the relevant fields for load-balancing. The heuristic goes find the relevant fields for load balancing. The heuristic goes
roughly as described in Section 2.1.1.1. roughly as described in Section 2.1.1.1.
2.1.1.1. Heuristic for ECMP Load Balancing 2.1.1.1. Heuristic for ECMP Load Balancing
1. If the PFN is 0x4 (0100b), treat the payload as an IPv4 packet, 1. If the PFN is 0x4 (0100b), treat the payload as an IPv4 packet,
and find the relevant fields for load-balancing on that basis. and find the relevant fields for load balancing on that basis.
2. If the PFN is 0x6 (0110b), treat the payload as an IPv6 packet, 2. If the PFN is 0x6 (0110b), treat the payload as an IPv6 packet,
and find the relevant fields for load-balancing on that basis. and find the relevant fields for load balancing on that basis.
3. If the PFN is anything else, the MPLS payload is not an IP 3. If the PFN is anything else, the MPLS payload is not an IP
packet; fall back to load-balancing using the label stack. packet; fall back to load balancing using the label stack.
This heuristic has been implemented in many (legacy) routers, and This heuristic has been implemented in many (legacy) routers and
performs well in the case of Figure 2, A. However, this heuristic performs well in the case of example A in Figure 2. However, this
can work very badly for non-IP packet as shown in Figure 2, B. For heuristic can work very badly for non-IP packet as shown in example B
example, if payload B is an Ethernet frame, then the PFN is the first in Figure 2. For example, if payload B is an Ethernet frame, then
nibble of the Organizationally Unique Identifier of the destination the PFN is the first nibble of the Organizationally Unique Identifier
MAC address, which can be 0x4 or 0x6, and if so would lead to the of the destination MAC address, which can be 0x4 or 0x6. This would
packet being treated as an IPv4 or IPv6 packet such that data at the lead to the packet being treated as an IPv4 or IPv6 packet such that
offsets of specific relevant fields would be used as input to the data at the offsets of specific relevant fields would be used as
load-balancing heuristic resulting in unpredictable load balancing. input to the load-balancing heuristic, resulting in unpredictable
This behavior can happen to other types of non-IP payloads as well. load balancing. This behavior can happen to other types of non-IP
payloads as well.
That, in turn, led to the idea of inserting a PSH (e.g., a pseudowire That, in turn, led to the idea of inserting a PSH (e.g., a pseudowire
control word [RFC4385], a DetNet control word [RFC8964], a Network control word [RFC4385], a Deterministic Networking (DetNet) control
Service Header [RFC8300], or a BIER header [RFC8296]) where the PFN word [RFC8964], a Network Service Header (NSH) [RFC8300], or a BIER
is not 0x4 or 0x6, to explicitly prevent forwarding engines from header [RFC8296]) where the PFN is not 0x4 or 0x6; this explicitly
confusing the MPLS payload with an IP packet. [RFC8469] recommends prevents forwarding engines from confusing the MPLS payload with an
the use of a control word when the embedded packet is an Ethernet IP packet. [RFC8469] recommends the use of a control word when the
frame. RFC 8469 was published at the request of the operator embedded packet is an Ethernet frame. [RFC8469] was published at the
community and the IEEE Registration Authority Committee as a result request of the operator community and the IEEE Registration Authority
of operational difficulties with pseudowires that did not contain the Committee as a result of operational difficulties with pseudowires
control word. that did not contain the control word.
It is RECOMMENDED that where load-balancing of MPLS packets is Where load balancing of MPLS packets is desired, it is RECOMMENDED
desired, the load-balancing mechanism uses the value of a dedicated that the load-balancing mechanism use the value of a dedicated label,
label, for example, either an Entropy Label [RFC6790] or a FAT for example, either an Entropy Label [RFC6790] or a FAT Pseudowire
Pseudowire Label [RFC6391]. Furthermore, the heuristic of guessing Label [RFC6391]. Furthermore, the heuristic of guessing the type of
the type of the embedded packet, as discussed above, SHOULD NOT be the embedded packet, as discussed above, SHOULD NOT be used.
used.
A consequence of the heuristic approach is that while legacy routers A consequence of the heuristic approach is that while legacy routers
may look for a PFN of 0x4 [RFC0791] or 0x6 [RFC8200], no legacy may look for a PFN of 0x4 [RFC0791] or 0x6 [RFC8200], no legacy
router will look for any other PFN, regardless of what future IP router will look for any other PFN for load-balancing purposes,
version numbers will be, for load-balancing purposes. This means regardless of what future IP version numbers will be. This means
that the values 0x4 and 0x6 are used to (sometimes incorrectly) that the values 0x4 and 0x6 are used to (sometimes incorrectly)
identify IPv4 and IPv6 packets, but no other of PFN values will be identify IPv4 and IPv6 packets, but no other PFN values will be used
used to identify IP packets. to identify IP packets.
This document creates a new PFN Registry for all 16 possible values. This document creates a new registry for all 16 possible values (see
Section 3).
2.2. Updates of RFC 4928 2.2. Updates to RFC 4928
The text in RFC 4928 [RFC4928] concerning the first nibble after the The text in RFC 4928 [RFC4928] concerning the first nibble after the
MPLS Label Stack has been updated by this document and the heuristic MPLS label stack has been updated by this document, and the heuristic
for snooping this nibble has been deprecated. RFC 4928 is now for snooping this nibble has been deprecated. Section 3 of [RFC4928]
updated as follows: is updated as follows:
OLD TEXT OLD TEXT:
| It is REQUIRED, however, that applications dependent upon in-order | It is REQUIRED, however, that applications depend upon in-order
| packet delivery restrict the first nibble values to 0x0 and 0x1. | packet delivery restrict the first nibble values to 0x0 and 0x1.
| This will ensure that their traffic flows will not be affected if | This will ensure that their traffic flows will not be affected if
| some future routing equipment does similar snooping on some future | some future routing equipment does similar snooping on some future
| version(s) of IP. | version(s) of IP.
NEW TEXT: NEW TEXT:
| Network equipment MUST use a PSH (Post-Stack Header) with a PFN | Network equipment MUST use a PSH (Post-Stack Header) with a PFN
| (Post-stack First Nibble) value that is neither 0x4 nor 0x6 in all | (Post-stack First Nibble) value that is neither 0x4 nor 0x6 in all
| cases when the MPLS payload is neither an IPv6 nor an IPv4 packet. | cases where the MPLS payload is neither an IPv6 nor an IPv4
| packet.
The requirement (see Section 2.1.1.1) replaces the paragraph 4 in The following requirement (discussed is Section 2.1.1.1) replaces
Section 3 of RFC 4928 [RFC4928] as follows: paragraph 4 in Section 3 of [RFC4928] as follows:
OLD TEXT: OLD TEXT:
| This behavior implies that if in the future an IP version is | This behavior implies that if in the future an IP version is
| defined with a version number of 0x0 or 0x1, then equipment | defined with a version number of 0x0 or 0x1, then equipment
| complying with this BCP would be unable to look past one or more | complying with this BCP would be unable to look past one or more
| MPLS headers, and load-split traffic from a single LSP across | MPLS headers, and loadsplit traffic from a single LSP across
| multiple paths based on a hash of specific fields in the IPv0 or | multiple paths based on a hash of specific fields in the IPv0 or
| IPv1 headers. That is, IP traffic employing these version numbers | IPv1 headers. That is, IP traffic employing these version numbers
| would be safe from disturbances caused by inappropriate load- | would be safe from disturbances caused by inappropriate
| splitting, but would also not be able to get the performance | loadsplitting, but would also not be able to get the performance
| benefits. | benefits.
NEW TEXT: NEW TEXT:
| The practice of deducing the payload type based on the PFN value | The practice of deducing the payload type based on the PFN value
| is deprecated to avoid inaccurate load balancing. This MUST NOT | is deprecated to avoid inaccurate load balancing. This MUST NOT
| be part of new implementations or deployments. It also means that | be part of new implementations or deployments. This also means
| concerns about load balancing for future IP versions with a | that concerns about load balancing for future IP versions with a
| version number of 0x0 or 0x1 are no longer relevant. | version number of 0x0 or 0x1 are no longer relevant.
END Furthermore, the following text is appended to Section 1.1 of
[RFC4928]:
Furthermore, the following text is appended to Section 1.1 of RFC
4928 [RFC4928]:
NEW TEXT: NEW TEXT:
| PSH: Post-Stack Header | PSH: Post-Stack Header
| |
| PFN: Post-stack First Nibble | PFN: Post-stack First Nibble
END
2.3. Why Create a Registry 2.3. Why Create a Registry
Support for MPLS Network Actions (MNAs) is described in Support for MPLS Network Actions (MNAs) is described in [RFC9789] and
[I-D.ietf-mpls-mna-fwk] and is an enhancement to the MPLS is an enhancement to the MPLS architecture. The use of Post-Stack
architecture. The use of post-stack data (PSD) to encode the MNA Data (PSD) to encode the MNA indicators and ancillary data (described
indicators and ancillary data is described in section 3.6 might place in Section 3.6 of [RFC9789]) might place data in the PFN, which could
data in the PFN that could conflict with other uses of that nibble. conflict with other uses of that nibble. This issue is described in
This issue is described in section 3.6.1 of [I-D.ietf-mpls-mna-fwk] Section 3.6.1 of [RFC9789] and is further illustrated by the PFN
and is further illustrated by the PFN value of 0x0 which has two value of 0x0, which has two different formats depending on whether
different formats depending on whether the PSH is a pseudowire the PSH is a pseudowire control word or a DetNet control word;
control word or a DetNet control word: disambiguation requires the disambiguation requires the context of the service label.
context of the service label.
With a registry, PSHs become easier to identify and parse; not With a registry, PSHs become easier to identify and parse. In
needing any means outside the data plane to interpret them correctly; addition, they do not need a means outside the data plane to
and their semantics and usage are documented and referenced from the interpret them correctly, and their semantics and usage are
registry. documented and referenced in the registry.
2.4. IP Version Numbers versus Post-stack First Nibble Values 2.4. IP Version Numbers Versus Post-Stack First Nibble Values
The use of the PFN stemmed from the desire to heuristically identify The use of the PFN stemmed from the desire to heuristically identify
IP packets for load-balancing purposes. It was then discovered that IP packets for load-balancing purposes. It was then discovered that
non-IP packets, misidentified as IP when the heuristic failed, were non-IP packets, misidentified as IP when the heuristic failed, were
being badly load balanced, leading to [RFC4928]. This situation may being badly load balanced, leading to [RFC4928]. This situation may
confuse some as to the relationship between the Post-stack First confuse some as to the relationship between the "Post-Stack First
Nibble Registry and the IP Version Numbers registry. These Nibble" registry and the "IP Version Numbers" registry. These
registries are quite different: registries are quite different:
1. The IP Version Numbers registry's explicit purpose is to track IP 1. The explicit purpose of the "IP Version Numbers" registry is to
version numbers in an IP header. track IP version numbers in an IP header.
2. The Post-stack First Nibble registry's purpose is to track PSH 2. The purpose of the "Post-Stack First Nibble" registry is to track
types. PSH types.
The only intersection points between the two registries is for values The only intersection points between the two registries are the
0x4 and 0x6 (for backward compatibility). values 0x4 and 0x6 (for backward compatibility).
2.5. Next Step to More Deterministic Load-balancing in MPLS Networks 2.5. Next Step to More Deterministic Load Balancing in MPLS Networks
Network evolution is impossible to control, but it develops over a Network evolution is impossible to control, but it develops over a
period of time determined by various factors. period of time determined by various factors.
This document discourages further proliferation of the This document discourages further proliferation of the
implementations that could lead to undesired effects affecting data implementations that could lead to undesired effects on data flows.
flows. In doing so, it limits the scope of future protocol In doing so, it limits the scope of future protocol developments and
developments, and so helps to ensure that future network evolution thus helps to ensure that future network evolution will be smoother.
will be smoother.
It would assist with the progress toward a simpler, more coherent It would assist with the progress toward a simpler, more coherent
system of MPLS data encapsulation if the use a PSH for non-IP system of MPLS data encapsulation if the use a PSH for non-IP
payloads encapsulated in MPLS was obsoleted. However, before that payloads encapsulated in MPLS was obsoleted. However, before that
can be done, it is important to collect sufficient evidence that can be done, it is important to collect sufficient evidence that
there are no marketed or deployed implementations using the heuristic there are no marketed or deployed implementations using the heuristic
practice to load-balancing MPLS data flows. practice to load-balancing MPLS data flows.
The next step, therefore, toward more deterministic load-balancing in Therefore, the next steps toward more deterministic load balancing in
MPLS networks is to gradulally deprecate non-PSH MPLS encapsulations MPLS networks are to gradually deprecate non-PSH MPLS encapsulations
of non-IP data, to cease using heuristic load-balancing, and to of non-IP data, to cease using heuristic load balancing, and to
survey the available and deployed implementations to determine when survey the available and deployed implementations to determine when
obsoletion may be achieved. obsoletion may be achieved.
3. IANA Considerations 3. IANA Considerations
3.1. The Post-stack First Nibble Registry Per this document, IANA has created a registry group called "Post-
Stack First Nibble" that consists of a single registry called the
This document requests IANA to create a registry group called "Post- "Post-Stack First Nibble" registry. The initial contents of the
Stack First Nibble Registry" that consists of a single registry registry are shown in Table 1. The assignment policy is Standards
called "Post-Stack First Nibble Registry". The registry should be Action [RFC8126]. It is important to note that the same PFN value
created as shown in Table 1. The assignment policy for the registry can be used in more than one protocol. The correct interpretation of
is Standards Action [RFC8126]. It is important to note, that the the PFN in a PSH can be made only in the context of the LSE or group
same PFN value can be used in more than one protocol. The correct of LSEs in the preceding label stack that characterizes the type of
interpretation of the PFN in a PSH can be made only in the context of the PSH and, consequently, the PFN.
the LSE or a group of LSEs in the preceding label stack that
characterize the type of the PSH and, consequently, PFN.
+==========+=======+==============================+===========+ +==========+=======+=================================+===========+
| Protocol | Value | Description | Reference | | Protocol | Value | Description | Reference |
+==========+=======+==============================+===========+ +==========+=======+=================================+===========+
| DetNet | 0x0 | DetNet Control Word | RFC 8964 | | DetNet | 0x0 | DetNet Control Word | [RFC8964] |
+----------+-------+------------------------------+-----------+ +----------+-------+---------------------------------+-----------+
| NSH | 0x0 | NSH (Network Service Header) | RFC 8300 | | NSH | 0x0 | NSH Base Header, payload | [RFC8300] |
| | | Base Header, payload | | +----------+-------+---------------------------------+-----------+
+----------+-------+------------------------------+-----------+ | PW | 0x0 | PW Control Word | [RFC4385] |
| PW | 0x0 | PW Control Word | RFC 4385 | +----------+-------+---------------------------------+-----------+
+----------+-------+------------------------------+-----------+ | DetNet | 0x1 | DetNet Associated Channel | [RFC9546] |
| DetNet | 0x1 | DetNet Associated Channel | RFC 9546 | +----------+-------+---------------------------------+-----------+
+----------+-------+------------------------------+-----------+ | MPLS | 0x1 | MPLS Generic Associated Channel | [RFC5586] |
| MPLS | 0x1 | MPLS Generic Associated | RFC 5586 | +----------+-------+---------------------------------+-----------+
| | | Channel | | | PW | 0x1 | PW Associated Channel | [RFC4385] |
+----------+-------+------------------------------+-----------+ +----------+-------+---------------------------------+-----------+
| PW | 0x1 | PW Associated Channel | RFC 4385 | | NSH | 0x2 | NSH Base Header, OAM | [RFC8300] |
+----------+-------+------------------------------+-----------+ +----------+-------+---------------------------------+-----------+
| NSH | 0x2 | NSH Base Header, OAM | RFC 8300 | | | 0x3 | Unassigned | |
+----------+-------+------------------------------+-----------+ +----------+-------+---------------------------------+-----------+
| | 0x3 | Unassigned | | | | 0x4 | Reserved | this |
+----------+-------+------------------------------+-----------+ | | | | document |
| | 0x4 | Reserved, not to be assigned | | +----------+-------+---------------------------------+-----------+
+----------+-------+------------------------------+-----------+ | BIER | 0x5 | BIER Header | [RFC8296] |
| BIER | 0x5 | BIER Header | RFC 8296 | +----------+-------+---------------------------------+-----------+
+----------+-------+------------------------------+-----------+ | | 0x6 | Reserved | this |
| | 0x6 | Reserved, not to be assigned | | | | | | document |
+----------+-------+------------------------------+-----------+ +----------+-------+---------------------------------+-----------+
| | 0x7 - | Unassigned | | | | 0x7 - | Unassigned | |
| | 0xF | | | | | 0xF | | |
+----------+-------+------------------------------+-----------+ +----------+-------+---------------------------------+-----------+
Table 1: Post-stack First Nibble Values Table 1: Post-Stack First Nibble Registry
4. Security Considerations 4. Security Considerations
This document creates a new IANA registry for and specifies changes This document creates a new IANA registry for PFNs and specifies
to the treatment in the data plane of packets based on the first changes to the treatment of packets in the data plane based on the
nibble of data beyond the MPLS label stack. One intent of this is to first nibble of data beyond the MPLS label stack. One intent of this
reduce or eliminate errors in determining whether a packet being is to reduce or eliminate errors in determining whether or not a
transported by MPLS is IP or not. While such errors have primarily packet being transported by MPLS is IP. While such errors have
caused unbalanced and, thus, inefficient multi-pathing, they have the primarily caused unbalanced, and thus inefficient, multipathing, they
potential to cause more severe security problems. have the potential to cause more severe security problems.
For general MPLS label stack security considerations, see [RFC3032].
5. Acknowledgements
The authors express their appreciation and gratitude to Donald E.
Eastlake 3rd for the review, insightful questions, and helpful
comments. Also, the authors are gateful to Amanda Baber for helping
organize the IANA registry in clear and consise manner.
Eric Vyncke, John Scudder, Warren Kumari, Murray Kucherawy, and
Gunter Van de Velde provided helpful comments during IESG review.
6. References For general security considerations involving the MPLS label stack,
see [RFC3032].
6.1. Normative References 5. References
[I-D.ietf-mpls-mna-fwk] 5.1. Normative References
Andersson, L., Bryant, S., Bocci, M., and T. Li, "MPLS
Network Actions (MNA) Framework", Work in Progress,
Internet-Draft, draft-ietf-mpls-mna-fwk-14, 2 December
2024, <https://datatracker.ietf.org/doc/html/draft-ietf-
mpls-mna-fwk-14>.
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791,
DOI 10.17487/RFC0791, September 1981, DOI 10.17487/RFC0791, September 1981,
<https://www.rfc-editor.org/info/rfc791>. <https://www.rfc-editor.org/info/rfc791>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
skipping to change at page 15, line 15 skipping to change at line 641
[RFC8469] Bryant, S., Malis, A., and I. Bagdonas, "Recommendation to [RFC8469] Bryant, S., Malis, A., and I. Bagdonas, "Recommendation to
Use the Ethernet Control Word", RFC 8469, Use the Ethernet Control Word", RFC 8469,
DOI 10.17487/RFC8469, November 2018, DOI 10.17487/RFC8469, November 2018,
<https://www.rfc-editor.org/info/rfc8469>. <https://www.rfc-editor.org/info/rfc8469>.
[RFC8964] Varga, B., Ed., Farkas, J., Berger, L., Malis, A., Bryant, [RFC8964] Varga, B., Ed., Farkas, J., Berger, L., Malis, A., Bryant,
S., and J. Korhonen, "Deterministic Networking (DetNet) S., and J. Korhonen, "Deterministic Networking (DetNet)
Data Plane: MPLS", RFC 8964, DOI 10.17487/RFC8964, January Data Plane: MPLS", RFC 8964, DOI 10.17487/RFC8964, January
2021, <https://www.rfc-editor.org/info/rfc8964>. 2021, <https://www.rfc-editor.org/info/rfc8964>.
6.2. Informative References [RFC9789] Andersson, L., Bryant, S., Bocci, M., and T. Li, "MPLS
Network Action (MNA) Framework", RFC 9789,
DOI 10.17487/RFC9789, May 2025,
<https://www.rfc-editor.org/info/rfc9789>.
5.2. Informative References
[RFC4446] Martini, L., "IANA Allocations for Pseudowire Edge to Edge [RFC4446] Martini, L., "IANA Allocations for Pseudowire Edge to Edge
Emulation (PWE3)", BCP 116, RFC 4446, Emulation (PWE3)", BCP 116, RFC 4446,
DOI 10.17487/RFC4446, April 2006, DOI 10.17487/RFC4446, April 2006,
<https://www.rfc-editor.org/info/rfc4446>. <https://www.rfc-editor.org/info/rfc4446>.
[RFC4761] Kompella, K., Ed. and Y. Rekhter, Ed., "Virtual Private [RFC4761] Kompella, K., Ed. and Y. Rekhter, Ed., "Virtual Private
LAN Service (VPLS) Using BGP for Auto-Discovery and LAN Service (VPLS) Using BGP for Auto-Discovery and
Signaling", RFC 4761, DOI 10.17487/RFC4761, January 2007, Signaling", RFC 4761, DOI 10.17487/RFC4761, January 2007,
<https://www.rfc-editor.org/info/rfc4761>. <https://www.rfc-editor.org/info/rfc4761>.
skipping to change at page 16, line 16 skipping to change at line 694
"Network Service Header (NSH)", RFC 8300, "Network Service Header (NSH)", RFC 8300,
DOI 10.17487/RFC8300, January 2018, DOI 10.17487/RFC8300, January 2018,
<https://www.rfc-editor.org/info/rfc8300>. <https://www.rfc-editor.org/info/rfc8300>.
[RFC9546] Mirsky, G., Chen, M., and B. Varga, "Operations, [RFC9546] Mirsky, G., Chen, M., and B. Varga, "Operations,
Administration, and Maintenance (OAM) for Deterministic Administration, and Maintenance (OAM) for Deterministic
Networking (DetNet) with the MPLS Data Plane", RFC 9546, Networking (DetNet) with the MPLS Data Plane", RFC 9546,
DOI 10.17487/RFC9546, February 2024, DOI 10.17487/RFC9546, February 2024,
<https://www.rfc-editor.org/info/rfc9546>. <https://www.rfc-editor.org/info/rfc9546>.
Acknowledgements
The authors express their appreciation and gratitude to Donald
E. Eastlake 3rd for the review, insightful questions, and helpful
comments. Also, the authors are grateful to Amanda Baber for helping
organize the IANA registry in a clear and concise manner.
Éric Vyncke, John Scudder, Warren Kumari, Murray Kucherawy, and
Gunter Van de Velde provided helpful comments during IESG review.
Authors' Addresses Authors' Addresses
Kireeti Kompella Kireeti Kompella
Juniper Networks Juniper Networks
1133 Innovation Way 1133 Innovation Way
Sunnyvale, 94089 Sunnyvale, CA 94089
United States of America United States of America
Email: kireeti.ietf@gmail.com Email: kireeti.ietf@gmail.com
Stewart Bryant Stewart Bryant
University of Surrey 5GIC University of Surrey 5GIC
Email: sb@stewartbryant.com Email: sb@stewartbryant.com
Matthew Bocci Matthew Bocci
Nokia Nokia
Email: matthew.bocci@nokia.com Email: matthew.bocci@nokia.com
skipping to change at page 16, line 44 skipping to change at line 732
Ericsson Ericsson
Email: gregimirsky@gmail.com Email: gregimirsky@gmail.com
Loa Andersson Loa Andersson
Huawei Technologies Huawei Technologies
Email: loa@pi.nu Email: loa@pi.nu
Jie Dong Jie Dong
Huawei Technologies Huawei Technologies
Huawei Campus, No. 156 Beiqing Rd. Huawei Campus, No. 156 Beiqing Rd.
Beijing, 100095 Beijing
100095
China China
Email: jie.dong@huawei.com Email: jie.dong@huawei.com
 End of changes. 94 change blocks. 
288 lines changed or deleted 285 lines changed or added

This html diff was produced by rfcdiff 1.48.