Network Working Group Peter Ashwood-Smith (Nortel Networks Corp.) Internet Draft Ayan Banerjee (Calient Networks) Expiration Date: April 2001 Lou Berger (Movaz Networks) Greg Bernstein (Ciena Corporation) John Drake (Calient Networks) Yanhe Fan (Axiowave Networks) Kireeti Kompella (Juniper Networks, Inc.) Eric Mannie (GTS Network Services) Jonathan P. Lang (Calient Networks) Bala Rajagopalan (Tellium, Inc.) Yakov Rekhter (Cisco Systems) Debanjan Saha (Tellium, Inc.) Vishal Sharma (Tellabs) George Swallow (Cisco Systems) Z. Bo Tang (Tellium, Inc.) October 2000 Generalized MPLS - Signaling Functional Description draft-ietf-mpls-generalized-signaling-00.txt Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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." 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. To view the current status of any Internet-Draft, please check the "1id-abstracts.txt" listing contained in an Internet-Drafts Shadow Directory, see http://www.ietf.org/shadow.html. Abstract This document describes extensions to MPLS signaling required to support Generalized MPLS. Generalized MPLS extends MPLS to encompass time-division (e.g. SONET ADMs), wavelength (optical lambdas) and spatial switching (e.g. incoming port or fiber to outgoing port or fiber). This document presents a functional description of the extensions. Protocol specific formats and mechanisms are currently included in this draft but are expected to be split out into separate, per protocol documents. Berger, Ashwood-Smith, editors [Page 1] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 Contents 1 Introduction ................................................ 3 2 Overview ................................................... 4 3 Label Related Formats ...................................... 6 3.1 Generalized Label Request ................................... 6 3.2 Generalized Label ........................................... 14 3.3 Waveband Switching .......................................... 20 3.4 Suggested Label ............................................. 21 3.5 Label Set ................................................... 22 4 Bidirectional LSPs .......................................... 25 4.1 Required Information ........................................ 26 4.2 Procedures .................................................. 26 4.3 Contention Resolution ....................................... 27 5 Notification ................................................ 29 5.1 Notify Request Object ....................................... 30 5.2 Notify Message .............................................. 31 5.3 Removing State with a PathErr message ....................... 32 6 Explicit Label Control ...................................... 33 6.1 Required Information ........................................ 34 6.2 Procedures .................................................. 35 7 RSVP Message Formats ........................................ 36 8 Acknowledgments ............................................. 37 9 Security Considerations ..................................... 37 10 References .................................................. 38 11 Authors' Addresses .......................................... 39 Berger, Ashwood-Smith, editors [Page 2] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 Changes from previous version: o Removed Link ID in labels, redundant with [MPLS-BUNDLE]. o Revised Generalized Label Request and SDH/SONET encodings o Added Notify Request object o Added multiple sender notifies per Notify message o Added ability to remove path state on sending PathErr o Removed Non-Adjacent Message Bundling o Enabled label specification via ERO/ER o Added Section 7 o Minor text cleanup 1. Introduction The Multiprotocol Label Switching (MPLS) architecture [MPLS-ARCH] has been defined to support the forwarding of data based on a label. In this architecture, Label Switching Routers (LSRs) were assumed to have a forwarding plane that is capable of (a) recognizing either packet or cell boundaries, and (b) being able to process either packet headers (for LSRs capable of recognizing packet boundaries) or cell headers (for LSRs capable of recognizing cell boundaries). The original architecture has recently been extended to include LSRs whose forwarding plane recognizes neither packet, nor cell boundaries, and therefore, can't forward data based on the information carried in either packet or cell headers. Specifically, such LSRs include devices where the forwarding decision is based on time slots, wavelengths, or physical ports. Given the above, LSRs, or more precisely interfaces on LSRs, can be subdivided into the following classes: 1. Interfaces that recognize packet/cell boundaries and can forward data based on the content of the packet/cell header. Examples include interfaces on routers that forward data based on the content of the "shim" header, interfaces on ATM-LSRs that forward data based on the ATM VPI/VCI. Such interfaces are referred to as Packet-Switch Capable (PSC). 2. Interfaces that forward data based on the data's time slot in a repeating cycle. An example of such an interface is an interface on a SONET Cross-Connect. Such interfaces are referred to as Time-Division Multiplex Capable (TDM). 3. Interfaces that forward data based on the wavelength on which the data is received. An example of such an interface is an interface Berger, Ashwood-Smith, editors [Page 3] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 on an Optical Cross-Connect that can operate at the level of an individual wavelength. Such interfaces are referred to as Lambda Switch Capable (LSC). 4. Interfaces that forward data based on a position of the data in the real world physical spaces. An example of such an interface is an interface on an Optical Cross-Connect that can operate at the level of a single (or multiple) fibers. Such interfaces are referred to as Fiber-Switch Capable (FSC). Using the concept of nested LSPs (by using label stack) allows the system to scale by building a forwarding hierarchy. At the top of this hierarchy are FSC interfaces, followed by LSC interfaces, followed by TDM interfaces, followed by PSC interfaces. This way, an LSP that starts and ends on a PSC interface can be nested (together with other LSPs) into an LSP that starts and ends on a TDM interface. This LSP, in turn, can be nested (together with other LSPs) into an LSP that starts and ends on a LSC interface, which in turn can be nested (together with other LSPs) into an LSP that starts and ends on a FSC interface. See [MPLS-HIERARCHY] for more information on LSP hierarchies. The establishment of LSPs that span only the first class of interfaces is defined in the [LDP, CR-LDP, RSVP-TE]. This document presents the extensions needed to support all four classes of interfaces. This document currently includes data formats for both CR-LDP and RSVP-TE extensions. A future version of this document is expected to move these protocol specific formats to per protocol drafts. 2. Overview Generalized MPLS differs from traditional MPLS in that it supports multiple types of switching, i.e., the addition of support for TDM, lambda, and fiber (port) switching. The support for the additional types of switching has driven generalized MPLS to extend certain base functions of traditional MPLS and, in some cases, to add functionality. These changes and additions impact basic LSP properties, how labels are requested and communicated, the unidirectional nature of LSPs, how errors are propagated, and information provided for synchronizing the ingress and egress. In traditional MPLS Traffic Engineering, links traversed by an LSP can include an intermix of links with heterogeneous label encodings. For example, an LSP may span links between routers, links between routers and ATM-LSRs, and links between ATM-LSRs. Generalized MPLS Berger, Ashwood-Smith, editors [Page 4] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 extends this by including links where the label is encoded as a time slot, or a wavelength, or a position in the real world physical space. Just like with traditional MPLS TE, where not all LSRs are capable of recognizing (IP) packet boundaries (e.g., an ATM-LSR) in their forwarding plane, generalized MPLS includes support for LSRs that can't recognize (IP) packet boundaries in their forwarding plane. In traditional MPLS TE an LSP that carries IP has to start and end on a router. Generalized MPLS extends this by requiring an LSP to start and end on similar type of LSRs. Also, in generalized MPLS the type of a payload that can be carried by an LSP is extended to allow such payloads as SONET/SDH, or 1 or 10Gb Ethernet. These changes from traditional MPLS are reflected in how labels are requested and communicated in generalized MPLS, see Sections 3.1 and 3.2. A special case of Lambda switching, called Waveband switching is also described in Section 3.3. Another basic difference between traditional and and non-PSC types of generalized MPLS LSPs, is that bandwidth allocation for an LSP can be performed only in discrete units, see Section 3.1.1. There are also likely to be (much) fewer labels on non-PSC links than on PSC links. Note that the use of Forwarding Adjacencies (FA), see [MPLS- HIERARCHY], provides a mechanism that may improve bandwidth utilization, when bandwidth allocation can be performed only in discrete units, as well as a mechanism to aggregate forwarding state, thus allowing the number of required labels to be reduced. Generalized MPLS allows for a label to be suggested by an upstream node, see Section 3.4. This suggestion may be overridden by a downstream node but, in some cases, at the cost of higher LSP setup time. The suggested label is valuable when establishing LSPs through certain kinds of optical equipment where there may be a lengthy (in electrical terms) delay in configuring the switching fabric. For example micro mirrors may have to be elevated or moved, and this physical motion and subsequent damping takes time. If the labels and hence switching fabric are configured in the reverse direction (the norm) the MAPPING/Resv message may need to be delayed by 10's of milliseconds per hop in order to establish a usable forwarding path. Generalized MPLS extends on the notion of restricting the range of labels that may be selected by a downstream node, see Section 3.5. In generalized MPLS, an ingress or other upstream node may restrict the labels that may be used by an LSP along either a single hop or along the whole LSP path. This feature is driven from the optical domain where there are cases where wavelengths used by the path must be restricted either to a small subset of possible wavelengths, or to one specific wavelength. This requirement occurs because some equipment may only be able to generate a small set of the wavelengths that intermediate equipment may be able to switch, or because Berger, Ashwood-Smith, editors [Page 5] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 intermediate equipment may not be able to switch a wavelength at all, being only able to redirect it to a different fiber. While traditional traffic engineered MPLS (and even LDP) are unidirectional, generalized MPLS supports the establishment of bidirectional LSPs, see Section 4. The need for bidirectional LSPs come from non-PSC applications. There are multiple reasons why such LSPs are needed, particularly possible resource contention when allocating reciprocal LSPs via separate signaling sessions, and simplifying failure restoration procedures in the non-PSC case. Bidirectional LSPs also have the benefit of lower setup latency and lower number of messages required during setup. Other features supported by generalized MPLS are rapid failure notification, see Section 5, and termination of an LSP on a specific egress port, see Section 6. 3. Label Related Formats To deal with the widening scope of MPLS into the optical and time domain, several new forms of "label" are required. These new forms of label are collectively referred to as a "generalized label". A generalized label contains enough information to allow the receiving node to program its cross connect, regardless of the type of this cross connect, such that the ingress segments of the path are properly joined. This section defines a generalized label request, a generalized label, support for waveband switching, suggested label and label sets. Note that since the nodes sending and receiving the new form of label know what kinds of link they are using, the generalized label does not contain a type field, instead the nodes are expected to know from context what type of label to expect. 3.1. Generalized Label Request The Generalized Label Request supports communication of characteristics required to support the LSP being requested. These characteristics include desired link protection, LSP encoding, and LSP payload. The Generalized Label Request indicates the link protection type desired for the LSP. If a particular protection type, i.e., 1+1, or 1:N, is requested, then a connection request is processed only if the desired protection type can be honored. Note that the protection capabilities of a link may be advertised in routing, see [GMPLS-ISIS, Berger, Ashwood-Smith, editors [Page 6] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 GMPLS-OSPF]. Path computation algorithms may take this information into account when computing paths for setting up LSPs. The Generalized Label Request also carries an LSP encoding parameter, called LSP Encoding Type. This parameter indicates the encoding type, e.g., SONET/SDH/GigE etc., that will be used with the data associated with the LSP. The LSP Encoding Type represents the nature of the LSP, and not the nature of the links that the LSP traverses. A link may support a set of encoding formats, where support means that a link is able to carry and switch a signal of one or more of these encoding formats depending on the resource availability and capacity of the link. For example, consider an LSP signaled with "photonic" encoding. It is expected that such an LSP would be supported with no electrical conversion and no knowledge of the modulation and speed by the transit nodes. All other formats require framing knowledge, and field parameters are broken into the framing type and speed as shown below. A REQUEST/Path message SHOULD contain as specific a LSP Encoding Type as possible to allow the maximum flexibility in switching by transit LSRs. A Generalized Label Request object/TLV is set by the ingress node, transparently passed by transit nodes, and used by the egress node. 3.1.1. Generalized Label Request Format The format of a Generalized Label Request (in RSVP) is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Class Num (19)|C_Type (4)[TBA]| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSP Enc. Type |Link Prot.Flags| G-PID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The format of a Generalized Label Request (in CR-LDP) is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |U|F| 0x0901 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSP Enc. Type |Link Prot.Flags| G-PID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Berger, Ashwood-Smith, editors [Page 7] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 LSP Encoding Type: 8 bits Indicates the encoding of the LSP being requested. The following shows permitted values and their meaning: Value Type ----- ---- 1 Packet 2 Ethernet 3 ANSI PDH 4 ETSI PDH 5 SDH 6 SONET 7 Digital Wrapper 8 Lambda (photonic) 9 Fiber The ANSI PDH and ETSI PDH types designate these respective networking technologies. DS1 and DS3 are examples of ANSI PDH LSPs. An E1 LSP would be ETSI PDH. The Lambda encoding type refers to the switching of wavelengths. The Fiber encoding type refers to switching at the fiber port level. Link Protection Flags: 8 bits Link Protection Flags indicate the desired protection level(s) for each link along the LSP. Note that the flags are distinct from MPLS-level LSP protection, see [RECOVERY]. A value of 0 implies that this connection does not care about which, if any, link protection is used. More than one bit may be set to indicate when multiple protection types are acceptable. When multiple bits are set and multiple protection types are available, the choice of protection type is a local (policy) decision. Berger, Ashwood-Smith, editors [Page 8] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 The following flags are defined: 0x01 Unprotected Indicates that the LSP should not use any link layer protection. 0x02 Shared Indicates that a shared link layer protection scheme, such as 1:N protection, should be used to support the LSP. 0x04 Dedicated 1:1 Indicates that a dedicated link layer protection scheme, i.e., 1:1 protection, should be used to support the LSP. 0x08 Dedicated 1+1 Indicates that a dedicated link layer protection scheme, i.e., 1+1 protection, should be used to support the LSP. 0x10 Enhanced Indicates that a protection scheme that is more reliable than Dedicated 1+1 should be used, e.g., 4 fiber BLSR/MS- SPRING. Generalized PID (G-PID): 16 bits An identifier of the payload carried by an LSP, i.e. an identifier of the client layer of that LSP. This must be interpreted according to the technology encoding type of the LSP and is used by the nodes at the endpoints of the LSP. Standard Ethertype values are used for packet and Ethernet LSPs; other values are: Berger, Ashwood-Smith, editors [Page 9] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 Value Type Technology ----- ---- ---------- 0 Unknown All 1 DS1 SF ANSI-PDH 2 DS1 ESF ANSI-PDH 3 DS3 M23 ANSI-PDH 4 DS3 C-Bit Parity ANSI-PDH 5 Asynchronous mapping of E4 SDH 6 Asynchronous mapping of DS3/T3 SDH 7 Asynchronous mapping of E3 SDH 8 Bit synchronous mapping of E3 SDH 9 Byte synchronous mapping of E3 SDH 10 Asynchronous mapping of DS2/T2 SDH 11 Bit synchronous mapping of DS2/T2 SDH 12 Byte synchronous mapping of DS2/T2 SDH 13 Asynchronous mapping of E1 SDH 14 Byte synchronous mapping of E1 SDH 15 Byte synchronous mapping of 31 * DS0 SDH 16 Asynchronous mapping of DS1/T1 SDH 17 Bit synchronous mapping of DS1/T1 SDH 18 Byte synchronous mapping of DS1/T1 SDH 19 Same as 12 but in a VC-12 SDH 20 Same as 13 but in a VC-12 SDH 21 Same as 14 but in a VC-12 SDH 22 ATM mapping SDH, SONET 22 DS1 SF Asynchronous SONET 23 DS1 ESF Asynchronous SONET 24 DS3 M23 Asynchronous SONET 25 DS3 C-Bit Parity Asynchronous SONET 26 VT SONET 27 POS SONET 28 STS SONET 29 Ethernet Lambda, Fiber 30 SDH Lambda, Fiber 31 SONET Lambda, Fiber 32 Digital Wrapper Lambda, Fiber 33 Lambda Fiber 3.1.2. Generalized Label Request with SONET/SDH Label Range The Generalized Label Request with SONET/SDH Label Range object/TLV is used to represent specific characteristics related to the two TDM technologies. If the RGT, RT, and RNC, fields are all set to zero, it means that no concatenation, bundling or transparency is requested. If the requested LSP is itself a grouping of several components (e.g. a SONET concatenation), it is assumed that all components have the Berger, Ashwood-Smith, editors [Page 10] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 same characteristics. Note that the bandwidth carried in the signaling messages, see Section 3.1.4, are the aggregate bandwidth; in the instance where multiple components are signaled for, the individual component bandwidth is obtained by dividing this aggregated value by the requested number of components. The format of a Generalized Label Request with SONET/SDH Label Range (in RSVP) is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Class Num (19)|C_Type (5)[TBA]| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSP Enc. Type |Link Prot.Flags| G-PID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RGT | RT | Reserved | RNC | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The format of a Generalized Label Request with SONET/SDH label range (in CR-LDP) is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |U|F| 0x0902 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSP Enc. Type |Link Prot.Flags| G-PID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RGT | RT | Reserved | RNC | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ LSP Encoding Type: 8 bits See Section 3.1.1. Link Protection Flags: 8 bits See Section 3.1.1. Generalized PID (G-PID): 16 bits See Section 3.1.1. Berger, Ashwood-Smith, editors [Page 11] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 Requested Grouping Type (RGT): 4 bits This field indicates the SDH/SONET type of grouping requested for the LSP, it is used to constraint the type of concatenation. The values are defined in the following table: Value Grouping type ----- ---------------------------------- 0 (Implies no concatenation/bundling when RNC = RT = 0) 1 Virtual concatenation 2 Contiguous standard concatenation 3 Contiguous arbitrary concatenation 4 Inverse Multiplexing Requested Transparency (RT): 4 bits This field indicates the type of SDH/SONET transparency ("emulation") requested for that LSP. The values are defined in the following table: Value Requested transparency ----- ---------------------------------------------- 0 (Implies no concatenation/bundling when RNC = RGT = 0) 1 SDH Regenerator Section/SONET Section transparency 2 SDH Multiplex Section/SONET Line transparency 3 SDH Path/SONET Path transparency Requested Number of Components (RNC): 16 bits This field indicates the number of identical SDH/SONET signal types that are requested to be concatenated or inverse multiplexed in that LSP, as specified in the previous field. In these cases, the bandwidth of each component of that concatenation/bundling is obtained by dividing the aggregate bandwidth by the number of components requested. It is assumed that all these components have identical characteristics. This field is set to zero if non concatenation or bundling is requested. 3.1.3. Procedures A node processing the Path/REQUEST message containing the Generalized Label Request must verify that the requested parameters can be satisfied by the incoming interface, the node and by the outgoing interface. The node may either directly support the LSP or it may use a tunnel (FA), i.e., another class of switching. In either case, each parameter must be checked. Berger, Ashwood-Smith, editors [Page 12] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 Note that local node policy dictates when tunnels may be used and when they may be created. Local policy may allow for tunnels to be dynamically established or may be solely administratively controlled. For more information on tunnels and processing of ER hops when using tunnels see [MPLS-HIERARCHY]. Transit and egress nodes MUST verify that the node itself and, where appropriate, that the outgoing interface or tunnel can support the requested LSP Encoding Type. If encoding cannot be supported, the node MUST generate a PathErr/NOTIFICATION message, with a "Routing problem/Unsupported Encoding" indication. Transit nodes MUST verify that the outgoing interface or tunnel can support the requested Link Protection Flags. If it cannot, the node MUST generate a PathErr/NOTIFICATION message, with a "Routing problem/Unsupported Link Protection" indication. The G-PID parameter is normally only examined at the egress. If the indicated G-PID cannot be supported then the egress MUST generate a PathErr/NOTIFICATION message, with a "Routing problem/Unsupported GPID" indication. In the case of PSC and when penultimate hop popping (PHP) is requested, the penultimate hop also examines the (stored) G-PID during the processing of the Resv/MAPPING message. In this case if the G-PID is not supported, then the penultimate hop MUST generate a ResvErr/NOTIFICATION message with a "Routing problem/Unacceptable label value" indication. When an error message is not generated, normal processing occurs. In the transit case this will typically result in a Path/REQUEST message being propagated. In the egress case and PHP special case this will typically result in a Resv/MAPPING message being generated. 3.1.4. Bandwidth Encoding Bandwidth encodings are carried in the SENDER_TSPEC and FLOWSPEC objects in RSVP and in the Traffic Parameters TLV in CR-LDP. They are carried in 32 bit number in IEEE floating point format (the unit is bytes per second). For non-packet LSPs, it is useful to define discrete values to identify the bandwidth of the LSP. Some typical values for the requested bandwidth are enumerated below. Additional values will be defined as needed. These values are set in the Peak Data Rate field of Int-Serv objects carried in RSVP messages and in the Peak and Committed Data Rate fields of the Traffic Parameters TLV carried in CR-LDP messages. Other bandwidth/service related parameters in the object/TLV are ignored and carried transparently. Some typical values for the requested bandwidth are enumerated below. Additional values will be defined as needed. Berger, Ashwood-Smith, editors [Page 13] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 Signal Type (Bit-rate) Value ----------- ----------- ----- DS0 (0.064 Mbps) 0x477A0000 DS1 (1.544 Mbps) 0x49BC7A00 E1 (2.048 Mbps) 0x49FA0000 DS2 (6.312 Mbps) 0x4AC0A080 E2 (8.448 Mbps) 0x4B00E800 Ethernet (10.00 Mbps) 0x4B189680 E3 (34.368 Mbps) 0x4C031A80 DS3 (44.736 Mbps) 0x4C2AA780 STS-1 (51.84 Mbps) 0x4C45C100 Fast Ethernet (100.00 Mbps) 0x4CBEBC20 E4 (139.264 Mbps) 0x4D04D000 OC-3/STM-1 (155.52 Mbps) 0x4D1450C0 OC-12/STM-4 (622.08 Mbps) 0x4E1450C0 GigE (1000.00 Mbps) 0x4E6E6B28 OC-48 (2488.32 Mbps) 0x4F1450C0 OC-192 (9953.28 Mbps) 0x501450C0 10GigE-LAN (10000.00 Mbps) 0x501502F9 3.2. Generalized Label The Generalized Label extends the traditional Label Object in that it allows the representation of not only labels which travel in-band with associated data packets, but also labels which identify time- slots, wavelengths, or space division multiplexed positions. For example, the Generalized Label may carry a label that represents (a) a single fiber in a bundle, (b) a single waveband within fiber, (c) a single wavelength within a waveband (or fiber), or (d) a set of time- slots within a wavelength (or fiber). It may also carry a label that represents a generic MPLS label, a Frame Relay label, or an ATM label (VCI/VPI). A Generalized Label does not identify the "class" to which the label belongs. This is implicit in the multiplexing capabilities of the link on which the label is used. A Generalized Label object only carries a single level of label, i.e., it is non-hierarchical. When multiple levels of label (LSPs within LSPs) are required, each LSP must be established separately, see [MPLS-HIERARCHY]. Each Generalized Label object carries a variable length label parameter. Berger, Ashwood-Smith, editors [Page 14] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 3.2.1. Required Information The format of a Generalized Label (in RSVP) is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Class Num (16)| C_Type (2) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The format of a Generalized Label (in CR-LDP) is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |U|F| 0x0902 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Label: Variable Carries label information. The semantics of this field depends on the type of the link over which the label is used. 3.2.1.1. SDH and SONET Labels SDH and SONET define each a multiplexing structure. These two structures are trees whose roots are respectively an STM-N or an STS- N; and whose leaves are the signals (time-slots) that can be transported and switched, i.e. a VC-x or a VT-x. A label will identify the type of a particular signal and its exact position in a multiplexing structure (both are related). These multiplexing structures will be used as naming trees to create unique multiplex entry names or labels. Since the SONET multiplexing structure may be seen as a subset of the SDH multiplexing structure, the same format of label is used for SDH and SONET. As explained before (section 3.2), a label does not identify the "class" to which the label belongs. This is implicitly determined by the link on which the label is used. However, the encoding specified hereafter makes directly the distinction between SDH and SONET. Berger, Ashwood-Smith, editors [Page 15] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 In case of signal concatenation or inverse multiplexing, a list of labels may appear in the Label field of a Generalized Label. In case of virtual or arbitrary concatenation, the explicit list of all signals in the concatenation is given. The signals identified by these labels are virtually concatenated to form the SDH or SONET signal trail. The above representation limits virtual concatenation to remain within a single (component) link. In case of any type of contiguous concatenation (e.g. standard or arbitrary SONET concatenation), only one label appears in the Label field. That label is the lowest signal of the contiguously concatenated signal. The bandwidth of the LSP request indicates the number of labels to be concatenated to form the SDH or SONET signal trail. By lowest signal we mean the one having the lowest label when compared as integer values, i.e. the first component signal of the concatenated signal encountered when descending the tree. In case of inverse multiplexing, the explicit list of all signals that take part into the inverse multiplexing is given. Inverse multiplexing is useful when a higher order signal need to be transported over a number of lower order signals, e.g. when a 10Gbps signal must be transported over four 2.5Gbps signals. In that case, the lower order signals must follow exactly the same path, and be treated in the same way, in order to achieve the same characteristics (e.g. delay). To support inverse multiplexing, a request is made to open in parallel and in one single operation several LSPs at the same time. The format of the label for SDH and/or SONET TDM-LSR link is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | S | U | K | L | M | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ For SDH, this is an extension of the numbering scheme defined in G.707 section 7.3, i.e. the (K, L, M) numbering. For SONET, the U and K fields are not significant and must be set to zero. Only the S, L and M fields are significant for SONET and have a similar meaning as for SDH. Each letter indicates a possible branch number starting at the parent node in the multiplex structure. Branches are considered as numbered in the increasing order, starting from the top of the multiplexing structure. The numbering starts at 1, zero is used to indicate a non- Berger, Ashwood-Smith, editors [Page 16] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 significant field. When a field is not significant in a particular context it MUST be set to zero when transmitted, and MUST be ignored when received. This simple rule allows distinguishing very easily between an SDH label and an SONET label. A label with U=0 will always indicate a SONET label. This is a nice feature for debugging purposes. Note that it is easier to test U and K together, rather than only the U field alone, since they fit exactly in the third octet of the label. 1. S is the index of a particular STM-1/STS-1 signal. S=1->N indicates a specific STM-1/STS-1 inside an STM-N/STS-N multiplex. For example, S=1 indicates the first STM-1/STS-1, and S=N indicates the last STM-1/STS-1 of this multiplex. S=0 is invalid. 2. U is only significant for SDH and must be ignored for SONET. It indicates a specific VC inside a given STM-1. U=1 indicates a single VC-4, while U=2->4 indicates a specific VC-3 inside the given STM-1. 3. K is only significant for SDH and must be ignored for SONET. It indicates a specific branch of a VC-4. K=1 indicates that the VC-4 is not further sub- divided and contains a C-4. K=2->4 indicates a specific TUG-3 inside the VC-4. K is not significant when the STM-1 is divided into VC-3s (easy to read and test). 4. L indicates a specific branch of a TUG-3, VC-3 or STS-1 SPE. It is not significant for an unstructured VC-4. L=1 indicates that the TUG-3/VC-3/STS-1 SPE is not further sub-divided and contains a VC-3/C-3 in SDH or the equivalent in SONET. L=2->8 indicates a specific TUG-2/VT Group inside the corresponding higher order signal. 5. M indicates a specific branch of a TUG-2/VT Group. It is not significant for an unstructured VC-4, TUG-3, VC-3 or STS-1 SPE. M=1 indicates that the TUG-2/VT Group is not further sub-divided and contains a VC-2/VT-6. M=2->3 indicates a specific VT-3 inside the corresponding VT Group, these values MUST NOT be used for SDH since there is no equivalent of VT-3 with SDH. M=4->6 indicates a specific VC-12/VT-2 inside the corresponding TUG-2/VT Group. M=7->10 indicates a specific VC-11/VT-1.5 inside the corresponding TUG-2/VT Group. Note that M=0 denotes an unstructured VC-4, VC-3 or STS-1 SPE (easy for debugging). Berger, Ashwood-Smith, editors [Page 17] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 The M encoding is summarized in the following table: M SDH SONET ---------------------------------------------------------- 0 unstructured VC-4/VC-3 unstructured STS-1 SPE 1 VC-2 VT-6 2 - 1st VT-3 3 - 2nd VT-3 4 1st VC-12 1st VT-2 5 2nd VC-12 2nd VT-2 6 3rd VC-12 3rd VT-2 7 1st VC-11 1st VT-1.5 8 2nd VC-11 2nd VT-1.5 9 3rd VC-11 3rd VT-1.5 10 4th VC-11 4th VT-1.5 For instance, Example 1: S>0, U=1, K=1, L=0, M=0 Denotes the unstructured VC-4 of the Sth STM-1. Example 2: S>0, U=1, K>1, L=1, M=0 Denotes the unstructured VC-3 of the Kth-1 TUG-3 of the Sth STM-1. Example 3: S>0, U=0, K=0, L=0, M=0) Denotes the unstructured STS-1 SPE of the Sth STS-1. Example 4: S>0, U=0, K=0, L>1, M=1 Denotes the VT-6 in the Lth-1 VT Group in the Sth STS-1. Example 5: S>0, U=0, K=0, L>1, M=9 Denotes the 3rd VT-1.5 in the Lth-1 VT Group in the Sth STS-1. 3.2.1.2. Port and Wavelength Labels Some configurations of fiber switching (FSC) and lambda switching (LSC) use multiple data channels/links controlled by a single control channel. In such cases the label indicates the data channel/link to be used for the LSP. Note that this case is not the same as when [MPLS-BUNDLING] is being used. Berger, Ashwood-Smith, editors [Page 18] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 The format of a Port and Wavelength label is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Label: 32 bits Indicates port/fiber or lambda to be used, from the sender's perspective. Values used in this field only have significance between two neighbors, and the receiver may need to convert the received value into a value that has local significance. Values may be configured or dynamically determined using a protocol such as [LMP]. 3.2.1.3. Other Labels Generic MPLS labels and Frame Relay labels are encoded right justified aligned in 32 bits (4 octets). ATM labels are encoded with the VPI right justified in bits 0-15 and the VCI right justified in bits 16-31. 3.2.2. Procedures The Generalized Label travels in the upstream direction in MAPPING/Resv messages. The presence of both a generalized and normal label object in a Resv/MAPPING message is a protocol error and should treated as a malformed message by the recipient. The recipient of a Resv/MAPPING message containing a Generalized Label verifies that the values passed are acceptable. If the label is unacceptable then the recipient MUST generate a ResvErr/NOTIFICATION message with a "Routing problem/MPLS label allocation failure" indication. Berger, Ashwood-Smith, editors [Page 19] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 3.3. Waveband Switching A special case of lambda switching is waveband switching. A waveband represents a set of contiguous wavelengths which can be switched together to a new waveband. For optimization reasons it may be desirable for an optical cross connect to optically switch multiple wavelengths as a unit. This may reduce the distortion on the individual wavelengths and may allow tighter separation of the individual wavelengths. The Waveband Label is defined to support this special case. Waveband switching naturally introduces another level of label hierarchy and as such the waveband is treated the same way all other upper layer labels are treated. As far as the MPLS protocols are concerned there is little difference between a waveband label and a wavelength label except that semantically the waveband can be subdivided into wavelengths whereas the wavelength can only be subdivided into time or statistically multiplexed labels. 3.3.1. Required information Waveband switching uses the same format as the generalized label, see section 3.2.1. For compatibility reasons, a new RSVP c-type and CR- LDP type is assigned for the Waveband Label. In the context of waveband switching, the generalized label has the following format: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Waveband Id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Start Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | End Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Waveband Id: 32 bits A waveband identifier. The value is selected by the sender and reused in all subsequent related messages. Berger, Ashwood-Smith, editors [Page 20] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 Start Label: 32 bits Indicates the channel identifier, from the sender's perspective, of the lowest value wavelength making up the waveband. End Label: 32 bits Indicates the channel identifier, from the sender's perspective, of the highest value wavelength making up the waveband. Channel identifiers are established either by configuration or by means of a protocol such as LMP [LMP]. They are normally used in the label parameter of the Generalized Label one PSC and LSC. 3.3.2. Procedures The procedures defined in Section 3.2.2 apply to waveband switching. This includes generating a ResvErr/NOTIFICATION message with a "Routing problem/MPLS label allocation failure" indication if any of the label fields are unrecognized or unacceptable. Additionally, when a waveband is switched to another waveband, it is possible that the wavelengths within the waveband will be mirrored about a center frequency. When this type of switching is employed, the start and end label in the waveband label object MUST be flipped before forwarding the label object with the new waveband Id. In this manner an egress/ingress LSR which receives a waveband label which has these values inverted, knows that it must also invert its egress association to pick up the proper wavelengths. Without this mechanism and with an odd number of mirrored switching operations, the egress LSRs will not know that an input wavelength of say L1 will emerge from the waveband tunnel as L100. This operation MUST be performed in both directions when a bidirectional waveband tunnel is being established. 3.4. Suggested Label The Suggested Label is used to provide a downstream node with the upstream node's label preference. This permits the upstream node to start configuring it's hardware with the proposed label before the label is communicated by the downstream node. Such early configuration is valuable to systems that take non-trivial time to establish a label in hardware. Such early configuration can reduce Berger, Ashwood-Smith, editors [Page 21] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 setup latency, and may be important for restoration purposes where alternate LSPs may need to be rapidly established as a result of network failures. The use of Suggested Label is only an optimization. If a downstream node passes a different label upstream, an upstream LSR MUST reconfigure itself so that it uses the label specified by the downstream node, thereby maintaining the downstream control of a label. 3.4.1. Required Information and Processing The format of a suggested label is identical to a generalized label. It is used in Path/REQUEST messages. In RSVP the Suggested Label uses a new class number (TBD of form 10bbbbbb) and the C-type of the label being suggested. In CR-LDP, Suggested Label uses type = 0x904. Errors in received Suggested Labels MUST be ignored. This includes any received inconsistent or unacceptable values. 3.5. Label Set The Label Set is used to limit the label choices of a downstream node to a set of acceptable labels. This limitation applies on a per hop basis. There are four cases where a Label Set is useful in the optical domain. The first case is where the end equipment is only capable of transmitting and receiving on a small specific set of wavelengths/bands. The second case is where there are a sequence of interfaces which cannot support wavelength conversion (CI-incapable) and require the same wavelength be used end-to-end over a sequence of hops, or even an entire path. The third case is where it is desirable to limit the amount of wavelength conversion being performed to reduce the distortion on the optical signals. The last case is where two ends of a link support different sets of wavelengths. Label Set is used to restrict label ranges that may be used for a particular LSP between two peers. The receiver of a Label Set must restrict its choice of labels to one which is in the Label Set. Much like a label, a Label Set may be present across multiple hops. In this case each node generates it's own outgoing Label Set, possibly based on the incoming Label Set and the node's hardware capabilities. This case is expected to be the norm for nodes with conversion incapable (CI-incapable) interfaces. Berger, Ashwood-Smith, editors [Page 22] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 The use of Label Set is optional, if not present, all labels from the valid label range may be used. Conceptually the absence of a Label Set implies a Label Set whose value is {U}, the set of all valid labels. 3.5.1. Required Information This Label_Set is used in Path/REQUEST messages. The data required to support the Label Set consists of a variable sized array of labels, or label ranges. These labels are subchannel identifiers. The format of a Label_Set (in RSVP) is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Class Num (xx)|C_Type (xx) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Subchannel | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The format of a Label_Set (in CR-LDP) is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |U|F| type=0x0904 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Subchannel | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 2 bits 0 means subchannel is a single element (inclusive) 1 means subchannel is a start element (inclusive) 2 means subchannel is an end element (inclusive) 3 means subchannel is a single element (exclusive) Berger, Ashwood-Smith, editors [Page 23] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 Subchannel: The subchannel represents the label (wavelength, fiber ... ) which is eligible for allocation. This field has the same format as described for labels under section 3.2. Since subchannel to local channel identifiers (e.g., wavelength) mappings are a local matter, when a Label Set is propagated from one node to the next, the subchannels may have to be remapped to new subchannel values for consistency. A Label Set can be just a series of single elements (Type=0) sorted in increasing order of subchannel value. A Label Set can be a set of ranges (Type=1 followed by Type=2). The ranges MUST be sorted. A range which is missing a beginning or an end implies no bound where the bound is missing. A range which contains a Type=3 (exclusive) means all subchannels in the range except that subchannel are eligible. 3.5.2. Procedures The absence of a Label Set implies that all labels are acceptable. A Label Set is included when a node wishes to restrict the label(s) that may be used downstream. On reception of a Path/REQUEST message a CI-capable interface will restrict its choice of labels to one which is in the Label Set. The CI-capable receiver may also remove the Label Set prior to forwarding the Path/REQUEST message. If the node is unable to pick a label from the Label Set, then the request is terminated and a PathErr/NOTIFICATION message with a "Routing problem/Label Set" indication MUST be generated. It is a local matter if the Label Set is stored for later selection on the RESV/Mapping or if the selection is made immediately for propagation in the RESV/Mapping. On reception of a Path/REQUEST message for a CI-incapable interface, the Label Set in the message is compared against the set of available labels at the downstream interface and the resulting intersecting Label Set is forwarded in a Path/REQUEST message. When the resulting Label Set is empty, the Path/REQUEST must be terminated, and a PathErr/NOTIFICATION message, and a "Routing problem/Label Set" indication MUST be generated. Note that intersection is based on the physical labels (actual wavelength/band values) which may have different logical values on different links, as a result it is the responsibility of the node to map these values so that they have a consistent physical meaning, or to drop the particular values from Berger, Ashwood-Smith, editors [Page 24] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 the set if no suitable logical label value exists. On reception of a Resv/MAPPING message at an intermediate node, the label to propagate upstream is selected from within the (stored) Label Set (preferred) or may be preselected from that set to save memory. Note, on reception of a Resv/MAPPING message for an interface which is CI-incapable it has no other choice than to use the same physical label (wavelength/band) as received in the Resv/MAPPING. In this case, the use and propagation of a Label Set will significantly reduce the chances that this allocation will fail when CI-incapable nodes are traversed. 4. Bidirectional LSPs This section defines direct support of bidirectional LSPs. Support is defined for LSPs that have the same traffic engineering requirements including fate sharing, protection and restoration, and resource requirements (e.g., latency and jitter) in each direction. In the remainder of this section, the term "initiator" is used to refer to a node that starts the establishment of an LSP and the term "terminator" is used to refer to the node that is the target of the LSP. Note that for bidirectional LSPs, there is only one "initiator" and one "terminator". Normally to establish a bidirectional LSP when using [RSVP-TE] or [CR-LDP] two unidirectional paths must be independently established. This approach has the following disadvantages: * The latency to establish the bidirectional LSP is equal to one round trip signaling time plus one initiator-terminator signaling transit delay. This not only extends the setup latency for successful LSP establishment, but it extends the worst-case latency for discovering an unsuccessful LSP to as much as two times the initiator-terminator transit delay. These delays are particularly significant for LSPs that are established for restoration purposes. * The control overhead is twice that of a unidirectional LSP. This is because separate control messages (e.g. Path and Resv) must be generated for both segments of the bidirectional LSP. * Because the resources are established in separate segments, route selection is complicated. There is also additional potential race for conditions in assignment of resources, which decreases the overall probability of successfully establishing Berger, Ashwood-Smith, editors [Page 25] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 the bidirectional connection. * It is more difficult to provide a clean interface for SONET equipment that may rely on bidirectional hop-by-hop paths for protection switching. Note that existing SONET gear transmits the control information in-band with the data. * Bidirectional optical LSPs (or lightpaths) are seen as a requirement for many optical networking service providers. With bidirectional LSPs both the downstream and upstream data paths, i.e., from initiator to terminator and terminator to initiator, are established using a single set of Path/REQUEST and Resv/MAPPING messages. This reduces the setup latency to essentially one initiator-terminator round trip time plus processing time, and limits the control overhead to the same number of messages as a unidirectional LSP. 4.1. Required Information For bidirectional LSPs, two labels must be allocated. Bidirectional LSP setup is indicated by the presence of an Upstream Label in the REQUEST/Path message. An Upstream Label has the same format as the generalized label, see Section 3.2. In RSVP the Upstream Label uses a new class number (TBD of form 0bbbbbbb) and the C-type of the label being suggested. In CR-LDP, Upstream Label uses type=0x0906 4.2. Procedures The process of establishing a bidirectional LSP follows the establishment of a unidirectional LSP with some additions. To support bidirectional LSPs an Upstream Label is added to the Path/REQUEST message. The Upstream Label MUST indicate a label that is valid for forwarding at the time the Path/REQUEST message is sent. When a Path/REQUEST message containing an Upstream Label is received, the receiver first verifies that the upstream label is acceptable. If the label is not acceptable, the receiver MUST issue a PathErr/NOTIFICATION message with a "Routing problem/Unacceptable label value" indication. An intermediate node must also allocate a label on the outgoing interface and establish internal data paths before filling in an outgoing Upstream Label and propagating the Path/REQUEST message. If an intermediate node is unable to allocate a label or internal Berger, Ashwood-Smith, editors [Page 26] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 resources, then it MUST issue a PathErr/NOTIFICATION message with a "Routing problem/Label allocation failure" indication. Terminator nodes process Path/REQUEST messages as usual, with the exception that the upstream label can immediately be used to transport data traffic associated with the LSP upstream towards the initiator. When a bidirectional LSP is removed, both upstream and downstream labels are invalidated and it is no longer valid to send data using the associated labels. 4.3. Contention Resolution Contention for labels may occur between two bidirectional LSP setup requests traveling in opposite directions. This contention occurs when both sides allocate the same resources (ports) at effectively the same time. If there is no restriction on the ports that can be used for bidirectional LSPs and if there are alternate resources, then both nodes will pass different labels upstream and the contention will be resolved naturally. However, if there is a restriction on the ports that can be used for the bidirectional LSPs (for example, if they must be physically coupled on a single I/O card), or if there are no more resources available, then the contention must be resolved by other means. To resolve contention, the node with the higher node ID will win the contention and it MUST issue a PathErr/NOTIFICATION message with a "Routing problem/Label allocation failure" indication. Upon receipt of such an error, the node SHOULD try to allocate a different Upstream label (and a different Suggested Label if used) to the bidirectional path. However, if no other resources are available, the node must proceed with standard error handling. For the purposes of RSVP contention resolution, the node ID is the IP address used in the RSVP_HOP object. To reduce the probability of contention, one may impose a policy that the node with the lower ID never suggests a label in the downstream direction and always accepts a Suggested Label from an upstream node with a higher ID. Furthermore, since the label sets are exchanged using LMP [LMP], an alternative local policy could further be imposed such that (with respect to the higher numbered node's label set) the higher numbered node could allocate labels from the high end of the label range while the lower numbered node allocates labels from the low end of the label range. This mechanism would augment any close packing algorithms that may be used for bandwidth (or wavelength) optimization. Berger, Ashwood-Smith, editors [Page 27] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 An example of contention between two nodes (PXC 1 and PXC 2) is shown in Figure 1. In this example PXC 1 assigns an Upstream Label for the channel corresponding to local BCId=2 (local BCId=7 on PXC 2) and sends a Suggested Label for the channel corresponding to local BCId=1 (local BCId=6 on PXC 2). Simultaneously, PXC 2 assigns an Upstream Label for the channel corresponding to its local BCId=6 (local BCId=1 on PXC 1) and sends a Suggested Label for the channel corresponding to its local BCId=7 (local BCId=2 on PXC 1). If there is no restriction on the ports that can be used for bidirectional LSPs and if there are alternate resources available, then both PXC 1 and PXC 2 will pass different labels upstream and the contention is resolved naturally (see Fig. 2). However, if there is a restriction on the ports that can be used for bidirectional LSPs (for example, if they must be physically coupled on a single I/O card), then the contention must be resolved using the router Id (see Fig. 3). +------------+ +------------+ + PXC 1 + + PXC 2 + + + SL1,UL2 + + + 1 +------------------------>+ 6 + + + UL1, SL2 + + + 2 +<------------------------+ 7 + + + + + + + + + + 3 +------------------------>+ 8 + + + + + + 4 +<------------------------+ 9 + +------------+ +------------+ Figure 1. Label Contention In this example, PXC 1 assigns an Upstream Label using BCId=2 (BCId=7 on PXC 2) and a Suggested Label using BCId=1 (BCId=6 on PXC 2). Simultaneously, PXC 2 assigns an Upstream Label using BCId=6 (BCId=1 on PXC 1) and a Suggested Label using BCId=7 (BCId=2 on PXC 1). Berger, Ashwood-Smith, editors [Page 28] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 +------------+ +------------+ + PXC 1 + + PXC 2 + + + UL2 + + + 1 +------------------------>+ 6 + + + UL1 + + + 2 +<------------------------+ 7 + + + + + + + L1 + + + 3 +------------------------>+ 8 + + + L2 + + + 4 +<------------------------+ 9 + +------------+ +------------+ Figure 2. Label Contention Resolution without resource restrictions In this example, there is no restriction on the ports that can be used by the bidirectional connection and contention is resolved naturally. +------------+ +------------+ + PXC 1 + + PXC 2 + + + UL2 + + + 1 +------------------------>+ 6 + + + L2 + + + 2 +<------------------------+ 7 + + + + + + + L1 + + + 3 +------------------------>+ 8 + + + UL1 + + + 4 +<------------------------+ 9 + +------------+ +------------+ Figure 3. Label Contention Resolution with resource restrictions In this example, ports 1,2 and 3,4 on PXC 1 (ports 6,7 and 8,9 on PXC 2, respectively) must be used by the same bidirectional connection. Since PXC 2 has a higher node ID, it wins the contention and PXC 1 must use a different set of labels. 5. Notification This section defines three signaling extensions that modify error handling, enable expedited notification of failures and other events to nodes responsible for restoring failed LSPs. The first extension, the Notify Request object, identifies where event notifications are to be sent. The second, the Notify message, provides for general event notification. The final extension allows for the removal of Path state on handling of PathErr messages. Berger, Ashwood-Smith, editors [Page 29] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 5.1. Notify Request Object Notifications may be sent via the Notify message defined below. The Notify Request object is used to request the generation of notifications. Notifications, i.e., the sending of a Notify message, may be requested in both the upstream and downstream directions. 5.1.1. Required Information The Notify Request Object may be carried in Path or Resv Messages, see Section 7. The NOTIFY_REQUEST class number is TBA (of form 11bbbbbb). The format of a Notify Request is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Class Num(TBD)| C_Type (1) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Notify Node Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IPv4 Notify Node Address: 32 bits The IP address of the node that should be notified when generating an error message. 5.1.2. Procedures A Notify Request object may be inserted in Path or Resv messages to indicate the address of a node that should be notified of an LSP failure. As previously mentioned, notifications may be requested in both the upstream and downstream directions. Upstream notification is indicated via the inclusion of a Notify Target Object in the corresponding Path message. Downstream notification is indicated via the inclusion of a Notify Target Object in the corresponding Resv message. A node receiving a message containing a Notify Request object SHOULD store the Notify Node Address in the corresponding state block. If the node is a transit node, it SHOULD also included a Notify Request object in the outgoing Path or Resv message. The outgoing Notify Node Address MAY be updated based on local policy. Note that the inclusion of a Notify Request object does not guarantee that a Notify message will be generated. Berger, Ashwood-Smith, editors [Page 30] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 5.2. Notify Message The Notify message provides a mechanism to inform non-adjacent nodes of LSP related events. Notify messages are only generated after a Notify Request object has been received. The Notify message differs from the currently defined error messages (i.e., PathErr and ResvErr messages of RSVP) in that it can be "targeted" to a node other than the immediate upstream or downstream neighbor and that it is a generalized notification mechanism. The Notify message does not replace existing error messages. The Notify message may be sent either (a) normally, where non-target nodes just forward the Notify message to the target node, similar to ResvConf processing in [RSVP]; or (b) encapsulated in a new IP header who's destination is equal to the target IP address. Regardless of the transmission mechanism, nodes receiving a Notify message not destined to the node forward the message, unmodified, towards the target. To support reliable delivery of the Notify message, an Ack Message [RSVP-RR] is used to acknowledge the receipt of a Notify Message. See [RSVP-RR] for details on reliable RSVP message delivery. 5.2.1. Required Information The Notify message is a generalized notification message. The IP destination address is set to the IP address of the intended receiver. The Notify message is sent without the router alert option. ::= [] :== [] :== [...] The ERROR_SPEC object specifies the error and includes the IP address of either the node that detected the error or the link that has failed. See ERROR_SPEC definition in [RFC2205]. The MESSAGE_ID object is defined in [RSVP-RR]. Note: for CR-LDP there is not currently a similar mechanism. In CR- LDP, when a failure is detected it will be propagated with RELEASE/WITHDRAW messages radially outward from the point of failure. Resources are to be released in this phase and actual resource information is fed back to the source using the feedback mechanisms of [FEEDBACK]. In this manner the source will have an accurate view Berger, Ashwood-Smith, editors [Page 31] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 of available resources and can start rerouting much sooner. 5.2.2. Procedures Notify messages are generated at nodes that detect an error that will trigger the generation of a PathErr or ResvErr message. If a PathErr message is to be generated and a Notify Request object has been received in the corresponding Path message, then a Notify message destined to the recorded node SHOULD be generated. If a ResvErr message is to be generated and a Notify Request object has been received in the corresponding Resv message, then a Notify message destined to the recorded node SHOULD be generated. As previously mentioned, a single error may generate a Notify message in both the upstream and downstream directions. Note a Notify message MUST NOT be generated unless an appropriate Notify Request object has been received. When generating Notify messages, a node SHOULD attempt to combine notifications being sent to the same Notify Node and that share the same ERROR_SPEC into a single Notify message. The means by which a node determines which information may be combined is implementation dependent. Implementations may use event, timer based or other approaches. If using a timer based approach, the implementation SHOULD allow the user to configure the interval over which notifications are combined. When using a timer based approach, a default "notification interval" of 1 ms SHOULD be used. Notify messages SHOULD be delivered using the reliable message delivery mechanisms defined in [RSVP-RR] Upon receiving a Notify message, the Notify Node SHOULD send a corresponding Ack message. 5.3. Removing State with a PathErr message The PathErr message as currently defined in [RFC2205] is sent hop-by- hop to the source of the associated Path message. Intermediate nodes may inspect this message, but take no action upon it. In an environment where Path messages are routed according to an IGP and that route may change dynamically, this behavior is a fine design choice. However, when RSVP is used with explicit routes, it is often the case that errors can only be corrected at the source node or some other node further upstream. In order to clean up resources, the source must receive the PathErr and then either send a PathTear (or wait for the messages to timeout). This causes idle resources to be held Berger, Ashwood-Smith, editors [Page 32] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 longer than necessary increases control message load. In a situation where the control plane is attempting to recover from a serious outage, both the message load and the delay in freeing resources hamper the ability to rapidly reconverge. The situation can be greatly improved by allowing state to be removed by intermediate nodes on certain error conditions. To facilitate this a new flag is defined in the ERROR_SPEC object. The two currently defined ERROR_SPEC objects (IPv4 and IPv6 error spec objects) each contain a one byte flag field. Within that field two flags are defined. This specification defines a third flag, 0x04, Path_State_Removed. The semantics of the Path_State_Removed flag are simply that the node forwarding the error message has removed the Path state associated with the PathErr. By default, the Path_State_Removed flag is always set to zero when generating or forwarding a PathErr message. A node which encounters an error MAY set this flag if the error results in the associated Path state being discarded. If the node setting the flag is not the session endpoint, the node SHOULD generate a corresponding PathTear. A node receiving a PathErr message containing an ERROR_SPEC object with the Path_State_Removed flag set MAY also remove the associated Path state. If the Path state is removed the Path_State_Removed flag SHOULD be set in the outgoing PathErr message. A node which does not remove the associated Path state MUST NOT set the Path_State_Removed flag. A node that receives an error with the Path_State_Removed flag set to zero MUST NOT set this flag unless it also generates a corresponding PathTear message. Note that the use of this flag does not result in any interoperability incompatibilities. 6. Explicit Label Control The LSR at the initiator of an LSP can control nodes used by an LSP and the termination of the LSP by using an explicit route, i.e., ERO or ER-Hop. To require the usage of a particular node, that node is included in the explicit route. To terminate an LSP on a particular outgoing interface of the egress LSR, the head-end may specify the IP address or the interface identifier [MPLS-UNNUM] of that interface as the last element in the explicit route, provided that that interface has an associated IP address. There are cases where the existing explicit route semantics do not provide enough information to control the LSP to the degree desired. This occurs case when the LSP initiator wishes to select a label used on a link. An example of this is when it is desirable to "splice" Berger, Ashwood-Smith, editors [Page 33] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 two LSPs together, i.e., where the tail of the first LSP would be "spliced" into the head of the second LSP. This last case is more likely to be used in the non-PSC classes of links. To to cover this case, the Label ERO subobject is introduced. 6.1. Required Information For RSVP, this ERO subobject - Label is defined as follows: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |L| Type | Length |U| Reserved | C-Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ For CR-LDP the Label ER-Hop is defined as follows: 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|0| 0x901 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |L|U| Reserved | Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label (continued) | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ L This bit must be set to 0. Type (RSVP Only) 3 Label Length The Length contains the total length of the subobject in bytes, including the Type and Length fields. The Length is always divisible by 4. Berger, Ashwood-Smith, editors [Page 34] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 U This bit indicates the direction of the label. It is 0 for the downstream label. It is set to 1 for the upstream label and is only used on bidirectional LSPs. C-Type (RSVP Only) The C-Type of the included Label Object. Copied from the Label Object. Label This field identifies the label to be used. The format of this field is identical to the one used by the Label field in the Generalized Label Object, see Section 3.2.1. 6.2. Procedures The Label subobject follows a subobject containing the IP address, or the interface identifier [MPLS-UNNUM], associated with the link on which it is to be used. The preceding subobject must be a strict object. Up to two label subobjects may be present, one for the downstream label and one for the upstream label. The following SHOULD result in "Bad EXPLICIT_ROUTE object" errors: - For a label subobject to follow a subobject that has the L-bit set - On unidirectional LSP setup, for there to be a label subobject with the U-bit set - For there to be two label subobjects with the same U-bit values To support the label subobject, a node must check to see if the subobject following it's associate address/interface is a label subobject. If it is, one subobject is examined for unidirectional LSPs and two subobjects for bidirectional LSPs. If the U-bit of the subobject being examined is clear (0), then value of the label is copied into a new Label_Set object. This Label_Set object MUST be included on the corresponding outgoing Path/Mapping message. If the U-bit of the subobject being examined is set (1), then value of the label is label to be used for upstream traffic associated with the bidirectional LSP. If this label is not acceptable, a "Bad EXPLICIT_ROUTE object" error SHOULD be generated. If the label is acceptable, the label is copied into a new Upstream Label object. This Upsteam Label object MUST be included on the corresponding outgoing Path/Mapping message. Berger, Ashwood-Smith, editors [Page 35] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 After processing, the label subobjects are removed from the ERO/ER. Note an implication of the above procedures is that the label subobject should never be the first subobject in a newly received message. If the label subobject is the the first subobject an a received ERO/ER, then it SHOULD be treated as a "Bad strict node" error. Procedures by which an LSR at the head-end of an LSP obtains the information needed to construct the Label subobject are outside the scope of this document. 7. RSVP Message Formats This section presents the RSVP message related formats as modified by this document. Where they differ, formats for unidirection LSPs are presented separately from bidirectional LSPs. Unmodified formats are not listed. The format of a Path message is as follows: ::= [ ] [ ] [ ] [ ] [ ... ] The format of the sender description for unidirectional LSPs is: ::= [ ] [ ] [ ] The format of the sender description for bidirectional LSPs is: ::= [ ] [ ] [ ] Berger, Ashwood-Smith, editors [Page 36] Internet Draft draft-ietf-mpls-generalized-signaling-00.txt October 2000 The format of a Resv message is as follows: ::= [ ] [ ] [ ] [ ] [ ... ]