System and method for processing control cells to prevent event missequencing and data loss in IMA groups

A system and method for processing control cells to prevent event missequencing and data loss are described. At least one control unit is processed to retrieve communication information related to data received along one or more communication links in a network. The at least one control unit is then stored in one or buffers. Finally, the at least one control unit is further processed to retrieve link information related to the one or more communication links.

FIELD OF THE INVENTION

This invention relates generally to data communications and, more particularly, to a system and method for processing control cells to prevent event missequencing and data loss in IMA groups.

BACKGROUND

Packet switching communication networks are commonly employed to transfer digital information over long distances. One example of a packet switching communication network is an Asynchronous Transfer Mode (ATM) communication network. An ATM communication network enables the transfer of digital voice information, digital video information and digital data over short or long distances via common carrier communication links. In one embodiment, the ATM communication networks enable a wide variety of communication devices to share common carrier communication links on a demand driven basis. For example, such ATM communication networks are commonly employed for a wide area network (WAN) communication.

In one embodiment, the common carrier communication links employed in such ATM communication networks include metal wire based communication links. One such type of common carrier communication link available in North America is the T1 communication link. In one embodiment, the T1 communication link provides a maximum data rate of 1.544 megabits per second. Alternatively, an E1 communication link may be used as common carrier communication link. In one embodiment, the E1 communication link provides a maximum data rate of 2.048 megabits per second.

FIG. 1Ais a block diagram of one embodiment of a communication network. As illustrated inFIG. 1A, communication network100includes communication nodes120and130coupled for communication using a set of communication links110. In one embodiment, communication network100is an ATM communication network. Each communication node120and130is further coupled to other communication nodes. For example, as shown inFIG. 1A, communication node120is coupled to node122via link140and to node124via link142. In addition, communication node130is coupled to node132via link144and to node134via link146.

In one embodiment, the ATM communication network100enables communications according to an Inverse Multiplexing Asynchronous Transfer Mode (IMA) communication protocol. The IMA communication protocol specifies a method of inverse multiplexing of data cells, for example ATM cells, over multiple communication links at the transmitting end and retrieving the ATM cell stream at the receiving end. In one embodiment, communication nodes120and130perform inverse multiplexing and de-multiplexing of data cells in a cyclical fashion among communication links 1-N grouped to form a higher bandwidth logical link110whose rate is approximately the sum of the rates of each communication link 1-N.

In one embodiment, at the near end, for example within transmitting communication node120, the cell stream is distributed on a cell-by-cell basis, across the multiple communication links 1-N. At the far end, the receiving communication node130recombines the cells from each link, on a cell-by-cell basis, recreating the original cell stream.

In addition to AIM cells, the IMA protocol provides for periodic transmission of control cells, defined as IMA Control Protocol (ICP) cells, which contain specific control information for the reconstruction of the ATM cell stream at the receiving end. In one embodiment, one ICP cell is transmitted on each communication link 1-N after a predetermined number of data cells.

In one embodiment, the communication links may have different transmission delays resulting in end-to-end differential delay among the communication links. The information contained within the ICP cells needs to be extracted and processed as soon as the ICP cells arrive at the receiving end. However, when differential delay is present, some ICP cells are delayed, and processing of non-compensated ICP cells at the time of arrival introduces missequencing of the information retrieved, which could lead to inaccurate reconstruction of the data stream and loss of ATM data cells.

FIG. 1Bis a block diagram of an example of a communication network. As illustrated inFIG. 1B, two communication nodes150and160enable point-to-point IMA communication through communication links170and180. In one embodiment, the communication nodes150and160are referred to as IMA groups.

In one embodiment, link170has a bidirectional delay of270milliseconds, which corresponds to 1000 ATM cells. Node150has buffered 1000 ATM cells transmitted on link180, which is the fast link. Node160decides to delete link180. A transmitting fink state machine within node160transitions from ACTIVE mode to DELETED mode and filler cells are sent on link180. At the same time, a receiving link state machine within node160also transitions from ACTIVE mode to DELETED mode.

Node150receives an ICP cell on both links170and180indicating the state of both links. Node150processes both ICP cells at the same time, without compensating for the delay existent on link170. A transmitting state machine within node150transitions from ACTIVE mode to DELETED mode and filler cells are sent on link180. At the same time, a receiving state machine within node150transitions from ACTIVE mode to USABLE mode and removes link180from use. As a result, the already buffered ATM cells are dropped.

