Internet Draft


Network Working Group               Jonathan P. Lang (Calient Networks) 
Internet Draft                         Krishna Mitra (Calient Networks) 
Expiration Date: May 2001                 John Drake (Calient Networks) 
                                    Kireeti Kompella (Juniper Networks) 
                                          Yakov Rekhter (Cisco Systems) 
                                            Lou Berger (Movaz Networks) 
                                             Bala Rajagopalan (Tellium) 
                                               Debashis Basak (Marconi) 
                                          Hal Sandick (Nortel Networks) 
                                             Alex Zinin (Cisco Systems) 
                                       Ayan Banerjee (Calient Networks) 
 
    
                     Link Management Protocol (LMP) 
    
                       draft-ietf-mpls-lmp-01.txt 
 
 
 Status of this Memo 
    
   This document is an Internet-Draft and is in full conformance with 
   all provisions of Section 10 of RFC2026 [Bra96]. 
    
   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. 
    
 Abstract 
    
   Future networks will consist of photonic switches, optical 
   crossconnects, and routers that may be configured with control 
   channels, links, and bundled links.  This draft specifies a link 
   management protocol (LMP) that runs between neighboring nodes and 
   will be used for both link provisioning and fault isolation. A 
   unique feature of LMP is that it is able to isolate faults in both 
   opaque and transparent networks, independent of the encoding scheme 
   used for the data. LMP will be used to maintain control channel 
   connectivity, verify connectivity between nodes, and isolate link, 
   fiber, or channel failures within the network. 



 
Lang/Mitra et al                                              [Page 1] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

 Table of Contents 
 
    1. Introduction ................................................  3 
    2. Control Channel Management ..................................  5 
       2.1 Parameter Negotiation ...................................  6 
       2.2 Hello Protocol ..........................................  7 
           2.2.1  Hello Parameter Negotiation ......................  7 
           2.2.2  Fast Keep-alive ..................................  7 
           2.2.3  Control Channel Switchover .......................  8 
           2.2.4  Taking a Control Channel Down Administratively ...  9 
           2.2.5  Degraded (DEG) State .............................  9 
    3. Link Property Correlation ...................................  9 
    4. Verfifying Link Connectivity ................................ 10 
       4.1 Example of Link Connectivity ............................ 12 
    5. Fault Localization .......................................... 13 
       5.1 Fault Detection ......................................... 14 
       5.2 Fault Localization Mechanism ............................ 14 
       5.3 Examples of Fault Localization .......................... 14 
    6. LMP Finite State Machine .................................... 16 
       6.1 Control Channel FSM ..................................... 16 
           6.1.1  Control Channel States ........................... 16 
           6.1.2  Control Channel Events ........................... 17 
           6.1.3  Control Channel FSM Description .................. 19 
       6.2 Bundle FMS .............................................. 20 
           6.2.1  Bundle States .................................... 20 
           6.2.2  Bundle Events .................................... 21 
           6.2.3  Bundle FSM Description ........................... 22 
       6.3    Data-bearing Link FSM ................................ 23 
           6.3.1  Data-bearing Link States ......................... 23 
           6.3.2  Data-bearing Link Events ......................... 24 
           6.3.3  Data-bearing Link FSM Description ................ 26 
    7. LMP Message Formats ......................................... 26 
       7.1 Common Header ........................................... 26 
       7.2 Parameter Negotiation ................................... 28 
       7.3 Hello ................................................... 32 
       7.4 Link Verification ....................................... 33 
       7.5 Link Summary  ........................................... 41 
       7.6 Failure Localization .................................... 46 
    9. References .................................................. 49 
   10. Acknowledgments ............................................. 50 
   11. Authors' Addresses  ......................................... 50 
 






 
Lang et al                                                    [Page 2] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

1. Introduction 
    
   Future networks will consist of photonic switches (PXCs), optical 
   crossconnects (OXCs), routers, switches, DWDM systems, and add-drop 
   multiplexors (ADMs) that use the Generalized MPLS (GMPLS) control 
   plane to dynamically provision resources and to provide network 
   survivability using protection and restoration techniques.  A pair 
   of nodes (e.g., two PXCs) may be connected by thousands of fibers, 
   and each fiber may be used to transmit multiple wavelengths if DWDM 
   is used.  Furthermore, multiple fibers and/or multiple wavelengths 
   may be combined into one or more bundled links [KRB00].  To enable 
   communication between nodes for routing, signaling, and link 
   management, at least one control channel must be established between 
   a node pair. 
    
   In this draft, we will follow the naming convention of [ARD00] and 
   use OXC to refer to all categories of optical crossconnects, 
   irrespective of the internal switching fabric. We distinguish 
   between crossconnects that require opto-electronic conversion, 
   called digital crossconnects (DXCs), and those that are all-optical, 
   called photonic switches or photonic crossconnects (PXCs) - referred 
   to as pure crossconnects in [ARD00], because the transparent nature 
   of PXCs introduces new restrictions for monitoring and managing the 
   data-bearing links (see [CBD00] for proposed extensions to MPLS for 
   performance monitoring in photonic networks). This draft specifies a 
   link management protocol (LMP) that runs between neighboring nodes 
   and that may be used for both link provisioning and fault isolation.  
   LMP can be used for any type of node, enhancing the functionality of 
   traditional DXCs and routers, while enabling PXCs and DWDMs to 
   intelligently interoperate in heterogeneous optical networks. 
    
   In GMPLS, the control channel(s) between two adjacent nodes is no 
   longer required to use the same physical medium as the data-bearing 
   links between those nodes. For example, a control channel could use 
   a separate wavelength or fiber, an Ethernet link, or an IP tunnel 
   through a separate management network.  A consequence of allowing 
   the control channel(s) between two nodes to be physically diverse 
   from the associated data-bearing links is that the health of a 
   control channel does not necessarily correlate to the health of the 
   data-bearing links, and vice-versa.  Therefore, new mechanisms must 
   be developed to manage links, both in terms of link provisioning and 
   fault isolation. 
    
   LMP is designed to aggregate one or more similar entities (which may 
   be ports or component links) between a node pair into a link bundle 
   which is advertised as a Traffic Engineering (TE) link (either 
   numbered or unnumbered) into the IGP domain.  For the purposes of 
   this document, the distinction between ports and component links is 
   that ports are not multiplex capable whereas component links are 
   multiplex capable. LMP further associates (possibly multiple) such 
   link bundles with a control channel (see Figure 1). Multiple control 
   channels may be configured and associated with a control channel 
   interface. The control channel interface is announced into the IGP 
   domain; the associations between the control channel and the control 
 
Lang et al                                                    [Page 3] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   channel interfaces are purely a local matter. LMP thus gives the 
   association between the endpoints of the control channel through the 
   link identifiers, the resulting bundled link, and the entities (also 
   referred to as labels for GMPLS). 
    
        Entity -|  
        Entity -|                
           :   -|  
           :   -|      
        Entity -|--> Link Bundle --| 
                         :       --| 
                         :       --| 
        Entity -|--> Link Bundle --|--> Control channel--| 
        Entity -|                              :       --|  Control                   
           :   -|                              :       --|->Channel  
           :   -|                              :       --|  Interface      
        Entity -|                       Control channel--| 
         
        Figure 1: Associations between entities, link bundles, control 
        channel, and control channel interfaces.  
    
   LMP runs between adjacent nodes and includes a core set of 
   functions; additional tools are defined to extend the functionality 
   of LMP and may be optionally implemented.  The core function set 
   includes control channel management and link property correlation.  
   Control channel management is used to establish and maintain control 
   channel connectivity between neighboring nodes.  This is done using 
   lightweight Hello messages that act as a fast keep-alive mechanism 
   between the nodes.  Link property correlation consists of a 
   LinkSummary message exchange to synchronize the link properties 
   (e.g., local/remote Entity ID mappings) between the adjacent nodes. 
    
   Currently, two additional tools are defined for LMP to extend its 
   functionality: link connectivity verification and fault isolation.  
   Link connectivity verification is used to verify the physical 
   connectivity between the nodes and exchange the Entity IDs (these 
   IDs may be used as labels for physical resources in GMPLS 
   signaling).  The procedure uses in-band Test messages that are sent 
   over the data-bearing links and TestStatus messages that are 
   transmitted over the control channel.  The fault isolation mechanism 
   is used to localize failures in both opaque and transparent 
   networks, independent of the encoding scheme used for the data.  As 
   a result, both local span and end-to-end path protection/restoration 
   procedures can be initiated. 
 
   LMP requires that each pair of nodes has one or more associated bi-
   directional control channel(s).  All LMP messages are IP encoded 
   [except, in some cases, the Test Message which may be limited by the 
   transport mechanism for in-band messaging (see [YGL00])], so that 
   the link level encoding becomes an implementation agreement and is 
   not part of LMP specifications.   
    
   For the Test procedure, the free (unallocated) data-bearing links 
   (or component links if link bundling [KRB00] is used) must be opaque 
 
Lang et al                                                    [Page 4] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   (i.e., able to be terminated); however, once a data-bearing link is 
   allocated, it may become transparent. Note that there is no 
   requirement that all of the data-bearing links must be terminated 
   simultaneously, but at a minimum, they must be able to be terminated 
   one at a time.  There is also no requirement that the control 
   channel and link bundles share the same physical medium; however, 
   the control channel must terminate on the same two nodes that the 
   link bundles span. 
 
   The organization of the remainder of this document is as follows.  
   In Section 2, we discuss the role of the control channel and the 
   messages used to establish and maintain link connectivity.  In 
   Section 3, the link property correlation function using the 
   LinkSummary message is described.  The link verification procedure 
   is discussed in Section 4.  In Section 5, we show how LMP will be 
   used to isolate link and channel failures within the optical 
   network.  Several finite state machines (FSMs) are given in Section 
   6 and the message formats are defined in Section 7. 
    
2. Control channel management 
    
   To initiate LMP between two nodes, a bi-directional control channel 
   must first be configured. The control channel can be used to 
   exchange MPLS control-plane information such as link provisioning 
   and fault isolation information (implemented using a messaging 
   protocol such as LMP, proposed in this draft), path management and 
   label distribution information (implemented using a signaling 
   protocol such as RSVP-TE [ABG00] or CR-LDP [Jam99]), and network 
   topology and state distribution information (implemented using 
   traffic engineering extensions of  protocols such as OSPF [KaY00] 
   and IS-IS [LiS00]). Each bundled link is identified as described in 
   [KRB00] and each bundled link MUST have an associated control 
   channel; however, we do not specify the exact implementation of the 
   control channel. Rather, we assign a 32-bit integer control channel 
   identifier (CCId), which is node-wide unique, to each direction of 
   the control channel. Furthermore, we define the control channel 
   messages (which have control channel identifiers in them) to be IP 
   encoded (using the control channel interface or Router ID values). 
   This allows the control channel implementation to encompass both in-
   band and out-of-band mechanisms; including the case where the 
   control channel messages are transmitted separately from the 
   associated data-bearing link(s) on a separate wavelength, a separate 
   fiber, an Ethernet Link, or an IP tunnel through a separate 
   management cloud. Furthermore, since the messages are IP encoded, 
   the link level encoding is not part of LMP. 
    
   Control channels exist independently of link bundles, which are 
   announced as TE links. The verification procedure associates a link 
   bundle with a particular control channel.  If the link verification 
   procedure is not used, this MUST be done by configuration.  Once a 
   link bundle is associated with a control channel, it follows the 
   failover of that control channel. Between any two adjacent nodes 
   (from the perspective of link bundles) there may be multiple active 
   control channel interfaces, and these control channel interfaces are 
 
