Methods for aggregating cells transported in a bonded group
First Claim
1. A method of aggregating cells in a communication system employing asynchronous transfer mode (ATM) bonding, wherein a stream of cells is split among a plurality of member links in a bonding group and sequence numbers are attached to cell headers, comprising the steps of:
- a) based on the attached sequence numbers, writing received cells from member links into a current aggregation buffer at addresses specified by the sequence numbers, wherein a size of the current aggregation buffer is greater than or equal to L1+L2, in which and and a profile of the data rates of the member links of the bonding group is given by {R1, R2, . . . , Rm}, a data rate ratio profile normalized by R1 is given by {1, r2, . . . , rm}, and a maximum differential delay is given by d;
b) if a location at a sequence number in the current aggregation buffer is filled, writing a received cell into a next aggregation buffer at an address specified by the sequence number, wherein a size of the next aggregation buffer is greater than or equal to L1+L2;
c) initializing a write pointer to point to a predetermined location in the current aggregation buffer;
d) examining a location in at least one of the current and next aggregation buffers at an address specified by the write pointer, and if the location examined is not empty, reading out a cell stored at the location examined to a reconstructed cell stream, marking the location examined as empty, and incrementing the write pointer;
e) repeating step d) until the write pointer points to an empty location;
f) reading out the current aggregation buffer when the next aggregation buffer'"'"'s location X, wherein X≧
L2, is filled, and subsequently swapping the current and next aggregation buffers; and
if a location in the current aggregation buffer is left unfilled when the buffer is read out, reading out the cells in the buffer starting at the write pointer.
6 Assignments
0 Petitions
Accused Products
Abstract
Transporting an asynchronous transfer mode (ATM) stream through a bonding group involves properly splitting the stream into sub-streams to fit into individual member bearer'"'"'s bandwidth at the transmit end, and properly merging the sub-streams to reconstruct the stream at the receive end. At the receive end, the cells can be put together in the proper sequence in a process of cell aggregation based on attached sequence numbers. Once the stream is re-constructed, the attached sequence numbers are replaced by the original field contents of the ATM headers. Methods of cell aggregation are described that assist the bonding scheme in working efficiently.
32 Citations
9 Claims
-
1. A method of aggregating cells in a communication system employing asynchronous transfer mode (ATM) bonding, wherein a stream of cells is split among a plurality of member links in a bonding group and sequence numbers are attached to cell headers, comprising the steps of:
-
a) based on the attached sequence numbers, writing received cells from member links into a current aggregation buffer at addresses specified by the sequence numbers, wherein a size of the current aggregation buffer is greater than or equal to L1+L2, in which and and a profile of the data rates of the member links of the bonding group is given by {R1, R2, . . . , Rm}, a data rate ratio profile normalized by R1 is given by {1, r2, . . . , rm}, and a maximum differential delay is given by d;
b) if a location at a sequence number in the current aggregation buffer is filled, writing a received cell into a next aggregation buffer at an address specified by the sequence number, wherein a size of the next aggregation buffer is greater than or equal to L1+L2;
c) initializing a write pointer to point to a predetermined location in the current aggregation buffer;
d) examining a location in at least one of the current and next aggregation buffers at an address specified by the write pointer, and if the location examined is not empty, reading out a cell stored at the location examined to a reconstructed cell stream, marking the location examined as empty, and incrementing the write pointer;
e) repeating step d) until the write pointer points to an empty location;
f) reading out the current aggregation buffer when the next aggregation buffer'"'"'s location X, wherein X≧
L2, is filled, and subsequently swapping the current and next aggregation buffers; and
if a location in the current aggregation buffer is left unfilled when the buffer is read out, reading out the cells in the buffer starting at the write pointer. - View Dependent Claims (2, 3, 4)
-
-
5. A method of aggregating cells in a communication system employing asynchronous transfer mode (ATM) bonding, wherein a stream of cells is split among a plurality N of member links in a bonding group and sequence numbers are attached to cell headers, comprising the steps of:
-
a) based on the attached sequence numbers, writing received cells from member links into a circular aggregation buffer at addresses specified by the sequence numbers, wherein a size of the current aggregation buffer is greater than L1+L2, in which and and a profile of the data rates of the member links of the bonding group is given by {R1, R2, . . . , Rm}, a data rate ratio profile normalized by R1 is given by {1, r2, . . . , rm}, and a maximum differential delay is given by d;
b) using a write pointer to mark locations of received cells and marking the locations written to as full;
c) tracking locations of next cells to be read out of the buffer with a read pointer, whereby when a cell is received with a sequence number corresponding to the read pointer, that cell is read out of the buffer, the buffer location is marked as empty, and the read pointer is incremented;
d) repeating step c) until the read pointer points to a buffer location marked as empty;
e) if a difference between the write pointer and the read pointer modulo Lseq is larger than L1+L2, either skipping the cell at the current read pointer or reading out the cell at the current read pointer as an empty cell, incrementing the read pointer, examining the buffer at the location indicated by the incremented read pointer, and reading out the cell if the buffer is full at that location, wherein Lseq=2N; and
f) repeating step e) until an empty buffer location is encountered. - View Dependent Claims (6, 7)
-
-
8. A method of aggregating cells in a communication system employing asynchronous transfer mode (ATM) bonding, wherein a stream of cells is split among a plurality of member links in a bonding group and sequence numbers are attached to cell headers, comprising the steps of:
-
a) writing cells received from member links into respective circular buffers;
b) for each circular buffer, maintaining a write pointer and a read pointer, the write pointer being updated when a new cell is received and the read pointer being updated when a cell is read out;
c) comparing an expected sequence number against sequence numbers of cells pointed to by the read pointers, and maintaining a smallest sequence number currently available among all buffers;
d) if the comparing finds a match, reading out the indicated cell, marking the buffer location as empty, and updating the read pointer, the expected sequence number, and the smallest available sequence number;
e) repeating step d) until no match can be found or all buffers are empty;
f) when none of the buffers are empty and the smallest available sequence number is larger than the expected sequence number, updating the expected sequence number to the smallest sequence number;
g) if no match is found in step d) and some buffers are empty, activating a timer; and
h) if a match is found before the timer expires, resetting the timer, and otherwise updating the expected sequence number to the smallest sequence number. - View Dependent Claims (9)
-
Specification