Patent ID: 11916790
Assignee: MELLANOX TECHNOLOGIES, LTD.
Field: Digital communication (Electrical engineering)
Classification: CPC H | IPC H

Claim 10:
11. A network adapter, comprising: a host interface, which is configured to be connected through a direct bus connection to a host that runs multiple workloads; a network interface, which is configured to communicate packets over a network; a memory configured to hold (i) a shared buffer for the multiple workloads and (ii) multiple queues allocated to the multiple workloads; and packet processing circuitry, coupled between the host interface and the network interface and configured to: receive from the network interface data packets destined to the multiple workloads; store payloads of data packets destined to the multiple workloads in the shared buffer, distribute headers of the data packets whose payloads are stored in the shared buffer to the multiple queues, and serve the data packets to the workloads by applying scheduling among the multiple queues; detect congestion in the data packets destined to a given workload among the multiple workloads; and in response to the detected congestion, decide on a congestion mitigation action to take in order to mitigate the congestion, from a plurality of congestion mitigation actions the packet processing circuitry is configured to apply, and apply the decided action to data packets destined to the given workload, while retaining uninterrupted processing of the data packets destined to the other workloads, wherein the plurality of congestion mitigation actions the packet processing circuitry is configured to apply comprise: sending a congestion notification to the given host processor, causing the host to send a congestion notification packet to the network, and directly sending a congestion notification packet to the network, and wherein the packet processing circuitry does not decide on sending a congestion notification to the given host processor, if the host does not support sending a congestion notification packet, wherein the packet processing circuitry sets separate thresholds for sending a congestion notification to the given host processor and for directly sending a congestion notification packet to the network, the separate thresholds comprising different values.