Internet Draft


Network Working Group               Jonathan P. Lang (Calient Networks) 
Internet Draft                         Krishna Mitra (Calient Networks) 
Expiration Date: January 2001             John Drake (Calient Networks) 
                                    Kireeti Kompella (Juniper Networks) 
                                          Yakov Rekhter (Cisco Systems) 
                                      Lou Berger (LabN Consulting, LLC) 
                                                Debanjan Saha (Tellium) 
                                               Debashis Basak (Marconi) 
                                          Hal Sandick (Nortel Networks) 
                                                                        
 
 
    
                     Link Management Protocol (LMP) 
    
                       draft-lang-mpls-lmp-02.txt 
 
    
 
1. 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. 
    
2. Abstract 
    
   Future networks will consist of photonic switches, optical 
   crossconnects, and routers that may be configured with bundled links 
   consisting of a number of user component links and an associated 
   control channel.  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 component 
   links. LMP will be used to maintain control channel connectivity, 
   verify component link connectivity, and isolate link, fiber, or 
   channel failures within the optical network. 
    
 
Lang/Mitra et al                                              [Page 1] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

 
3. Introduction 
    
   Future networks will consist of photonic switches (PXCs), optical 
   crossconnects (OXCs), routers, switches, DWDM systems, and add-drop 
   multiplexors (ADMs) that use the MPLS 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 a 
   single bundled link, where we define such a link as a logical 
   relationship associating a bi-directional control channel with zero 
   or more unidirectional component links (see also [KRB00]). 
    
   For the purposes of this document, the granularity of a component 
   link is a wavelength, a waveband, or a fiber depending on the ports 
   that are exposed to the adjacent nodes.  For example, if a cross-
   connect is connected to a DWDM device, then the ports of the cross-
   connect (and hence the component links) correspond to wavelengths.  
   If, however, the cross-connect multiplexes the wavelengths 
   internally before connecting them to another node, then the ports of 
   the cross-connect (and hence the component links) correspond to a 
   fiber.  In general, a bundled link between two nodes will be 
   identified by a local and remote 32-bit interface (possibly a 
   virtual interface) address, and the control channel will be 
   identified by a local and remote 32-bit control channel Id (CCId).  
   Similarly, each node will identify each component link with a local 
   LinkId.  LMP gives the association between the endpoints of the 
   bundled link, control channel, and component links. 
    
   Within the framework of the Generalized Label [ABD00], the LinkId is 
   required whenever there is ambiguity as to where the labels are to 
   be allocated.  In the following, we describe how the LinkId is used 
   for the various multiplexing capabilities of a node.  For the PSC 
   case, the Generalized Label includes a LinkId (corresponding to a 
   fiber) and the normal MPLS label.  For the TDM case, the Generalized 
   Label includes a LinkId (corresponding to a fiber) and the Mannie 
   encoded label.  For the LSC case there are two options for the 
   Generalized Label depending on if the wavelengths are exposed to the 
   adjacent nodes or not; it could include the LinkId (corresponding to 
   a fiber) and a wavelength label (corresponding to a wavelength 
   within the fiber), or it could include just the LinkId 
   (corresponding to a wavelength), where a label is present but 
   ignored.  Finally, for the FSC case, the Generalized Label includes 
   only a linkId (corresponding to a fiber) and a label is present but 
   ignored. 
    
   A unique feature of a link as defined above is that the control 
   channel and the associated component links are not required to be 
   transmitted along the same physical medium.  For example, the 
   control channel could be transmitted along a separate wavelength or 
   fiber, or on an Ethernet link between the two neighbors.  A 
   consequence of allowing the control channel of a link to be 
 
