# US 12,224,947 B2 · Link aggregation load balancing apparatus for performing initial allocation through load monitoring and performing dynamic adjustment through flow statistics and associated link aggregation load balancing method

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

- Number: US 12,224,947 B2
- Document ID: US12224947B2
- Status: Granted
- Kind: B2
- Application number: 18/102,772
- Filed: 2023-01-30
- Published: 2024-01-04
- Granted: 2025-02-11
- Earliest claimed: 2022-07-04
- Assignees: Airoha Technology (Suzhou) Limited
- Applicants: Airoha Technology (Suzhou) Limited
- Inventors: Weihua Huang; Fei Yan; Lidong Hu
- Web page: https://patentgrep.com/patent/US12224947B2

## CPC

- H04L 47/41: by acting on aggregated flows or links
- H04L 45/245: {Link aggregation, e.g. trunking}
- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L 47/2441: relying on flow classification, e.g. using integrated services [IntServ]
- H04L 47/801: {Real time traffic}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A link aggregation load balancing apparatus includes a flow monitoring circuit and an initial allocation circuit. The flow monitoring circuit is arranged to monitor flows of a plurality of member ports belonging to a link aggregation group, for performing classification upon the plurality of member ports to generate a member port classification result. The initial allocation circuit is arranged to refer to the member port classification result for selecting a target member port from the plurality of member ports to act as a forward port of a data flow.

## Claims

### Claim 1

A link aggregation load balancing method comprising:
monitoring flows of a plurality of member ports belonging to a link aggregation group, for performing classification upon the plurality of member ports to generate a member port classification result;
referring to the member port classification result for selecting a target member port from the plurality of member ports, and initially allocating the target member port as a forward port of a data flow;
gathering flow statistics of each busy port included in the plurality of member ports, for generating a busy port flow statistics result; and
dynamically adjusting a forward port of a specific data flow according to the busy port flow statistics result;
wherein monitoring the flows of the plurality of member ports belonging to the link aggregation group, for performing classification upon the plurality of member ports to generate the member port classification result comprises:
generating the member port classification result by comparing a flow of each member port included in the plurality of member ports with a threshold value to classify said each member port into an idle port or a busy port; and
referring to the member port classification result to determine whether to trigger gathering the flow statistics of said each busy port included in the plurality of member ports.

### Claim 2 (depends on 1)

The link aggregation load balancing method of claim 1, wherein gathering the flow statistics of said each busy port included in the plurality of member ports is not triggered unless the member port classification result indicates that plurality of member ports belonging to the link aggregation group include at least one idle port and at least one busy port at a same time.

### Claim 3 (depends on 1)

The link aggregation load balancing method of claim 1, wherein referring to the member port classification result for selecting the target member port from the plurality of member ports to act as the forward port of the data flow comprises:
in response to the member port classification result indicating that the plurality of member ports comprise at least one idle port, selecting an idle port with a minimum flow from the at least one idle port to act as the target member port.

### Claim 4 (depends on 1)

The link aggregation load balancing method of claim 1, wherein referring to the member port classification result for selecting the target member port from the plurality of member ports to act as the forward port of the data flow comprises:
in response to the member port classification result indicating that all of the plurality of member ports are busy ports, selecting a busy port with a minimum flow from the plurality of member ports to act as the target member port.

### Claim 5 (depends on 1)

The link aggregation load balancing method of claim 1, wherein gathering the flow statistics of said each busy port included in the plurality of member ports, for generating the busy port flow statistics result comprises:
in response to the member port classification result indicating that the plurality of member ports comprises the at least one busy port and the at least one idle port, gathering the flow statistics of said each busy port included in the plurality of member ports.

### Claim 6 (depends on 5)

The link aggregation load balancing method of claim 5, wherein dynamically adjusting the forward port of the specific data flow according to the busy port flow statistics result comprises:
referring to the busy port flow statistics result to make the forward port of the specific data flow changed from a specific busy port included in the plurality of member ports to a specific idle port included in the plurality of member ports.

### Claim 7 (depends on 6)

