CPC H04L 47/12 (2013.01) [H04L 47/10 (2013.01); H04L 47/24 (2013.01); H04L 47/30 (2013.01); H04L 47/32 (2013.01); H04L 47/326 (2013.01); H04L 49/3045 (2013.01); H04L 47/26 (2013.01); H04L 47/29 (2013.01)] | 18 Claims |
1. A network adapter, comprising: a host interface, which is configured to be connected through a direct bus connection to multiple host processors; a network interface, which is configured to communicate packets over a network; a memory configured to hold (i) a shared buffer for the multiple host processors and (ii) multiple queues allocated to the multiple host processors; 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 host processors; store payloads of data packets destined to the multiple host processors 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 host processors by applying scheduling among the multiple queues; detect congestion in the data packets destined to a given host processor among the host processors; 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 host processor, while retaining uninterrupted processing of the data packets destined to the other host processors, 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 given host processor 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.
|