Lang/Mitra et al                                              [Page 2] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   physically diverse from the associated component links is that the 
   health of a control channel on a link does not necessarily correlate 
   to the health of the component links, and vice-versa.  Therefore, 
   new mechanisms must be developed to manage links, both in terms of 
   link provisioning and fault isolation. 
    
   This draft specifies a link management protocol (LMP) that runs 
   between neighboring nodes and will be used for both link 
   provisioning and fault isolation.  All of the LMP messages 
   transmitted over the control channel are IP encoded, so that the 
   link level encoding becomes an implementation agreement and is not 
   part of LMP specifications.  The LMP messages that are transmitted 
   over a component link will be a new protocol type.  For example, if 
   it is over Ethernet, it will be a new Ethertype, and if it is over 
   SONET/SDH, the HDLC framing defined for PPP over SONET will be used 
   with the MPLSCP defined in Section 4 of [RNT99]. 
    
   In this draft, we will follow the naming convention of [ARD99] 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 [ARD99], because the transparent nature 
   of PXCs introduces new restrictions for monitoring and managing the 
   data channels (see [CBD00] for proposed extensions to MPLS for 
   performance monitoring in photonic networks).  LMP, however, can be 
   used for any type of node, enhancing the functionality of 
   traditional DXCs, DWDMs, and routers, while enabling PXCs to 
   intelligently interoperate in heterogeneous optical networks. 
    
   Due to the transparent nature of PXCs, traditional methods can no 
   longer be used to monitor and manage links and LMP has been designed 
   to address these issues in optical networks.  In addition, since LMP 
   does not dictate the actual transport mechanism, it can be 
   implemented in a heterogeneous network.  A requirement for LMP is 
   that each link has an associated bi-directional control channel and 
   that a free (unallocated) component link must be opaque (i.e., able 
   to be terminated); however, once a component link is allocated, it 
   may become transparent.  Note that there is no requirement that all 
   of the component links must be terminated simultaneously, but at a 
   minimum, they must be able to be terminated one at a time.  There is 
   no requirement that the control channel and component links share 
   the same medium; however, the control channel must terminate on the 
   same two nodes that the component links span. 
    
   LMP is a protocol that runs between adjacent nodes and is designed 
   to provide four basic functions for the node pair: control channel 
   management, link connectivity verification, link property 
   correlation, and fault isolation.  Control channel management is 
   used to establish and maintain link connectivity between neighboring 
   nodes.  This is done using lightweight Hello messages that act as a 
   fast keep-alive mechanism between the nodes.  Link connectivity 
   verification is used to verify the physical connectivity of the 
 
Lang/Mitra et al                                              [Page 3] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   component links as well as exchange the LinkIds that are used in the 
   Generalized Label [ABD00] for MPLS.  Link property correlation 
   consists of LinkSummary messages that exchange the local/remote CCId 
   mappings that were learned when establishing control channel 
   connectivity; the local/remote LinkId mappings that were discovered 
   as a result of the link connectivity verification process; the 
   protection control channels for maintaining link connectivity; and 
   the protection component links that are used for M:N protection as 
   part of the fault isolation procedure. The fault isolation mechanism 
   can localize failures in both opaque and transparent networks, 
   independent of the encoding scheme used for the component links, and 
   as a result, both local span and end-to-end path 
   protection/restoration procedures can be initiated. 
 
   The organization of the remainder of this document is as follows.  
   In Section 4, we discuss the role of the control channel and the 
   messages used to establish and maintain link connectivity.  The link 
   verification procedure is discussed in Section 5.  In Section 6, we 
   show how LMP will be used to isolate link and channel failures 
   within the optical network. 
    
4. Control channel management 
    
   To establish a bundled link between two nodes, a bi-directional 
   primary 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 [ABG99]or CR-LDP 
   [Jam99]), and topology and state distribution information 
   (implemented using traffic engineering extended protocols such as 
   OSPF [KaY99]and IS-IS [SmL99]).  Each bundled link is identified by 
   a 32-bit IP interface (possibly virtual interface) 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) to each 
   direction of the control channel and we define the control channel 
   messages to be IP encoded.  This allows the control channel 
   implementation to encompass both in-band and out-of-band mechanisms, 
   including the case where the control channel is transmitted 
   separately from the associated component link(s), either on a 
   separate wavelength or on a separate fiber.  Furthermore, since the 
   messages are IP encoded, the link level encoding is not part of LMP. 
    
   The control channel of a link 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 
   component link; however, this is not true when the control channel 
   is transmitted separately from the component links.  In addition to 
   a primary 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 
 
Lang/Mitra et al                                              [Page 4] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   component links, provided control channels have preemptive priority 
   over the user data traffic. 
    
   For LMP, it is essential that a control channel is always available 
   for a link, 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.  Since control 
   channels are electrically terminated at each node, the failure of a 
   control channel can be detected by lower layers (e.g., SONET/SDH).  
   If the primary control channel cannot be established, then a backup 
   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 component 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 channel 
   has failed so that they can coordinate a switchover. 
    
4.1. LMP Link States 
    
   A link can be in any of five well-defined states: Initialize (INIT), 
   Configure (CONFIG), UP, Degraded (DEG), and DOWN.  Many of these 
   states have multiple sub-states that are described later in this 
   document.  
 
    +----+         +------+         +----+         +---+        +----+ 
   |      |  (1)  |        |  (2)  |      |  (3)  |     | (4)  |      | 
   | INIT | ----> | CONFIG | ----> |  UP  | ----> | DEG | ---> | DOWN | 
   |      |       |        |       |      |       |     |      |      | 
    +----+         +------+         +----+         +---+        +----+ 
                      ^               |              |             |   
                      |       (5)     |      (5)     |      (5)    |   
                       -------------------------------------------- 
                                     
                     
4.1.1 Link States 
    
   INIT:   Communication not established, Hello configuration not 
           initiated, and component links not in use. 
    
   CONFIG: Hello configuration parameters are negotiated and the 
           control channel is brought up, but link properties are not 
           yet agreed upon. 
    
   UP:     Link Up.  Control channel is UP and Hello messages are being 
           exchanged. 
    
   DEG:    Control channel and backup control channel(s) are not 
           available, but component links are still in use. 
    
 