Lang et al                                                    [Page 5] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   used for LMP, routing, and signaling messages. For purposes of 
   flooding routing messages, LMP messages, and signaling messages, any 
   of the active control channel interfaces may be used. For LMP 
   messages, the association of the control channel to the control 
   channel interface is configured or automatically bootstrapped (see 
   [YGL00]) and is a local issue.    
    
   The control channel of a link bundle can be either explicitly 
   configured or automatically selected, however, for the purpose of 
   this document we will assume the control channel is explicitly 
   configured. Note that for in-band signaling, a control channel could 
   be allocated to a data-bearing link; however, this is not true when 
   the control channel is transmitted separately from the data-bearing 
   links. In addition to a control channel interface and its associated 
   control channel, an ordered list of backup control channels can also 
   be specified. Depending on the control channel implementation, the 
   list of backup control channels may include data-bearing links, 
   provided control channels have preemptive priority over the user 
   data traffic. 
    
   For LMP, it is essential that a control channel is always available, 
   and in the event of a control channel failure, an alternate (or 
   backup) control channel must be made available to reestablish 
   communication with the neighboring node. The failure of a control 
   channel can be detected by lower layers (e.g., SONET/SDH) since 
   control channels are electrically terminated at each node. If the 
   primary control channel cannot be established, then an alternate 
   control channel SHOULD be tried. Of course, alternate control 
   channels SHOULD be pre-configured, however, coordinating the 
   switchover of the control channel to an alternate channel is still 
   an important issue. Specifically, if the control channel fails but 
   the node is still operational (i.e., the data-bearing links are 
   still passing user data), then both the local and remote nodes 
   should switch to an alternate control channel. If the bi-directional 
   control channel is implemented using two separate unidirectional 
   channels, and only one direction of the control channel has failed, 
   both the local and remote nodes need to understand that the control 
   channel has failed so that they can coordinate a switchover. 
 
2.1. Parameter Negotiation 
    
   For LMP, a generic parameter negotiation exchange is defined using 
   Config, ConfigAck, and ConfigNack messages.  The contents of these 
   messages are built using TLV triplets.  Config TLVs can be either 
   negotiable or non-negotiable (identified by the N flag in the TLV 
   header).  Negotiable TLVs can be used to let the devices agree on 
   certain values.  Non-negotiable TLVs are used for announcement of 
   specific values that do not need, or do not allow, negotiation.  The 
   ConfigAck message is used to acknowledge receipt of the Config 
   message and agreement on all of the configured parameters (both 
   negotiable and non-negotiable).  The ConfigNack message is used to 
   acknowledge receipt of the Config message, indicate which (if any) 
   non-negotiable parameters are unacceptable, and propose alternate 
   values for the negotiable parameters.  A single-shot timer is used 
 
Lang et al                                                    [Page 6] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   for retransmissions of the Config message in case a ConfigAck or 
   ConfigNack is not received. 
 
2.2. Hello protocol 
    
   Once a control channel is configured between two neighboring nodes, 
   a Hello protocol will be used to establish and maintain connectivity 
   between the nodes and to detect link and channel failures.  The 
   Hello protocol of LMP is intended to be a lightweight keep-alive 
   mechanism that will react to control channel failures rapidly so 
   that IGP Hellos are not lost and the associated link-state 
   adjacencies are not removed unnecessarily. Furthermore, the RSVP 
   Hello of [ABG00] is not needed since the LMP Hellos will detect link 
   layer failures. 
    
   The Hello protocol consists of two phases: a negotiation phase and a 
   keep-alive phase. Negotiation MUST only be done when the control 
   channel is in the CONFIG state, and is used to exchange the CCIds 
   and agree upon the parameters used in the keep-alive phase. The 
   keep-alive phase consists of a fast lightweight Hello message 
   exchange. 
    
2.2.1. Hello Parameter Negotiation 
    
   Before initiating the Hello protocol of the keep-alive phase, the 
   HelloInterval and HelloDeadInterval parameters must be agreed upon.  
   These parameters are exchanged as a HelloConfig TLV object in the 
   Config message.  The HelloInterval indicates how frequently LMP 
   Hello messages will be sent, and is measured in milliseconds (ms). 
   For example, if the value were 5, then the transmitting node would 
   send the Hello message at least every 5ms. The HelloDeadInterval 
   indicates how long a device should wait to receive a Hello message 
   before declaring a control channel dead, and is measured in 
   milliseconds (ms). The HelloDeadInterval MUST be greater than the 
   HelloInterval, and SHOULD be at least 3 times the value of 
   HelloInterval.   
    
   When a node has either sent or received a ConfigAck message for a 
   HelloConfig object, it may begin sending Hello messages. Once it has 
   both sent and received a Hello message, the link is UP. If, however, 
   a node receives a ConfigNack message for the HelloConfig object 
   instead of a ConfigAck message, the node MUST not begin sending 
   Hello messages. 
    
   In the event that multiple control channels are run over the same 
   physical control channel interface (see Figure 1), the parameter 
   negotiation phase is run multiple times. The various LMP parameter 
   negotiation messages associated with their corresponding control 
   channels are tagged with their node wide unique identifiers. 
    
2.2.2. Fast Keep-alive 
    
   Each Hello message contains two sequence numbers: the first sequence 
   number (TxSeqNum) is the sequence number for this Hello message and 
 
Lang et al                                                    [Page 7] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   the second sequence number (RcvSeqNum) is the sequence number of the 
   last Hello message received from the adjacent node. Each node 
   increments its sequence number when it sees its current sequence 
   number reflected in Hellos received from its peer. The sequence 
   numbers start at 1 and wrap around back to 2; 0 is used in the 
   RcvSeqNum to indicate that a Hello has not yet been seen and 1 is 
   used to indicate a node boot/reboot. 
    
   Under normal operation, the difference between the RcvSeqNum and 
   local SendSeqNum will be at most 1. There are only two cases where 
   this difference can be more than 1:  when a node reboots and when 
   switching over to a backup control channel. 
 
   Having sequence numbers in the Hello messages allows each node to 
   verify that its peer is receiving its Hello messages. This provides 
   a two-fold service. First, the remote node will detect that a node 
   has rebooted if TxSeqNum=1.  If this occurs, the remote node will 
   indicate its knowledge of the reboot by setting RcvSeqNum=1 in the 
   Hello messages that it sends and SHOULD wait to receive a Hello 
   message with TxSeqNum=2 before transmitting any messages other than 
   Hello messages. Second, by including the RcvSeqNum in Hello packets, 
   the local node will know which Hello packets the remote node has 
   received.   
    
2.2.3. Control Channel Switchover 
 
   As mentioned above, LMP requires that a control channel always be 
   available for a link bundle, and multiple mechanisms are used within 
   LMP to ensure that the switchover of a control channel is both 
   smooth and proper. Control channels may need to be switched as a 
   result of the associated physical control channel interface or link 
   failure, or for administration purposes (e.g., routine fiber 
   maintenance). During these times, peer connectivity must be 
   maintained to ensure that unnecessary rerouting of user traffic is 
   avoided and false failures are not reported. 
    
   To ensure that a smooth transition occurs when switching to a backup 
   control channel, a ControlChannelSwitchover flag is available in the 
   Common Header of LMP packets. The receipt of a Hello message with 
   ControlChannelSwitchover = 1 indicates that the remote node is 
   switching to the backup control channel, and the local node MUST 
   begin listening on the backup control channel for LMP Hello 
   messages; the local node SHOULD also listen on the primary control 
   channel during the switchover procedure. 
    
   To ensure that both nodes switch to their backup control channel 
   successfully, both the local and remote nodes SHOULD transmit 
   messages over both the primary and backup control channel until the 
   switchover is successful. Messages on the primary control channel 
   MUST have the ControlChannelSwitchover flag set to 1 and MUST NOT 
   increment the TxSeqNum (even upon the receipt of a Hello message 
   with the current TxSeqNum reflected in the RcvSeqNum field). 
   Messages on the backup control channel MUST set the 
   ControlChannelSwitchover flag to 0 and MUST increment the TxSeqNum 
 
Lang et al                                                    [Page 8] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   by 1 to distinguish messages on the two channels. If the TxSeqNum of 
   the Hello messages on the backup control channel are reflected in 
   the RcvSeqNum of Hello messages being received, then the TxSeqNum 
   MUST be incremented (as per normal operation); this indicates that 
   the backup control channel is operational in the transmit direction 
   and the local node may now stop transmitting Hello messages over the 
   primary control channel. Once a Hello message is received over the 
   backup control channel indicating that the remote node is receiving 
   confirmation of Hello message receipt (this is indicated by an 
   incrementing TxSeqNum), then the local node may stop listening on 
   the primary control channel . When both nodes are only 
   transmitting/receiving Hello packets over the backup control 
   channel, the switchover is successful. 
 
2.2.4. Taking a Control Channel Down Administratively 
 
   As mentioned above, a link is DOWN when the control channel and 
   backup control channel(s) are not available and none of the ports or 
   data-bearing links are in use.  A link may be DOWN, for example, 
   when a link is reconfigured for administrative purposes. A link 
   SHOULD only be administratively taken down if the data-bearing links 
   are not in use. To ensure that bringing a link DOWN is done 
   gracefully for administration purposes, a LinkDown flag is available 
   in the Common Header of LMP packets. 
    
   When a node receives LMP packets with LinkDown = 1, it must first 
   verify that it is able to bring the link down on its end.  Once the 
   verification is done, it must set the LinkDown flag to 1 on all of 
   the LMP packets that it sends.  When the node that initiated the 
   LinkDown procedure receives LMP packets with LinkDown = 1, it may 
   then bring the link DOWN. 
    
2.2.5. Degraded State 
 
   A consequence of allowing the control channels and data-bearing 
   links to be transmitted along a separate medium is that the link may 
   be in a state where a control channel and backup control channel(s) 
   are not available, but the data-bearing links are still in use. For 
   many applications, it is unacceptable to drop traffic that is in use 
   simply because the control channel is no longer available; however, 
   the traffic that is using the data-bearing links may no longer be 
   guaranteed the same level of service. Hence the link is in a 
   Degraded state. 
    
   When a link is in the Degraded state, the routing protocol should be 
   notified so that new connections are not accepted and resources are 
   no longer advertised for the link. 
 
3. Link Property Correlation 
    
   As part of LMP, a link property correlation exchange is defined 
   using the LinkSummary, LinkSummaryAck, and LinkSummaryNack messages.  
   The LinkSummary message must be transmitted in order to add data-
   bearing links to a link bundle, change Entity Interface Ids, or 
 
Lang et al                                                    [Page 9] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   change a link's protection mechanism.  In addition, the LinkSummary 
   message can be exchanged at any time a link is UP and not in the 
   Verification process.  The LinkSummary message contains the 
   local/remote Bundle Id, the local and remote Entity Interface Ids, 
   and protection mappings for the Entities. 
    
   If the LinkSummary message is received from a remote node and the 
   Entity Interface Id mappings match those that are stored locally, 
   then the two nodes have agreement on the Verify process.   If the 
   verification procedure is not used, the LinkSummary message can be 
   used to verify manual configuration.  Furthermore, any protection 
   definitions that are included in the LinkSummary message must be 
   accepted or rejected by the local node.  To signal agreement on the 
   Entity Interface Id mappings and protection definitions, a 
   LinkSummaryAck message is transmitted.  Otherwise, a LinkSummaryNack 
   message will be transmitted, indicating which channels are not 
   correct and/or which protection definitions are not accepted. If a 
   LinkSummaryNack message indicates that the Entity Interface Id 
   mappings are not correct and the link verification procedure is 
   enabled, the link verification process should be repeated for all 
   mismatched free data-bearing links; if an allocated data-bearing 
   link has a mapping mismatch, it should be flagged and verified when 
   it becomes free.   
    
   It is possible that the LinkSummary message could grow quite large 
   due to the working and protect channels sub-objects.  Since the 
   LinkSummary message is IP encoded, normal IP fragmentation should be 
   used if the resulting PDU exceeds the MTU. 
 
