draft-ietf-mpls-explicit-null-02.txt   rfc4182.txt 
Network Working Group Eric C. Rosen
Internet Draft Cisco Systems, Inc.
Expiration Date: August 2005
Updates RFC 3032
February 2005 Network Working Group E. Rosen
Request for Comments: 4182 Cisco Systems, Inc.
Updates: 3032 September 2005
Category: Standards Track
Removing a Restriction on the use of MPLS Explicit NULL Removing a Restriction on the use of MPLS Explicit NULL
draft-ietf-mpls-explicit-null-02.txt Status of This Memo
Status of this Memo
By submitting this Internet-Draft, I certify that any applicable
patent or other IPR claims of which I am aware have been disclosed,
or will be disclosed, and any of which I become aware will be
disclosed, in accordance with RFC 3668.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months This document specifies an Internet standards track protocol for the
and may be updated, replaced, or obsoleted by other documents at any Internet community, and requests discussion and suggestions for
time. It is inappropriate to use Internet-Drafts as reference improvements. Please refer to the current edition of the "Internet
material or to cite them other than as "work in progress." Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
The list of current Internet-Drafts can be accessed at Copyright Notice
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at Copyright (C) The Internet Society (2005).
http://www.ietf.org/shadow.html.
Abstract Abstract
The label stack encoding for MPLS (Multi-protocol Label Switching) The label stack encoding for Multi-protocol Label Switching (MPLS)
defines a reserved label value known as "IPv4 Explicit NULL" and a defines a reserved label value known as "IPv4 Explicit NULL" and a
reserved label value known as "IPv6 Explicit NULL". Previously, reserved label value known as "IPv6 Explicit NULL". Previously,
these labels were only legal when they occurred at the bottom of the these labels were only legal when they occurred at the bottom of the
MPLS label stack. This restriction is now removed, so that these MPLS label stack. This restriction is now removed, so that these
label values may legally occur anywhere in the stack. label values may legally occur anywhere in the stack.
This document updates RFC 3032. This document updates RFC 3032.
Contents Table of Contents
1 Introduction ......................................... 2 1. Introduction ....................................................2
2 Detail of Change ..................................... 2 2. Detail of Change ................................................2
3 Reasons for Change ................................... 4 3. Reasons for Change ..............................................3
4 Deployment Considerations ............................ 5 4. Deployment Considerations .......................................5
5 Security Considerations .............................. 6 5. Security Considerations .........................................5
6 Acknowledgments ...................................... 6 6. Acknowledgments .................................................5
7 Normative References ................................. 6 7. Normative References ............................................5
8 Informative References ............................... 6 8. Informative References ..........................................5
9 Author's Address ..................................... 6
10 Intellectual Property Statement ...................... 6
11 Full Copyright Statement ............................. 7
1. Introduction 1. Introduction
RFC 3032 defines a reserved label value known as "IPv4 Explicit NULL" RFC 3032 defines a reserved label value known as "IPv4 Explicit NULL"
and a reserved label value known as "IPv6 Explicit NULL". It states and a reserved label value known as "IPv6 Explicit NULL" [RFC3032].
that these label values are only legal at the bottom of the MPLS It states that these label values are only legal at the bottom of the
label stack. However, no reason is given for this restriction. MPLS label stack. However, no reason is given for this restriction.
It has turned out that in practice there are some situations in which It has turned out that in practice there are some situations in which
it is useful to send MPLS packets which have Explicit NULL occur it is useful to send MPLS packets that have Explicit NULL occur
other than at that bottom of the label stack. While the intended somewhere other than at that bottom of the label stack. While the
semantics are obvious enough, the fact that such packets are intended semantics are obvious enough, the fact that such packets are
gratuitously declared by RFC 3032 to be illegal has made it difficult gratuitously declared by RFC 3032 to be illegal has made it difficult
to handle these situations in an interoperable manner. to handle these situations in an interoperable manner.
This document updates RFC 3032 by removing the unnecessary This document updates RFC 3032 by removing the unnecessary
restriction, so that the two aforementioned label values are legal restriction, so that the two aforementioned label values are legal
anywhere in the label stack. anywhere in the label stack.
2. Detail of Change 2. Detail of Change
RFC 3032 states on page 4: RFC 3032 states on page 4:
skipping to change at page 4, line 12 skipping to change at page 3, line 34
treated as an IPv6 packet, and its disposition is based on the treated as an IPv6 packet, and its disposition is based on the
IPv6 header. IPv6 header.
3. Reasons for Change 3. Reasons for Change
Restricting Explicit NULL to the bottom of the stack has caused some Restricting Explicit NULL to the bottom of the stack has caused some
problems in practice. problems in practice.
With this restriction in place, one should not distribute, to a With this restriction in place, one should not distribute, to a
particular label distribution peer, a binding of Explicit NULL to a particular label distribution peer, a binding of Explicit NULL to a
particular FEC, unless the following condition (call it "Condition particular Forwarding Equivalence Class (FEC), unless the following
L") holds: all MPLS packets received by that peer with an incoming condition (call it "Condition L") holds: all MPLS packets received by
label corresponding to that FEC contain only a single label stack that peer with an incoming label corresponding to that FEC contain
entry. If Explicit NULL is bound to the FEC, but Condition L doesn't only a single label stack entry. If Explicit NULL is bound to the
hold, the peer is being requested to create illegal packets. None of FEC, but Condition L doesn't hold, the peer is being requested to
the MPLS specifications say what the peer is actually supposed to do create illegal packets. None of the MPLS specifications say what the
in this case. This situation is made more troublesome by the facts peer is actually supposed to do in this case. This situation is made
that, in practice, Condition L rarely holds, and it is not possible more troublesome by the facts that, in practice, Condition L rarely
in general to determine whether it holds or not. holds, and it is not possible, in general, to determine whether it
holds or not.
Further, if one is supporting the Pipe Model of RFC3270, there are Further, if one is supporting the Pipe Model of RFC 3270 [RFC3270],
good reasons to create label stacks in which Explicit NULL is at the there are good reasons to create label stacks in which Explicit NULL
top of the label stack, but a non-null label is at the bottom. is at the top of the label stack, but a non-null label is at the
bottom.
RFC3270 specifies the procedures for MPLS support of Differentiated RFC3270 specifies the procedures for MPLS support of Differentiated
Services. In particular, it defines a "Pipe Model", in which Services. In particular, it defines a "Pipe Model" in which (quoting
(quoting from RFC3270, section 2.6.2): from RFC 3270, Section 2.6.2):
"tunneled packets must convey two meaningful pieces of Diff-Serv "tunneled packets must convey two meaningful pieces of Diff-Serv
information: information:
- the Diff-Serv information which is meaningful to intermediate - the Diff-Serv information which is meaningful to intermediate
nodes along the LSP span including the LSP Egress (which we nodes along the LSP span including the LSP Egress (which we refer
refer to as the 'LSP Diff-Serv Information'). This LSP Diff- to as the 'LSP Diff-Serv Information'). This LSP Diff-Serv
Serv Information is not meaningful beyond the LSP Egress: Information is not meaningful beyond the LSP Egress: Whether
Whether Traffic Conditioning at intermediate nodes on the LSP Traffic Conditioning at intermediate nodes on the LSP span
span affects the LSP Diff-Serv information or not, this updated affects the LSP Diff-Serv information or not, this updated Diff-
Diff-Serv information is not considered meaningful beyond the Serv information is not considered meaningful beyond the LSP
LSP Egress and is ignored. Egress and is ignored.
- the Diff-Serv information which is meaningful beyond the LSP - the Diff-Serv information which is meaningful beyond the LSP
Egress (which we refer to as the 'Tunneled Diff-Serv Egress (which we refer to as the 'Tunneled Diff-Serv
Information'). This information is to be conveyed by the LSP Information'). This information is to be conveyed by the LSP
Ingress to the LSP Egress. This Diff-Serv information is not Ingress to the LSP Egress. This Diff-Serv information is not
meaningful to the intermediate nodes on the LSP span." meaningful to the intermediate nodes on the LSP span."
When the Pipe Model is in use, it is common practice for the LSP When the Pipe Model is in use, it is common practice for the LSP
Egress to bind Explicit Null to the tunnel's FEC. The intention is Egress to bind Explicit Null to the tunnel's FEC. The intention is
that the LSP Diff-Serv information will be carried in the EXP bits that the LSP Diff-Serv information will be carried in the EXP bits of
of the Explicit Null label stack entry, and the tunneled Diff-Serv the Explicit Null label stack entry, and the tunneled Diff-Serv
information will be carried in whatever is "below" the Explicit Null information will be carried in whatever is "below" the Explicit Null
label stack entry, i.e., in the IP header DS bits or in the EXP bits label stack entry, i.e., in the IP header DS bits or in the EXP bits
of the next entry on the MPLS label stack. of the next entry on the MPLS label stack.
Naturally, this practice causes a problem if the Pipe Model LSP is Naturally, this practice causes a problem if the Pipe Model LSP is
being used to tunnel MPLS packets (i.e., if Condition L does not being used to tunnel MPLS packets (i.e., if Condition L does not
hold). With strict adherence to RFCs 3031 and 3036, this practice hold). With strict adherence to RFCs 3031 and 3036, this practice
results in an MPLS packet where Explicit NULL is at the top of the results in an MPLS packet where Explicit NULL is at the top of the
label stack, even though it is not the only entry in the label label stack, even though it is not the only entry in the label stack.
stack. However, RFC 3032 makes this packet illegal. However, RFC 3032 makes this packet illegal.
Some implementations simply transmit the illegal packet. Others try Some implementations simply transmit the illegal packet. Others try
to convert it to a legal packet by stripping off the Explicit NULL to convert it to a legal packet by stripping off the Explicit NULL
before transmitting it. However, that breaks the Pipe Model by before transmitting it. However, that breaks the Pipe Model by
discarding the LSP Diff-Serv information. It is conceivable that discarding the LSP Diff-Serv information. It is conceivable that
there may be an implementation which drops the illegal packet there may be an implementation that drops the illegal packet
entirely; this would also break the Pipe Model, as it would lose not entirely; this would also break the Pipe Model, as it would lose not
only the LSP Diff-Serv information but the entire packet. only the LSP Diff-Serv information, but the entire packet.
Of course the LSP egress is not compelled to bind Explicit NULL to Of course the LSP egress is not compelled to bind Explicit NULL to
the tunnel's FEC; an ordinary label could be used instead. However, the tunnel's FEC; an ordinary label could be used instead. However,
using Explicit NULL enables the egress to determine immediately using Explicit NULL enables the egress to determine immediately
(i.e., without need for lookup in the Label Information Base) that (i.e., without need for lookup in the Label Information Base) that
the further forwarding of the packet is to be determined by whatever the further forwarding of the packet is to be determined by whatever
is below the label. Avoiding this lookup can have favorable is below the label. Avoiding this lookup can have favorable
implications on forwarding performance. implications on forwarding performance.
Removing the restriction that Explicit Null only occur at the bottom Removing the restriction that Explicit Null only occur at the bottom
of the stack is the simplest way to facilitate the proper operation of the stack is the simplest way to facilitate the proper operation
of the Pipe Model. of the Pipe Model.
4. Deployment Considerations 4. Deployment Considerations
Implementations which adhere to this specification will interoperate Implementations that adhere to this specification will interoperate
correctly, and will correctly support the Pipe Model. correctly, and will correctly support the Pipe Model.
Implementations which do not adhere to this specification may not Implementations that do not adhere to this specification may not
interoperate. In particular if a router advertises a binding of interoperate. In particular, if a router advertises a binding of
Explicit NULL, and if that router has an upstream LDP peer which will Explicit NULL, and if that router has an upstream LDP peer that will
not transmit a packet that has multiple label stack entries with not transmit a packet that has multiple label stack entries with
Explicit Null at top of the stack, then it will not be possible to Explicit Null at top of the stack, then it will not be possible to
use Explicit NULL to support the Pipe Model until the upstream LDP use Explicit NULL to support the Pipe Model until the upstream LDP
peer is brought into compliance with this specification. peer is brought into compliance with this specification.
It is possible that there may be a router implementation, preceding It is possible that there may be a router implementation, preceding
this specification, which will discard any received packet with this specification, which will discard any received packet with
multiple label stack entries and a top label value of Explicit Null. multiple label stack entries and a top label value of Explicit Null.
It is advisable to configure any such routers so that they do not It is advisable to configure any such routers so that they do not
advertise any bindings to Explicit Null. advertise any bindings to Explicit Null.
skipping to change at page 6, line 19 skipping to change at page 5, line 41
any position in the label stack. This modification does not impose any position in the label stack. This modification does not impose
any new security considerations beyond those discussed in RFC 3032. any new security considerations beyond those discussed in RFC 3032.
6. Acknowledgments 6. Acknowledgments
Thanks to Rahul Aggarwal, Francois LeFaucheur, Yakov Rekhter, and Dan Thanks to Rahul Aggarwal, Francois LeFaucheur, Yakov Rekhter, and Dan
Tappan for their helpful comments. Tappan for their helpful comments.
7. Normative References 7. Normative References
[RFC3032] "MPLS Label Stack Encoding", Rosen, et. al., January 2001 [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y.,
Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack
Encoding", RFC 3032, January 2001.
8. Informative References 8. Informative References
[RFC3270] "Multi-Protocol Label Switching (MPLS) Support of [RFC3270] Le Faucheur, F., Wu, L., Davie, B., Davari, S., Vaananen,
Differentiated Services", Le Faucheur, et. al., May 2002 P., Krishnan, R., Cheval, P., and J. Heinanen, "Multi-
Protocol Label Switching (MPLS) Support of Differentiated
Services", RFC 3270, May 2002.
9. Author's Address Author's Address
Eric C. Rosen Eric C. Rosen
Cisco Systems, Inc. Cisco Systems, Inc.
1414 Massachusetts Avenue 1414 Massachusetts Avenue
Boxborough, MA 01719 Boxborough, MA 01719
Email: erosen@cisco.com
10. Intellectual Property Statement EMail: erosen@cisco.com
Full Copyright Statement
Copyright (C) The Internet Society (2005).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79. found in BCP 78 and BCP 79.
skipping to change at page 7, line 19 skipping to change at page 7, line 45
such proprietary rights by implementers or users of this such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr. http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at ietf- this standard. Please address the information to the IETF at ietf-
ipr@ietf.org. ipr@ietf.org.
11. Full Copyright Statement Acknowledgement
Copyright (C) The Internet Society (2005). This document is subject
to the rights, licenses and restrictions contained in BCP 78 and
except as set forth therein, the authors retain all their rights.
This document and the information contained herein are provided on an Funding for the RFC Editor function is currently provided by the
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS Internet Society.
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 End of changes. 

This html diff was produced by rfcdiff 1.25, available from http://www.levkowetz.com/ietf/tools/rfcdiff/