Lang/Mitra et al                                              [Page 5] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   DOWN:  Link Down.  Communication not established, Hello 
          configuration not initiated, and component links not in use. 
    
    
 
4.1.2 State transition events 
    
   (1) The parameter negotiation phase is initiated. 
    
   (2) The control channel is UP and Hello messages are being 
       exchanged. 
    
   (3) The control channel and backup control channel(s) are not 
       available, and the component links are still in use. 
    
   (4) The control channel and backup control channel(s) are not 
       available, and the component links are failed or not in use. 
       This includes the case where a control channel is brought down 
       administratively. 
    
   (5) The parameter negotiation phase is initiated. 
 
4.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 [ABG99] 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 link 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. 
    
4.2.1. Parameter Negotiation 
    
   Before initiating the Hello protocol of the keep-alive phase, the 
   local and remote CCId must be exchanged and the HelloInterval and 
   HelloDeadInterval parameters must be agreed upon.  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.   
    
 
Lang/Mitra et al                                              [Page 6] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   The parameter negotiation consists of three messages: a HelloConfig 
   message, a HelloConfigAck message, and a HelloConfigNack message.  
   The HelloConfigAck and HelloConfigNack messages are used to 
   acknowledge receipt of the HelloConfig message.  The HelloConfigNack 
   message is also used to suggest alternate values for the 
   HelloInterval and HelloDeadInterval parameters.  To initiate the 
   negotiation process, a node sends a HelloConfig message containing 
   the CCId for the control channel, the IP address of the bundled 
   link, and the proposed HelloInterval and HelloDeadInterval.  The 
   node also starts a single-shot timer that is used for 
   retransmissions in the event of message loss. 
    
   When a HelloConfig message is received at a node, a HelloConfigAck 
   message SHOULD be transmitted if the received HelloInterval and 
   HelloDeadInterval values are acceptable.  Otherwise, the node MUST 
   reject the parameters by sending a HelloConfigNack message.  The 
   HelloConfigNack message MUST include acceptable values for the 
   HelloInterval and HelloDeadInterval. 
    
   When a node has either sent or received a HelloConfigAck message, 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 HelloConfigNack message instead of a HelloConfigAck 
   message, the node MUST not begin sending Hello messages. However, if 
   the HelloInterval and HelloDeadInterval included in the received 
   HelloConfigNack message are locally acceptable, the node SHOULD send 
   a new HelloConfig message with these values to the adjacent node. 
    
4.1.2. Fast keep-alive 
    
   Once the parameters have been agreed upon and a node has sent and 
   received a HelloConfigAck message, it may begin sending Hello 
   messages.  Each Hello message will contain two sequence numbers: the 
   first sequence number (TxSeqNum) is the sequence number for this 
   Hello message and 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 will be 32-bit lollipop sequence numbers that 
   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. 
 
   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. This is important because it helps coordinate 
   control-channel switchover in case of a control channel failure.   
 
Lang/Mitra et al                                              [Page 7] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

    
4.1.3. Control channel switchover 
 
   As mentioned above, LMP requires that a control channel always be 
   available for a link, 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 a 
   control channel failure or for administration purposes (e.g., 
   routine fiber maintenance, reverting back to a primary control 
   channel, etc.), and 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 to the backup control channel in addition to the 
   primary control channel. 
    
   To ensure that both nodes switch to the backup control channel 
   successfully, both the local and remote nodes MUST transmit messages 
   over both the primary and backup control channels 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 
   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. 
 
4.1.4. Taking a link 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 
   component 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 component 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. 
 
Lang/Mitra et al                                              [Page 8] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

    
   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. 
    
4.1.5. Degraded (DEG) state 
 
   A consequence of allowing the control channels and component 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 component 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 component links may no longer be 
   guaranteed the same level of service.  Hence the link is in a 
   Degraded (DEG) state. 
    
   When a link is in the DEG state, the routing protocol should be 
   notified so that new connections are not accepted and resources are 
   no longer advertised for the link.  To bring a link back UP out of a 
   degraded state, a node may begin transmitting HelloConfig messages 
   over the primary control channel. 
 
5. Verifying link connectivity 
    
   In this section, we describe the mechanism used to verify the 
   physical connectivity of the component links.  This will be done 
   initially when a link is established, and subsequently, on a 
   periodic basis for all free component links of a bundled link.  A 
   unique characteristic of all-optical PXCs is that the data being 
   transmitted over a component 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 component 
   links since shining unmodulated light through a component 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 that proper verification of 
   component link connectivity, we require that until the component 
   links are allocated, they must be opaque.  There is no requirement 
   that all component links be terminated simultaneously, but at a 
   minimum, the component 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 
   component link.  Note that this requirement is trivial for DXCs (and 
   OEO nodes in general) since each component 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 must be added between them, and at 
   a minimum, the link must contain a control channel spanning the two 
   nodes.  Optionally, the attributes of a link may include the 
 
