IP Library Granted Patent US 11,646,980
Granted Patent B2
US 11,646,980 · App. 15/941,969 · Granted May 9, 2023

Technologies for packet forwarding on ingress queue overflow

Inventors: Andrey Chilikin (Limerick, IE); Vadim Sukhomlinov (Santa Clara, CA)
Assignee: Intel Corporation
H04L49/9089H04L47/2441H04L47/33H04L49/9036H04L49/9068
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,646,980
App. No.
15/941,969
Granted
May 9, 2023
Kind
B2
Abstract

Technologies for packet forwarding under ingress queue overflow conditions includes a computing device configured to receive a network packet from another computing device, determine whether a global packet buffer of the NIC is full, and determine, in response to a determination that the global packet buffer is full, whether to forward all the global packet buffer entries. The computing device is additionally configured to compare, in response to a determination not to forward all the global packet buffer entries, a selection filter to one or more characteristics of the received network packet and forward, in response to a determination that the selection filter matches the one or more characteristics of the received network packet, the received network packet to a predefined output. Other embodiments are described herein.

Claims (67)

1. A computing device for packet forwarding, the computing device comprising:

a network interface controller (NIC) to:

receive a network packet from another computing device;

determine whether a packet buffer for a virtual function associated with a physical function of the NIC has reached a threshold;

determine, in response to a determination that the packet buffer has reached the threshold, whether to forward packet buffer entries to another NIC;

perform, in response to a determination that the packet buffer has not reached the threshold, an internal classification as a function of one or more characteristics of the received network packet; and

identify a destination queue associated with the received network packet as a function of the internal classification.

2. The computing device of claim 1 , wherein the NIC is further to:

determine, in response to a determination that the packet buffer has reached the threshold, whether to send a packet buffer alert; and

send, in response to a determination to send the packet buffer alert, the packet buffer alert to a default configured address.

3. The computing device of claim 1 , wherein the NIC is further to drop, in response to the determination that the packet buffer has reached the threshold, the received network packet.

4. The computing device of claim 1 , wherein the NIC is further to:

determine whether the identified destination queue has reached the threshold;

determine, in response to a determination that the destination queue has not reached the threshold, whether to forward destination queue entries;

compare, in response to a determination not to forward the destination queue entries, a selection filter to the one or more characteristics of the received network packet; and

forward, in response to the selection filter matched the one or more characteristics of the received network packet, the received network packet to a predefined output.

5. The computing device of claim 4 , wherein the NIC is further to:

determine, in response to a determination that the packet buffer has reached the threshold, whether to send a destination queue alert; and

send, in response to a determination to send the destination queue alert, the destination queue alert to a default address.

6. The computing device of claim 5 , wherein to determine whether to send the destination queue alert comprises to determine whether to send the destination queue alert as a function of a virtual alert once flag setting and a determination as to whether the destination queue alert has previously been sent, wherein the virtual alert once flag setting indicates whether to only send the destination queue alert one time.

7. The computing device of claim 4 , wherein the NIC is further to drop, in response to the selection filter does not match the one or more characteristics of the received network packet, the received network packet.

8. The computing device of claim 1 , wherein the NIC is further to enqueue, in response to a determination that the destination queue has reached the threshold, the received network packet into the identified destination queue.

9. The computing device of claim 4 , wherein the predefined output comprises one of a predefined port, a predefined media access control (MAC) address, or a predefined tunnel.

10. The computing device of claim 1 , wherein the NIC is further to:

change, subsequent to a determination to forward queue entries, an internal state to of the packet buffer to a forwarding state;

receive another network packet from the other computing device; and

forward, subsequent to a determination that the internal state of the packet buffer is in the forwarding state, the received other packet to a destination computing device.

11. One or more non-transitory machine-readable storage media comprising a plurality of instructions stored thereon that, in response to being executed, cause a computing device to:

receive, by a network interface controller (NIC) of the computing device, a network packet from another computing device;

determine, by the NIC, whether a packet buffer for a virtual function associated with a physical function of the NIC has reached a threshold;

determine, by the NIC and in response to a determination that the packet buffer has reached the threshold, whether to forward packet buffer entries to another packet buffer of the NIC;

perform, in response to a determination that the packet buffer has not reached the threshold, an internal classification as a function of one or more characteristics of the received network packet; and

identify a local destination queue associated with the received network packet as a function of the internal classification.

