Internet Draft Network Working Group Eric C. Rosen Internet Draft Cisco Systems, Inc. Expiration Date: January 1998 Arun Viswanathan IBM Corp. Ross Callon Ascend Communications, Inc. July 1997 A Proposed Architecture for MPLS draft-rosen-mpls-arch-00.txt Status of this Memo This document is an Internet-Draft. 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 and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." To learn the current status of any Internet-Draft, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). Abstract This internet draft contains a draft protocol architecture for multiprotocol label switching (MPLS). The proposed architecture is based on other label switching approaches [2-11] as well as on the MPLS Framework document [1]. Rosen, Viswanathan & Callon [Page 1] Internet Draft draft-rosen-mpls-arch-00.txt July 1997 Table of Contents 1 Introduction to MPLS ............................... 3 1.1 Overview ........................................... 3 1.2 Terminology ........................................ 5 1.3 Acronyms and Abbreviations ......................... 9 1.4 Acknowledgments .................................... 10 2 Outline of Approach ................................ 10 2.1 Labels ............................................. 10 2.2 Upstream and Downstream LSRs ....................... 11 2.3 Labeled Packet ..................................... 11 2.4 Label Assignment and Distribution; Attributes ...... 11 2.5 Label Distribution Protocol (LDP) .................. 12 2.6 The Label Stack .................................... 12 2.7 The Next Hop Label Forwarding Entry (NHLFE) ........ 13 2.8 Incoming Label Map (ILM) ........................... 13 2.9 Stream-to-NHLFE Map (STN) .......................... 13 2.10 Label Swapping ..................................... 14 2.11 Label Switched Path (LSP), LSP Ingress, LSP Egress . 14 2.12 LSP Next Hop ....................................... 16 2.13 Route Selection .................................... 17 2.14 Time-to-Live (TTL) ................................. 18 2.15 Loop Control ....................................... 19 2.15.1 Loop Prevention .................................... 20 2.15.2 Interworking of Loop Control Options ............... 22 2.16 Merging and Non-Merging LSRs ....................... 23 2.16.1 Stream Merge ....................................... 24 2.16.2 Non-merging LSRs ................................... 24 2.16.3 Labels for Merging and Non-Merging LSRs ............ 25 2.16.4 Merge over ATM ..................................... 26 2.16.4.1 Methods of Eliminating Cell Interleave ............. 26 2.16.4.2 Interoperation: VC Merge, VP Merge, and Non-Merge .. 26 2.17 LSP Control: Egress versus Local ................... 27 2.18 Granularity ........................................ 29 2.19 Tunnels and Hierarchy .............................. 30 2.19.1 Hop-by-Hop Routed Tunnel ........................... 30 2.19.2 Explicitly Routed Tunnel ........................... 30 2.19.3 LSP Tunnels ........................................ 30 2.19.4 Hierarchy: LSP Tunnels within LSPs ................. 31 2.19.5 LDP Peering and Hierarchy .......................... 31 2.20 LDP Transport ...................................... 33 2.21 Label Encodings .................................... 33 2.21.1 MPLS-specific Hardware and/or Software ............. 33 2.21.2 ATM Switches as LSRs ............................... 34 2.21.3 Interoperability among Encoding Techniques ......... 35 2.22 Multicast .......................................... 36 Rosen, Viswanathan & Callon [Page 2] Internet Draft draft-rosen-mpls-arch-00.txt July 1997 3 Some Applications of MPLS .......................... 36 3.1 MPLS and Hop by Hop Routed Traffic ................. 36 3.1.1 Labels for Address Prefixes ........................ 36 3.1.2 Distributing Labels for Address Prefixes ........... 36 3.1.2.1 LDP Peers for a Particular Address Prefix .......... 36 3.1.2.2 Distributing Labels ................................ 37 3.1.3 Using the Hop by Hop path as the LSP ............... 38 3.1.4 LSP Egress and LSP Proxy Egress .................... 38 3.1.5 The POP Label ...................................... 39 3.1.6 Option: Egress-Targeted Label Assignment ........... 40 3.2 MPLS and Explicitly Routed LSPs .................... 41 3.2.1 Explicitly Routed LSP Tunnels: Traffic Engineering . 42 3.3 Label Stacks and Implicit Peering .................. 42 3.4 MPLS and Multi-Path Routing ........................ 43 3.5 LSPs may be Multipoint-to-Point Entities ........... 44 3.6 LSP Tunneling between BGP Border Routers ........... 44 3.7 Other Uses of Hop-by-Hop Routed LSP Tunnels ........ 46 3.8 MPLS and Multicast ................................. 46 4 LDP Procedures ..................................... 47 5 Security Considerations ............................ 47 6 Authors' Addresses ................................. 47 7 References ......................................... 47 Appendix A Why Egress Control is Better ....................... 48 Appendix B Why Local Control is Better ........................ 56 1. Introduction to MPLS 1.1. Overview In connectionless network layer protocols, as a packet travels from one router hop to the next, an independent forwarding decision is made at each hop. Each router analyzes the packet header, and runs a network layer routing algorithm. The next hop for a packet is chosen based on the header analysis and the result of running the routing algorithm. Packet headers contain considerably more information than is needed simply to choose the next hop. Choosing the next hop can therefore be thought of as the composition of two functions. The first function partitions the entire packet forwarding space into "forwarding equivalence classes (FECs)". The second maps these FECs to a next hop. Multiple network layer headers which get mapped into the same FEC are indistinguishable, as far as the forwarding decision is concerned. The set of packets belonging to the same FEC, t