The link aggregation load balancing method of claim 6, wherein a maximum sharable flow value of the specific idle port is not smaller than a minimum flow value among all flow values recorded in the busy port flow statistics result, and a flow value of the specific busy port that is recorded in the busy port flow statistics result is not larger than the maximum sharable flow value of the specific idle port.

### Claim 8 (depends on 7)

The link aggregation load balancing method of claim 7, further comprising:
after the forward port of the specific data flow is changed to the specific idle port, updating the flow value of the specific busy port that is recorded in the busy port flow statistics result, and updating the maximum sharable flow value of the specific idle port.

### Claim 9 (depends on 6)

The link aggregation load balancing method of claim 6, wherein the flow value of the specific busy port is a maximum flow value among all flow values recorded in the busy port flow statistics result, and is not larger than the maximum sharable flow value of the specific idle port.

### Claim 10

A link aggregation load balancing apparatus comprising:
a flow monitoring circuit, arranged to monitor flows of a plurality of member ports belonging to a link aggregation group, for performing classification upon the plurality of member ports to generate a member port classification result;
an initial allocation circuit, arranged to refer to the member port classification result for selecting a target member port from the plurality of member ports, and initially allocate the target member port as a forward port of a data flow;
a flow statistics circuit, arranged to gather flow statistics of each busy port included in the plurality of member ports, for generating a busy port flow statistics result; and
a dynamic adjustment circuit, arranged to dynamically adjust a forward port of a specific data flow according to the busy port flow statistics result;
wherein the flow monitoring circuit generates the member port classification result by comparing a flow of each member port included in the plurality of member ports with a threshold value to classify said each member port into an idle port or a busy port; and the flow monitoring circuit refers to the member port classification result to determine whether to trigger the flow statistics circuit to gather the flow statistics of said each busy port included in the plurality of member ports.

### Claim 11 (depends on 10)

The link aggregation load balancing apparatus of claim 10, wherein the flow monitoring circuit does not trigger the flow statistics circuit to gather the flow statistics of said each busy port included in the plurality of member ports unless the member port classification result indicates that plurality of member ports belonging to the link aggregation group include at least one idle port and at least one busy port at a same time.

### Claim 12 (depends on 10)

The link aggregation load balancing apparatus of claim 10, wherein in response to the member port classification result indicating that the plurality of member ports comprise at least one idle port, the initial allocation circuit selects an idle port with a minimum flow from the at least one idle port to act as the target member port.

### Claim 13 (depends on 10)

The link aggregation load balancing apparatus of claim 10, wherein in response to the member port classification result indicating that all of the plurality of member ports are busy ports, the initial allocation circuit selects a busy port with a minimum flow from the plurality of member ports to act as the target member port.

### Claim 14 (depends on 10)

The link aggregation load balancing apparatus of claim 10, wherein in response to the member port classification result indicating that the plurality of member ports comprises the at least one busy port and the at least one idle port, the flow statistics circuit gathers the flow statistics of said each busy port included in the plurality of member ports.

### Claim 15 (depends on 14)

The link aggregation load balancing apparatus of claim 14, wherein the dynamic adjustment circuit refers to the busy port flow statistics result to make the forward port of the specific data flow changed from a specific busy port included in the plurality of member ports to a specific idle port included in the plurality of member ports.

### Claim 16 (depends on 15)

The link aggregation load balancing apparatus of claim 15, wherein the dynamic adjustment circuit further calculates a maximum sharable flow value of the specific idle port, the maximum sharable flow value of the specific idle port is not smaller than a minimum flow value among all flow values recorded in the busy port flow statistics result, and a flow value of the specific busy port that is recorded in the busy port flow statistics result is not larger than the maximum sharable flow value of the specific idle port.

### Claim 17 (depends on 16)

The link aggregation load balancing apparatus of claim 16, wherein after the forward port of the specific data flow is changed to the specific idle port, the dynamic adjustment circuit updates the flow value of the specific busy port that is recorded in the busy port flow statistics result, and updates the maximum sharable flow value of the specific idle port.

### Claim 18 (depends on 15)

The link aggregation load balancing apparatus of claim 15, wherein the flow value of the specific busy port is a maximum flow value among all flow values recorded in the busy port flow statistics result, and is not larger than the maximum sharable flow value of the specific idle port.
