1. Introduction
The MPLS Label Stack Encoding specification [RFC3032] defined four special-purpose label values (0 to 3) and set aside values 4 through 15 for future use. These labels have special significance in both the control and the data plane. Since then, three further values have been allocated (values 7, 13, and 14 in [RFC6790], [RFC5586], and [RFC3429], respectively), leaving nine unassigned values from the original space of sixteen.
While the allocation of three out of the remaining twelve special-purpose label values in the space of about 12 years is not in itself a cause for concern, the scarcity of special-purpose labels is. Furthermore, many of the special-purpose labels require special processing by forwarding hardware, changes to which are often expensive and sometimes impossible. Thus, documenting a newly allocated special-purpose label value is important.
This memo outlines some of the issues in allocating and retiring special-purpose label values and defines mechanisms to address these. This memo also extends the space of special-purpose labels.
1.1. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
Two new acronyms are introduced:
-
XL: Extension Label. A label that indicates that an extended special-purpose label follows.
-
ESPL: Extended Special-Purpose Label. A special-purpose label that is placed in the label stack after the Extension Label. The combination of XL and ESPL might be regarded as a new form of "compound label" comprising more than one consecutive entry in the label stack.