4. Verifying Link Connectivity 
    
   In this section, we describe an optional mechanism that may be used 
   to verify the physical connectivity of the entities, which may be 
   ports or data-bearing links.  The use of this procedure is 
   negotiated as part of the configuration exchange using the 
   Verification Procedure flag of the LMP Capability TLV.  If Link 
   Verification is enabled, the procedure SHOULD be done initially when 
   a link bundle is first established, and subsequently, on a periodic 
   basis for all free entities of the link bundle. A unique 
   characteristic of all-optical PXCs is that the data being 
   transmitted over a data-bearing link is not terminated at the PXC, 
   but instead passes through transparently.  This characteristic of 
   PXCs poses a challenge for validating the connectivity of the data-
   bearing links since shining unmodulated light through a link may not 
   result in received light at the next PXC. This is because there may 
   be terminating (or opaque) elements, such as DWDM equipment, in 
   between the PXCs. Therefore, to ensure proper verification of data-
   bearing link connectivity, we require that until the links are 
   allocated, they must be opaque. There is no requirement that all 
   data-bearing links be terminated simultaneously, but at a minimum, 
   the data-bearing links must be able to be terminated one at a time. 
   Furthermore, we assume that the nodal architecture is designed so 
   that messages can be sent and received over any data-bearing link. 
   Note that this requirement is trivial for DXCs (and OEO devices in 
 
Lang et al                                                   [Page 10] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   general) since each data-bearing link is received electronically 
   before being forwarded to the next DXC, but that in PXCs this is an 
   additional requirement. 
    
   To interconnect two nodes, a link bundle must be added between them, 
   and at a minimum, the link bundle must be associated with a control 
   channel spanning the two nodes. Optionally, the attributes of a link 
   bundle MUST include at least one data-bearing link and the 
   protection mechanism (if any) for the bundled link. 
 
   As part of the link verification protocol, the primary control 
   channel is first verified, and connectivity maintained, using the 
   Hello protocol discussed in Section 4. Once the control channel has 
   been established between the two nodes, data-bearing link 
   connectivity can be verified by exchanging Ping-type Test messages 
   over each of the data-bearing links specified in the bundled link. 
   It should be noted that all LMP messages except for the Test message 
   are exchanged over the control channel and that Hello messages 
   continue to be exchanged over the control channel during the data-
   bearing link verification process. The Test message is sent over the 
   data-bearing link that is being verified. Data-bearing links are 
   tested in the transmit direction as they are uni-directional, and as 
   such, it may be possible for both nodes to exchange the Test 
   messages simultaneously. 
    
   To initiate the link verification process, the local node first 
   sends a BeginVerify message over the control channel to indicate 
   that the node will begin sending Test messages across the data-
   bearing links of a particular bundled link. The BeginVerify message 
   contains the number of data-bearing links that are to be verified; 
   the interval (called VerifyInterval) at which the Test messages will 
   be sent; the encoding scheme, the transport mechanism that are 
   supported, and data rate for Test messages; and, in the case where 
   the data-bearing links correspond to fibers, the wavelength over 
   which the Test messages will be transmitted. Furthermore, the local 
   and remote Bundle Ids are transmitted at this time to perform the 
   data-bearing link association with the Bundle Ids. When a node 
   generates a BeginVerify message, it waits either to receive a 
   BeginVerifyAck or BeginVerifyNack message from the adjacent node to 
   accept or reject the verify process. 
 
   If the remote node receives a BeginVerify message and it is ready to 
   process Test messages, it MUST send a BeginVerifyAck message back to 
   the local node and notify the transport mechanism of choice for the 
   TEST messages. When the local node receives a BeginVerifyAck message 
   from the remote node, it will begin testing the data-bearing links 
   by transmitting periodic Test messages over each data-bearing link.  
   The Test message includes the control channel Id (CCId), the Bundle 
   Id, and the local Entity Interface Id (also called label in the 
   draft) for the associated data-bearing link. The remote node will 
   return a TestStatusSuccess or TestStatusFail message in response for 
   each data-bearing link (alongwith the remote Entity Interface Id to 
   enable proper associations) and will expect a TestStatusAck message 
   from the local node to confirm receipt of these messages. 
 
Lang et al                                                   [Page 11] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

    
   The local (transmitting) node sends a given Test message 
   periodically (at least every VerifyInterval ms) on the corresponding 
   data-bearing link until it receives a correlating TestStatusSuccess 
   or TestStatusFailure message on the control channel from the remote 
   (receiving) node. The remote node will send a given TestStatus 
   message periodically over the control channel until it receives 
   either a correlating TestStatusAck message or an EndVerify message 
   is received over the control channel. It is also permissible for the 
   sender to terminate Test messages over a data-bearing link without 
   receiving a TestStatusSuccess or TestStatusFailure message. Message 
   correlation is done using message identifiers and the local node's 
   Bundle Id; this enables verification of data-bearing links, 
   belonging to different link bundles, in parallel. 
    
   When the Test message is detected at a node, the received Entity ID 
   (also referred to as a label in GMPLS) is recorded and mapped to the 
   local Entity ID for that channel. The receipt of a TestStatusSuccess 
   message indicates that the Test message was detected at the remote 
   node and the physical connectivity of the data-bearing link has been 
   verified. The TestStatusSuccess message includes the local Entity 
   ID, the received Entity ID, along with the remote Bundle Id received 
   in the Test message. When the TestStatusSuccess message is received, 
   the local node SHOULD mark the data-bearing link as UP, send a 
   TestStatusAck message to the remote node, and begin testing the next 
   data-bearing link. If, however, the Test message is not detected at 
   the remote node within an observation period (specified by the 
   VerifyDeadInterval), the remote node will send a TestStatusFailure 
   message over the control channel indicating that the verification of 
   the physical connectivity of the data-bearing link has failed. When 
   the local node receives a TestStatusFailure message, it will mark 
   the data-bearing link as FAILED, send a TestStatusAck message to the 
   remote node, and begin testing the next data-bearing link. When all 
   the data-bearing links on the list have been tested, the local node 
   SHOULD send an EndVerify message to indicate that testing has been 
   completed on this link. Upon the receipt of an EndVerify message, an 
   EndVerifyAck message MUST be sent. 
    
   Both the local and remote nodes will maintain the complete list of 
   Entity ID mappings for correlation purposes. 
    
 
4.1. Example of Link Connectivity 
    
   Figure 1 shows an example of the link verification scenario that is 
   executed when a link between PXC A and PXC B is added. In this 
   example, the link bundle consists of three free data-bearing links 
   (each transmitted along a separate fiber) and is associated with a 
   bi-directional control channel (indicated by a "c"). The 
   verification process is as follows: PXC A sends a BeginVerify 
   message over the control channel ôcö to PXC B indicating it will 
   begin verifying the data-bearing links.  PXC B receives the 
   BeginVerify message and returns the BeginVerifyAck message over the 
   control channel to PXC A.  When PXC A receives the BeginVerifyAck 
 
Lang et al                                                   [Page 12] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   message, it begins transmitting periodic Test messages over the 
   first data-bearing link (Entity Interface Id=1). When PXC B receives 
   the Test messages, it maps the received Entity Interface Id to its 
   own local Entity Interface Id = 10 and transmits a TestStatusSuccess 
   message over the control channel back to PXC A.  The 
   TestStatusSuccess message will include both the local and received 
   Entity Interface Ids for the data-bearing link.  PXC A will send a 
   TestStatusAck message over the control channel back to PXC B 
   indicating it received the TestStatusSuccess message.  The process 
   is repeated until all of the data-bearing links are verified. At 
   this point, PXC A will send an EndVerify message over the control 
   channel to PXC B to indicate that testing is complete and PXC B will 
   respond by sending an EndVerifyAck message over the control channel 
   back to PXC A. 
    
   +---------------------+                      +---------------------+ 
   +                     +                      +                     + 
   +      PXC A          +<-------- c --------->+         PXC B       + 
   +                     +                      +                     + 
   +                     +                      +                     + 
   +                   1 +--------------------->+ 10                  + 
   +                     +                      +                     + 
   +                     +                      +                     + 
   +                   2 +                /---->+ 11                  + 
   +                     +          /----/      +                     + 
   +                     +     /---/            +                     + 
   +                   3 +----/                 + 12                  + 
   +                     +                      +                     + 
   +                     +                      +                     + 
   +                   4 +--------------------->+ 14                  + 
   +                     +                      +                     + 
   +---------------------+                      +---------------------+ 
    
      Figure 2:  Example of link connectivity between PXC A and PXC B. 
 
5. Fault Localization 
    
   In this section, we describe an optional LMP mechanism that is used 
   to rapidly locate link failures.  The use of this procedure is 
   negotiated as part of the configuration exchange using the Failure 
   Isolation Procedure flag of the LMP Capability TLV.  As before, we 
   assume each link has a bi-directional control channel that is always 
   available for inter-node communication and that the control channel 
   spans a single hop between two neighboring nodes.  The case where a 
   control channel is no longer available between two nodes is beyond 
   the scope of this draft.  The mechanism used to rapidly isolate link 
   failures is designed to work for unidirectional LSPs, and can be 
   easily extended to work for bi-directional LSPs; however, for the 
   purposes of this document, we only discuss the operation when the 
   LSPs are unidirectional. 
    
   Recall that a bundled link connecting two nodes consists of a number 
   of data-bearing links associated with a control channel. If one or 
   more data-bearing links fail between two nodes, a mechanism must be 
 
Lang et al                                                   [Page 13] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   used to rapidly locate the failure so that appropriate 
   protection/restoration mechanisms can be initiated.  An important 
   implication of using PXCs is that traditional methods that are used 
   to monitor the health of allocated data-bearing links in OEO nodes 
   (e.g., DXCs) may no longer be appropriate, since PXCs are 
   transparent to the bit-rate, format, and wavelength.  Instead, fault 
   detection is delegated to the physical layer (i.e., loss of light or 
   optical monitoring of the data) instead of layer 2 or layer 3. 
    
5.1. Fault Detection 
 
   As mentioned earlier, fault detection must be handled at the layer 
   closest to the failure; for optical networks, this is the physical 
   (optical) layer. One measure of fault detection at the physical 
   layer is simply detecting loss of light (LOL). Other techniques for 
   monitoring optical signals are still being developed and will not be 
   further considered in this document. However, it should be clear 
   that the mechanism used to locate the failure is independent of the 
   mechanism used to detect the failure, but simply relies on the fact 
   that a failure is detected. 
    
5.2. Fault Localization Mechanism 
 
   If data-bearing links fail between two PXCs, the power monitoring 
   system in all of the downstream nodes will detect LOL and indicate a 
   failure. To correlate multiple failures between a pair of nodes, a 
   monitoring window can be used in each node to determine if a single 
   data-bearing link has failed or if multiple data-bearing links have 
   failed. 
    
   As part of the fault localization, a downstream node that detects 
   data-bearing link failures will send a ChannelFail message to its 
   upstream neighbor (bundling together the notification of all of the 
   failed data-bearing links) and the ports associated with the failed 
   data-bearing links will be put into the standby state.  An upstream 
   node that receives the ChannelFail message will correlate the 
   failure to see if there is a failure on the corresponding input and 
   output ports for the LSP(s).  If there is also a failure on the 
   input port(s) of the upstream node, the node will return a 
   ChannelFailAck message to the downstream node (bundling together the 
   notification of all the data-bearing links), indicating that it too 
   has detected a failure. If, however, the fault is CLEAR in the 
   upstream node (e.g., there is no LOL on the corresponding input 
   channels), then the upstream node will have localized the failure 
   and will return a ChannelFailNack message to the downstream node.  
   Once the failure has been localized, the signaling protocols can be 
   used to initiate span or path protection/restoration procedures. 
 