Lang/Mitra et al                                              [Page 9] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   protection mechanism for the control channel (possibly including an 
   ordered list of backup control channels), a list of component links, 
   and the protection mechanism for each component 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, component link connectivity 
   is verified by exchanging Ping-type Test messages over each of the 
   component 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 component link verification 
   process.  The Test message is sent over the component link that is 
   being verified.  Component 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 component 
   links of a particular bundled link.  The BeginVerify message 
   contains the number of component links that are to be verified; the 
   interval (called VerifyInterval) at which the Test messages will be 
   sent; the encoding scheme and data rate for Test messages; and, in 
   the case where the component links correspond to fibers, the 
   wavelength over which the Test messages will be transmitted.  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.  When the local node receives a BeginVerifyAck 
   message from the remote node, it will begin testing the component 
   links by transmitting periodic Test messages over each component 
   link.  The Test message will include the local LinkId for the 
   associated component link.  The remote node will return a 
   TestStatusSuccess or TestStatusFail message in response for each 
   component link and will expect a TestStatusAck message from the 
   local node to confirm receipt of these messages. 
    
   The local (transmitting) node will send a given Test message 
   periodically (at least every VerifyInterval ms) on the corresponding 
   component 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 
   on the control channel.  It is also permissible for the sender to 
   terminate Test messages over a component link without receiving a 
   TestStatusSuccess or TestStatusFailure message.  Message correlation 
   is done using the local node's LinkId and message identifiers. 
 
Lang/Mitra et al                                             [Page 10] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

    
   When the Test message is detected at a node, the received LinkId is 
   recorded and mapped to the local LinkId for that channel.  The 
   receipt of a TestStatusSuccess message indicates that the Test 
   message was detected and the physical connectivity of the component 
   link has been verified. The TestStatusSuccess message includes both 
   the local LinkId and remote nodeÆs LinkId.  When the 
   TestStatusSuccess message is received, the local node SHOULD mark 
   the component link as UP, send a TestStatusAck message to the remote 
   node, and begin testing the next component 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 
   component link has failed.  When the local node receives a 
   TestStatusFailure message, it will mark the component link as 
   FAILED, send a TestStatusAck message to the remote node, and begin 
   testing the next component link.  When all the component links on 
   the list have been tested, the local node will 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 
   LinkId mappings for correlation purposes. 
 
5.1. Example of link verification 
    
   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 bundled link will consist of a bi-directional control 
   channel (indicated by a "c") and three free component links (each 
   transmitted along a separate fiber).  The verification process is as 
   follows:  PXC A sends a BeginVerify message over the control channel 
   to PXC B indicating it will begin verifying the component 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 message, it begins transmitting 
   periodic Test messages over the first component link (LinkId=1).  
   When PXC B receives the Test messages, it maps the received LinkId 
   to its own local LinkId = 10 and transmits a TestStatusSuccess 
   message over the control channel back to PXC A.  The 
   TestStatusSuccess message will include both the local and received 
   LinkIds for the component 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 component 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. 




 
Lang/Mitra et al                                             [Page 11] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

    
   +---------------------+                      +---------------------+ 
   +                     +                      +                     + 
   +      PXC A          +<-------- c --------->+         PCX B       + 
   +                     +                      +                     + 
   +                     +                      +                     + 
   +                   1 +--------------------->+ 10                  + 
   +                     +                      +                     + 
   +                     +                      +                     + 
   +                   2 +                /---->+ 11                  + 
   +                     +          /----/      +                     + 
   +                     +     /---/            +                     + 
   +                   3 +----/                 + 12                  + 
   +                     +                      +                     + 
   +                     +                      +                     + 
   +                   4 +--------------------->+ 14                  + 
   +                     +                      +                     + 
   +---------------------+                      +---------------------+ 
    
      Figure 1:  Example of link connectivity between PXC A and PXC B. 
 
6. LinkSummary message 
    
   As part of LMP, a LinkSummary message must be transmitted in order 
   to add component links to a bundled link, change LinkIds, or 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 primary 
   and backup CCIds, the IP address for the link (binding the CCIds to 
   the link IP addresses), and the local and remote LinkIds for each 
   component link and their associated priorities.  In addition, each 
   component link may have one or more associated protection component 
   links defined for local (span) protection (e.g., M:N, 1+1).  If the 
   LinkSummary message is received from a remote node and the LinkId 
   mappings match those that are stored locally, then the two nodes 
   have agreement on the Verify process.  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 
   LinkId 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 LinkId mappings are not correct, the link 
   verification process should be repeated for all mismatched free 
   component links; if an allocated component link has a mapping 
   mismatch, it should be flagged and verified when it becomes free.  
   If, however, a LinkSummaryNack message indicates that a component 
   link's protection mechanism is not accepted, then that component 
   link's protection mechanism cannot be changed; in other words, both 
   local and remote nodes must agree on the protection mechanism for 
   each component link. 
    


 
