OFFLOADING PACKET PROCESSING FOR NETWORKING DEVICE VIRTUALIZATION
First Claim
1. At a computer system including one or more processors and system memory, the computer system also including a physical network interface card (NIC) and executing a host partition, a method for processing network packets for a virtual machine executing at the computer system, the method comprising:
- an act of the host partition maintaining one or more rule sets for a virtual machine;
an act of the physical NIC maintaining one or more flow tables for the virtual machine; and
an act of the physical NIC receiving a network packet associated with the virtual machine;
an act of processing the network packet for the virtual machine, including;
an act of the physical NIC comparing the network packet with the one or more flow tables, andwhen the network packet matches with a flow in the one or more flow tables, an act of the physical NIC performing an action on the network packet based on the matching flow, orwhen the network packet does not match with a flow in the one or more flow tables, an act of the physical NIC passing the network packet to the host partition for processing against the one or more rule sets.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for offloading packet processing for networking device virtualization. A host maintains rule set(s) for a virtual machine, and a physical network interface card (NIC) maintains flow table(s) for the virtual machine. The physical NIC receives and processes a network packet associated with the virtual machine. Processing the network packet includes the physical NIC comparing the network packet with the flow table(s) at the physical NIC. When the network packet matches with a flow in the flow table(s) at the physical NIC, the physical NIC performs an action on the network packet based on the matching flow. Alternatively, when the network packet does not match with a flow in the flow table(s) at the physical NIC, the physical NIC passes the network packet to the host partition for processing against the rule set(s).
-
Citations
20 Claims
-
1. At a computer system including one or more processors and system memory, the computer system also including a physical network interface card (NIC) and executing a host partition, a method for processing network packets for a virtual machine executing at the computer system, the method comprising:
-
an act of the host partition maintaining one or more rule sets for a virtual machine; an act of the physical NIC maintaining one or more flow tables for the virtual machine; and an act of the physical NIC receiving a network packet associated with the virtual machine; an act of processing the network packet for the virtual machine, including; an act of the physical NIC comparing the network packet with the one or more flow tables, and when the network packet matches with a flow in the one or more flow tables, an act of the physical NIC performing an action on the network packet based on the matching flow, or when the network packet does not match with a flow in the one or more flow tables, an act of the physical NIC passing the network packet to the host partition for processing against the one or more rule sets. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer program product comprising one or more computer storage media having stored thereon computer executable instructions that, when executed by one or more processors of a computer system, cause the computer system to implement a method for processing network packets for a virtual machine executing at the computer system, the method comprising:
-
an act of a virtual switch maintaining one or more rule sets for a virtual machine; an act of the virtual switch maintaining one or more flow table tables for the virtual machine; an act of the virtual switch offloading at least a portion of the one or more flow tables to the physical NIC; and an act of the virtual switch processing a network packet for the virtual machine, including; the virtual switch receiving the network packet from one of the virtual machine or the physical NIC; the virtual switch matching the network packet with a rule in the one or more rule sets; and based on matching the network packet with the rule; the virtual switch creating a flow in the one or more flow tables; and the virtual switch offloading the flow to the physical NIC. - View Dependent Claims (15, 16)
-
-
17. The computer program product as recited in claim 17, wherein the at least one action comprises one or more of a packet inspection or a packet manipulation operation.
-
18. A computer system, comprising:
-
one or more processors; system memory; a physical network interface card (NIC); and one or more computer storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, execute a virtual switch, the virtual switch being configured to; execute within a host partition at the computer system; maintain an incoming rule set and an outgoing rule set for a virtual machine; maintain an incoming flow table and an outgoing flow table for the virtual machine; offload at least a portion of one or more of the incoming flow table or the outgoing table to a virtual bridge the physical NIC; and process a network packet for the virtual machine, including; receiving the network packet from one or more of the virtual machine or the physical NIC; matching the network packet with a rule in one of the incoming rule set or the outgoing rule set; and based on matching the network packet with the rule; creating a flow in one or more of the incoming flow table or the outgoing flow table at the virtual switch; and offloading the flow to one or more of the incoming flow table or the outgoing table at the virtual bridge of the physical NIC. - View Dependent Claims (19, 20)
-
Specification