Abstract:
A method and system for MLPPP sequence number synchronization between the active and standby side transmitters is disclosed. The MLPPP sequence number synchronization system includes a method for the standby side to associate transmit frame fragment numbers used by the active side to those generated by the transmitter on the standby side. The association is used to produce an offset which is used to synchronize the active and standby transmitters. The MLPPP sequence number synchronization system is particularly useful for overcoming the drawbacks of high bandwidth signaling between active and standby sides of switches known in the art.

Description:
FIELD OF THE INVENTION  
       [0001]    The invention relates to Multilink Point-to-Point Protocol (MLPPP) and is particularly concerned with maintaining synchronization between an active MLPPP receiver and transmitter side of a switch, and the hot-standby MLPPP receiver and transmitter of the same switch. 
       BACKGROUND OF THE INVENTION  
       [0002]    As described in US patent application publication number 2007/0253446 and incorporated herein by reference; multilink protocols are well known in the art and have been standardized for both point-to-point protocol (MLPPP, also referred to as MP) and Frame Relay protocol (MLFR, also referred to as MFR), among others. Multilink protocols combine multiple physical or logical links and use them together as if they were one high-performance link. MLPPP is described in RFC 1717, which has been updated by RFC 1990. MLFR is described by specifications FRF.15 and FRF.16. (Note: If not otherwise stated herein, it is to be assumed that all patents, patent applications, patent publications and other publications (including web-based publications) mentioned and cited herein are hereby fully incorporated by reference herein as if set forth in their entirety herein.) 
         [0003]    MLPPP and the MLFR Protocols function by fragmenting datagrams or frames and sending the fragments over different physical or logical links. Datagrams or frames received from any of the network layer protocols are first encapsulated into a modified version of the regular PPP (Point-to-Point Protocol) or FR (Frame Relay) frame. A decision is then made about how to transmit the datagram or frame over the multiple links. Each fragment is encapsulated and sent over one of the links. 
         [0004]    On a receiving end, the fragments received from all of the links are reassembled into the original PPP or FR frame. That frame is then processed like any other PPP or FR frame, by inspecting the Protocol field and passing the frame to the appropriate network layer protocol. 
         [0005]    The fragmenting of data in multilink protocols introduces a number of complexities that the protocols must be equipped to handle. For example, since fragments are being sent roughly concurrently, they must be identified by a sequence number to enable reassembly. Control information for identifying the first and last fragments must also be incorporated in the fragment headers. A special frame format is used for the fragments to carry this information. 
         [0006]    One possible remedy for this would be to utilize the solution disclosed in patent U.S. Pat. No. 6,912,197 wherein the active and standby processors exchange messages to synchronize fragment numbers. The active processor sends periodic updates to the standby processor with a sequence number. On an activity switch, the newly active processor calculates a new sequence number as a sum of the number received from the previously active processor plus a jump number. The jump number is calculated as a maximum number of fragments that can be transmitted in a timeframe between the previous update and the switchover time. 
         [0007]    There may be at least two drawbacks of this solution. The first is the burden of sending periodic messages between the processors. There may be hundreds and thousands of MLPPP groups supported on the switch processor. Sending periodic messages for all of them may be resource consuming. Another other drawback is that the jump count may vary since the fragment rate is not predictable. It will almost always be greater than the number expected by the receiver. The receiver at the other end of the network may have to unnecessarily wait for missing fragments that will never come in. This creates a delay in the fragment flow since the receiver must wait for “missing” fragments until a timeout expires. 
       SUMMARY OF THE INVENTION  
       [0008]    An object of the present invention is to provide an improved method and system for active and hot-standby receiver/transmitter portions of a switch. 
         [0009]    According to an aspect of the present invention there is provided a method for synchronizing the transmit frame fragment sequence numbers of active and standby transmitters on line cards in a switch supporting multilink protocol having active and standby sides. The method has the steps of first, initializing a standby transmit sequence number for the standby transmitter to an initial value; and subsequently incrementing the standby transmit sequence number with each transmit frame fragment handled by the standby transmitter. This is followed by the step of associating the standby transmit sequence number with respective receive sequence numbers received by the switch and determining an association of transmit frame fragment sequence numbers used by the active transmitter for respective receive sequence numbers received by the switch. Then, calculating an offset to the standby transmit sequence number based upon the difference between the standby transmit sequence number associated to a specific receive sequence number and an active transmit frame fragment sequence number associated to the same specific receive sequence number. Finally, applying said offset to the standby transmit sequence number to bring the standby transmit sequence number in synchronization with the transmit sequence numbers of the active side. 
         [0010]    Advantageously, the determining step further may further have the step of querying of the active side by the standby side in respect of transmit frame fragment sequence numbers associated to receive frame fragment sequence numbers. 
         [0011]    Also advantageously, the query step may specify a specific receive frame fragment sequence number or a plurality of specific receive frame fragment sequence numbers for the active side to provide an association to. 
         [0012]    Under some configurations there is the additional step of extrapolating a specific receive frame fragment sequence number based at least in part upon the receive frame fragment sequence numbers received by the standby side. This additional step may also take into account the rate at which receive frame fragments are being received. 
         [0013]    Advantageously, the query step may be repeated in the event that no association is received by the standby side from the active side. This repetition may be initiated after a specified quantity of time has elapsed without an association being received. 
         [0014]    According to another embodiment of the invention, there is provided a system for synchronizing the transmit frame fragment sequence numbers of active and standby transmitters on line cards in a switch supporting multilink protocol having active and standby sides. The system provides for the initializing a standby transmit sequence number for the standby transmitter to an initial value; and subsequently incrementing the standby transmit sequence number with each transmit frame fragment handled by the standby transmitter. This is followed by associating the standby transmit sequence number with respective receive sequence numbers received by the switch and determining an association of transmit frame fragment sequence numbers used by the active transmitter for respective receive sequence numbers received by the switch. Then, a calculation of an offset to the standby transmit sequence number based upon the difference between said standby transmit sequence number associated to a specific receive sequence number and an active transmit frame fragment sequence number associated to the same specific receive sequence number is performed. Finally, the system applies the offset to the standby transmit sequence number to bring the standby transmit sequence number in synchronization with the transmit sequence numbers of the active side. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         [0015]    The present invention will be further understood from the following detailed description of embodiments of the invention, with reference to the drawings in which: 
           [0016]      FIG. 1  illustrates an active and hot-standby receiver and transmitter in a switch supporting MLPPP in accordance with an embodiment of the present invention; and 
           [0017]      FIG. 2  illustrates timing diagram showing message frame fragment streams with sequence numbers originating and terminating at active and standby sides. 
       
    
    
     DETAILED DESCRIPTION  
       [0018]    In order to provide reliable operation, modern communication switches provide replacement of operating devices with redundant devices in order to secure continued operation. These redundant or “standby” devices may be switched into operation manually, or more commonly automatically, in the event of a failure. 
         [0019]    For minimum service disruption, standby devices operating in a “hot” standby mode operate to “shadow” the operation of the active device they are intended to replace. In the hot-standby mode data traffic handling, signaling, and other aspects of switching operation are being handled in the hot-standby device as much as possible, short of actually disrupting normal operation. 
         [0020]    Switching systems where the active receiver and the standby receiver are capable of receiving the same flow of MLPPP fragments are well known in the art. An example of such a system is Alcatel-Lucent&#39;s 7670 RSP switch. Both the active receiver and the standby receiver receive fragment frames with the same fragment sequence numbers. For seamless standby transmitter cutover in the case of active side failure, there must be some form of synchronization of the transmit sequence number such that the standby transmitter commences transmitting frame fragments with the same sequence number as the active transmitter would have should it not have failed. 
         [0021]    In many implementations the active and standby frame processors are located on different physical line cards within the switching equipment. This synchronization of transmit frame fragment sequence numbers is complicated by having to effect the synchronization across the interconnection between the physical line cards. Signaling channels and bandwidth associated with the synchronization would preferably be kept to a minimum. 
         [0022]    In operation, every transmit fragment frame sequence number that is transmitted from the switch will occur concurrent to a respective receive fragment frame sequence number. The transmit fragment frame sequence number may be associated to the receive fragment frame sequence number in the transmitter. 
         [0023]    Referring to  FIG. 1 , there may be seen switch  100  having a connection to a data network  150  via input ports  102   a  and  102   b,  and via output ports  104   a  and  104   b.    
         [0024]    In  FIG. 1 , active side  110  has an active receiver  112  and an active transmitter  116 . Operating within active receiver  112  is MLPPP Receive Module  114  which has a storage element containing a receive frame fragment sequence number RxNUM  115 . Operating within active transmitter  116  is MLPPP Transmit Module  118  which has a storage element containing a transmit frame fragment sequence number ActiveTxNum  119 . 
         [0025]    Likewise, hot-standby side  120  has a standby receiver  122  and a standby transmitter  126 . Operating within standby receiver  122  is MLPPP Receive Module  124  which has a storage element containing a receive frame fragment sequence number RxNUM  125 . Operating within standby transmitter  126  is MLPPP Transmit Module  128  which has a storage element containing a transmit frame fragment sequence number StandbyTxNum  129 . 
         [0026]    The ports  102   a,    102   b,    104   a,  and  104   b  are representative of connections to data network  150  and may be separate physical elements. These ports are associated for redundancy purposes by configuration management. Disconnect  140  inhibits standby transmitter  126  message frame fragments from output port  104   b  from reaching network  150 . In the event of a failure in which the hot-standby side  120  replaces the active side  110  in operation, disconnect  140  would operate to connect output port  104   b  to network  150 , thereby allowing the hot-standby side  120  to become the active side. 
         [0027]    In operation, the standby transmitter learns a transmit frame fragment&#39;s sequence number used by the active transmitter after the active transmitter associates a transmit frame fragment with a specific receive frame fragment. Upon startup the standby side has an initial transmit frame fragment sequence number. As it operates in parallel to the active side it will assign incremental transmit frame fragment sequence numbers to outgoing (but blocked by disconnect  140 ) transmit message frame fragments. Since the hot-standby side  120  receives receive frame fragments, it is able to associate its transmit frame fragment sequence numbers to the incoming receive frame fragment sequence numbers. However, the initial sequence of transmit message frame fragment sequence numbers from the hot-standby side  120  will not match the active side  110  sequence of transmit message frame sequence numbers as the startup of hot-standby side  120  may occur at any point in time relative to the ongoing operation of active side  110 . Should the hot-standby side be informed of the association between receive frame fragment sequence numbers and transmit frame fragment sequence numbers in use by the active side, then it would be able to adjust its transmit frame fragment sequence number by incrementing it by an appropriate amount. 
         [0028]    Referring to  FIG. 2  there may be seen message frame fragments stream  270  having receive message frame fragments  271  received by the active receiver  112  and standby receiver  122 . Also depicted are a transmit message frame fragments stream  280  generated by the active transmitter  116  having transmit message frame fragments  281 ; and a transmit message frame fragments stream  290  having transmit message frame fragments  291  generated by the standby transmitter  126 . Within the respective message streams may be seen message frame fragments bearing sequence numbers. 
         [0029]    By way of example, suppose at some point in the past the ActiveTxNum was 123 when it received a receive fragment frame with RxNum of 1000 as indicated by reference  282 . Also suppose that on the standby side the StandbyTxNum was 23 when it received the same receive fragment frame with the RxNum of 1000 as indicated by reference  292 . Suppose, that after the standby has simulated transmission of 50 fragments (since it received RxNum of 1000), it subsequently learns that the ActiveTxNum was 123 at the time of RxNum 1000 reception. Not knowing the ActiveTxNum, the standby would use a transmit sequence number of 74 (23+50+1) for the next transmit fragment frame sequence number. Instead, having the association used by the active side, the standby calculates the next transmit fragment frame sequence number as follows:
       calculates the delta between ActiveTxNum and StandbyTxNum, e.g. 123−23 is 100 as indicated at reference  285 ; and   adds this to the would be transmit fragment frame sequence number of 74, e.g. 100+74 is 174.       
 
         [0032]    Therefore, the next number to be used by the standby would be 174 and not 74. Since the active and the standby transmit the same fragments at the same rate, this operation provides that the active and the transmit fragment frame sequence numbers will be the same, and this will guarantee a seamless switchover in the future. After the delta or offset is applied, the transmit frame fragments sequence numbers will be synchronized as indicated at reference  295 . 
         [0033]    The method described above assumes that the standby side can learn ActiveTxNum associated with a particular receive frame fragment. One method of learning this association is as follows. 
         [0034]    When the standby side starts up and commences receiving fragments, it looks up the sequence number in the fragment received. Based on received number, the standby side extrapolates receive frame fragment sequence numbers that it expects to receive within some next time interval. This time interval can range from seconds to minutes, dependent upon the implementation of the startup procedure and the quantity of switch message traffic present. 
         [0035]    Referring back to  FIG. 1 , the standby side then sends a message via message channel  130  to the active side requesting the active side record its transmit frame fragment sequence numbers when receiving fragments with the specified receive frame fragment numbers. Upon reception of the receive frame fragments having at least one of the specified sequence numbers, the active side records the associated transmit frame fragment sequence number. The active side then forwards the at least one associated number via a message channel  132  to the standby side. 
         [0036]    During the same period of time, the standby side records the transmit frame message fragment sequence number it produces at the time that the specified receive frame fragment sequence numbers are received. 
         [0037]    On receiving the ActiveTxNum numbers, the standby side calculates the delta or offset in respect to its association and adjusts the StandbyTxNum as per the method described above. 
         [0038]    If the active side did not receive the request in time to record the association with the specified sequence numbers, it can inform the standby side that the specified numbers have already transpired. In a preferred mode of operation a plurality of numbers is specified by the standby side so that the active side has an increased likelihood of receiving the request in sufficient time to record the association. This approach avoids having to extrapolate a receive fragment sequence number that is too far in the future to allow a reasonably rapid synchronization of active and standby sides to occur. 
         [0039]    If, after some time interval, the standby side has not received an association response from the active side, the extrapolation and request process may be repeated until at least one association is received by the standby side. 
         [0040]    Therefore, what has been disclosed is a method and system for MLPPP sequence number synchronization between the active and hot-standby side transmitters in a switch supporting multilink protocols. 
         [0041]    Numerous modifications, variations and adaptations may be made to the embodiment of the invention described above without departing from the scope of the invention, which is defined in the claims.