Lang/Mitra et al                                             [Page 12] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

7. Fault localization 
    
   In this section, we describe a mechanism in LMP that is used to 
   rapidly isolate link failures.  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 
   control channel and a number of component links.  If one or more 
   component links fail between two nodes, a mechanism must be 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 component 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. 
    
7.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. 
    
7.2. Fault localization mechanism 
 
   If component 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 
   component link has failed or if multiple component links have 
   failed. 
    
   As part of the fault localization, a downstream node that detects 
   component link failures will send a ChannelFail message to its 
   upstream neighbor (bundling together the notification of all of the 
   failed component links) and the ports associated with the failed 
   component 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 
 
Lang/Mitra et al                                             [Page 13] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   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 component 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. 
 
7.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. 
    
   In the first example [see Fig. 2(A)], there is a failure on a single 
   component 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 component 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 
   component 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 component link between itself and 
   the network element outside the optical network. 






 
Lang/Mitra et al                                             [Page 14] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

    
       +-------+        +-------+        +-------+        +-------+ 
       + PXC 1 +        + PXC 2 +        + PXC 3 +        + PXC 4 + 
       +       +-- c ---+       +-- c ---+       +-- c ---+       + 
   ----+---\   +        +       +        +       +        +       + 
       +    \--+--------+-------+---\    +       +        +    /--+---> 
   ----+---\   +        +       +    \---+-------+---##---+---/   + 
       +    \--+--------+-------+--------+-------+---##---+-------+---> 
   ----+-------+--------+-------+--------+-------+---##---+-------+---> 
   ----+-------+--------+---\   +        +       +  (B)   +       + 
       +       +        +    \--+---##---+--\    +        +       + 
       +       +        +       +   (A)  +   \   +        +       + 
   -##-+--\    +        +       +        +    \--+--------+-------+---> 
   (C) +   \   +        +    /--+--------+---\   +        +       + 
       +    \--+--------+---/   +        +    \--+--------+-------+---> 
       +       +        +       +        +       +        +       + 
       +-------+        +-------+        +-------+        +-------+ 
    
      Figure 2:  We show three types of component link failures 
                 (indicated by ## in the figure):  (A) a single 
                 component link fails between two PXCs, (B) three 
                 component links fail between two PXCs, and (C) a 
                 single component link fails on the tributary input of 
                 PXC 1.  The control channel connecting two PXCs is 
                 indicated with a "c". 
    
9. Finite State Machine 
    
9.1. Bringing a link UP 
    
                                |  0  |  1  |  2  |  
   -----------------------------|-----|-----|-----| 
   External event starts process| 1a  |  -  |  -  | 
                                |     |     |     |      
   Receive HelloConfig with     | 2b,d| 2b,d| 2b,d|   
     agreable parameters        |     |     |     |      
                                |     |     |     |      
   Receive HelloConfig with     | 0c  | 1c  |  0c |    
     unacceptable parameters    |     |     |     |      
                                |     |     |     |      
   Receive HelloConfigAck       |  -  | 2d  |  2d |   
                                |     |     |     |      
   Receive HelloConfigNack      |  -  |  0  | 2b,d|   
                                |     |     |     |      
   Receive Hello                |  -  | 1a  |  3  |    
    
    
   States 
    0  INIT 
    1  CONFIG - Wait for HelloConfig response 
    2  CONFIG - Wait for Hello message 
    3  UP 
  
    
 
Lang/Mitra et al                                             [Page 15] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   Actions 
    a  send HelloConfig 
    b  send HelloConfigAck 
    c  send HelloConfigNack 
    d  send Hello 
    
8. LMP Message Formats 
 
8.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  |    Flags      |    Msg Type   |   (Reserved)          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                      Control Channel Id                       | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Vers: 4 bits 
    
        Protocol version number.  This is version 1. 
    
   Flags: 8 bits 
    
        1 = LinkDown 
         
        2 = ControlChannelSwitchover 
         
        The remaining flag bits are not yet defined. 
    
   Msg Type: 8 bits 
    
        1  = HelloConfig 
         
        2  = HelloConfigAck 
         
        3  = HelloConfigNack 
         
        4  = Hello 
         
        5  = BeginVerify 
         
        6  = BeginVerifyAck 
         
        7  = BeginVerifyNack 
         
        8  = EndVerify 
         
        9  = EndVerifyAck 
         
        10 = Test 
 
Lang/Mitra et al                                             [Page 16] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

 
        11 = TestStatusSuccess 
         
        12 = TestStatusFailure 
         
        13 = TestStatusAck 
         
        14 = LinkSummary 
         
        15 = LinkSummaryAck 
         
        16 = LinkSummaryNack 
    
        17 = ChannelFail 
    
        18 = ChannelFailAck 
         
        19 = ChannelFailNack 
         
        All of the messages are sent over the control channel EXCEPT 
        the Test message (Msg Type = 10) which is sent over the 
        component link that is being tested. 
 
   Control Channel Id:  32 bits 
    
        The Control Channel Id (CCId) identifies the control channel of 
        the sender associated with the message.  For the Test message, 
        which is sent over a component link, this is the control 
        channel associated with the Verify procedure. 
    
8.2 Parameter Negotiation 
    
8.2.1 HelloConfig Message (MsgType = 1) 
    
   The HelloConfig message is used to negotiate parameters for the 
   Hello phase of LMP.  The format of the HelloConfig message is as 
   follows: 
    
    ::=   
    
   The HelloConfig 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                     Interface IP Address                      | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |        HelloInterval          |      HelloDeadInterval        | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 





 
Lang/Mitra et al                                             [Page 17] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   Interface IP Address:  32 bits. 
    
        This is the address of the interface (or possibly virtual 
        interface) for the bundled link.  If the bundled link is 
        unnumbered, the address is the Router ID of the node.   
    
   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). 
 
