SYSTEMS AND METHODS FOR RECEIVE AND TRANSMISSION QUEUE PROCESSING IN A MULTI-CORE ARCHITECTURE
First Claim
1. A method for processing packets transmitted via a multi-core device, the method comprising:
- (a) storing, by a first core of a device intermediary to one or more senders and one or more receivers, a first packet received from the one or more senders to a first logical transmit queue of the first core, the device comprising a plurality of cores,(b) storing, by a second core of the plurality of cores of the device, a second packet received from the one or more senders to a second logical transmit queue of the second core; and
(c) forwarding, by a core of the plurality of cores of the device, to a transmit queue of a network interface card (NIC) of the device for transmission to a receiver of the one or more receives, the first packet from the first logical queue and the second packet from the second logical queue.
8 Assignments
0 Petitions
Accused Products
Abstract
Described herein is a method and system for directing outgoing data packets from packet engines to a transmit queue of a NIC in a multi-core system, and a method and system for directing incoming data packets from a receive queue of the NIC to the packet engines. Packet engines store outgoing traffic in logical transmit queues in the packet engines. An interface module obtains the outgoing traffic and stores it in a transmit queue of the NIC, after which the NIC transmits the traffic from the multi-core system over a network. The NIC receives incoming traffic and stores it in a NIC receive queue. The interface module obtains the incoming traffic and applies a hash to a tuple of each obtained data packet. The interface module then stores each data packet in the logical receive queue of a packet engine on the core identified by the result of the hash.
-
Citations
23 Claims
-
1. A method for processing packets transmitted via a multi-core device, the method comprising:
-
(a) storing, by a first core of a device intermediary to one or more senders and one or more receivers, a first packet received from the one or more senders to a first logical transmit queue of the first core, the device comprising a plurality of cores, (b) storing, by a second core of the plurality of cores of the device, a second packet received from the one or more senders to a second logical transmit queue of the second core; and (c) forwarding, by a core of the plurality of cores of the device, to a transmit queue of a network interface card (NIC) of the device for transmission to a receiver of the one or more receives, the first packet from the first logical queue and the second packet from the second logical queue. - View Dependent Claims (2, 3, 4, 5, 6, 11, 12, 13)
-
-
7. A device for transmitting packets via a plurality of cores of the device, the device comprising:
-
a plurality of cores; one or more network interface cards intermediary to one or more senders and one or more receivers; a first core of the plurality of cores storing a first packet received from the one or more senders to a first logical transmit queue of the first core; a second core of the plurality of cores storing a second packet received from the one or more senders, to a second logical transmit queue of the second core; and a module executing on the device forwarding to a transmit queue of a network interface card (NIC) of the one or more NICS for transmission to a receiver of the one or more receivers, the first packet from the first logical queue and the second packet from the second logical queue. - View Dependent Claims (8, 9, 10)
-
-
14. A method for processing packets received via a multi-core device, the method comprising:
-
(a) storing, by a network interface card (NIC) of a device, a plurality of packets received in a receive queue of the NIC, the device comprising a plurality of cores; (b) determining, by a flow distributor executing on the device, that a packet of the plurality of packets stored in the receive queue identifies a first core of the plurality of cores based on a hash of a tuple of the packet; and (c) forwarding, by the flow distributor responsive to the determination, the packet to a first logical queue of the first core. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A device for processing packets via a plurality of cores of the device, the device comprising:
-
a plurality of cores; one or more network interface cards; a network interface card (NIC) of the one or more NICs storing a plurality of packets received in a receive queue of the NIC; and a flow distributor determining that a packet of the plurality of packets stored in the receive queue identifies a first core of the plurality of cores based on a hash of a tuple of the packet and responsive to the determination forwards the packet to a first logical queue of the first core. - View Dependent Claims (20, 21, 22, 23)
-
Specification