EP-4738784-A1 - NETWORK INTERFACE DEVICES FOR USER-DEFINED CONGESTION CONTROL
Abstract
Example methods and network interface devices for congestion control are described. In one example, a network interface device may include a first processing layer and a second processing layer. The first processing layer may receive an event notification from the second processing layer. In response to determination that congestion control is required based on the event notification, the first processing layer may determine an adjustment to a packet forwarding parameter by applying a congestion control algorithm. The congestion control algorithm may be one of multiple congestion control algorithms that the first processing layer is programmable to apply. The first processing layer may generate and send an instruction to the second processing layer to perform the adjustment. Based on the instruction, the second processing layer may configure a component to control packet forwarding towards a physical network based on the second value of the packet forwarding parameter.
Inventors
- Wai, Eddie Ki-Man
- SHAH, HEMAL VINODCHANDRA
Assignees
- Avago Technologies International Sales Pte. Limited
Dates
- Publication Date
- 20260506
- Application Date
- 20251029
Claims (9)
- A method for a network interface device to perform congestion control, wherein the network interface device includes a first processing layer and a second processing layer and the method comprises: receiving, by the first processing layer, an event notification from the second processing layer; in response to the first processing layer determining that congestion control is required based on the event notification, determining, by the first processing layer, an adjustment to a packet forwarding parameter from a first value to a second value by applying a congestion control algorithm, wherein the congestion control algorithm is one of multiple congestion control algorithms that the first processing layer is programmable to apply; generating and sending, by the first processing layer, an instruction to the second processing layer to perform the adjustment; and based on the instruction, configure, by the second processing layer, a component of the network interface device to control packet forwarding towards a physical network based on the second value of the packet forwarding parameter.
- The method of claim 1, wherein determining that congestion control is required comprises: determining, by the first processing layer, metric information associated with packet forwarding based on the event notification indicating that a probe response has been received via the second processing layer; and determining, by the first processing layer, that congestion control is required based on the metric information.
- The method of claim 2, wherein the method further comprises: prior to receiving the event notification, determining, by the first processing layer, whether a probe packet is required based on one or more user-defined rules that the first processing layer is programmable to apply; and in response to determination that a probe packet is required, generating and sending, by the first processing layer, a request to the second processing layer to send the probe packet towards a receptor that is capable of sending the probe response.
- The method of any one of the claims 1 to 3, wherein determining the adjustment comprises: determining, by the first processing layer, the adjustment to the packet forwarding parameter in the form of a transmission rate, wherein the congestion control algorithm is a rate-based congestion control algorithm.
- The method of any one of the claims 1 to 4, wherein determining the adjustment comprises: determining, by the first processing layer, the adjustment to the packet forwarding parameter in the form of a congestion window size, wherein the congestion control algorithm is a window-based congestion control algorithm.
- The method of any one of the claims 1 to 5, wherein determining that congestion control is required comprises: determining, by the first processing layer, that congestion control is required based on the event notification indicating that the second processing layer has detected at least one of the following events: a retransmission timeout (RTO) event, a sequence error negative acknowledgement (NAK) event, and a congestion notification point (CNP) event.
- The method of any one of the claims 1 to 6, wherein configuring the component comprises: configuring, by the second processing layer, the component in the form of a hardware scheduler, the second processing layer acting as an intermediary between the first processing layer and the hardware scheduler.
- A network interface device, comprising: a processor; and a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to control and/or carry out a method as set forth in any one of the claims 1 to 7.
- A non-transitory computer-readable storage medium that includes a set of instructions which, in response to execution by a processor of a network interface device, cause the processor to control and/or carry out a method as set forth in any one of the claims 1 to 7.
Description
BACKGROUND Network congestion generally occurs when traffic volume exceeds the capacity of a network environment, leading to reduced data transfer speeds, increased latency and potential packet loss, etc. In practice, controlling network congestion may be challenging due to various factors. First, the dynamic and unpredictable nature of network traffic in different network environments may make it difficult to anticipate and manage congestion effectively. Also, a diverse range of applications, each having their own bandwidth requirements, often share a network environment. For example, bandwidth-intensive applications, such as video streaming, online gaming and distributed training of artificial intelligence (AI) models, may cause traffic spikes and exacerbate network congestion. It is therefore desirable to implement congestion control to improve network performance. SUMMARY According to examples of the present disclosure, network interface devices may be configured to perform congestion control based on any suitable user-defined congestion control algorithm(s). In one aspect, examples of the present disclosure provide a network interface device (see 103 in FIG. 1) that includes a processor and a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to implement a first processing layer and a second processing layer to perform congestion control (see 110-120 in FIG. 1). In one example, the first processing layer may receive an event notification from the second processing layer. In response to determination that congestion control is required based on the event notification, the first processing layer may determine an adjustment to a packet forwarding parameter by applying a congestion control algorithm. The congestion control algorithm may be one of multiple congestion control algorithms that the first processing layer is programmable to apply. The first processing layer may generate and send an instruction to the second processing layer to perform the adjustment. Based on the instruction, the second processing layer may adjust the packet forwarding parameter from a first value to a second value, particularly by configuring a component (e.g., hardware scheduler) of the network interface device to control packet forwarding towards a physical network based on the second value. See 140-160 in FIG. 1. Another aspect may include a non-transitory computer-readable storage medium that includes a set of instructions which, in response to execution by a processor of a network interface device, cause the processor to implement a first processing layer and a second processing layer to perform congestion control according to examples of the present disclosure. A further aspect may include a method for a network interface device that includes a first processing layer and a second processing layer to perform congestion control. Yet a further aspect may include a computer system that includes a network interface device according to examples of the present disclosure. BRIEF DESCRIPTION OF DRAWINGS FIG. 1 is a schematic diagram illustrating an example network interface device to perform user-defined congestion control in a network environment.FIG. 2 is a flowchart of an example process for a network interface device to perform user-defined congestion control in a network environment.FIG. 3 is a flowchart of an example detailed process for a network interface device to perform user-defined congestion control in a network environment.FIG. 4A is a schematic diagram illustrating a first example programming of the first processing layer in FIG. 1.FIG. 4B is a schematic diagram illustrating a second example programming of the first processing layer in FIG. 1.FIG. 5 is a schematic diagram illustrating a first processing layer applying user-defined rule(s) to determine whether to send a probe packet.FIG. 6 is a schematic diagram illustrating an example rate-based congestion control algorithm that a first processing layer is programmable to apply.FIG. 7 is a schematic diagram illustrating an example window-based congestion control algorithm that a first processing layer is programmable to apply.FIG. 8 is a schematic diagram illustrating an example of user-defined congestion control algorithm that a first processing layer is programmable to apply.FIG. 9 a schematic diagram illustrating an example distributed training environment in which a network interface device may be deployed to perform congestion control.FIG. 10 is a schematic diagram illustrating an example software-defined networking (SDN) environment. DETAILED DESCRIPTION In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not meant to be l