8.2.2 HelloConfigAck Message (MsgType = 2) 
    
    ::=   
    
   The HelloConfigAck 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |        HelloInterval          |      HelloDeadInterval        | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
 
   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 be dead and is measured in 
        milliseconds (ms). 
         
   The values of the HelloInterval and HelloDeadInterval are copied 
   from the HelloConfig message that is being acknowledged. 
    
8.2.3 HelloConfigNack Message (MsgType = 3) 
    
    ::=   
    
   The HelloConfigNack 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |        HelloInterval          |      HelloDeadInterval        | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
 
Lang/Mitra et al                                             [Page 18] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   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 be dead and is measured in 
        milliseconds (ms). 
    
   The values of the HelloInterval and HelloDeadInterval MUST be equal 
   to the locally accepted values. 
 
8.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/Mitra et al                                             [Page 19] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

8.4 Link Verification 
    
8.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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                           MessageId                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                        NumComponentLinks                      | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |          VerifyInterval       |            EncType            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                            BitRate                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          Wavelength                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   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 
        acknowledgment in the BeginVerifyAck and BeginVerifyNack 
        messages. 
    
   NumComponentLinks:  32 bits 
    
        This is the number of component links that will be verified. 
         
   VerifyInterval:  16 bits 
    
        This is the interval between successive Test messages. 
    
   EncType:  16 bits 
    
        This is required for the purpose of testing where the component 
        links are not required to be the same encoding type as the 
        control channel.  The EncType values are consistent with the 
        Link Encoding Type values of [KRB00a] and [KRB00b]and are taken 
        from the following list: 
    
         1         Standard SONET 
         2         Arbitrary SONET 
         3         Standard SDH 
         4         Arbitrary SDH 
 
Lang/Mitra et al                                             [Page 20] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

         5         Clear (not used) 
         6         GigE 
         7         10GigE 
    
         
   BitRate:  32 bits 
    
        This is the bit rate at which the Test messages will be 
        transmitted and is expressed in bytes. 
         
   Wavelength:  32 bits 
    
        When a component 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 component link corresponds to a 
        separate wavelength, than this value SHOULD be set to 0. 
 
8.1.3.3 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       |          (Reserved)           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   MessageId:  32 bits 
    
        This is copied from the BeginVerify message being acknowledged. 
         
   VerifyDeadInterval:  16 bits 
    
        If a Test message is not detected within the 
        VerifyDeadInterval, then a node will send the TestStatusFailure 
        message for that component link. 
    
8.1.3.4 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. 
    
    ::=   
    
 
Lang/Mitra et al                                             [Page 21] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   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                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   MessageId:  32 bits 
    
        This is copied from the BeginVerify message being negatively 
        acknowledged. 
    
8.1.3.2 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: 
    
    ::=   
    
   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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                           MessageId                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   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 EndVerifyAck message. 
 
8.1.3.2 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 EndVerifyNack 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                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    


 
Lang/Mitra et al                                             [Page 22] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   MessageId:  32 bits 
    
        This is copied from the EndVerify message being acknowledged. 
    
8.1.3.5 Test Message (MsgType = 10) 
    
   The Test message is transmitted over the component link and is used 
   to verify the component link connectivity.  The format is 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                           LinkId                              | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   LinkId:  32 bits 
    
        The LinkId identifies the component link over which this 
        message is sent. A valid LinkId MUST be nonzero. 
    
   Note that this message is sent over a component link and NOT over 
   the control channel. 
    