12. The one or more non-transitory machine-readable storage media of claim 11 , wherein the plurality of instructions further cause the computing device to:

determine, by the NIC and in response to a determination that the packet buffer has reached the threshold, whether to send a packet buffer alert; and

send, by the NIC and in response to a determination to send the packet buffer alert, the packet buffer alert to a default configured address.

13. The one or more non-transitory machine-readable storage media of claim 11 , wherein the plurality of instructions further cause the computing device to drop, by the NIC and in response to packet the determination that the packet buffer has reached the threshold, the received network packet.

14. The one or more non-transitory machine-readable storage media of claim 11 , wherein the plurality of instructions further cause the computing device to:

determine, by the NIC, whether the identified local destination queue has reached the threshold;

determine, by the NIC and in response to a determination that the local destination queue has not reached the threshold, whether to forward local destination queue entries;

compare, by the NIC and in response to a determination not to forward the local destination queue entries, a selection filter to the one or more characteristics of the received network packet; and

forward, by the NIC and in response to the selection filter matched the one or more characteristics of the received network packet, the received network packet to a predefined output.

15. The one or more non-transitory machine-readable storage media of claim 14 , wherein the plurality of instructions further cause the computing device to:

determine, by the NIC and in response to a determination that the packet buffer has reached the threshold, whether to send a destination queue alert; and

send, by the NIC and in response to a determination to send the destination queue alert, the destination queue alert to a default address.

16. The one or more non-transitory machine-readable storage media of claim 15 , wherein to determine whether to send the destination queue alert comprises to determine whether to send the destination queue alert as a function of a virtual alert once flag setting and a determination as to whether the destination queue alert has previously been sent, wherein the virtual alert once flag setting indicates whether to only send the destination queue alert one time.

17. The one or more non-transitory machine-readable storage media of claim 14 , wherein the plurality of instructions further cause the computing device to drop, by the NIC and in response to the selection filter does not match the one or more characteristics of the received network packet, the received network packet.

18. The one or more non-transitory machine-readable storage media of claim 11 , wherein the plurality of instructions further cause the computing device to enqueue, by the NIC and in response to a determination that the local destination queue has reached the threshold, the received network packet into the identified local destination queue.

19. The one or more non-transitory machine-readable storage media of claim 14 , wherein the predefined output comprises one of a predefined port, a predefined media access control (MAC) address, or a predefined tunnel.

20. The one or more non-transitory machine-readable storage media of claim 11 , wherein the plurality of instructions further cause the computing device to:

change, by the NIC and subsequent to a determination to forward queue entries, an internal state of the packet buffer to a forwarding state;

receive, by the NIC, another network packet from the other computing device; and

forward, by the NIC, subsequent to a determination that the internal state of the packet buffer is in the forwarding state, the received other packet to a destination computing device.

21. A computing device for packet forwarding, the computing device comprising:

circuitry for receiving a network packet from another computing device;

means for determining whether a packet buffer for a virtual function associated with a physical function of a NIC has reached a threshold;

means for determining, in response to a determination that the packet buffer has reached the threshold, whether to forward packet buffer entries to another NIC;

means for performing, in response to a determination that the packet buffer has not reached the threshold, an internal classification as a function of one or more characteristics of the received network packet; and

means for identifying a local destination queue associated with the received network packet as a function of the internal classification.

22. The computing device of claim 21 , wherein the computing device is further to:

means for determining, in response to a determination that the packet buffer has reached the threshold, whether to send a packet buffer alert; and

means for send, in response to a determination to send the packet buffer alert, the packet buffer alert to a default configured address.

23. The computing device of claim 21 , wherein the computing device is further to:

means for determining whether the identified destination queue has reached the threshold;

means for determining, in response to a determination that the destination queue has not reached the threshold, whether to forward destination queue entries;

means for comparing, in response to a determination not to forward the destination queue entries, a selection filter to one or more characteristics of the received network packet; and

circuitry for forwarding, in response to the selection filter matched the one or more characteristics of the received network packet, the received network packet to a predefined output.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2018
From: CHILIKIN, ANDREY; SUKHOMLINOV, VADIM
To: INTEL CORPORATION
Reel/Frame 045838/0422 →
Continuity (1)
Related Publication 20190306088A1 · Oct 3, 2019
Cited By (2)
US 12,197,364 US 12,346,610