Internet Draft
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."

   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:

          ::=        [  ]
                                    
                                  
                                  [  ]  [  ]
                                  [  ]
                                  [  ... ]