Packet copy management for service chain processing within virtual processing systems
First Claim
1. A method to process packets in a predetermined order for service chain processing, comprising:
- operating a plurality of virtual machines (VMs) within a virtualization layer running on at least one processing device, the plurality of VMs comprising a packet manager VM and at least two service chain VMs, the service chain VMs being configured to process received packets in a predetermined order, and each of the service chain VMs including a virtual network interface controller (vNIC) having a receive queue and a transmit queue;
receiving a network packet at the packet manager VM;
storing packet data for the network packet within a shared memory for the packet manager VM;
processing the packet data with the service chain VMs in the predetermined order to generate processed packet data without copying the packet data to memory associated with the service chain VMs, the processing comprising;
using the receive queues within the vNICs for the service chain VMs to store receive address pointers for packet data within the shared memory to be processed by the service chain VMs;
accessing and processing the packet data with the service chain VMs based upon the receive address pointers stored within the receive queues without copying the packet data to memory associated with the service chain VMs;
using the transmit queues within the vNICs for the service chain VMs to store transmit address pointers for packet data within the shared memory that has been processed by the service chain VMs; and
determining completion of processing by the service chain VMs based upon the transmit address pointers stored within the transmit queues; and
transmitting the processed packet data from the packet manager VM to another destination.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed to provide packet copy management for service chain processing within virtual processing systems. A packet manager virtual machine (VM) controls access to shared memory that stores packet data for packets being processed by service chain VMs operating within a virtual processing environment. For certain embodiments, the packet manager VM is configured to appear as a destination NIC (network interface controller), and virtual NICs (vNICs) within the service chain VMs are configured to process packet data using pointers to access the packet data within the shared memory. Once packet data is processed by one service chain VM, the next service chain VM within the service chain is able to access the processed packet data within the shared memory through the packet manager VM. Once all service chain processing has completed, the resulting packet data is available from the shared memory for further use or processing.
-
Citations
22 Claims
-
1. A method to process packets in a predetermined order for service chain processing, comprising:
-
operating a plurality of virtual machines (VMs) within a virtualization layer running on at least one processing device, the plurality of VMs comprising a packet manager VM and at least two service chain VMs, the service chain VMs being configured to process received packets in a predetermined order, and each of the service chain VMs including a virtual network interface controller (vNIC) having a receive queue and a transmit queue; receiving a network packet at the packet manager VM; storing packet data for the network packet within a shared memory for the packet manager VM; processing the packet data with the service chain VMs in the predetermined order to generate processed packet data without copying the packet data to memory associated with the service chain VMs, the processing comprising; using the receive queues within the vNICs for the service chain VMs to store receive address pointers for packet data within the shared memory to be processed by the service chain VMs; accessing and processing the packet data with the service chain VMs based upon the receive address pointers stored within the receive queues without copying the packet data to memory associated with the service chain VMs; using the transmit queues within the vNICs for the service chain VMs to store transmit address pointers for packet data within the shared memory that has been processed by the service chain VMs; and determining completion of processing by the service chain VMs based upon the transmit address pointers stored within the transmit queues; and transmitting the processed packet data from the packet manager VM to another destination. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system to process packets in a predetermined order for service chain processing, comprising:
-
at least one processing device configured to provide a virtualization layer for a plurality of virtual machines (VMs); at least two service chain VMs configured to operate within the virtualization layer, the service chain VMs being configured to process received packets in a predetermined order to generate processed packet data, and each of the service chain VMs including a virtual network interface controller (vNIC) having a receive queue and a transmit queue; a packet manager VM configured to operate within the virtualization layer, the packet manager VM being configured to receive packets being processed by the service chain VMs; and a shared memory included within the packet manager VM configured to store packet data for packets being processed by the service chain VMs; wherein the receive queues within the vNICs for the service chain VMs are configured to store receive address pointers for packet data within the shared memory to be processed by the service chain VMs; wherein the service chain VMs are further configured to use the receive address pointers stored within the receive queues to access and to process the packet data within the shared memory without copying the packet data to memory associated with the service chain VMs; wherein the transmit queues within the vNICs for the service chain VMs are configured to store transmit address pointers for packet data within the shared memory that has been processed by the service chain VMs; and wherein the packet manager VM is further configured to determine completion of processing by the service chain VMs based upon the transmit address pointers stored within the transmit queues and to transmit the processed packet data to another destination. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification