Abstract:
A method of realigning a node in a label switched network comprising a plurality of nodes and a node with a processor, a memory, and a network interface, for carrying out the method. The method includes periodically maintaining backup path status information for the node., restarting the node, and re-establishing label switched paths with the plurality of nodes using the backup status information. Communication with adjacent nodes is carried out in order to reconcile the path status information with respective path status information in the adjacent nodes in order to establish node realignment preferably judged against a threshold value for path reliability.

Description:
TECHNICAL FIELD 
       [0001]    This invention relates to a method of realigning a node in a label switched network and to a node for use in a label switched network. 
       BACKGROUND 
       [0002]    A telecommunications network is typically made up of a plurality of nodes which are interconnected. Routes are created through the network by choosing a set of links between the nodes so that a route can enter the network at an ingress node, traverse the network by hopping between nodes via the links and exit the network at an egress node. Typically each node has knowledge of the routes traversing that node. 
         [0003]    Periodically, it is necessary for nodes to be restarted. Prior to the restart, it is likely that one or more route will traverse the node and thus after a restart it is necessary for the node to recover the state information about routes traversing the node in order to successfully allow the one or more routes to be resurrected after the restart. This recovery of state is typically termed “realignment” of the node. 
         [0004]    In the prior art, two approaches typically have been used to realign nodes following a restart. In the first approach, nodes carry out periodic backups of their state to some form of non-volatile memory and are then able to restore that state following a restart. In a traditional circuit-based domain this approach is called “hard state”. In such a network (typically a time division multiplex (TDM) or dense wavelength division multiplex (DWDM) network) the circuit paths are generally quite static and do not vary over short periods of time. Thus periodic snapshots taken in the form of backups, generally work quite well because the routes in the network are unlikely to have changed in any significant way between backups. However, if significant changes to the network have been made, a very large manual effort is required to reconcile the local circuit status with the actual network status following a restart. 
         [0005]    In other types of networks such as packet switched networks, for example Internet protocol (IP) or multi-protocol label switched (MPLS) networks, the routes change much more quickly than in traditional circuit-based networks. Accordingly a second approach to node restart has been made for this type of network, which involves a restarted node talking to neighbouring nodes in the network, i.e. nodes which are interconnected with the restarted node to gain state information about the routes in place before the restart. In the context of such networks this type of restart is known as a “graceful restart” and is described in Internet Request for Comments (RFC) 5063. This prior art graceful restart procedure assumes that only one node restarts at a time. However, if multiple restarts occur, the information available from neighbouring nodes as postulated in RFC 5063, is likely to be incomplete and the resurrection of previous routes will fail. Furthermore, if the network has fast changing routes, a backup and restore method will also fail because route changes since the last backup will often be too great and thus the restarted node will have an unacceptably outdated restarted state. 
         [0006]    Thus there is a need for recovery of node state information to be possible in the event of multiple node restarts in a network having relatively rapid changes in routing. 
         [0007]    It is an object of the present invention to overcome at least some of the problems of the prior art node restart approaches described above. 
       SUMMARY 
       [0008]    The present invention provides a method of realigning a node in a label switched network 
         [0009]    Typically the network will have a plurality of nodes and the method includes periodically maintaining backup path status information for the node. In response to restarting the node, the label switched paths are re-established with the other nodes in the network using the backup status information. This is achieved by communicating with an adjacent node in order to establish a path reliability value for each path recorded in the backup status information using a reliability value from an adjacent node, in order to establish node realignment. 
         [0010]    Advantageously, during restart, the node maintains a path reliability value for a path traversing the node. These path reliability values may be exchanged with adjacent nodes for a path traversing the adjacent nodes to establish a cumulative path reliability value for the path. In this way, the probability of the path being a valid path may be increased since the existence of the path is based upon multiple stored backups in the network rather than just the backup status information of the single node being restarted. 
         [0011]    Preferably the cumulative path reliability value is compared with a path reliability threshold to determine whether the related path is reliable and thus may be considered to be a path which was in existence before the node restart. Advantageously the path reliability threshold is a function of the number of Hops in the related path. 
         [0012]    The invention also provides a node for use in a label switched network comprising a plurality of nodes. The node includes a processor which is operable periodically to create a backup status record for the nodes. The node also includes a memory arranged to store the backup status record and a processor arranged to restart the node on command and the restore the node to a state defined by the backup status record. The processor is also arranged to calculate a path reliability value. The node has a network interface which is operable to receive path status information and path reliability values from adjacent nodes. 
         [0013]    Following a restart, the node may receive a path reliability value from an adjacent node and the processor may modify the received path reliability value dependent on an internally held path reliability value for the same path. This modified path reliability value may then be passed to another adjacent node. The processor may be arranged to modify the path reliability value to establish a cumulative path reliability value for the path. The processor may further be arranged to compare the cumulative path reliability value with a path reliability threshold to determine whether the related path is reliable and thus may be properly set up following the restart. Preferably the processor is arranged to calculate the path reliability threshold as a function of the number of Hops in the related path. 
         [0014]    The invention also provides a computer program product which, when executed on a computer, causes the computer to carry out the method of the invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         [0015]    Embodiments of the invention will now be described by way of example with reference to the drawings, in which: 
           [0016]      FIG. 1  is a schematic block diagram of several nodes in a network; 
           [0017]      FIG. 2  is a schematic block diagram of a node; 
           [0018]      FIG. 3  is a schematic diagram showing the process for establishing a route after node restart; 
           [0019]      FIG. 4  is a schematic diagram of the process for deleting a route after node restart; and 
           [0020]      FIG. 5  is a flow chart of a restart procedure. 
       
    
    
     DETAILED DESCRIPTION 
       [0021]    The invention is described below in connection with generalised multi-protocol label switching (GMPLS) but the technique is applicable to any network having multiple nodes and routes set up through those nodes and in particular, to label-switched nodes. 
         [0022]    Typically in such a network, a node or “network element” (NE) may be restarted due to a software problem or normal maintenance. The restart of the control unit in the NE causes re-initialisation of the control plane meaning that the control plane information about the label switched paths (LSPs) in the Network Element (NE) may be lost. Typically the data plane is unaffected. 
         [0023]    Briefly, the NE stores periodic backup files the of path status, restores itself according to this backup file and then communicates with adjacent nodes to test the validity and currency of the backup file. This is described in more detail below. 
         [0024]    In general terms, a particular LSP is considered to be valid when a significant number of the NEs traversed by that LSP also have the same information relating to that LSP. Hence, the more NEs that have recorded the existence of an LSP immediately before the NE restart, the more likely it is that the LSP was indeed current before the restart and had not been removed. 
         [0025]    Thus with reference to  FIG. 1 , NE 1 , NE 2  and NE 3 ,  2 - 1 ,  2 - 2  and  2 - 3  are located in a GMPLS network and are able to communicate path status and reliability information between themselves. With reference also to  FIG. 2 , each NE  2  has a processor  4 , a memory  6  and a network interface  10 . The processor is able to cooperate with the memory  6  to create a backup status record  8  and to communicate with the other NEs via the network interface  10 . 
         [0026]    During a restart, link management protocol (LMP) information is used in order to determine if an neighbouring node which is typically a node a single Hop away, is UP or DOWN. When the first control channel with an adjacent NE is up then the adjacency with that NE is considered to be UP and when the last control channel of an adjacent NE goes down, the adjacency with that NE is considered to be DOWN and it is likely that the neighbouring, or adjacent, NE has restarted. 
         [0027]    In order to realign a neighbour, different Notify messages are used as explained below in connection with  FIGS. 3 and 4 . 
         [0028]    The realignment procedure uses three new Notify messages:
       Notify_Add; Notify_Upgrade and Notify_Delete.       
 
         [0030]    The new realignment procedure also uses the concept of an LSP Degree of Reliability which is explained in detail below. 
         [0031]    LSP Degree of Reliability 
         [0032]    An adjacent NE i.e. any NE which is traversed by a particular LSP, can be in two different states; namely Aligned or Restarted. Also information about an LSP can be Reliable or Not_Reliable and with a certain degree of reliability. 
         [0033]    An adjacency is considered to be Aligned when if viewed from a particular NE, the adjacent NE has information about LSPs which is entirely consistent between the NEs. 
         [0034]    When an adjacent NE is considered to be in the Restarted state, it will instead hold information about LSPs which do not have an adequate or consistent degree of reliability compared with an adjacent NE. In the preferred embodiment, the degree of reliability for an LSP which is Reliable is zero whilst a Not_Reliable LSP can have a degree of reliability assuming any value between 1 and 2 8 . 
         [0035]    When the two sides of an adjacency, i.e. two NEs linked along an LSP, exchange the same 
         [0036]    LSP information and the state of the LSP has a degree of reliability indicated as reliable, then the state of that adjacency moves to Aligned. 
         [0037]    In order to show how the procedure may be implemented, we define the following parameters:
       LSP degree of reliability (DR);   Received DR (R_DR): is the DR that a NE has received at its interface  10 ;   Propagated DR (PDR): is the DR that a NE has propagated at its interface  10 ;   #_NE_Unaware: is the number of the NE belonging to the same LSP that is not able to rebuild the LSP using its backup status record  8 ;   In order to decide when LSP information becomes Reliable, a threshold (Th) is also defined. The threshold preferably depends on the number of hops in the LSP, i.e. the number of links between NEs it must traverse, and on a configurable value. To have an adjacency in the Aligned state all its LSP must have DR=0.       
 
         [0043]    At restart, the NE  2  rebuilds its database retrieving LSP&#39;s information from .rpp files from its persistent storage  6  or restored from a backup  8 . Because this information is not reliable (it may be out-of-date) the degree of reliability for each LSP is assigned the value DR=1. 
         [0044]    When the DR reaches a threshold (Th) value the reliability for an LSP is moved to 0 (Reliable). 
         [0045]    Assuming an LSP traverse #_Hops, the rule is 
         [0046]    If DR&gt;=Th then DR==0 
         [0047]    Where Th=#_Hops/X 
         [0048]    X is a configurable value defined on network base. 
         [0049]    As explained below, since the DR value gradually increments as the P_DR values propagate through a network, the division by the number of hops helps normalise the threshold value for different sized network. The value X, allows adjustment of the weighting given to the threshold value, Th; a lower value allowing an LSP to be considered Reliable with a larger number of NEs having information about the LSP in their backup data. The relevance of this will become more apparent later. 
         [0050]    This procedure is repeated for each LSP in the rebuilt database. Every time there is an LSP “unknown” by an adjacent NE its DR, P_DR and R_DR are considered ‘null’. Null values are considered less then 1 but higher then 0; so somewhere between Not_Reliable and Reliable. 
         [0051]    Thus is pseudo-code we have: 
         [0052]    Procedure 
         [0053]    NE Restarted (start):
       When a NE restarts, it tries to recover information about all LSPs from .rrp. and sets DR for each LSP to 1 (Not_Reliable).   After this operation the NE tries to bring up the control channels with its neighbours.   For each neighbour with a running control channel the restarted node produces and sends a Notify_Update message with the indication that it is restarted and the list of LSPs it has been able to rebuild with the indication of their DR (DR=1).   P_DR is set to 1.       
 
         [0058]    Each Aligned neighbouring NE (i.e. neighbours that haven&#39;t been re-started so have a completely reliable LSP database) receives a Notify_Update from the restarted NE
       With respect to the adjacency from where the message is received the NE (Aligned) performs the following checks:   LSP not present locally (DR=null) but reported into the Notify_Update message (R_DR&gt;0): Notify_Delete message is sent to the restarted node for this LSP because NE(Restarted) has an old LSP in its backup.   LSP present locally (DR=0) but not reported in the Notify_Update message received (R_DR=null): Notify_Add message is sent for this LSP with full info needed to rebuild the LSP because NE(Restarted) is missing a valid LSP in its backup.   LSP present locally (DR=0) and also in the Notify_Update message (R_DR&gt;0): Notify_Update message sent with DR=0 (Reliable) for this LSP i.e. NE Restarted has consistent information with NE(Aligned) for this LSP.   When all the LSPs locally present in the NE (Aligned) and reported into the Notify_Update message from its neighbour, have been checked, an indication of “ending procedure” is added to the last Notify message sent.       
 
         [0064]    The NE (Restarted) must process the information received from its Aligned neighbouring NEs. 
         [0065]    Thus: 
         [0066]    NE Restarted (realigning):
       All its LSPs are Not_Reliable and have DR&gt;0 (P_DR as well. DR is considered null for LSPs that it is not aware).   The NE Restarted starts to receive Notify message from its neighbours, and manages these messages in the following way:   Notify_Add received: create the LSP reported (DR=0)   Notify_Delete received: remove the LSP reported (DR=null)    Notify_Update received: set DR in the following way:   If the information about the an LSP with [(R_DR&gt;P_DR) or (P_DR is null and DR is null)] then:   If the NE is Egress/Ingress for the LSP then:   DR==R_DR   If the NE is Transit for the LSP then:   DR=R_DR   a Notify_Update message containing information about the LSP with P_DR =DR is propagated Downstream/Upstream   PDR==DR   If (P_DR is null and DR is null) then: #_NE_Unaware ++   If the information about the LSP with (P_DR is null and DR=1) then   If the NE is Egress/Ingress for the LSP then:   DR==R_DR+DR   a Notify_Update message containing information about the LSP with P_DR=DR is propagated Downstream/Upstream   If the NE is Transit for the LSP then:   DR=R_DR+DR   a Notify_Update message containing information about the LSP with P_DR=DR is propagated on both Downstream and Upstream   PDR==DR   When DR&gt;=Th then   If the LSP traverses the Upstream NE then includes in the Notify_Add message the FullInfo about the LSP with DR=0   If the LSP traverses the Downstream NE then includes in the Notify_Add message the FullInfo about the LSP with DR=0       
 
         [0091]    The state of the LSPs is the same for both the Upstream and Downstream side of the adjacency while the state of the adjacency depends on the state of all circuits it shares with the neighbour. 
         [0092]    This is explained in more detail with reference to  FIGS. 3 and 4  which show examples of the process in action. 
         [0093]    Firstly, with reference to  FIG. 3 , all the NEs  2 ′- 2  to  2 ′- 7 , have restarted and thus there are no Aligned nodes on which to rely. NEs  2 ′- 2 ,  2 ′- 4  and  2 ′- 7  recover via .rpp, information about circuit a. 
         [0094]    The DR values  50  are shown being incremented as messages pass between the NEs in the direction of the arrows. The R_DR values are labeled  52  and the P_DR values are labeled  54 . In this case, Th is set at 3. 
         [0095]    It will be seen that at restart, NE  2 ′- 7  only has DR=1 for route a. But NE  2 ′- 2  and NE  2 ′- 4  also have route a in their backup information and thus the cumulative DR increases as it propagates through these NEs. 
         [0096]    When P_DR reaches NE 7 ,  2 ′- 7  the DR for route a at NE 7  is finally incremented up to the Th threshold and thus this NE is able to issue a Notify_Add message with full setup information and thus allow all the other NEs in the LSP, to set the LSP as reliable (DR=0) and set the route up. 
         [0097]    In the discussion above, it has been assumed that DR for an LSP reaches the Th threshold. However, it is necessary to deal with the case in which the Th threshold is not reached for an LSP. 
         [0098]    With reference to  FIG. 4 , an example of the case of all the NEs of an LSP span being restarted but Th not being reached in which case a decision must be made whether to keep or delete an LSP. 
         [0099]    The rule used by the NE in order to decide whether to keep or delete the LSP is the following: 
         [0100]    If (LSP_Length−#_NE_Unaware)+DR &lt;Th then the LSP can be removed 
         [0101]    Where:
       LSP_Length is the length of the LSP in hops, known a priori   #_NE_Unaware: is the number of the NEs belonging to the same LSP that are not able to rebuild the LSP thanks to the .rpp. When a NE restarted receives a Notify_Update about an LSP unknown, the #_NE_Unaware is incremented by one;   DR is the degree of reliability of the LSP   Th is the threshold       
 
         [0106]    All the NEs have restarted; NE 1 ,  2 ″- 1  and NE 6   2 ″- 6  recovers via .rpp, information about circuit a. 
         [0107]    The first number on each arrow between NEs is the DR while the second one is the #_NE_Unaware 
         [0108]    The boxes  56  represent the cumulative #_NE_Unaware. 
         [0109]    The Th is again 3. 
         [0110]    When the Notify_Update with DR=1 and #_NE_Aware reach the NE  6   2 ″- 6  we have:
       LSP_Length: 6   #_NE_Aware: 5   DR: 1   Th: 3       
 
         [0115]    So: (6-5)+1&lt;3 and thus it is possible to delete the LSP. 
         [0116]    The realignment procedure is closed when all the LSPs a NE shares with a neighbour are in the reliable state, that is, are all with DR=0. 
         [0117]      FIG. 5  summarises the process in Flow-chart form. 
         [0118]    The process starts, step  100  and the NE creates a backup, step  102 . When the NE restarts, step  104 , the NE maintains a path reliability value for each path in the backup, step  105  and begins to re-establish paths, step  106 , by exchanging path reliability values with adjacent nodes and deriving a cumulative reliability value for each path, step  108 . The cumulative path reliability value is compared with a threshold, step  110  and a decision made whether to create or delete the path, step  112 . When all the paths are deemed in a reliable state, the process stops, step  114 .