Network traffic management with queues affinitized to one or more cores
First Claim
1. A method for network traffic management in a computing device having a network interface controller operatively coupled to a main processor with multiple cores, the method comprising:
- receiving, at the network interface controller, a packet having a header and a payload;
assigning, at the network interface controller, the received packet to a virtual port of the network interface controller based on a destination medium access control (“
MAC”
) address contained in the header of the packet, wherein the virtual port includes multiple queues each affinitized with one of the cores in the main processor;
upon assigning the packet to the virtual port, further assigning, at the network interface controller, the packet to one of the queues in the virtual port based on one or more of a source IP address, a destination IP address, a source port, or a destination port included in the header of the packet; and
causing the core with which the queue is affinitized to execute network processing operations to forward the packet in the queue to a destination identified by the MAC address, the source IP address, the destination IP address, the source port, and the destination port included in the header of the packet.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques of network traffic management in a computing device are disclosed. One example method includes receiving, at a main processor, a request from a network interface controller to perform network processing operations for packets assigned by the network interface controller to a queue of a virtual port of the network interface controller. The method also includes, in response to receiving the request, causing one of multiple cores of the main processor with which the queue of the virtual port is affinitized to perform the network processing operations to effect processing and transmission of the packets to an application executing in a virtual machine hosted on the computing device.
43 Citations
20 Claims
-
1. A method for network traffic management in a computing device having a network interface controller operatively coupled to a main processor with multiple cores, the method comprising:
-
receiving, at the network interface controller, a packet having a header and a payload; assigning, at the network interface controller, the received packet to a virtual port of the network interface controller based on a destination medium access control (“
MAC”
) address contained in the header of the packet, wherein the virtual port includes multiple queues each affinitized with one of the cores in the main processor;upon assigning the packet to the virtual port, further assigning, at the network interface controller, the packet to one of the queues in the virtual port based on one or more of a source IP address, a destination IP address, a source port, or a destination port included in the header of the packet; and causing the core with which the queue is affinitized to execute network processing operations to forward the packet in the queue to a destination identified by the MAC address, the source IP address, the destination IP address, the source port, and the destination port included in the header of the packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computing device, comprising:
-
a main processor having multiple cores configured to execute instructions independently; a network interface controller operatively coupled to the main processor, the network interface controller having; a media access unit configured to receive a packet having a header and a payload from a computer network; and a hardware circuitry operatively coupled to the media access unit, the hardware circuitry being configured to; analyze the header of the received packet to assign the received packet to a virtual port of the network interface controller based on a destination medium access control (“
MAC”
) address contained in the header of the packet, the virtual port corresponding to a virtual machine hosted on the computing device and including multiple queues each affinitized with a core of the main processor; andupon assigning the packet to the virtual port, further analyze the header of the packet to assign the packet to one of the multiple queues in the virtual port based on one or more of a source IP address, a destination IP address, a source port, or a destination port included in the header of the packet; and a memory containing instructions executable by the main processor to cause the main processor to; receive, at the main processor, a request from the network interface controller to perform network processing operations for the received packet in the assigned one of the multiple queues of the virtual port of the network interface controller; and in response to receiving the request, perform the network processing operations at one of the cores with which the assigned one of the multiple queues of the virtual port is affinitized to effect processing and transmission of the packet to an application executing in the virtual machine hosted on the computing device and corresponding to the virtual port. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A method for network traffic management in a computing device having a network interface controller operatively coupled to a main processor with multiple cores, the network interface controller having multiple virtual ports each corresponding to a virtual machine hosted on the computing device and having multiple queues configured to receive and temporarily store packets, wherein each of the multiple queues is affinitized with a core of the main processor, wherein the method comprising:
-
receiving, at the network interface controller, a packet having a header and a payload from a computer network; and in response to receiving the packet, using a hardware circuitry of the network interface controller to; analyze the header of the received packet to assign the received packet to one of the multiple virtual ports of the network interface controller based on a destination medium access control (“
MAC”
) address contained in the header of the packet; andupon assigning the packet to the one of the multiple virtual ports, further analyze the header of the packet to assign the packet to one of the multiple queues in the one of the multiple virtual ports based on one or more of a source IP address, a destination IP address, a source port, or a destination port included in the header of the packet; receiving, at the main processor, a request from the network interface controller to perform network processing operations for the packet assigned by the network interface controller to the one of the multiple queues of the one of the multiple virtual ports of the network interface controller; and in response to receiving the request, causing one of the cores with which the one of the multiple queues of the one of the multiple virtual ports is affinitized to perform the network processing operations to effect processing and transmission of the packet to an application executing in a virtual machine hosted on the computing device and corresponding to the one of the multiple virtual port. - View Dependent Claims (17, 18, 19, 20)
-
Specification