5.3. Examples of Fault Localization 
 
   In Fig. 2, a sample network is shown where four PXCs are connected 
   in a linear array configuration.  The control channels are bi-
   directional and are labeled with a "c".  All LSPs are uni-
   directional going left to right. 
 
Lang et al                                                   [Page 14] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

    
   In the first example [see Fig. 2(A)], there is a failure on a single 
   data-bearing link between PXC2 and PXC3.  Both PXC3 and PXC4 will 
   detect the failure and each node will send a ChannelFail message to 
   the corresponding upstream node (PXC3 will send a message to PXC2 
   and PXC4 will send a message to PXC3). When PXC3 receives the 
   ChannelFail message from PXC4, it will correlate the failure and 
   return a ChannelFailAck message back to PXC4. Upon receipt of the 
   ChannelFailAck message, PXC4 will move the associated ports into a 
   standby state. When PXC2 receives the ChannelFail message from PXC3, 
   it will correlate the failure, verify that it is CLEAR, localize the 
   failure to the data-bearing link between PXC2 and PXC3, and send a 
   ChannelFailNack message back to PXC3. 
    
   In the second example [see Fig. 2(B)], there is a failure on three 
   data-bearing links between PXC3 and PXC4. In this example, PXC4 has 
   correlated the failures and will send a bundled ChannelFail message 
   for the three failures to PXC3. PXC3 will correlate the failures, 
   localize them to the channels between PXC3 and PXC4, and return a 
   bundled ChannelFailNack message back to PXC4. 
    
   In the last example [see Fig. 2(C)], there is a failure on the 
   tributary link of the ingress node (PXC1) to the network. Each 
   downstream node will detect the failure on the corresponding input 
   ports and send a ChannelFail message to the upstream neighboring 
   node. When PXC2 receives the message from PXC3, it will correlate 
   the ChannelFail message and return a ChannelFailAck message to PXC3 
   (PXC3 and PXC4 will also act accordingly). Since PXC1 is the ingress 
   node to the optical network, it will correlate the failure and 
   localize the failure to the data-bearing link between itself and the 
   network element outside the optical network. 
    
       +-------+        +-------+        +-------+        +-------+ 
       + PXC 1 +        + PXC 2 +        + PXC 3 +        + PXC 4 + 
       +       +-- c ---+       +-- c ---+       +-- c ---+       + 
   ----+---\   +        +       +        +       +        +       + 
       +    \--+--------+-------+---\    +       +        +    /--+---> 
   ----+---\   +        +       +    \---+-------+---##---+---/   + 
       +    \--+--------+-------+--------+-------+---##---+-------+---> 
   ----+-------+--------+-------+--------+-------+---##---+-------+---> 
   ----+-------+--------+---\   +        +       +  (B)   +       + 
       +       +        +    \--+---##---+--\    +        +       + 
       +       +        +       +   (A)  +   \   +        +       + 
   -##-+--\    +        +       +        +    \--+--------+-------+---> 
   (C) +   \   +        +    /--+--------+---\   +        +       + 
       +    \--+--------+---/   +        +    \--+--------+-------+---> 
       +       +        +       +        +       +        +       + 
       +-------+        +-------+        +-------+        +-------+ 
    
      Figure 3:  We show three types of data-bearing link failures 
                 (indicated by ## in the figure):  (A) a single data-
                 bearing link fails between two PXCs, (B) three data-
                 bearing links fail between two PXCs, and (C) a single 
                 data-bearing link fails on the tributary input of PXC 
 
Lang et al                                                   [Page 15] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

                 1.  The control channel connecting two PXCs is 
                 indicated with a "c". 
 
6. LMP Finite State Machines 
    
6.1. Control Channel FSM 
    
   The control channel FSM defines the states and logics of operation 
   of an LMP control channel.  The description of FSM state transitions 
   and associated actions is given in Section 2. 
 
6.1.1. Control Channel States 
 
   A control channel can be in one of the states described below.  
   Every state corresponds to a certain condition of the control 
   channel and is usually associated with a specific type of LMP 
   message that is periodically transmitted to the far end. 
 
   Down:        The control channel is down and no attempt is being 
                made to bring it up, because there is no connectivity 
                at the lower levels. No LMP messages are sent for the 
                CCs in this state. 
 
   ConfigSnd:   The CC is in the parameter negotiation state.  In this 
                state the node is periodically sending the Config 
                messages, expecting the other side to reply with 
                ConfigAck message (see evConfDone event). The FSM does 
                not transition out of this state until the parameters 
                are acknowledged by the remote side. 
    
   ConfRcv:    In this state, the node is waiting for acceptable 
               configuration parameters from the remote side.  Once 
               such parameters are received and acknowledged, the FSM 
               can transition to the Active state. 
 
   Active:      In this state the node periodically sends Hello 
                messages, listens to incoming Config messages with 
                acceptable parameters and a valid Hello message 
                corresponding to the parameters received from the 
                remote side. The FSM stays in this state to ensure 
                acceptability of remote parameters. 
    
   Up:          The CC is in operational state.  The node periodically 
                sends Hello messages for the CCs int this state. 
    
   SwOver:      In this state, the CC switchover process is in 
                progress.  The CC that used to be primary is put in 
                SwOver state.  The taking over CC is put into TkOver 
                state.  When a CC is in SwOver state, the SwOver bit is 
                always set in all LMP messages sent for it. 
    


 
Lang et al                                                   [Page 16] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   TkOver:      In this state, the CC is preempting the primary CC 
                functionality and is waiting for the SwitchOver process 
                to be completed. 
    
   GoingDown:   A CC may go into this state because of two reasons:  
                administrative action, and a link-down bit received in 
                an LMP message. While a CC is in this state, the node 
                sets the LinkDown bit in all messages sent for it. 
 
6.1.2. Control Channel Events 
 
   Operation of the LMP control channel is described in terms of FSM 
   states and events. Control channel Events are generated by the 
   underlying protocols and software modules, as well as by the packet 
   processing routines and FSMs of associated bundles.  Every event has 
   its number and a symbolic name. Description of possible control 
   channel events is given below. 
 
   1 : evLinkUp:     This event is generated when the IP address of the 
                     remote device has been discovered through 
                     configuration or the control channel bootstrap 
                     process and the address is reachable through 
                     associated IP network. 
    
   2 : evLinkDn:     This event is generated when the remote IP address 
                     is not reachable any more. 
    
   3 : evConfDone:   This event is an indication that local 
                     configuration announced in a Config message has 
                     been acknowledged by the remote end with a 
                     HelloConfigAck message. 
    
   4 : evConfErr:    This is an indication that local configuration has 
                     been explicitly rejected by the remote end with a 
                     ConfNack message. 
    
   5 : evNewConfOK:  New config was received from neighbor and 
                     Acknowledged. 
    
   6 : evNewConfErr: New config was received from neighbor and rejected 
                     with a ConfigNack message. 
    
   7 : evAdminDown:  The administraror has requested that the control 
                     channel is brought down administratively. 
    
   8 : evDownOk:     A packet with the LinkDown flag has been received 
                     and the local node was the initiator of the link 
                     down procedure. 
    
   9 : evDownErr:    A single-shot timer expires indicating that the 
                     other node did not start setting the LinkDown flag 
                     in its messages. 
    

 
Lang et al                                                   [Page 17] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   10: evSOReq:      A control channel switch-over procedure has been 
                     requested. 
    
   11: evSODone:     Switch-over process was successfully completed. 
    
   12: evSOErr:      A single-shot timer expires indicating that the 
                     switch-over process did not succeed. 
 
   13: evNbrGoesDn:  A packet with LinkDown flag is received from the 
                     neighbor.                   
    
   14: evTOReq:      The link must become active during the switch-over 
                     process.                
    
   15: evTODone:     The take-over process was successful and the link 
                     must be treated as the primary CC from now on. 
    
   16: evTOErr:      The switch-over process did not go normally and 
                     the link has not become the primary CC. 
    
   17: evHelloRcvd:  A Hello packet with expected SeqNum has been 
                     received. 
    
   18: evHoldTimer:  The Hold timer has expired indicating that no 
                     Hello packet has been received within the 
                     HelloDeadInterval. 
    
   19: evSeqNumErr:  A Hello with unexpected SeqNum received 
    
   20: evZeroSeqNum: A Hello with Initial SeqNum has been received 
    
   21: evReconfig:   Control channel parameters have been reconfigured 
                     and require renegotiation. 
    




















 
Lang et al                                                   [Page 18] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

6.1.3 Control Channel FSM Description 
 
Figure 4 illustrates operation of the control channel FSM 
in a form of FSM state transition diagram. 
 
                                      +--------+ 
                                      |        |            
              +---------------------->|  Down  |            
              |          +----------->|        |            
              |          |            +--------+            
              |          |             1|    ^              
              |          |   +----------+    |              
              |          |   |          |    |              
              |          |   |          v    |2             
              |          |   |        +--------+             
              |          |   |     +->|        |            
              |          |   |    4|  |ConfSnd |<----+          
              |          |   |     +--|        |<---+|         
              |          |   |        +--------+    ||         
              |          |   |         3|    ^      ||         
              |          |   | +--------+    |      || 
              |          |   | |        |    |      || 
              |          |   | |        v    |21    || 
              |          |   +-|----->+--------+    || 
              |          |     |   +->|        |    || 
              |          |     |  6|  |ConfRcv |<-+ || 
              |          |     |   +--|        |  | || 
              |          |     |      +--------+  | || 
              |          |     |         5| ^     | || 
              |          |     +--------+ | |     | || 
              |          |              | | |     | || 
              |11        |8,9           v v |6    | ||         
          +--------+ +--------+       +--------+  | ||  +--------+ 
          |        | |        |       |        |  | ||  |        | 
          | SwOver | | GoingDn|       | Active |----+|  | TkOver | 
          |        | |        |       |        |  |  |  |        | 
          +--------+ +--------+       +--------+  |  |  +--------+ 
            12| ^        ^            17|         |  |     ^  |15, 16 
              | |        |              |    +----+  |     |  | 
              | |        |              v    |6      |     |  | 
              | |        |7,13        +--------+   21|     |  | 
              | |10      +------------|        |-----+   14|  | 
              | +---------------------|   Up   |-----------+  | 
              +---------------------->|        |<-------------+ 
                                      +--------+ 
 
                  Figure 4: Control Channel FSM 
 
 
Lang et al                                                   [Page 19] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   Event evLinkDn always forces the FSM to the Down State.  Events 
   evHoldTimer, evSeqNumErr, and evZeroSeqNum always force the FSM to 
   the ConfigSnd state (unless the FSM is in states ConfigSnd, 
   ConfigRcv, or Active). 
 
6.2 Bundle FSM 
 
   The bundle FSM defines the states and logics of operation of an LMP 
   link bundle. 
 
6.2.1 Bundle States 
 
    An LMP link bundle can be in one of the states described below. 
    Every state corresponds to a certain condition of the bundle and is 
    usually associated with a specific type of LMP message that is 
    periodically transmitted to the far end via the associated control 
    channel or in-band via the data-bearing links. 
 
    Down:     The control channel associated with the bundle is down 
               and no data-bearing links are allocated. 
     
    CCBoot:   In this state, the control channel bootstrap messages 
               are sent over the data-bearing links in CCBoot state.  
               Once the control channel is bootstrapped or after 
               expiration of a single-shot timer, the FSM goes back to 
               the Down state. 
     
    LinkVrf:  In this state, the link verification procedure is 
               performed for the data-bearing links of the bundle.  
               LinkVrf is a composite state that consists of three 
               substates described below. 
     
    VrfBegin: This state is valid only for the side initiating the 
               verification process. In this state, the node keeps 
               sending the BeginVerify messages and expects an 
               acknowledgement.  The BeginVerify messages include 
               information about the data-bearing links in the BegVer 
               state. 
     
    VrfProcess: In this state, two FSMs are performing the link 
               verification procedure. The initiator periodically sends 
               link test messages over the data-bearing links in the 
               Testing state and waits for TestStatus messages to be 
               received.  The passive side listens for incoming link 
               test messages on the data-bearing links in the PasvTst 
               state. 
     
    VrfResult: In this state, the passive side periodically retransmits 
               the TestStatus messages for the data-bearing links 
               verified during the link verification procedure and 
               waits for acknowledgement. Once all messages have been 
               acknowledged, the passive side can go out of VrfResult 
               state. The initiator waits for the incoming TestStatus 
               message and goes out of it after receiving and 
 
Lang et al                                                   [Page 20] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

               acknowledging TestStatus messages for all data-bearing 
               links. Note that the initiator must be prepared to 
               receive and acknowledge the TestStatus messages even 
               after it has transitioned out of the VrfResult state. 
    
    Bundling: In this state, the new bundle configuration is announced 
               by periodically sending the LinkSummary messages over 
               the control channel. 
     
    Up:       This is the normal operational state of the bundle.  The 
               associated CC is requirted to be operational as well. 
     
    Degraded: In this state, bundle's associated CC is down, but the 
               bundle includes some links that were allocated. 
     
 
6.2.2 Bundle Events 
 
    Operation of the LMP bundle is described in terms of FSM states and 
    events. Bundle events are generated by the packet processing 
    routines and by the FSMs of the associated control channel and the 
    data-bearing links. Every event has its number and a symbolic name. 
    Description of possible control channel events is given below. 
 
    1 : evCCUp:       Associated CC goes Up 
    2 : evCCDown:     Associated CC goes Down 
    3 : evVerDone:    Verification Done 
    4 : evVerify:     Link verification procedure request 
    5 : evRecnfReq:   Bundle has been reconfigured and new config need 
                      to be announced 
    6 : evRecnfDone:  new bundle configuration has been ack'ed 
    7 : evLastCompDn: the last allocated data-bearing link has been 
                      freed. 
    8 : evCCBoot:     CC bootstrap request 
    9 : evCCBootOk:   CC Bootstrap successfully completed 
    10: evCCBootErr:  CC Bootstrap was unsuccessful 
    11: evStartVer:   The other side is ready to start link 
                      verification 
    12: evVrfTOut:    Time out expired and no LinkVerifyAck has been 
                      received 
    13: evVrfComp:    Verification of all links is complete 
    14: evVrfResOK:   Verification results have been sent/received OK 
     











 
Lang et al                                                   [Page 21] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

6.2.3 Bundle FSM Description 
 
    Figure 5 illustrates operation of the LMP bundle FSM in a form of 
    FSM state transition diagram. 
         
                               +--------+ 
                               |        |          
                  +----------->|  Down  |<-------+   
                  |    +------>|        |        |   
                  |    |       +--------+        |9,10 
                  |    |         |  ^  |8   +--------+ 
                  |    |        1|  |  +--->|        | 
                  |    |  +------+  |       | CCBoot | 
                  |    |  |      |  |       |        | 
                  |    |  |      |  |       +--------+ 
                  |    |  |      v  |2       
                  |    |  |    +========+    
                  |    |  |    I        I    
                  |    |  |    ILinkVrf I<-+ 
                  |    |  |    I        I  | 
                  |    |  |    +========+  | 
                  |    |  |      |    ^    | 
                  |    |  |     3|    |    | 
                  |    |  | +----+    |    | 
                  |    |  | |    |    |    | 
                  |    |  | |    v    |4   | 
                  |    |2 | |  +--------+  | 
                  |    +--|-|--|        |  | 
                  |       +-|->|Bundling|  | 
                  |       | |  |        |  | 
                  |       | |  +--------+  | 
                  |       | |   6|    ^    | 
                  |       | |    |    |    | 
                  |       | +--->+    |    | 
                  |       |      |    |    | 
                  |7      |      v    |5   | 
              +--------+  |    +--------+ 4| 
              |        |1 +--->|        |--+ 
              |  Deg   |------>|   Up   | 
              |        |<------|        | 
              +--------+      2+--------+ 
         
         
                      Figure 5: LMP Bundle FSM 
 
 








 
Lang et al                                                   [Page 22] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

 
    Figure 6 below, illustrates the substate of the LinkVrf 
    state. 
 
 
                                |  ^ 
                             1,4|  | 
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
                {               |  |             } 
                {      +--------+  +------+      } 
                {      |        |         |      } 
                {      |        v         |      } 
                {      |    +--------+    |      } 
                {      |    |        |    |      } 
                {      |    |VrfBegin|    |      } 
                {      |    |        |    |      } 
                {      |    +--------+    |      } 
                {      |        | |       |      } 
                {      |        | +------>+      } 
                {      |        |   2,12  ^      } 
                {      |        v         |      } 
                {      |    +--------+    |      } 
                {      |    |        | 2  |      } 
                {      +--->|VrfProc |--->+      } 
                {           |        |    ^      } 
                {           +--------+    |      } 
                {             13|         |      } 
                {               |         |      } 
                {               v         |      } 
                {           +--------+    |      } 
                {           |        | 2  |      } 
                {           | VrfRes |----+      } 
                {           |        |           } 
                {           +--------+           } 
                {             14|                } 
                {               |                } 
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
                                |                  
                               3|                  
                                v 
 
                Figure 6: Substates of LinkVrf State 
 
6.3  Data-bearing Link FSM 
 
    The data-bearing link FSM defines the states and logics of 
    operation of a component link within an LMP bundle. 
     
6.3.1 Data-bearing Link States 
 
    Any data-bearing link can be in one of the states described below. 
    Every state corresponds to a certain condition of the bundle. 
     

 
Lang et al                                                   [Page 23] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

    Down:         The data-bearing link is not yet tested and hence is 
                  not put in the pool of resources. 
     
    CCBoot:       This state indicates that the data-bearing link is 
                  used for control channel bootstrap process and 
                  bootstrap messages are sent in-band over the link. 
     
    BegVer:       The link is about to be verified. The link FSM is 
                  waiting for the bundle FSM to receive confirmation.  
                  When BeginVerify messages are sent over the CC, it 
                  lists all data-bearing links in BeginVerify state. 
     
    Testing:      The link is being tested. LMP Test messages are sent 
                  through the link periodically. 
     
    Up/Free:      The link has been successfully tested and is now put 
                  in the pool of resources.  The link has not yet been 
                  allocated. 
     
    Up/Allocated: The link was tested successfully and has also been 
                  allocated for an LSP. 
     
    Degraded:     The link was in the Up/Allocated state when the CC 
                  associated with link's bundle has gone down.  The 
                  link is put in the Degraded state, since it is still 
                  used for data LSP. 
     
    PasvTst:      A test request has been received and the link is 
                  being checked for incoming test messages. 
     
    TstDone:      Link testing has been completed and TestStatusSuccess 
                  or TestStatusFailure messages are being sent to the 
                  other side over the control channel. 
 
6.3.2 Data-bearing Link Events 
 
    Operation of a data-bearing link is described in terms of FSM 
    states and events. Data bearing link events are generated by the 
    packet processing routines and by the FSMs of the associated 
    control channel and the bundle. Every event has its number and a 
    symbolic name. Description of possible control channel events is 
    given below. 
 
    1 :evCCUp      : CC has gone up. 
    2 :evCCDown    : CC has gone down. 
    3 :evStartTst  : This is an indication that both sides agree to 
                       start link testing and it should be started. 
    4 :evTestOK    : Link verification was successful and link can be 
                       used for path establishment. 
    5 :evTestFail  : Link verification returned negative results. 
    6 :evLinkVerify: This event is generated when the componentlink 
                       needs to be verified. 


 
Lang et al                                                   [Page 24] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

    7 :evTestReq   : A link test request has been received for the 
                       link's bundle and the other side may verify the 
                       data-bearing link. 
    8 :evLnkAlloc  : The data-bearing link has been allocated. 
    9 :evLnkDealloc: The data-bearing link has been deallocated. 
    10:evVerifyAbrt: The other side did not confirm it is ready to 
                       perform link verification. 
    11:evTestTmOut : No LMP Test Message has been received and a 
                       single-shot timer has expired. 
    12:evTestRcvd  : A certain number of LMP Test messages has been 
                       received on the link. 
    13:evResAcked  : The TestStatus message has been acknowledged by 
                       the other side. 
    14:evResTmOut  : The TestStatus message has not been ack'ed by the 
                       other side for a predefined period of time. 
    15:evBootCC    : The command to start CC bootstrapping procedure 
    16:evCCBootOK  : CC bootstraping successfully completed 
    17:evCCBootFail: CC bootstraping failed 
     



































 
Lang et al                                                   [Page 25] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

6.3.3 Data-bearing Link FSM Description 
 
Figure 6 illustrates operation of the LMP data-bearing link FSM in a 
form of FSM state transition diagram. 
 
         +--------------->+------+<--------------+<-----+ 
         |   +----------->| Down |------------+  ^      | 
         |   |  +-------->+------+<----+      |  |      | 
         |   |  |           | ^ |15    |      |  |      | 
         |   |  |          1| | |      |16,17 |  |      | 
         |   |  |           | | |  +--------+ |  |      | 
         |   |  |           | | +->| CCBoot | |  |      | 
         |   |  |    +------+ |    +--------+ |  |      | 
         |   |  |    |      | |               |  |      | 
         |   |  |    |      | |2,10           |7 |2,11  | 
         |   |  |    |      v |               v  |      | 
         |   |  |    |   +--------+       +---------+   | 
         |   |  |    |   | BegVer |<-+ +->| PasvTst |   | 
         |   |  |    |   +--------+  | |  +---------+   | 
         |   |  |    |       | 3     | |       | 12     | 
         |   |  |    |       v       | |       v        | 
         |   |  |2,5 |   +---------+ | |  +---------+   | 
         |   |  +----|---| Testing | | |  | TstDone |---+ 
         |   |       |   +---------+ | |  +---------+2,14 
         |   |       |       | 4     | |       |          
         |   |       |       |       | |       | 13       
         |   |       |       v      6| |7      |          
         |   |2      +-->+---------+-+ |       |          
         |   +-----------| Up/Free |---+       |          
         |               +---------+<----------+          
         |                 8 | ^ 
         |                   | | 
         |9                  v | 9 
       +-----+   7       +---------+ 
       | Deg |<----------|Up/Alloc | 
       +-----+---------->+---------+ 
                 8 
 
                 Figure 6: LMP Data-bearing Link FSM 
    
7. LMP Message Formats 
 
7.1. Common Header 
    
   In addition to the standard IP header, all LMP control-channel 
   messages have the following common header: 
    
    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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   | Vers  |      (Reserved)       |    Flags      |    Msg Type   | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |            (Reserved)         |           Checksum            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
 
Lang et al                                                   [Page 26] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   |                  Local Control Channel Id                     | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Vers: 4 bits 
    
        Protocol version number.  This is version 1. 
    
   Flags: 8 bits.  The following values are defined.  All other values 
          are reserved. 
    
        1 = LinkDown 
         
        2 = ControlChannelSwitchover 
 
   Msg Type: 8 bits.  The following values are defined.  All other 
             values are reserved. 
    
        1  = Config 
         
        2  = ConfigAck 
         
        3  = ConfigNack 
         
        4  = Hello 
         
        5  = BeginVerify 
         
        6  = BeginVerifyAck 
         
        7  = BeginVerifyNack 
         
        8  = EndVerify 
         
        9  = EndVerifyAck 
         
        10 = TestStatusSuccess 
         
        11 = TestStatusFailure 
         
        12 = TestStatusAck 
         
        13 = LinkSummary 
         
        14 = LinkSummaryAck 
         
        15 = LinkSummaryNack 
    
        16 = ChannelFail 
    
        17 = ChannelFailAck 
         
        18 = ChannelFailNack 
         

 
Lang et al                                                   [Page 27] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

        All of the messages are sent over the control channel EXCEPT 
        the Test message which is sent over the data-bearing link that 
        is being tested. 
 
   Checksum: 32 bits 
    
        The standard IP checksum of the entire contents of the LMP 
        message, starting with the LMP message header. This checksum is 
        calculated as the 16-bit one's complement of the one's 
        complement sum of all the 16-bit words in the packet. If the 
        packet's length is not an integral number of 16-bit words, the 
        packet is padded with a byte of zero before checksumming. 
 
   Local Control Channel Id:  32 bits 
    
        The Local Control Channel Id (CCId) identifies the control 
        channel of the sender associated with the message and is node 
        wide unique.  
    
7.2 Parameter Negotiation 
    
7.2.1 Config Message (MsgType = 1) 
    
   The Config message is used in the negotiation phase of LMP.  The 
   contents of the Config message is built using TLV triplets.  TLVs 
   can be either negotiable or non-negotiable (identified by the N flag 
   in the TLV header).  Negotiable TLVs can be used to let the devices 
   agree on certain values.  Non-negotiable TLVs are used for 
   announcement of specific values that do not need or do not allow 
   negotiation.  The format of the Config message is as follows: 
    
    ::=   
    
   The Config Object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          Node ID                              | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                         MessageId                             | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   //                      (Config TLVs)                          // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Node ID:  32 bits. 
    
        This is the Node ID for the node. 
    



 
Lang et al                                                   [Page 28] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   MessageId:  32 bits. 
    
        When combined with the CCId, the MessageId field uniquely 
        identifies a message.  This value is incremented and only 
        decreases when the value wraps.  This is used for message 
        acknowledgment. 
         
   The format of the Config TLVs is 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |N|          Type               |            Length             | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   //                         (TLV Object)                        // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   N: 1 bit 
    
        The N flag indicates if the parameter is negotiable (N=1) or 
        non-negotiable (N=0). 
    
   Type: 15 bits 
    
        The Type field indicates the Config TLV type. 
    
   Length: 16 bits 
    
        The Length field indicates the length of the TLV object in 
        bytes. 
    
7.2.1.1 LMP Capability TLV 
 
   The LMP Capability TLV is a TLV with Type=2 and 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |N|           2                 |               4               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                         Capability Flags                      | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   The Length field of LMP Capability TLV is always set to 4. 
    
   N: 1 bit 
    
        The N flag indicates if the parameter is negotiable (N=1) or 
        non-negotiable (N=0). 
    

 
Lang et al                                                   [Page 29] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   Capability Flags:  32 bits 
    
        The Capability Flags indicate which extended LMP procedures 
        will be supported.  A value of 0 indicates that only the base 
        LMP procedures are supported.  More than one bit may be set to 
        indicate multiple extended LMP procedures are supported. 
         
        The following flags are defined: 
         
            0x01  Link Verification Procedure 
             
            0x02  Failure Isolation Procedure 
 
   
7.2.1.2 HelloConfig TLV 
    
   The HelloConfig TLV is a TLV with Type=1 and 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |N|           1                 |               4               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |         HelloInterval         |      HelloDeadInterval        | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   The Length field of HelloConfig is always set to 4. 
    
   N: 1 bit 
    
        The N flag indicates if the parameter is negotiable (N=1) or 
        non-negotiable (N=0). 
    
   HelloInterval:  16 bits. 
    
        Indicates how frequently the Hello packets will be sent and is 
        measured in milliseconds (ms). 
    
   HelloDeadInterval:  16 bits. 
    
        If no Hello packets are received within the HelloDeadInterval, 
        the control channel is assumed to have failed and is measured 
        in milliseconds (ms). 
 
7.2.2 ConfigAck Message (MsgType = 2) 
    
   The ConfigAck message is used to indicate the receipt of the Config 
   message and indicate agreement on all parameters. 
    
    ::=   
    



 
Lang et al                                                   [Page 30] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   The ConfigAck Object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          Node ID                              | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                         MessageId                             | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                    Control Channel Id                         | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
 
 
   Node ID:  32 bits. 
    
        This is the Node ID for the node. 
         
   MessageId:  32 bits. 
    
        This is copied from the Config message being acknowledged. 
    
   Control Channel Id:  32 bits 
    
        This is copied from the Common Header of the Config message 
        being acknowledged. 
    
7.2.3 ConfigNack Message (MsgType = 3) 
    
   The ConfigNack message is used to indicate disagreement on non-
   negotiable parameters or propose other values for negotiable 
   parameters.  Parameters where agreement was reached MUST NOT be 
   included in the ConfigNack Object.  The format of the ConfigNack 
   message is as follows: 
    
   The ConfigNack Object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          Node ID                              | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                         MessageId                             | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                    Control Channel Id                         | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   //                      (Config TLVs)                          // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
 
   Node ID:  32 bits. 
    
        This is the Node ID for the node. 
 
Lang et al                                                   [Page 31] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

         
   MessageId:  32 bits. 
    
        This is copied from the Config message being negatively 
        acknowledged. 
         
   Control Channel Id:  32 bits 
    
        This is copied from the Common Header of the Config message 
        being negatively acknowledged. 
         
   The Config TLVs MUST include acceptable values for all negotiable 
   parameters.  If the ConfigNack includes Config TLVs for non-
   negotiable parameters, they MUST be copied from the Config TLVs 
   received in the Config message.  
 
7.3 Hello Message (MsgType = 4) 
    
   The format of the Hello message is as follows: 
    
    ::=  . 
    
   The Hello object format is shown below: 
    
    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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                           TxSeqNum                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                           RcvSeqNum                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
 
   TxSeqNum:  32 bits 
    
        This is the current sequence number for this Hello message.  
        This sequence number will be incremented when either (a) the 
        sequence number is reflected in the RcvSeqNum of a Hello packet 
        that is received over the control channel, or (b) the Hello 
        packet is transmitted over a backup control channel. 
         
        TxSeqNum=0 is not allowed. 
    
        TxSeqNum=1 is reserved to indicate that a node has booted or 
        rebooted. 
         
   RcvSeqNum:  32 bits 
    
        This is the sequence number of the last Hello message received 
        over the control channel. 
         
        RcvSeqNum=0 is reserved to indicate that a Hello message has 
        not yet been received. 
 

 
Lang et al                                                   [Page 32] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

7.4 Link Verification 
    
7.4.1 BeginVerify Message (MsgType = 5) 
    
   The BeginVerify message is sent over the control channel and is used 
   to initiate the link verification process.  The format is as 
   follows: 
    
    ::=   
    
   The BeginVerify object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |    Flags                      |         VerifyInterval        | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                           MessageId                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                         Local Bundle ID                       | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                        Remote Bundle ID                       | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                        Number of Entities                     | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |              EncType          |  Verify Transport Mechanism   | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                            BitRate                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          Wavelength                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
    
   Flags:  16 bits 
    
        The following flags are defined: 
        0x01 Local Bundle ID type 
                If this bit is set, the Local Bundle ID is numbered; 
                otherwise the Local Bundle ID is unnumbered. 
        0x02 Remote Bundle ID Type 
                If this bit is set, the Remote Bundle ID is numbered; 
                otherwise the Remote Bundle ID is unnumbered. 
        0x04 Verify all Links 
                If this bit is set, the verification process checks all 
                entities; else it only verifies new entities that have 
                been added to this bundle. 
        0x08 Entity Type 
                If set, the entities to be verified are ports, 
                otherwise they are component links 
 



 
Lang et al                                                   [Page 33] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   VerifyInterval:  16 bits 
    
        This is the interval between successive Test messages and is 
        measured in milliseconds (ms). 
    
 
   MessageId:  32 bits 
    
        When combined with the CCId, the MessageId field uniquely 
        identifies a message.  This value is incremented and only 
        decreases when the value wraps.  This is used for message 
        acknowledgment in the BeginVerifyAck and BeginVerifyNack 
        messages. 
         
   Local Bundle ID:  32 bits 
    
        This identifies the bundle ID of the local node, which may be 
        numbered or unnumbered (see Flags), for the Component Links 
        that are being verified. 
         
   Remote Bundle ID:  32 bits 
    
        This identifies the bundle ID of the remote node, which may be 
        numbered or unnumbered (see Flags), for the Component Links 
        that are being verified. If this value is set to 0, the local 
        node has no knowledge of the remote bundle ID. It is expected 
        that for unnumbered bundles this will be set to 0. 
    
   Number of Entities:  32 bits 
    
        This is the number of entities that will be verified. 
         
   EncType:  16 bits 
    
        This is required for the purpose of testing where the data-
        bearing links are not required to be the same encoding type as 
        the control channel.  The defined EncType values are consistent 
        with the Link Encoding Type values of [KRB00a] and [KRB00b]. 
         
   Verify Transport Mechanism:  16 bits 
    
        This defines the transport mechanism for the Test Messages. The 
        scope of this bit mask is restricted to each link encoding 
        type. The local node will set the bits corresponding to the 
        various mechanisms it can support for transmitting LMP test 
        messages. The receiver chooses the appropriate mechanism in the 
        BeginVerifyAck message. 
         
        For SONET/SDH Encoding Type, the following flags are defined: 
        0x01 Capable of communicating using JO overhead bytes. 
                Test Message is transmitted using the J0 bytes.  
        0x02 Capable of communicating using Section DCC bytes. 
                Test Message is transmitted using the DCC Section 
                Overhead bytes with an HDLC framing format. 
 
Lang et al                                                   [Page 34] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

        0x04 Capable of communicating using Line DCC bytes. 
                Test Message is transmitted using the DCC Line Overhead 
                bytes with an HDLC framing format. 
        0x04 Capable of communicating using POS. 
                Test Message is transmitted using Packet over SONET 
                framing using the encoding type specified in the 
                EncType field. 
                 
        For GigE Encoding Type, the following flags are defined: TBD 
         
        For 10GigE Encoding Type, the following flags are defined: TBD 
         
   BitRate:  32 bits 
    
        This is the bit rate at which the Test messages will be 
        transmitted and is expressed in bytes per second. 
         
   Wavelength:  32 bits 
    
        When a data-bearing link is assigned to a fiber, it is 
        essential to know which wavelength the test messages will be 
        transmitted over.  This value corresponds to the wavelength at 
        which the Test messages will be transmitted over and is 
        measured in nanometers (nm).  If each data-bearing link 
        corresponds to a separate wavelength, than this value SHOULD be 
        set to 0. 
    
 
7.4.2 BeginVerifyAck Message (MsgType = 6) 
    
   When a BeginVerify message is received and Test messages are ready 
   to be processed, a BeginVerifyAck message MUST be transmitted. 
     
    ::=   
    
   The BeginVerifyAck object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          MessageId                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |      VerifyDeadInterval       |   Verify Transport Response   | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   MessageId:  32 bits 
    
        This is copied from the BeginVerify message being acknowledged. 
         




 
Lang et al                                                   [Page 35] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   VerifyDeadInterval:  16 bits 
    
        If a Test message is not detected within the 
        VerifyDeadInterval, then a node will send the TestStatusFailure 
        message for that data-bearing link. 
         
   Verification Transport Response:  24 bits 
         
        It is illegal to set more than one bit in the verification 
        transport response. The recipient of the BeginVerify message 
        (and the future recipient of the TEST messages) chooses the 
        transport mechanism from the various types that are offered by 
        the transmitter of the Test messages. 
         
    
7.4.3 BeginVerifyNack Message (MsgType = 7) 
    
   If a BeginVerify message is received and a node is unwilling or 
   unable to begin the Verification procedure, a BeginVerifyNack 
   message MUST be transmitted. 
    
    ::=   
    
   The BeginVerifyNack object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          MessageId                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |        (Reserved)             |          Error Code           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   MessageId:  32 bits 
    
        This is copied from the BeginVerify message being negatively 
        acknowledged. 
    
   Error Code: 16 bits 
    
        The following values are defined: 
        1 = Unwilling to verify at this time 
        2 = Bundle Id configuration error 
        3 = Unsupported verification transport mechanism  
 
7.4.4 EndVerify Message (MsgType = 8) 
    
   The EndVerify message is sent over the control channel and is used 
   to terminate the link verification process.  The format is as 
   follows: 
    
    ::=   
    

 
Lang et al                                                   [Page 36] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   The EndVerify object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |   (Flags)     |                    Reserved                   | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                           MessageId                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                         Local Bundle ID                       | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Flags:  8 bits 
        The following flags are currently defined: 
        0x01 Local Bundle ID type 
                If this bit is set, the Local Bundle ID is numbered; 
                otherwise the Local Bundle ID is unnumbered. 
    
   MessageId:  32 bits 
    
        When combined with the CCId, the MessageId field uniquely 
        identifies a message.  This value is incremented and only 
        decreases when the value wraps.  This is used for message 
        acknowledgement in the EndVerifyAck message. 
    
   Local Bundle ID:  32 bits 
    
        This is bundle ID for which the link verification process is 
        being terminated.  
         
 
7.4.5 EndVerifyAck Message (MsgType =9) 
    
   The EndVerifyAck message is sent over the control channel and is 
   used to acknowledge the termination of the link verification 
   process.  The format is as follows: 
    
    ::=   
    
   The EndVerifyAck object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                           MessageId                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   MessageId:  32 bits 
    
        This is copied from the EndVerify message being acknowledged. 
    



 
Lang et al                                                   [Page 37] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

7.4.6 Test Message  
    
   The Test message is transmitted over the data-bearing link and is 
   used to verify its connectivity. Unless explicitly stated below, 
   this is transmitted as an IP packet with payload format as follows: 
    
    ::=   
    
   The Test object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |   (Flags)     |                (Reserved)                     | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                       Control Channel Id                      | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          Local Bundle Id                      | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                        Entity Interface Id                    | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Flags:  8 bits 
    
        The following flags are defined: 
        0x01 Local Bundle ID type 
                If this bit is set, the Local Bundle ID is numbered; 
                otherwise the Local Bundle ID is unnumbered. 
    
   Control Channel Id:  32 bits 
    
        The association of the Control Channel Id, the link bundle, and 
        the data-bearing entity over which this message is sent 
        uniquely identifies a link.  
    
   Local Bundle Id:  32 bits 
    
        The Local Bundle Id identifies the bundle with which the data-
        bearing link is associated. The flag determines if this is a 
        numbered or an unnumbered interface. 
    
   Entity Interface Id:  32 bits 
    
        The Entity Interface Id identifies the data-bearing link over 
        which this message is sent. A valid Entity Interface Id MUST be 
        nonzero. 
    
   The Test message is not IP encapsulated (because of size 
   restrictions) when transmitted using the J0 overhead bytes for 
   SONET/SDH encoding type. The total size of this message is 13 bytes. 
   The first byte of the message is a flag, the next 4 bytes give the 
   control channel identifier, the next 4 bytes identify the local 
   bundle id, and finally the last 4 bytes identify the entity (see 
   also [YGL00]).  
 
Lang et al                                                   [Page 38] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

  
   Note that this message is sent over a data-bearing link and NOT over 
   the control channel. 
    
7.4.7 TestStatusSuccess Message (MsgType = 10) 
    
   The TestStatusSuccess message is transmitted over the control 
   channel and is used to transmit the mapping between the local Entity 
   Interface Id and the Entity Interface Id that was received in the
   Test message.   
    
    ::=   
 
   The TestStatusSuccess object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |  (Flags)     |                 Reserved                       | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          MessageId                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                 Received Entity Interface Id                  | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                   Local Entity Interface Id                   | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                     Received Bundle Id                        | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Flags:  8 bits 
        The following flags are currently defined: 
        0x01 Remote Bundle Id type 
                If this bit is set, the Remote Bundle ID is numbered; 
                otherwise the Remote Bundle ID is unnumbered. 
    
   MessageId:  32 bits 
    
        When combined with the CCId, the MessageId field uniquely 
        identifies a message.  This value is incremented and only 
        decreases when the value wraps.  This is used for message 
        acknowledgement in the TestStatusAck message. 
    
   Received Entity Interface Id:  32 bits 
    
        This is the value of the Entity Interface Id that was received 
        in the Test message.  A valid Entity Interface Id MUST be 
        nonzero, therefore, a value of 0 in the Received Entity 
        Interface Id indicates that the Test message was not detected. 
    
   Local Entity Interface Id:  32 bits 
    
        This is the local value of the Entity Interface Id.  A valid 
        Entity Interface Id MUST be nonzero. 
    
 
Lang et al                                                   [Page 39] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   Received Bundle Id:  32 bits 
    
        This is the bundle Id received in the TEST message. The 
        association between the remote and local bundle idÆs are 
        accomplished at the local node after the reception of the 
        LinkSummary message.  
    
 
7.4.8 TestStatusFailure Message (MsgType = 11) 
    
   The TestStatusFailure message is transmitted over the control 
   channel and is used to indicate that the Test message was not 
   received.  
    
    ::=   
    
   The TestStatusFailure object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |   (Flags)     |                 Reserved                      | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          MessageId                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                     Received Bundle Id                        | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Flags:  8 bits 
        The following flags are currently defined: 
        0x01 Remote Bundle Id type 
                If this bit is set, the Remote Bundle ID is numbered; 
                otherwise the Remote Bundle ID is unnumbered. 
    
   MessageId:  32 bits 
    
        When combined with the CCId and MsgType, the MessageId field 
        uniquely identifies a message.  This value is incremented and 
        only decreases when the value wraps.  This is used for message 
        acknowledgement in the TestStatusAck message. 
 
   Received Bundle Id:  32 bits 
    
        This is the bundle Id received in the BeginVerify message for 
        which the timer has expired and no TEST messages have been 
        received.  
    
    
7.4.9 TestStatusAck Message (MsgType = 12) 
    
   The TestStatusAck message is used to acknowledge receipt of the 
   TestStatusSuccess or TestStatusFailure messages. 
    
    ::=   
 
Lang et al                                                   [Page 40] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

    
   The TestStatusAck object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                           MessageId                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   MessageId:  32 bits 
    
        This is copied from the TestStatusSuccess or TestStatusFailure 
        message being acknowledged. 
 
 
7.5 Link Summary Messages 
    
7.5.1 LinkSummary Message (MsgType = 13) 
    
   The LinkSummary message is used to synchronize the Entity IDs and 
   correlate the properties of the link.  The format of the LinkSummary 
   message is as follows: 
    
    ::=   
    
   The LinkSummary Object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |     Flags     |   Prot. Type  |          Reserved             | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          MessageId                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                      Local Bundle ID                          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                     Remote Bundle ID                          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                Number of Primary Entities                     | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                Number of  Secondary Entities                  | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   //                (primary channel subobjects)                 // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   //               (secondary channel subobjects)                // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    



 
Lang et al                                                   [Page 41] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   Flags:  8 bits 
    
        The following flags are defined: 
        0x01 Local Bundle ID type 
                If this bit is set, the Local Bundle ID is numbered; 
                otherwise the Local Bundle ID is unnumbered. 
        0x02 Remote Bundle ID Type 
                If this bit is set, the Remote Bundle ID is numbered; 
                otherwise the Remote Bundle ID is unnumbered. 
    
   Protection Type:  8 bits 
    
        The following are the values for the protection type associated 
        with this bundle. 
                0 = Unprotected 
                1 = Shared (M:N) 
                2 = Dedicated (1:1) 
                3 = Dedicated (1+1) 
                4 = Enhanced 
        The Number of Secondary Entities MUST be zero when summarizing 
        an unprotected link bundle.  The Number of Primary and 
        Secondary Entities MUST be equal when summarizing a dedicated 
        (1:1 or 1+1) link bundle. The objects in the primary and 
        secondary channel subobjects are ordered and have a one-to-one 
        mapping between them when the protection type announced is 
        dedicated.   
    
   MessageId:  32 bits 
    
        When combined with the CCId, the MessageId field uniquely 
        identifies a message.  This value is incremented and only 
        decreases when the value wraps.  This is used for message 
        acknowledgement in the LinkSummaryAck and LinkSummaryNack 
        messages. 
    
   Local Bundle ID: 32 bits 
    
        This identifies the bundle ID of the local node, which may be 
        numbered or unnumbered (see Flags). 
         
   Remote Bundle ID: 32 bits 
    
        This identifies the bundle ID of the remote node, which may be 
        numbered or unnumbered (see Flags). If the local node has no 
        knowledge of the remote bundle ID, this value MUST be set to 0. 
          
   Number of Primary Entities:  32 bits 
    
        This value is the number of primary entities in the link 
        bundle.  This also indicates how many primary channel 
        subobjects are in the LinkSummary message. 
    


 
Lang et al                                                   [Page 42] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   Number of Secondary Entities:  32 bits 
    
        This value is the number of secondary entities in the link 
        bundle.  This also indicates how many secondary (or protection) 
        channel subobjects are in the LinkSummary message. 
    
   The LinkSummary message contains a list of primary (or working) 
   channel subobjects and secondary (or protection) channel subobjects. 
    
   The Primary Channel Subobject 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                      Local Entity Id                          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                     Received Entity Id                        | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
    
   Local Entity Id:  32 bits 
    
        This is the local value of the Entity Interface Id (for the 
        data-bearing link) or CCId (for control channel). 
    
   Received Entity Id:  32 bits 
    
        This is the value of the corresponding Id.  If this is a data-
        bearing link, then this is the value that was received in the 
        Test message. If this is the primary control channel, then this 
        is the value that is received in all of the Verify messages. 
    
    
   The Protection Channel Subobject 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                     Local Entity Id                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                   Received Entity Id                          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
 
    
   Local Entity Id:  32 bits 
    
        This is the local value of the Entity Interface Id. This could 
        be a protection data-bearing link and/or a protection control 
        channel. In addition, a protection control channel could also 
        be a working data-bearing link (so it could appear in both the 
        working channel subobject as well as the protection channel 
        subobject). 
    

 
Lang et al                                                   [Page 43] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   Received Entity Id:  32 bits 
    
        This is the value of the corresponding Entity Interface Id that 
        was received in the Test message. 
 
 
7.5.2 LinkSummaryAck Message (MsgType = 14) 
    
   The LinkSummaryAck message is used to indicate agreement on the 
   Entity Interface Id synchronization and acceptance/agreement on all 
   the link parameters. It is on the reception of this message that the 
   local node makes the bundle id associations. 
    
    ::=   
    
   The LinkSummaryAck object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |  (Flags)      |                   Reserved                    | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          MessageId                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                      Local Bundle ID                          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                     Remote Bundle ID                          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Flags:  8 bits 
    
        The following flags are defined: 
        0x01 Local Bundle ID type 
                If this bit is set, the Local Bundle ID is numbered; 
                otherwise the Local Bundle ID is unnumbered. 
        0x02 Remote Bundle ID Type 
                If this bit is set, the Remote Bundle ID is numbered; 
                otherwise the Remote Bundle ID is unnumbered. 
    
   MessageId:  32 bits 
    
        This is copied from the LinkSummary message being acknowledged. 
    
   Local Bundle ID: 32 bits 
    
        This identifies the bundle ID of the local node, which may be 
        numbered or unnumbered (see Flags). 
         
   Remote Bundle ID: 32 bits 
    
        This identifies the bundle ID of the remote node, which may be 
        numbered or unnumbered (see Flags).  
     
    
 
Lang et al                                                   [Page 44] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

7.5.3 LinkSummaryNack Message (MsgType = 15) 
    
   The LinkSummaryNack message is used to indicate disagreement on 
   Entity Interface Id synchronization and/or the link parameters. 
    
    ::=   
    
   The LinkSummaryNack object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |  (Flags)      |                   Reserved                    | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          MessageId                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                      Local Bundle ID                          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                     Remote Bundle ID                          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                     Number Primary Entities                   | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                 Number of Secondary Entities                  | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   //                 (primary channel subobjects)                // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   //                (secondary channel subobjects)               // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Flags:  8 bits 
    
        The following flags are defined: 
        0x01 Local Bundle ID type 
                If this bit is set, the Local Bundle ID is numbered; 
                otherwise the Local Bundle ID is unnumbered. 
        0x02 Remote Bundle ID Type 
                If this bit is set, the Remote Bundle ID is numbered; 
                otherwise the Remote Bundle ID is unnumbered. 
    
   MessageId:  32 bits 
    
        This is copied from the LinkSummary message being negatively 
        acknowledged. 
    
   Local Bundle ID: 32 bits 
    
        This identifies the bundle ID of the local node, which may be 
        numbered or unnumbered (see Flags). 
         

 
Lang et al                                                   [Page 45] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   Remote Bundle ID: 32 bits 
    
        This identifies the bundle ID of the remote node, which may be 
        numbered or unnumbered (see Flags).  
          
   Number of primary entities:  32 bits 
    
        This value is the number of primary (or working) channels in 
        the LinkSummary message that are being negatively acknowledged.  
        This also indicates the number of primary channel subobjects in 
        the LinkSummaryNack message. 
    
   Number of secondary entities:  32 bits 
    
        This value is the number of secondary (or protection) channels 
        in the LinkSummary message that are being negatively 
        acknowledged. This also indicates the number of protection 
        channel subobjects in the LinkSummaryNack message. 
    
   The Primary Channel and Secondary Channel Subobjects are copied from 
   the LinkSummary message being negatively acknowledged.  These 
   represent the Subobjects that were not accepted. 
    
   As an optimization, the entire LinkSummary message can be rejected 
   by setting NumWorking = NumProtection = 0.  If this is done, the 
   working and protection channel subobjects are not required in the 
   LinkSummaryNack message. 
    
7.6 Failure Messages 
    
7.6.1 ChannelFail Message (MsgType = 16) 
    
   The ChannelFail message is sent over the control channel and is used 
   to query a neighboring node when a link or channel failure is 
   detected.  The format is as follows: 
    
    ::=   
    
   The format of the ChannelFail object is 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                           MessageId                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                       NumFailedChannels                       | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   //                  (FailedChannel subobjects)                 // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    


 
Lang et al                                                   [Page 46] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   MessageId:  32 bits 
    
        When combined with the CCId and MsgType, the MessageId field 
        uniquely identifies a message.  This value is incremented and 
        only decreases when the value wraps.  This is used for message 
        acknowledgement in the ChannelFailAck and ChannelFailNack 
        messages. 
    
   NumFailedChannels:  32 bits 
    
        This value indicates how many channels have failed.  This also 
        defines the number of FailedChannel subobjects. 
    
   The FailedChannel Subobjects is a list of the failed channels and 
   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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |  (Flags)      |                   Reserved                    | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                       Local Bundle Id                         | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                   Local Entity Interface Id                   | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Flags:  8 bits 
    
        The following flags are defined: 
        0x01 Local Bundle ID type 
                If this bit is set, the Local Bundle ID is numbered; 
                otherwise the Local Bundle ID is unnumbered. 
 
   Local Bundle Id:  32 bits 
    
        This is the local bundle Id within which the data-bearing link 
        has failed. 
         
   Local Entity Interface Id:  32 bits 
    
        This is the local Entity Interface Id of the data-bearing link 
        that has failed. This is within the scope of the bundle id. 
    
7.6.2 ChannelFailAck Message (MsgType = 17) 
    
   The ChannelFailAck message is used to indicate that all of the 
   failed channels reported in the ChannelFail message also have 
   failures on the corresponding input channels.  The format is as 
   follows: 
    
    ::=   
    


 
Lang et al                                                   [Page 47] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   The ChannelFailureAck object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          MessageId                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   MessageId:  32 bits 
    
        This is copied from the ChannelFail message being acknowledged. 
 
7.6.3 ChannelFailNack Message (MsgType = 18) 
    
   The ChannelFailNack message is used to indicate that the failed 
   data-bearing link(s) reported in the ChannelFail message are CLEAR 
   in the upstream node, and hence, the failure has been isolated 
   between the two nodes. 
    
    ::=   
    
   The ChannelFailNack object 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          MessageId                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                       NumChannelClear                         | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   //                    (ChannelClear subobject)                 // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   MessageId:  32 bits 
    
        This is copied from the ChannelFail message being negatively 
        acknowledged. 
 
  NumChannelClear:  32 bits 
         
        This is the number of failed data-bearing links reported in the 
        ChannelFail message that are CLEAR in the upstream node. This 
        also indicates how many ChannelClear subobjects are in the 
        ChannelFailNack message. 
 







 
Lang et al                                                   [Page 48] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   The ChannelClear subobject is used to indicate which failed data-
   bearing links have been isolated and 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 
    
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |  (Flags)      |                   Reserved                    | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                       Local Bundle Id                         | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                    Local Entity Interface Id                  | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Flags: 8 bits 
    
        The following flags are defined: 
        0x01 Local Bundle ID type 
                If this bit is set, the Local Bundle ID is numbered; 
                otherwise the Local Bundle ID is unnumbered. 
                 
   Local Bundle Id:  32 bits 
    
        This is the local bundle Id within which the data-bearing link 
        is being signaled. 
    
   Local Entity Interface Id:  32 bits 
    
        This is the local Entity Interface Id of the data-bearing link 
        where the failure has been isolated. 
         
 
8. Security Considerations 
    
   Security considerations are for future study, however, LMP is a 
   point-to-point protocol so security is largely derived from the 
   physical security of the optical network. 
 
9. References
 
   [Bra96] Bradner, S., "The Internet Standards Process -- Revision 3," 
           BCP 9, RFC 2026, October 1996. 
    
   [KRB00] Kompella, K., Rekhter, Y., Berger, L., ôLink Bundling in 
           MPLS Traffic Engineering,ö Internet Draft, draft-kompella-
           mpls-bundle-04.txt, (work in progress), November 2000. 
    
   [ARD00] Awduche, D. O., Rekhter, Y., Drake, J., Coltun, R., "Multi-
           Protocol Lambda Switching: Combining MPLS Traffic 
           Engineering Control with Optical Crossconnects," Internet 
           Draft, draft-awduche-mpls-te-optical-02.txt, (work in 
           progress), July 2000. 
 

 
Lang et al                                                   [Page 49] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

 
   [CBD00] Ceuppens, L., Blumenthal, D., Drake, J., Chrostowski, J., 
           Edwards, W. L., "Performance Monitoring in Photonic 
           Networks," Internet Draft, draft-ceuppens-mpls-optical-
           00.txt, (work in progress), March 2000. 
    
   [ABG00] Awduche, D. O., Berger, L., Gan, D.-H., Li, T., Srinivasan, 
           V., Swallow, G., "Extensions to RSVP for LSP Tunnels," 
           Internet Draft, draft-ietf-mpls-rsvp-lsp-tunnel-07.txt, 
           (work in progress), August 2000. 
   [Jam99] Jamoussi, B., et al, "Constraint-Based LSP Setup using LDP," 
           Internet Draft, draft-ietf-mpls-cr-ldp-03.txt, (work in 
           progress), September 1999. 
    
   [KaY00] Katz, D., Yeung, D., "Traffic Engineering Extensions to 
           OSPF," Internet Draft, draft-katz-yeung-ospf-traffic-03.txt, 
           (work in progress), August 2000. 
   [LiS00]  Li, T., Smit, H., "IS-IS extensions for Traffic 
            Engineering," Internet Draft,draft-ietf-isis-traffic-
            02.txt, (work in progress), September 2000. 
   [YGL00] Yu, J., Gilboa, P., Lang, J. P., et al, ôGeneric End System 
           and Service Discovery Mechanism Using Link Management 
           Protocol (LMP)ö, OIF contribution, oif2000.289.2, November 
           2000. 
   [KRB00a] Kompella, K., Rekhter, Y., Banerjee, A., et al, "OSPF 
           Extensions in Support of Generalized MPLS," Internet Draft, 
           draft-kompella-ospf-extensions-00.txt, (work in progress), 
           July 2000. 
    
   [KRB00b] Kompella, K., Rekhter, Y., Banerjee, A., et al, "IS-IS 
           Extensions in Support of Generalized MPLS," Internet Draft, 
           draft-kompella-isis-extensions-00.txt, (work in progress), 
           July 2000. 
 
10.  Acknowledgments 
    
   The authors would like to thank Adrian Farrel and John Yu for his 
   comments on the draft. 
    
11. Author's Addresses 
    
   Jonathan P. Lang                          Krishna Mitra 
   Calient Networks                          Calient Networks 
   25 Castilian Drive                        5853 Rue Ferrari 
   Goleta, CA 93117                          San Jose, CA 95138 
   Email: jplang@calient.net                 email: krishna@calient.net 
    
   John Drake                                Kireeti Kompella 
   Calient Networks                          Juniper Networks, Inc. 
   5853 Rue Ferrari                          385 Ravendale Drive 
   San Jose, CA 95138                        Mountain View, CA 94043 
   email: jdrake@calient.net                 email: kireeti@juniper.net 
    

 
Lang et al                                                   [Page 50] 

Internet Draft        draft-ietf-mpls-lmp-01.txt         November 2000 

   Yakov Rekhter                             Lou Berger 
   Cisco Systems                             Movaz Networks  
   170 W. Tasman Dr.                         email: lberger@movaz.com 
   San Jose, CA 95134                         
   email: yakov@cisco.com                     
    
   Bala Rajagopalan                          Debashis Basak 
   Tellium Optical Systems                   Marconi 
   2 Crescent Place                          1000 Fore Drive 
   Oceanport, NJ 07757-0901                  Warrendale, PA 15086-7502 
   email: braja@tellium.com                  email: dbasak@fore.com 
    
   Hal Sandick                               Alex Zinin 
   Nortel Networks                           Cisco Systems 
   email: hsandick@nortelnetworks.com        150 W. Tasman Dr. 
                                             San Jose, CA 95134 
                                             Email: azinin@cisco.com 
    
   Ayan Banerjee 
   Calient Networks 
   5853 Rue Ferrari 
   San Jose, CA 95138 
   email: abanerjee@calient.net 































 
Lang et al                                                   [Page 51]