SUMMARY OF INVENTION

A system and method for processing control cells to prevent event missequencing and data loss are described. At least one control unit is processed to retrieve communication information related to data received along one or more communication links in a network. The at least one control unit is then stored in one or more buffers. Finally, the at least one control unit is further processed to retrieve link information related to the one or more communication links.

DETAILED DESCRIPTION

According to embodiments described herein, a system and method for processing control cells to prevent event missequencing and data loss are described.

FIG. 1Ais a block diagram of one embodiment of a communication network. As illustrated inFIG. 1A, the communication network100includes communication nodes120and130coupled for communication using a set of communication links110. In one embodiment, communication network100enables communication according to an Inverse Multiplexing Asynchronous Transfer Mode (IMA) communication protocol

Communication nodes120and130enable point-to-point IMA communication via the set of communication links110. In one embodiment, each of the communication links 1-N within the set110is a T1 common carrier communication link. Alternatively, each communication link 1-N may be an E1 communication link.

In one embodiment, communication nodes120and130exchange streams of data, for example data units or communication data cells, along the set of communication links110. The aggregate bandwidth of the set of communication links110provides point-to-point communications between communication nodes120and130at an effective data rate of N times the data rate of each of the individual communication links 1-N within the set110. For example, in one embodiment wherein the set of communication links110includes a set of three T1 common carrier communication links, the maximum effective data rate communication between communication nodes120and130is 3×1.544 megabits per second.

In one embodiment, communication node120transfers outbound sequences of communication data cells to communication node130by inverse multiplexing the outbound communication data cells over the set of communication links110. Communication node130receives the inverse multiplexed inbound communication data cells from the communication node120over the communication links 1-N and reconstructs the original sequence of communication data cells. Communication node130compensates for delays associated with each of the communication links 1-N as described in further detail below.

Similarly, in an alternate embodiment, communication node130transmits inverse multiplexed outbound sequences of communication data cells to communication node120over the set of communication links110. Communication node120receives the inverse multiplexed inbound communication data cells over the communication links 1-N and reconstructs the original sequence of communication data cells while compensating for the delays associated with transmission along each of the communication links 1-N.

Communication nodes120and130provide full duplex IMA communication via the set of communication links110. For purposes of illustration, however, only transmission of communication data cells from transmitting communication node120to receiving communication node130is described in further detail below.

In one embodiment, the IMA protocol for the communication network specifies the method of inverse multiplexing of communication data cells over the set of multiple communication links110. Also, the IMA protocol specifies the method of retrieving and multiplexing the data cell stream.

In one embodiment, in addition to the communication data cells, communication node120periodically transmits specific control units, defined as IMA Control Protocol (ICP) cells, which contain information that permits reconstruction of the data stream at the receiving end. At predetermined periods of time, after a predetermined number of communication data cells have been transmitted, communication node120transmits one ICP cell on each communication link 1-N. In one embodiment, the predetermined period of time is configurable and is calculated based on a frame length associated with the transmitted communication data cells. For example, if the predetermined number of data cells to be transmitted is127, then the frame length is128and one ICP cell is transmitted subsequent to the transmission of the127data cells along each communication link. Alternatively, other specified number of data cells may be used in calculating the frame length and the predetermined period of time.

In one embodiment, the transmitting communication node120must align the transmission of frames on all communication links 1-N. This action allows the receiving communication node130to adjust for differential link delays by comparing frame sequence numbers of the frames on each communication link 1-N.

In one embodiment, each ICP cell contains control information related to the communication between communication nodes120and130. In one embodiment, the control information includes communication information and link information. In one embodiment, communication information further includes frame delineation information, for example the starting and ending points of the frame, and delay information related to each communication link 1-N, for example the frame sequence numbers. In one embodiment, link information further includes for example whether a particular communication link is active or inactive, the order of transmission among communication links 1-N, and state machine information, such as the state of any group state machine, link state machine, group traffic state machine, or error state machine involved in the communication.

In one embodiment, receiving communication node130receives the ICP cells transmitted along each communication link within the set of communication links110and uses the control information to determine whether any data loss has occurred and to monitor the health of each communication link involved in the communication. For example, if the frame delineation information specifies that the frame length is 128, and only 124 data cells are received between two ICP cells, then data loss has occurred during transmission.

