draft-ietf-mpls-arch-04.txt   draft-ietf-mpls-arch-05.txt 
Network Working Group Eric C. Rosen Network Working Group Eric C. Rosen
Internet Draft Cisco Systems, Inc. Internet Draft Cisco Systems, Inc.
Expiration Date: August 1999 Expiration Date: October 1999
Arun Viswanathan Arun Viswanathan
Lucent Technologies Lucent Technologies
Ross Callon Ross Callon
IronBridge Networks, Inc. IronBridge Networks, Inc.
February 1999 April 1999
Multiprotocol Label Switching Architecture Multiprotocol Label Switching Architecture
draft-ietf-mpls-arch-04.txt draft-ietf-mpls-arch-05.txt
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
To view the list Internet-Draft Shadow Directories, see The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
Abstract Abstract
This internet draft specifies the architecture for Multiprotocol This internet draft specifies the architecture for Multiprotocol
Label Switching (MPLS). Label Switching (MPLS).
Table of Contents Table of Contents
1 Introduction to MPLS ............................... 4 1 Introduction to MPLS ............................... 4
skipping to change at page 2, line 19 skipping to change at page 2, line 19
1.2 Terminology ........................................ 6 1.2 Terminology ........................................ 6
1.3 Acronyms and Abbreviations ......................... 9 1.3 Acronyms and Abbreviations ......................... 9
1.4 Acknowledgments .................................... 10 1.4 Acknowledgments .................................... 10
2 MPLS Basics ........................................ 10 2 MPLS Basics ........................................ 10
2.1 Labels ............................................. 10 2.1 Labels ............................................. 10
2.2 Upstream and Downstream LSRs ....................... 11 2.2 Upstream and Downstream LSRs ....................... 11
2.3 Labeled Packet ..................................... 11 2.3 Labeled Packet ..................................... 11
2.4 Label Assignment and Distribution .................. 11 2.4 Label Assignment and Distribution .................. 11
2.5 Attributes of a Label Binding ...................... 12 2.5 Attributes of a Label Binding ...................... 12
2.6 Label Distribution Protocols ....................... 12 2.6 Label Distribution Protocols ....................... 12
2.7 Downstream vs. Downstream-on-Demand ................ 12 2.7 Unsolicited Downstream vs. Downstream-on-Demand .... 12
2.8 Label Retention Mode ............................... 13 2.8 Label Retention Mode ............................... 13
2.9 The Label Stack .................................... 13 2.9 The Label Stack .................................... 13
2.10 The Next Hop Label Forwarding Entry (NHLFE) ........ 14 2.10 The Next Hop Label Forwarding Entry (NHLFE) ........ 14
2.11 Incoming Label Map (ILM) ........................... 15 2.11 Incoming Label Map (ILM) ........................... 15
2.12 FEC-to-NHLFE Map (FTN) ............................. 15 2.12 FEC-to-NHLFE Map (FTN) ............................. 15
2.13 Label Swapping ..................................... 15 2.13 Label Swapping ..................................... 15
2.14 Scope and Uniqueness of Labels ..................... 16 2.14 Scope and Uniqueness of Labels ..................... 16
2.15 Label Switched Path (LSP), LSP Ingress, LSP Egress . 17 2.15 Label Switched Path (LSP), LSP Ingress, LSP Egress . 17
2.16 Penultimate Hop Popping ............................ 18 2.16 Penultimate Hop Popping ............................ 19
2.17 LSP Next Hop ....................................... 20 2.17 LSP Next Hop ....................................... 20
2.18 Invalid Incoming Labels ............................ 20 2.18 Invalid Incoming Labels ............................ 21
2.19 LSP Control: Ordered versus Independent ............ 21 2.19 LSP Control: Ordered versus Independent ............ 21
2.20 Aggregation ........................................ 22 2.20 Aggregation ........................................ 22
2.21 Route Selection .................................... 23 2.21 Route Selection .................................... 24
2.22 Lack of Outgoing Label ............................. 24 2.22 Lack of Outgoing Label ............................. 24
2.23 Time-to-Live (TTL) ................................. 25 2.23 Time-to-Live (TTL) ................................. 25
2.24 Loop Control ....................................... 26 2.24 Loop Control ....................................... 26
2.25 Label Encodings .................................... 26 2.25 Label Encodings .................................... 27
2.25.1 MPLS-specific Hardware and/or Software ............. 27 2.25.1 MPLS-specific Hardware and/or Software ............. 27
2.25.2 ATM Switches as LSRs ............................... 27 2.25.2 ATM Switches as LSRs ............................... 27
2.25.3 Interoperability among Encoding Techniques ......... 28 2.25.3 Interoperability among Encoding Techniques ......... 29
2.26 Label Merging ...................................... 29 2.26 Label Merging ...................................... 29
2.26.1 Non-merging LSRs ................................... 30 2.26.1 Non-merging LSRs ................................... 30
2.26.2 Labels for Merging and Non-Merging LSRs ............ 31 2.26.2 Labels for Merging and Non-Merging LSRs ............ 31
2.26.3 Merge over ATM ..................................... 31 2.26.3 Merge over ATM ..................................... 32
2.26.3.1 Methods of Eliminating Cell Interleave ............. 31 2.26.3.1 Methods of Eliminating Cell Interleave ............. 32
2.26.3.2 Interoperation: VC Merge, VP Merge, and Non-Merge .. 32 2.26.3.2 Interoperation: VC Merge, VP Merge, and Non-Merge .. 32
2.27 Tunnels and Hierarchy .............................. 33 2.27 Tunnels and Hierarchy .............................. 33
2.27.1 Hop-by-Hop Routed Tunnel ........................... 33 2.27.1 Hop-by-Hop Routed Tunnel ........................... 34
2.27.2 Explicitly Routed Tunnel ........................... 33 2.27.2 Explicitly Routed Tunnel ........................... 34
2.27.3 LSP Tunnels ........................................ 34 2.27.3 LSP Tunnels ........................................ 34
2.27.4 Hierarchy: LSP Tunnels within LSPs ................. 34 2.27.4 Hierarchy: LSP Tunnels within LSPs ................. 35
2.27.5 Label Distribution Peering and Hierarchy ........... 35 2.27.5 Label Distribution Peering and Hierarchy ........... 35
2.28 Label Distribution Protocol Transport .............. 36 2.28 Label Distribution Protocol Transport .............. 37
2.29 Why More than one Label Distribution Protocol? ..... 36 2.29 Why More than one Label Distribution Protocol? ..... 37
2.29.1 BGP and LDP ........................................ 37 2.29.1 BGP and LDP ........................................ 37
2.29.2 Labels for RSVP Flowspecs .......................... 37 2.29.2 Labels for RSVP Flowspecs .......................... 37
2.29.3 Labels for Explicitly Routed LSPs .................. 37 2.29.3 Labels for Explicitly Routed LSPs .................. 38
2.30 Multicast .......................................... 38 2.30 Multicast .......................................... 38
3 Some Applications of MPLS .......................... 38 3 Some Applications of MPLS .......................... 38
3.1 MPLS and Hop by Hop Routed Traffic ................. 38 3.1 MPLS and Hop by Hop Routed Traffic ................. 38
3.1.1 Labels for Address Prefixes ........................ 38 3.1.1 Labels for Address Prefixes ........................ 38
3.1.2 Distributing Labels for Address Prefixes ........... 38 3.1.2 Distributing Labels for Address Prefixes ........... 39
3.1.2.1 Label Distribution Peers for an Address Prefix ..... 38 3.1.2.1 Label Distribution Peers for an Address Prefix ..... 39
3.1.2.2 Distributing Labels ................................ 39 3.1.2.2 Distributing Labels ................................ 39
3.1.3 Using the Hop by Hop path as the LSP ............... 40 3.1.3 Using the Hop by Hop path as the LSP ............... 40
3.1.4 LSP Egress and LSP Proxy Egress .................... 40 3.1.4 LSP Egress and LSP Proxy Egress .................... 41
3.1.5 The Implicit NULL Label ............................ 41 3.1.5 The Implicit NULL Label ............................ 41
3.1.6 Option: Egress-Targeted Label Assignment ........... 42 3.1.6 Option: Egress-Targeted Label Assignment ........... 42
3.2 MPLS and Explicitly Routed LSPs .................... 43 3.2 MPLS and Explicitly Routed LSPs .................... 44
3.2.1 Explicitly Routed LSP Tunnels ...................... 43 3.2.1 Explicitly Routed LSP Tunnels ...................... 44
3.3 Label Stacks and Implicit Peering .................. 44 3.3 Label Stacks and Implicit Peering .................. 45
3.4 MPLS and Multi-Path Routing ........................ 45 3.4 MPLS and Multi-Path Routing ........................ 46
3.5 LSP Trees as Multipoint-to-Point Entities .......... 45 3.5 LSP Trees as Multipoint-to-Point Entities .......... 46
3.6 LSP Tunneling between BGP Border Routers ........... 46 3.6 LSP Tunneling between BGP Border Routers ........... 47
3.7 Other Uses of Hop-by-Hop Routed LSP Tunnels ........ 48 3.7 Other Uses of Hop-by-Hop Routed LSP Tunnels ........ 49
3.8 MPLS and Multicast ................................. 48 3.8 MPLS and Multicast ................................. 49
4 Label Distribution Procedures (Hop-by-Hop) ......... 49 4 Label Distribution Procedures (Hop-by-Hop) ......... 50
4.1 The Procedures for Advertising and Using labels .... 49 4.1 The Procedures for Advertising and Using labels .... 50
4.1.1 Downstream LSR: Distribution Procedure ............. 50 4.1.1 Downstream LSR: Distribution Procedure ............. 50
4.1.1.1 PushUnconditional .................................. 50 4.1.1.1 PushUnconditional .................................. 51
4.1.1.2 PushConditional .................................... 50 4.1.1.2 PushConditional .................................... 51
4.1.1.3 PulledUnconditional ................................ 51 4.1.1.3 PulledUnconditional ................................ 52
4.1.1.4 PulledConditional .................................. 51 4.1.1.4 PulledConditional .................................. 52
4.1.2 Upstream LSR: Request Procedure .................... 52 4.1.2 Upstream LSR: Request Procedure .................... 53
4.1.2.1 RequestNever ....................................... 52 4.1.2.1 RequestNever ....................................... 53
4.1.2.2 RequestWhenNeeded .................................. 53 4.1.2.2 RequestWhenNeeded .................................. 53
4.1.2.3 RequestOnRequest ................................... 53 4.1.2.3 RequestOnRequest ................................... 54
4.1.3 Upstream LSR: NotAvailable Procedure ............... 53 4.1.3 Upstream LSR: NotAvailable Procedure ............... 54
4.1.3.1 RequestRetry ....................................... 53 4.1.3.1 RequestRetry ....................................... 54
4.1.3.2 RequestNoRetry ..................................... 54 4.1.3.2 RequestNoRetry ..................................... 54
4.1.4 Upstream LSR: Release Procedure .................... 54 4.1.4 Upstream LSR: Release Procedure .................... 55
4.1.4.1 ReleaseOnChange .................................... 54 4.1.4.1 ReleaseOnChange .................................... 55
4.1.4.2 NoReleaseOnChange .................................. 54 4.1.4.2 NoReleaseOnChange .................................. 55
4.1.5 Upstream LSR: labelUse Procedure ................... 54 4.1.5 Upstream LSR: labelUse Procedure ................... 55
4.1.5.1 UseImmediate ....................................... 55 4.1.5.1 UseImmediate ....................................... 56
4.1.5.2 UseIfLoopNotDetected ............................... 55 4.1.5.2 UseIfLoopNotDetected ............................... 56
4.1.6 Downstream LSR: Withdraw Procedure ................. 55 4.1.6 Downstream LSR: Withdraw Procedure ................. 56
4.2 MPLS Schemes: Supported Combinations of Procedures . 56 4.2 MPLS Schemes: Supported Combinations of Procedures . 57
4.2.1 Schemes for LSRs that Support Label Merging ........ 56 4.2.1 Schemes for LSRs that Support Label Merging ........ 57
4.2.2 Schemes for LSRs that do not Support Label Merging . 58 4.2.2 Schemes for LSRs that do not Support Label Merging . 58
4.2.3 Interoperability Considerations .................... 59 4.2.3 Interoperability Considerations .................... 59
5 Security Considerations ............................ 60 5 Security Considerations ............................ 61
6 Intellectual Property .............................. 60 6 Intellectual Property .............................. 61
7 Authors' Addresses ................................. 60 7 Authors' Addresses ................................. 61
8 References ......................................... 61 8 References ......................................... 62
1. Introduction to MPLS 1. Introduction to MPLS
1.1. Overview 1.1. Overview
As a packet of a connectionless network layer protocol travels from As a packet of a connectionless network layer protocol travels from
one router to the next, each router makes an independent forwarding one router to the next, each router makes an independent forwarding
decision for that packet. That is, each router analyzes the packet's decision for that packet. That is, each router analyzes the packet's
header, and each router runs a network layer routing algorithm. Each header, and each router runs a network layer routing algorithm. Each
router independently chooses a next hop for the packet, based on its router independently chooses a next hop for the packet, based on its
skipping to change at page 12, line 42 skipping to change at page 12, line 42
distribution protocols are being standardized. Existing protocols distribution protocols are being standardized. Existing protocols
have been extended so that label distribution can be piggybacked on have been extended so that label distribution can be piggybacked on
them (see, e.g., [MPLS-BGP], [MPLS-RSVP], [MPLS-RSVP-TUNNELS]). New them (see, e.g., [MPLS-BGP], [MPLS-RSVP], [MPLS-RSVP-TUNNELS]). New
protocols have also been defined for the explicit purpose of protocols have also been defined for the explicit purpose of
distributing labels (see, e.g., [MPLS-LDP], [MPLS-CR-LDP]. distributing labels (see, e.g., [MPLS-LDP], [MPLS-CR-LDP].
In this document, we try to use the acronym "LDP" to refer In this document, we try to use the acronym "LDP" to refer
specifically to the protocol defined in [MPLS-LDP]; when speaking of specifically to the protocol defined in [MPLS-LDP]; when speaking of
label distribution protocols in general, we try to avoid the acronym. label distribution protocols in general, we try to avoid the acronym.
2.7. Downstream vs. Downstream-on-Demand 2.7. Unsolicited Downstream vs. Downstream-on-Demand
The MPLS architecture allows an LSR to explicitly request, from its The MPLS architecture allows an LSR to explicitly request, from its
next hop for a particular FEC, a label binding for that FEC. This is next hop for a particular FEC, a label binding for that FEC. This is
known as "downstream-on-demand" label distribution. known as "downstream-on-demand" label distribution.
The MPLS architecture also allows an LSR to distribute bindings to The MPLS architecture also allows an LSR to distribute bindings to
LSRs that have not explicitly requested them. This is known as LSRs that have not explicitly requested them. This is known as
"downstream" label distribution. "unsolicited downstream" label distribution.
Both of these label distribution techniques may be used in the same It is expected that some MPLS implementations will provide only
network at the same time. However, on any given label distribution downstream-on-demand label distribution, and some will provide only
unsolicited downstream label distribution, and some will provide
both. Which is provided may depend on the characteristics of the
interfaces which are supported by a particular implementation.
However, both of these label distribution techniques may be used in
the same network at the same time. On any given label distribution
adjacency, the upstream LSR and the downstream LSR must agree on adjacency, the upstream LSR and the downstream LSR must agree on
which technique is to be used. which technique is to be used.
2.8. Label Retention Mode 2.8. Label Retention Mode
An LSR Ru may receive (or have received) a label binding for a An LSR Ru may receive (or have received) a label binding for a
particular FEC from an LSR Rd, even though Rd is not Ru's next hop particular FEC from an LSR Rd, even though Rd is not Ru's next hop
(or is no longer Ru's next hop) for that FEC. (or is no longer Ru's next hop) for that FEC.
Ru then has the choice of whether to keep track of such bindings, or Ru then has the choice of whether to keep track of such bindings, or
skipping to change at page 24, line 28 skipping to change at page 24, line 37
information learned from a link state database in order to compute information learned from a link state database in order to compute
the entire path for the tree ending at that egress node). the entire path for the tree ending at that egress node).
Explicit routing may be useful for a number of purposes, such as Explicit routing may be useful for a number of purposes, such as
policy routing or traffic engineering. In MPLS, the explicit route policy routing or traffic engineering. In MPLS, the explicit route
needs to be specified at the time that labels are assigned, but the needs to be specified at the time that labels are assigned, but the
explicit route does not have to be specified with each IP packet. explicit route does not have to be specified with each IP packet.
This makes MPLS explicit routing much more efficient than the This makes MPLS explicit routing much more efficient than the
alternative of IP source routing. alternative of IP source routing.
The procedures for making use of explicit routes, either strict or
loose, are beyond the scope of this document.
2.22. Lack of Outgoing Label 2.22. Lack of Outgoing Label
When a labeled packet is traveling along an LSP, it may occasionally When a labeled packet is traveling along an LSP, it may occasionally
happen that it reaches an LSR at which the ILM does not map the happen that it reaches an LSR at which the ILM does not map the
packet's incoming label into an NHLFE, even though the incoming label packet's incoming label into an NHLFE, even though the incoming label
is itself valid. This can happen due to transient conditions, or due is itself valid. This can happen due to transient conditions, or due
to an error at the LSR which should be the packet's next hop. to an error at the LSR which should be the packet's next hop.
It is tempting in such cases to strip off the label stack and attempt It is tempting in such cases to strip off the label stack and attempt
to forward the packet further via conventional forwarding, based on to forward the packet further via conventional forwarding, based on
skipping to change at page 61, line 4 skipping to change at page 61, line 35
document. For more information consult the online list of claimed document. For more information consult the online list of claimed
rights. rights.
7. Authors' Addresses 7. Authors' Addresses
Eric C. Rosen Eric C. Rosen
Cisco Systems, Inc. Cisco Systems, Inc.
250 Apollo Drive 250 Apollo Drive
Chelmsford, MA, 01824 Chelmsford, MA, 01824
E-mail: erosen@cisco.com E-mail: erosen@cisco.com
Arun Viswanathan Arun Viswanathan
Lucent Technologies Lucent Technologies
101 Crawford Corner Rd., #4D-537 101 Crawford Corner Rd., #4D-537
Holmdel, NJ 07733 Holmdel, NJ 07733
732-332-5163 732-332-5163
E-mail: arunv@dnrc.bell-labs.com E-mail: arunv@dnrc.bell-labs.com
Ross Callon Ross Callon
IronBridge Networks IronBridge Networks
55 Hayden Avenue, 55 Hayden Avenue,
Lexington, MA 02173 Lexington, MA 02173
+1-781-372-8117 +1-781-372-8117
E-mail: rcallon@ironbridgenetworks.com E-mail: rcallon@ironbridgenetworks.com
8. References 8. References
[MPLS-ATM] "MPLS using ATM VC Switching", Davie, Doolan, Lawrence, [MPLS-ATM] "MPLS using LDP and ATM VC Switching", Davie, Doolan,
McGloghrie, Rekhter, Rosen, Swallow, work in progress, Internet Draft Lawrence, McGloghrie, Rekhter, Rosen, Swallow, work in progress,
<draft-ietf-mpls-atm-01.txt>, November 1998. April 1999.
[MPLS-BGP] "Carrying Label Information in BGP-4", Rekhter, Rosen, [MPLS-BGP] "Carrying Label Information in BGP-4", Rekhter, Rosen,
work in progress, Internet Draft <draft-ietf-mpls-bgp4-mpls-01.txt>, work in progress, February 1999.
August 1998.
[MPLS-CR-LDP] "Constraint-Based LSP Setup using LDP", Andersson, [MPLS-CR-LDP] "Constraint-Based LSP Setup using LDP", Jamoussi,
Fredette, Jamoussi, Callon, Doolan, Feldman, Gray, Halpern, Heinanen, editor, work in progress, March 1999.
Kilty, Malis, Girish, Sundell, Vaananen, Worster, Wu, Dantu, Internet
Draft <draft-ietf-mpls-cr-ldp-00.txt>, January 1999.
[MPLS-FRMWRK] "A Framework for Multiprotocol Label Switching", [MPLS-FRMWRK] "A Framework for Multiprotocol Label Switching",
Callon, Doolan, Feldman, Fredette, Swallow, Viswanathan, work in Callon, Doolan, Feldman, Fredette, Swallow, Viswanathan, work in
progress, Internet Draft <draft-ietf-mpls-framework-02.txt>, November progress, November 1997
1997
[MPLS-FRMRLY] "Use of Label Switching on Frame Relay Networks", [MPLS-FRMRLY] "Use of Label Switching on Frame Relay Networks",
Conta, Doolan, Malis, work in progress, Internet Draft <draft-ietf- Conta, Doolan, Malis, work in progress, November 1998
mpls-fr-03.txt>, November 1998
[MPLS-LDP], "LDP Specification", Andersson, Doolan, Feldman, [MPLS-LDP], "LDP Specification", Andersson, Doolan, Feldman,
Fredette, Thomas, work in progress, Internet Draft <draft-ietf-mpls- Fredette, Thomas, work in progress, April 1999.
ldp-02.txt>
[MPLS-RSVP] "Use of Label Switching with RSVP", Davie, Rekhter, [MPLS-RSVP] "Use of Label Switching with RSVP", Davie, Rekhter,
Rosen, Viswanathan, Srinivasan, work in progress, Internet Draft Rosen, Viswanathan, Srinivasan, work in progress, March 1998.
<draft-ietf-mpls-rsvp-00.txt>, March 1998.
[MPLS-RSVP-TUNNELS], "Extensions to RSVP for LSP Tunnels", Awduche, [MPLS-RSVP-TUNNELS], "Extensions to RSVP for LSP Tunnels", Awduche,
Berger, Gan, Li, Swallow, Srinvasan, work in progress, Internet Draft Berger, Gan, Li, Swallow, Srinvasan, work in progress, March 1999.
<draft-ietf-mpls-rsvp-lsp-tunnel-00.txt>, November 1998
[MPLS-SHIM] "MPLS Label Stack Encodings", Rosen, Rekhter, Tappan, [MPLS-SHIM] "MPLS Label Stack Encodings", Rosen, Rekhter, Tappan,
Farinacci, Fedorkow, Li, Conta, work in progress, Internet Draft Farinacci, Fedorkow, Li, Conta, work in progress, April 1999.
<draft-ietf-mpls-label-encaps-03.txt>, September, 1998
[MPLS-TRFENG] "Requirements for Traffic Engineering Over MPLS", [MPLS-TRFENG] "Requirements for Traffic Engineering Over MPLS",
Awduche, Malcolm, Agogbua, O'Dell, McManus, work in progress, Awduche, Malcolm, Agogbua, O'Dell, McManus, work in progress, August
Internet Draft <draft-ietf-mpls-traffic-eng-00.txt> 1998.
 End of changes. 

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