# US 12,184,550 B2 · Flow rate control method and apparatus

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

- Number: US 12,184,550 B2
- Document ID: US12184550B2
- Status: Granted
- Kind: B2
- Application number: 17/573,909
- Filed: 2022-01-12
- Published: 2022-05-05
- Granted: 2024-12-31
- Earliest claimed: 2019-07-18
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Yanzhu Lin; Heyang Liu; Hewen Zheng; Lei Han; Jinfeng Yan; Peiying Tao
- Web page: https://patentgrep.com/patent/US12184550B2

## CPC

- H04L 47/10: Flow control; Congestion control
- H04L 45/74: Address processing for routing
- H04L 47/11: Identifying congestion
- H04L 47/115: {using a dedicated packet}
- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L 47/25: with rate being modified by the source upon detecting a change of network conditions
- H04L 47/26: using explicit feedback to the source, e.g. choke packets
- H04L 45/38: {Flow based routing}
- H04L 47/621: {Individual queue per connection or flow, e.g. per VC}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

This application provides a flow rate control method and apparatus. The flow rate control method in this application includes: receiving N explicit congestion notification packets CNPs from a first device, where the N CNPs correspond to a first data flow, and N is a natural number; and sending M CNPs to a second device based on the N CNPs, where the M CNPs correspond to the first data flow, and M is an integer greater than N. This application resolves a problem that rate increase processing is still performed on a data flow when the data flow is congested.

## Claims

### Claim 1

A flow rate control method for a network device, comprising:
receiving N explicit congestion notification packets (CNPs) from a first device, wherein the N CNPs correspond to a first data flow, and N is a natural number; and
sending M CNPs to a second device within a first period based on the N CNPs, wherein the M CNPs correspond to the first data flow, and M is an integer greater than N;
wherein the first period is determined according to a second period in which the second device increases the sending rate of the first data flow.

### Claim 2 (depends on 1)

The method according to claim 1, wherein at least one CNP is used to indicate that the first data flow is congested.

### Claim 3 (depends on 1)

The method according to claim 1, wherein at least one CNP comprises a first destination address, a first source address, and a first destination queue pair identifier; and a packet in the first data flow comprises a second destination address, a second source address, and a second destination queue pair identifier, wherein the first destination address is the same as the second source address, and the first source address is the same as the second destination address.

### Claim 4 (depends on 3)

The method according to claim 3, wherein the sending M CNPs to a second device based on the N CNPs comprises:
monitoring, within a current period, whether one of the CNPs from the first device is received; and
if one of the CNPs from the first device is not received within the current period, creating an auxiliary CNP, and sending the auxiliary CNP to the second device, wherein the auxiliary CNP is created by the network device when no CNP from the first device is received within the current period.

### Claim 5 (depends on 4)

The method according to claim 4, wherein that the CNP from the first device is not received means that a value of a CNP passing marker in a flow table entry of the first data flow is a first value.

### Claim 6 (depends on 5)

The method according to claim 5, further comprising:
monitoring, within the current period, whether the CNP from the first device is received; and
if the CNP from the first device is received, setting the value of the CNP passing marker in the flow table entry of the first data flow to a second value, and setting the value of the CNP passing marker to the first value when the current period ends.

### Claim 7 (depends on 3)

The method according to claim 3, wherein the sending M CNPs to a second device based on the N CNPs comprises:
upon receiving the first CNP in the N CNPs, resetting and starting a timer each time one CNP is received; and when a duration of the timer exceeds a specified threshold, if a next CNP from the first device has not been received, creating an auxiliary CNP, and sending the auxiliary CNP to the second device, wherein the auxiliary CNP is created by the network device when no CNP from the first device is received within the current period.

### Claim 8 (depends on 7)

The method according to claim 7, further comprising:
resetting and starting the timer each time the auxiliary CNP is sent to the second device; and when the duration of the timer exceeds the specified threshold again, if a next CNP from the first device is not received, creating another auxiliary CNP, and sending the another auxiliary CNP to the second device.

### Claim 9 (depends on 1)

The method according to claim 1, wherein the sending M CNPs to a second device based on the N CNPs comprises:
after a first queue enters a congested state, sending the M CNPs to the second device based on the N CNPs, wherein the first queue is a queue comprising the first data flow in a plurality of egress sending queues.

### Claim 10

A flow rate control method for a first device, comprising:
receiving a first data flow from a second device, wherein the first data flow comprises N congestion encountered (CE) packets, and N is a natural number; and
sending M explicit congestion notification packets (CNPs) to the second device based on the N CE packets, wherein the M CNPs correspond to the first data flow, and M is an integer greater than N;
wherein the first period is determined according to a second period in which the second device increases the sending rate of the first data flow.

### Claim 11 (depends on 10)

The method according to claim 10, wherein at least one CNP is used to indicate that the first data flow is congested.

### Claim 12 (depends on 10)

The method according to claim 10, wherein at least one CNP comprises a first destination address, a first source address, and a first destination queue pair identifier; and a packet in the first data flow comprises a second destination address, a second source address, and a second destination queue pair identifier, wherein the first destination address is the same as the second source address, and the first source address is the same as the second destination address.

### Claim 13 (depends on 12)

The method according to claim 12, wherein the sending M CNPs to the second device based on the N CE packets comprises:
monitoring, within a current period, whether the CNP is sent; and
if the CNP is not sent, creating an auxiliary CNP, and sending the auxiliary CNP to the second device, wherein the auxiliary CNP is created by the first device when no CNP is sent within the current period.

### Claim 14

A flow rate control apparatus, comprising:
one or more processors; and
a non-transitory computer-readable memory storing a program to be executed by the one or more processors, the program including instructions that, when executed by the one or more processors, cause the apparatus to:
receive N explicit congestion notification packets (CNPs) from a first device, wherein the N CNPs correspond to a first data flow, and N is a natural number; and
send M CNPs to a second device according to a first period based on the N CNPs, wherein the M CNPs correspond to the first data flow, and M is an integer greater than N;
wherein the first period is determined according to a second period in which the second device increases the sending rate of the first data flow.

### Claim 15 (depends on 14)

The apparatus according to claim 14, wherein at least one CNP is used to indicate that the first data flow is congested.

### Claim 16 (depends on 14)

The apparatus according to claim 14, wherein at least one CNP comprises a first destination address, a first source address, and a first destination queue pair identifier; and a packet in the first data flow comprises a second destination address, a second source address, and a second destination queue pair identifier, wherein the first destination address is the same as the second source address, and the first source address is the same as the second destination address.

### Claim 17 (depends on 14)

The apparatus according to claim 14, wherein the sending M CNPs to a second device based on the N CNPs comprises:
monitoring, within a current period, whether one of the CNPs from the first device is received; and
if one of the CNPs from the first device is not received within the current period, creating an auxiliary CNP, and sending the auxiliary CNP to the second device, wherein the auxiliary CNP is created by the apparatus when no CNP from the first device is received within the current period.
