Techniques to provide recovery receive queues for flooded queues
First Claim
Patent Images
1. A method comprising:
- selectively identifying at least one flooded receive queue among multiple receive queues in response to a determination that more than a predefined number of ingress packets have been dropped instead of stored in a packet buffer, wherein the packet buffer is capable of receiving packets from a network medium;
selectively modifying an indirection table to route ingress packets destined to the at least one flooded receive queue to at least one non-flooded recovery receive queue;
selectively transferring an ingress packet to a non-flooded recovery receive queue based in part on the modified indirection table; and
selectively dropping the transferred ingress packet from the non-flooded recovery receive queue in response to a determination that the ingress packet was originally to be routed to the flooded receive queue.
1 Assignment
0 Petitions
Accused Products
Abstract
In a receive-side scaling compatible environment, techniques to provide at least one recovery receive queue for any receive queue that is full or transferring traffic at too slow a rate.
27 Citations
25 Claims
-
1. A method comprising:
-
selectively identifying at least one flooded receive queue among multiple receive queues in response to a determination that more than a predefined number of ingress packets have been dropped instead of stored in a packet buffer, wherein the packet buffer is capable of receiving packets from a network medium; selectively modifying an indirection table to route ingress packets destined to the at least one flooded receive queue to at least one non-flooded recovery receive queue; selectively transferring an ingress packet to a non-flooded recovery receive queue based in part on the modified indirection table; and selectively dropping the transferred ingress packet from the non-flooded recovery receive queue in response to a determination that the ingress packet was originally to be routed to the flooded receive queue. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An apparatus comprising:
-
a packet buffer to store ingress packets from a network medium; multiple receive queues; a hash calculator to determine a hash value associated with each of the ingress packets provided from the packet buffer; an indirection table to identify a receive queue among the multiple receive queues in which to store an ingress packet based at least on an associated hash value; logic to selectively determine if any of the multiple receive queues are flooded in response to the packet buffer dropping more than a predetermined amount of ingress packets; logic to selectively modify the indirection table to route packets to at least one non-flooded recovery receive queue among the multiple receive queues in response to a receive queue determined as flooded; and logic to selectively transfer an ingress packet to a non-flooded recovery receive queue based in part on the modified indirection table and logic to selectively drop the ingress packet from the non-flooded recovery queue in response to a determination that the ingress packet was originally to be routed to the flooded receive queue. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer-readable medium comprising instructions stored thereon which when executed by a machine cause the machine to:
-
selectively identify at least one flooded receive queue among multiple receive queues in response to a determination that more than a predefined number of ingress packets have been dropped by a packet buffer, wherein the packet buffer is capable of receiving packets from a network medium; selectively modify an indirection table to route ingress packets destined to the at least one flooded receive queue to at least one non-flooded recovery receive queue; selectively transfer an ingress packet to a non-flooded recovery receive queue based in part on the modified indirection table; and selectively drop the transferred ingress packet from the non-flooded recovery receive queue in response to a determination that the ingress packet was originally to be routed to the flooded receive queue. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A system comprising:
-
a host system comprising a plurality of processors and a memory device; a parallel bus; a chipset to communicatively couple the host system to the parallel bus; a network interface communicatively coupled to the parallel bus and comprising; a packet buffer to store ingress packets from a network medium, multiple receive queues, a hash calculator to determine a hash value associated with each of the ingress packets provided from the packet buffer, an indirection table to identify a receive queue among the multiple receive queues in which to store an ingress packet based at least on an associated hash value, logic to selectively determine if any of the multiple receive queues are flooded in response to the packet buffer dropping more than a predetermined amount of ingress packets, and logic to selectively modify the indirection table to route packets to at least one non-flooded recovery receive queue among the multiple receive queues in response to a receive queue determined as flooded, wherein the network interface further comprises logic to selectively transfer an ingress packet to a non-flooded recovery receive queue based in part on the modified indirection table and logic to selectively drop the ingress packet from the non-flooded recovery queue in response to a determination that the ingress packet was originally to be routed to the flooded receive queue. - View Dependent Claims (23, 24, 25)
-
Specification