8.1.3.6 TestStatusSuccess Message (MsgType = 11) 
    
   The TestStatusSuccess message is transmitted over the control 
   channel and is used to transmit the mapping between the local LinkId 
   and the LinkId 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                           MessageId                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                         Received LinkId                       | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          Local LinkId                         | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   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. 
 
Lang/Mitra et al                                             [Page 23] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

    
   Received LinkId:  32 bits 
    
        This is the value of the LinkId that was received in the Test 
        message.  A valid LinkId MUST be nonzero, therefore, a value of 
        0 in the Received LinkId indicates that the Test message was 
        not detected. 
    
   Local LinkId:  32 bits 
    
        This is the local value of the LinkId.  A valid LinkId MUST be 
        nonzero. 
    
8.1.3.6 TestStatusFailure Message (MsgType = 12) 
    
   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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          MessageId                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   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. 
 
8.1.3.7 TestStatusAck Message (MsgType = 13) 
    
   The TestStatusAck message is used to acknowledge receipt of the 
   TestStatusSuccess or TestStatusFailure messages. 
    
    ::=   
    
   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                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    



 
Lang/Mitra et al                                             [Page 24] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   MessageId:  32 bits 
    
        This is copied from the TestStatusSuccess or TestStatusFailure 
        message being acknowledged. 
 
8.5 Link Summary Messages 
    
8.5.1 LinkSummary Message (MsgType = 14) 
    
   The LinkSummary message is used to synchronize the LinkIds 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          MessageId                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                     Interface IP Address                      | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          NumWorking                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                        NumProtection                          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   //                 (working channel subobjects)                // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   //               (protection channel subobjects)               // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   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 LinkSummaryAck and LinkSummaryNack 
        messages. 
    
   Interface IP Address: 32 bits 
    
        This is the local IP address of the interface (or possibly 
        virtual interface) for the bundled link.  If the bundled link 
        is unnumbered, the address is the Router ID of the node. 
         



 
Lang/Mitra et al                                             [Page 25] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   NumWorking:  32 bits 
    
        This value is the number of working channels in the link.  This 
        also indicates how many working channel subobjects are in the 
        LinkSummary message. 
    
   NumProtection:  32 bits 
    
        This value is the number of protection channels in the link.  
        This also indicates how many protection channel subobjects are 
        in the LinkSummary message. 
    
   The LinkSummary message contains a list of working channel 
   subobjects and protection channel subobjects.  The list of working 
   channels MUST include the control channel. 
    
   The Working 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 Id                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          Received Id                          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |   Priority    |                  (Reserved)                   | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Local Id:  32 bits 
    
        This is the local value of the LinkId (for component link) or 
        CCId (for control channel). 
    
   Received Id:  32 bits 
    
        This is the value of the corresponding Id.  If this is a 
        component 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. 
    
   Priority:  8 bits 
    
        This is the channel priority and is in the range of 0 to 7.  
        The value 0 is the highest priority.  The control channel MUST 
        have a priority of 0. 
    
   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 Id                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
 
Lang/Mitra et al                                             [Page 26] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

   |                          Received Id                          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |   Priority    | Type  |              (Reserved)               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                           NumWorking                          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   //                 (WorkingProtect Subobjects)                 // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
    
   Local Id:  32 bits 
    
        This is the local value of the LinkId.  This could be a 
        protection component link and/or a protection control channel.  
        In addition, a protection control channel could also be a 
        working component link (so it could appear in both the working 
        channel subobject as well as the protection channel subobject). 
    
   Received Id:  32 bits 
    
        This is the value of the corresponding LinkId that was received 
        in the Test message. 
    
   Priority:  8 bits. 
    
        The priority of the resources, in the range of 0 to 7.  The 
        value 0 is the highest priority. 
    
   Type:  4 bits. 
    
        This is the protection type. 
         
        1 = 1+1 protection 
         
        2 = M:N protection 
    
   NumWorking:  32 bits 
    
        This is the number of working channels that this channel is 
        protecting.  This defines the number of WorkingProtect 
        subjects. 
     
   The WorkingProtect 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 Channel Id                         | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Local Channel Id:  32 bits 
    
 
Lang/Mitra et al                                             [Page 27] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

        This is the local channel Id of the working channel that is 
        being protected.  This channel could be a control channel or a 
        component link. 
    
8.5.2 LinkSummaryAck Message (MsgType = 15) 
    
   The LinkSummaryAck message is used to indicate agreement on the 
   LinkId synchronization and acceptance/agreement on all the link 
   parameters. 
    
    ::=   
    
   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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          MessageId                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   MessageId:  32 bits 
    
        This is copied from the LinkSummary message being acknowledged. 
    
8.5.3 LinkSummaryNack Message (MsgType = 16) 
    
   The LinkSummaryNack message is used to indicate disagreement on 
   LinkId 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          MessageId                            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          NumWorking                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                        NumProtection                          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   //                 (working channel subobjects)                // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                                                               | 
   //               (protection channel subobjects)               // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   MessageId:  32 bits 
    

 
