# US 10,122,641 B1 · Systems and methods for bonding multiple data links with differential delay

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,122,641 B1
- Document ID: US10122641B1
- Status: Granted
- Kind: B1
- Application number: 15/165,966
- Filed: 2016-05-26
- Granted: 2018-11-06
- Earliest claimed: 2016-05-26
- Assignees: Adtran, Inc.
- Applicants: ADTRAN, Inc.
- Inventors: Martin Kuipers; Richard L. Goodson; Fred Chu
- Web page: https://patentgrep.com/patent/US10122641B1

## CPC

- H04L 47/34: ensuring sequence integrity, e.g. using sequence numbers
- H04B 3/46: Monitoring; Testing
- H04L 1/08: by repeating transmission, e.g. Verdan system {(H04L1/1858 and H04L1/189 take precedence)}
- H04L 1/1607: Details of the supervisory signal
- H04L 1/1867: Arrangements specially adapted for the transmitter end
- H04L 12/2863: {Arrangements for combining access network resources elements, e.g. channel bonding (modem pooling H04L25/14; routing of packets H04L45/00; multichannel or multilink protocols H04L69/14)}
- H04L 12/2878: {Access multiplexer, e.g. DSLAM (generic distributed time multiplexers, e.g. TDM/TDMA H04J3/1694)}
- H04L 12/2892: {characterised by the access multiplexer architecture}
- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L 49/9057: Arrangements for supporting packet reassembly or resequencing
- Y02D 30/50: in wire-line communication networks, e.g. low power modes or reduced link rate
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04B: TRANSMISSION
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

An aggregation module receives a data packet. A bonding engine of the aggregation module breaks the data packet into fragments, and each fragment is part of a bonding group that is assigned a sequence identifier that allows the data packet to be reconstructed from the fragments. Each fragment is provided to one of a plurality of transmitters to be transmitted over a data link. When a noise event occurs on one of the data links, the fragments stored at the transmitter associated with that data link are transferred to another transmitter within the same bonding group for transmission over a different data link.

## Claims

### Claim 1

An access multiplexer system, comprising:
a bonding engine configured to receive a data packet and generate a plurality of fragments for the data packet, wherein each fragment includes a sequence identifier that allows the data packet to be reconstructed from the plurality of fragments, and wherein the bonding engine associates each fragment with a respective one of a plurality of data links;
a first transmitter associated with a first data link of the plurality of data links, the first transmitter having a first buffer, wherein the first transmitter is configured to (a) receive a first subset of the plurality of fragments and (b) store the first subset of fragments in the first buffer; and
a second transmitter associated with a second data link of the plurality of data links, the second transmitter having a second buffer, wherein the second transmitter is configured to (a) receive a second subset of the plurality of fragments, (b) store the second subset of fragments in the second buffer, and (c) transmit the second subset of fragments over the second data link,
wherein one or more of the bonding engine and the first transmitter identifies a noise event associated with the first data link, and
wherein the first subset of fragments is transferred from the first buffer to the second buffer based on the identification of the noise event.

### Claim 2 (depends on 1)

The system of claim 1, wherein the noise event is identified based on the failure of the first transmitter to receive an acknowledgment for a threshold number of retransmissions.

### Claim 3 (depends on 1)

The system of claim 1, wherein the noise event is identified based on the failure of the first transmitter to receive an acknowledgment for a threshold number of transmissions over a threshold time period.

### Claim 4 (depends on 1)

The system of claim 1, wherein the noise event is identified based on the bonding engine receiving an indication that the first transmitter is unable to accept additional fragments.

### Claim 5 (depends on 1)

The system of claim 1, wherein the noise event is identified based on the first transmitter measuring an aberrant signal on the first data link.

### Claim 6 (depends on 1)

The system of claim 1, wherein the first transmitter and second transmitter are located on the same digital signal processor, and wherein the first subset of fragments is directly transferred from the first buffer to the second buffer.

### Claim 7 (depends on 1)

The system of claim 1, wherein the second buffers a third subset of fragments that are not associated with the data packet prior to transfer of the first subset of fragments from the first buffer to the second buffer, and
wherein the second transmitter is configured to prioritize the first subset of fragments over the third subset of fragments such that the first subset of fragments are transmitted over the second data link prior to the third subset of fragments being transmitted over the second data link.

### Claim 8 (depends on 1)

The system of claim 1, wherein the noise event is a single high impulse noise event.

### Claim 9

