SYSTEMS AND METHODS FOR A PARA-VITUALIZED DRIVER IN A MULTI-CORE VIRTUAL PACKET ENGINE DEVICE
First Claim
1. A method for communicating packets between network interface hardware of a multi-core device and a plurality of virtualized packet processors executed by one or more cores of the multi-core device, the method comprising:
- (a) receiving, by a first virtualization domain executing on a multi-core device, a packet via a network interface hardware of the multi-core device, the first virtualization domain comprising a privileged domain having direct access to the network interface hardware;
(b) communicating the packet to a queue for a virtualized packet processor from a plurality of virtualized packet processors and executing within a second virtualization domain on a core of the multi-core device, the second virtualization domain from a plurality of virtualization domains not having direct access to the network interface hardware;
(c) determining, by the virtualized packet processor, that the queue includes a difference between a number of packets read from the queue and a number of packets written to the queue; and
(d) processing, by the virtualized packet processor, the packet from the queue responsive to the determination.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention is directed towards methods and systems for communicating packets between network interface hardware of a multi-core device and a plurality of virtualized packet processors executed by one or more cores of the multi-core device. A first virtualization domain on the device may receive a packet via the network interface hardware. The first virtualization domain may comprise a privileged domain having access to the hardware. The system may communicate the packet to a queue for a virtualized packet processor from a plurality of virtualized packet processors and executing within a second virtualization domain on a core. The second virtualization domain may not have direct access to the network interface hardware. The packet processor may determine that the queue includes a difference between a number of packets read from and written to the queue. The packet processor may process the packet from the queue responsive to the determination.
-
Citations
20 Claims
-
1. A method for communicating packets between network interface hardware of a multi-core device and a plurality of virtualized packet processors executed by one or more cores of the multi-core device, the method comprising:
-
(a) receiving, by a first virtualization domain executing on a multi-core device, a packet via a network interface hardware of the multi-core device, the first virtualization domain comprising a privileged domain having direct access to the network interface hardware; (b) communicating the packet to a queue for a virtualized packet processor from a plurality of virtualized packet processors and executing within a second virtualization domain on a core of the multi-core device, the second virtualization domain from a plurality of virtualization domains not having direct access to the network interface hardware; (c) determining, by the virtualized packet processor, that the queue includes a difference between a number of packets read from the queue and a number of packets written to the queue; and (d) processing, by the virtualized packet processor, the packet from the queue responsive to the determination. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for communicating packets between network interface hardware of a multi-core device and a plurality of virtualized packet processors executed by one or more cores of the multi-core device, the method comprising:
-
(a) buffering, by a virtualized packet processor executing within a first virtualization domain on a core of a multi-core device, a packet in a transmit queue of the first virtualization domain, the first virtualization domain from a plurality of virtualization domains not having direct access to a network interface hardware of the multi-core device; (b) determining, by the virtualized packet processor, that the transmit queue has one or more packets to transmit; (c) transmitting, responsive to the determination, the one or more packets from the transmit queue to a shared queue residing on kernel memory space of the multi-core device accessible by a second virtualization domain, the second virtualization domain comprising a privileged domain having direct access to the network interface hardware; and (d) accessing, by the second virtualization domain, the one or more packets from the shared queue in response to a notification from the first virtualization domain, for transmission via the network interface hardware to a network. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A system for communicating packets between network interface hardware of a multi-core device and a plurality of virtualized packet processors executed by one or more cores of the multi-core device, the system comprising:
-
a first virtualization domain executing on a first core of a multi-core device, comprising a privileged domain having direct access to the network interface hardware of the multi-core device, receiving a packet via the network interface hardware, and communicating the received packet to a queue in kernel mode of the multi-core device; and a second virtualization domain from a plurality of virtualization domains not having direct access to the network interface hardware, executing on a second core of the multi-core device and comprising a virtualized packet processor that accesses the packet from the queue responsive to a determination that the queue has a difference between a number of packets read from the queue and a number of packets written to the queue. - View Dependent Claims (19, 20)
-
Specification