Lang/Mitra et al                                             [Page 28] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

        This is copied from the LinkSummary message being negatively 
        acknowledged. 
    
   NumWorking:  32 bits 
    
        This value is the number of working channels in the LinkSummary 
        message that are being negatively acknowledged.  This also 
        indicates how many working channel subobjects are in the 
        LinkSummaryNack message. 
    
   NumProtection:  32 bits 
    
        This value is the number of protection channels in the 
        LinkSummary message that are being negatively acknowledged.  
        This also indicates how many protection channel subobjects are 
        in the LinkSummaryNack message. 
    
   The Working Channel and Protection 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. 
    
8.6 Failure Messages 
    
8.6.1 ChannelFail Message (MsgType = 17) 
    
   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)                 // 
   |                                                               | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   MessageId:  32 bits 
    
        When combined with the CCId and MsgType, the MessageId field 
        uniquely identifies a message.  This value is incremented and 
 
Lang/Mitra et al                                             [Page 29] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

        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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                         Local LinkId                          | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Local LinkId:  32 bits 
    
        This is the local LinkId of the component link that has failed. 
 
8.6.2 ChannelFailAck Message (MsgType = 18) 
    
   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: 
    
    ::=   
    
   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. 
    
    
8.6.3 ChannelFailNack Message (MsgType = 19) 
    
   The ChannelFailNack message is used to indicate that the failed 
   component 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: 
 
Lang/Mitra et al                                             [Page 30] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

    
    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. 
 
   NumChannelFail:  32 bits 
    
        This value is the number of failed component links reported in 
        the ChannelFail message that also have failures on the 
        corresponding inputs. 
         
   NumChannelClear:  32 bits 
         
        This is the number of failed component 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. 
 
   The ChannelClear subobject is used to indicate which failed 
   component 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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                          Local LinkId                           | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
   Local LinkId:  32 bits 
    
        This is the local LinkId of the component link where the 
        failure has been isolated. 
         
    
9. 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. 
    
    
    
 
Lang/Mitra et al                                             [Page 31] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

10. 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-01.txt, July 2000. 
    
   [ABD00] Ashwood-Smith, P., Berger, L., et al, "Generalized MPLS - 
           Signaling Functional Description," Internet Draft, draft-
           generalized-signaling-00.txt, July 2000. 
    
   [RNT99] Rosen, E. C., Rekhter, Y., et al, "MPLS Label Stack 
           Encoding," Internet Draft, draft-ietf-mpls-label-encaps-
           07.txt, September 1999. 
    
   [ARD99] 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-00.txt, October 1999. 
    
   [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, March 2000. 
    
   [ABG99] Awduche, D. O., Berger, L., Gan, D.-H., Li, T., Swallow, G., 
           Srinivasan, V., "Extensions to RSVP for LSP Tunnels," 
           Internet Draft, draft-ietf-mpls-rsvp-lsp-tunnel-04.txt, 
           September 1999. 
    
   [Jam99] Jamoussi, B., et al, "Constraint-Based LSP Setup using LDP," 
           Internet Draft, draft-ietf-mpls-cr-ldp-03.txt, September 
           1999. 
    
   [KaY99] Katz, D., Yeung, D., "Traffic Engineering Extensions to 
           OSPF," Internet Draft, draft-katz-yeung-ospf-traffic-01.txt, 
           1999. 
    
   [SmL99] Smit, H. and Li, T., "IS-IS extensions for Traffic 
           Engineering," Internet Draft, 1999. 
    
   [KRB00a] Kompella, K., Rekhter, Y., Banerjee, A., et al, "OSPF 
           Extensions in Support of Generalized MPLS," Internet Draft, 
           draft-kompella-ospf-extensions-00.txt, 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, July 2000. 
    

 
 
 
Lang/Mitra et al                                             [Page 32] 

Internet Draft        draft-lang-mpls-lmp-01.txt             July 2000 

9.  Acknowledgments 
    
   The authors would like to thank Adrian Farrel, Vishal Sharma, and 
   Stephen Shew for their comments on the draft. 
    
10. 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 
    
   Yakov Rekhter                   Debanjan Saha 
   Cisco Systems                   Tellium Optical Systems 
   170 W. Tasman Dr.               2 Crescent Place 
   San Jose, CA 95134              Oceanport, NJ 07757-0901 
   email: yakov@cisco.com          email: dsaha@tellium.com 
    
   Lou Berger                      Debashis Basak 
   LabN Consulting, LLC            Marconi 
   email: lberger@labn.net         1000 Fore Drive 
                                   Warrendale, PA 15086-7502 
                                   email: dbasak@fore.com 
    
   Hal Sandick 
   Nortel Networks 
   email: hsandick@nortelnetworks.com 
    



















 
Lang/Mitra et al                                             [Page 33]