A method comprising:
receiving a data packet;
generating a plurality of fragments for the data packet, wherein each fragment includes a sequence identifier that allows the data packet to be reconstructed from the plurality of fragments;
associating each fragment with one of a plurality of data links;
providing a first subset of the plurality of fragments to a first transmitter comprising a first buffer, wherein the first transmitter is associated with a first data link of the plurality of data links;
storing the first subset of fragments in the first buffer of the first transmitter;
providing a second subset of the plurality of fragments to a second transmitter comprising a second buffer, wherein the second transmitter is associated with a second data link of the plurality of data links;
storing the second subset of fragments in the second buffer of the second transmitter;
identifying a noise event associated with the first data link; and
transferring the first subset of fragments from the first buffer to the second buffer based on the identification of the noise event.

### Claim 10 (depends on 9)

The method of claim 9, wherein identifying the noise event comprises failing to receive an acknowledgment over the first data link for a threshold number of retransmissions.

### Claim 11 (depends on 9)

The method of claim 9, wherein identifying the noise event comprises failing to receive an acknowledgment over the first data link for a threshold number of transmissions over a threshold time period.

### Claim 12 (depends on 9)

The method of claim 9, wherein identifying the noise event comprises receiving an indication that a transmitter associated with the first data link is unable to accept additional fragments.

### Claim 13 (depends on 9)

The method of claim 9, wherein identifying the noise event comprises receiving an indication that the first transmitter has measured an aberrant signal on the first data link.

### Claim 14 (depends on 9)

The method of claim 9, wherein the first buffer and the second buffer are located on the same digital signal processor.

### Claim 15 (depends on 9)

The method of claim 9, further comprising:
buffering a third subset of fragments in the second buffer prior to the transferring;
prioritizing the first subset of fragments over the third subset of fragments; and
transmitting, based on the prioritizing, the first subset of fragments over the second data link prior to transmitting the third subset of fragments over the second data link.

### Claim 16 (depends on 9)

The method of claim 9, wherein the noise event is a single high impulse noise event.

### Claim 17

An access multiplexer system comprising:
a switch module; and
a plurality of line cards, each of the plurality of line cards comprising:
(a) a bonding engine configured to receive, from the switch module, a data packet and to generate a plurality of fragments from the data packet, wherein each fragment is associated with a respective one of a plurality of data links; and
(b) one or more transmitters, respectively associated with a data link of the plurality of data links, in a 1:1 correspondence, wherein each transmitter includes a respective buffer configured to store a respective subset of the plurality of fragments,
wherein a first line card of the plurality of line cards has a first transmitter associated with a first data link, the first transmitter having a first buffer that stores a first subset of fragments,
wherein a second line card of the plurality of line cards has a second transmitter associated with a second data link, the second data link being different than the first data link, and the second transmitter having a second buffer that stores a second subset of fragments, and
wherein, in response to the identification of a noise event associated with the first data link, the bonding engine of the first line card transfers the first subset of fragments from the first buffer of the first line card to the second buffer of the second line card.

### Claim 18 (depends on 17)

The access multiplexer system of claim 17, further comprising:
a backplane connected to the switch module, the backplane being interfaced with each of the plurality of line cards,
wherein the switch module transmits the data packet to the first line card via the backplane, based on information in the data packet's header, and
wherein the first subset of fragments is transferred, by the first bonding engine, from the first buffer, via the backplane, to the second bonding engine, which stores the first subset of fragments in the second buffer.

### Claim 19

A method comprising:
receiving a data packet;
generating a plurality of fragments for the data packet, wherein each fragment includes a sequence identifier that allows the data packet to be reconstructed from the plurality of fragments;
transmitting a first subset of the plurality of fragments to a first transceiver unit having a first buffer for buffering fragments to be transmitted by the first transceiver unit across a first data link coupled to the first transceiver unit;
storing the first subset of fragments in the first buffer;
transmitting a second subset of the plurality of fragments to a second transceiver unit having a second buffer for buffering fragments to be transmitted by the second transceiver unit across a second data link coupled to and terminated by the second transceiver unit;
storing the second subset of fragments in the second buffer;
identifying a noise event associated with the first data link; and
transferring the first subset of fragments from the first buffer to the second buffer based on the identification of the noise event.

### Claim 20 (depends on 19)

The method of claim 19, further comprising:
buffering a third subset of fragments in the second buffer prior to the transferring;
prioritizing the first subset of fragments over the third subset of fragments; and
transmitting, based on the prioritizing, the first subset of fragments over the second data link prior to transmitting the third subset of fragments over the second data link.

### Claim 21 (depends on 19)

The method of claim 19, wherein the first transceiver unit resides on a first line card, and wherein the second transceiver unit resides on a second line card.