FIG. 2is a block diagram of one embodiment of a communication node within the communication network100. As illustrated inFIG. 2, receiving communication node130receives communication data cells and ICP cells along the set of communication links110, for example communication links 1 through N. Communication node130further includes a delay compensation buffer module210and a state machine220coupled to the buffer module210. In one embodiment, buffer module210receives and stores the inbound communication data cells and the ICP cells transmitted along communication links 1-N. State machine220monitors link and group state information received along communication links 1-N. The delay compensation buffer module210will be described in further detail below.

FIG. 3is a block diagram of one embodiment of a delay compensation buffer module within the communication node130. As illustrated inFIG. 3, buffer module210includes multiple data buffers320configured to receive communication cells transmitted along communication links 1-N within the set of communication links110. In one embodiment, one data buffer320is provided for each communication link 1-N. InFIG. 3, only three data buffers320are shown, corresponding to three communication links, respectively. However, it is to be understood that N buffers are provided to correspond to each communication link 1-N. Each data buffer320is configured to compensate for the delay existent on the corresponding communication link.

In one embodiment, buffer module210further includes a data processing module340coupled to the data buffers320for processing the stored data cells. Once processed, the data cells are stored in a sequence buffer360or passed to the ATM layer. In one embodiment, data cells are stored and processed in the original transmission sequence.

Buffer module210further includes multiple ICP communication processing modules310and an ICP state processing module350. In one embodiment, one ICP communication processing module310is provided for each communication link 1-N. Each ICP communication processing module310is also coupled to one respective data buffer320. Each ICP communication processing module310receives data cells and ICP cells along the respective communication link and transmits the data cells and ICP cells to the corresponding data buffer320after the ICP cells are processed. The ICP state processing module350is coupled to each data buffer320for further processing the ICP cells and for storing the ICP cells in an ICP buffer370. In one embodiment, the ICP cells are stored in their original transmission sequence.

In one embodiment, each communication link of the set of communication links110incorporates a transmission delay resulting in a differential delay among the communication links As the data cells and the ICP cells are received within buffer module210, they are stored in the order they are received within data buffers320.

In one embodiment, each ICP communication processing module310processes the ICP cells upon arrival to extract communication information, for example the frame delineation information and the delay information associated with the set of communication links110. Using the frame delineation information and the delay information, a delay profile is constructed within the buffer module210to account for the differential delay along the set of communication links110.

Once queued in the delay compensated data buffers320, the data cells are not released until link and state machine information is also retrieved to provide a diagnosis of the communication links and of the state machines.

Subsequent to the processing of the ICP cells to extract the communication information, the ICP state processing module350transfers the ICP cells to the ICP buffer370and stores the ICP cells in their original transmission sequence. As the ICP cells pass through the delay compensation buffer module210, the ICP state processing module350processes the ICP cells to extract the link and state machine information. Because the ICP cells are stored in their original sequence, the link and state machine information is delay compensated and it is obtained in the exact sequence transmitted by the transmitting communication node120. The link and state machine information provides the status of the communication links and of the state machines within the network and prevents loss of the queued data cells.

Once the data cells are released from the data buffers320, the data processing module340uses the delay information within the delay profile to process the data cells and order them in their original sequence of transmission. The ordered data cells are then stored in the sequence buffer360or passed to the ATM layer.

FIG. 4is a flow diagram of one embodiment of a method for processing control cells to prevent event missequencing and data loss. As illustrated inFIG. 4, at processing block410, data cells and ICP cells are received within the buffer module210.

At processing block420, the ICP cells are processed to retrieve frame delineation information and delay information. In one embodiment, a delay profile is constructed based on the delay information retrieved.

At processing block430, data cells and ICP cells are stored within delay compensated data buffers32. Each data buffer320stores both data cells and ICP cells as they arrive along the set of communication links110.

At processing block440, the ICP cells are processed to retrieve link and state machine information and stored in an ICP buffer in their original sequence of transmission.

Finally, at processing block450, data cells are processed and stored within a sequence buffer360. In one embodiment, data cells are processed using the delay profile and are stored in their original transmission sequence within the sequence buffer360. Alternatively, processed data cells are passed to the ATM layer.

It is to be understood that embodiments of this invention may be used as or to support software programs executed upon some form of processing core (such as the CPU of a computer) or otherwise implemented or realized upon or within a machine or computer readable medium. A machine readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine readable medium includes read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.); or any other type of media suitable for storing or transmitting information.