Proactive flow table for virtual networks
First Claim
1. A method comprising:
- receiving, by a virtual router of a computing device for one or more virtual networks, a tunnel packet comprising an outer header and an inner packet that defines a packet flow, wherein the virtual router receives the tunnel packet from a switch fabric coupled to the computing device and comprising a plurality of switches interconnected to form a physical network that switches packets for the one or more virtual networks;
determining, based at least on the outer header, that the packet is associated with a virtual network of the one or more virtual networks;
determining, by the virtual router, a packet flow defined by the inner packet does not match any flow table entry of a flow table that identifies active flows only for the virtual network; and
in response to determining the packet flow defined by the inner packet does not match any flow table entry of the flow table for the virtual network;
adding a first flow table entry for the packet flow to the flow table; and
adding a second flow table entry for a reverse packet flow of the packet flow to the flow table.
1 Assignment
0 Petitions
Accused Products
Abstract
In general, techniques are described for enhancing operations of virtual networks. In some examples, a network system includes a server that executes a virtual router configured to receive, from a switch fabric, a tunnel packet for a virtual network of the virtual networks, wherein the tunnel packet comprises an outer header and an inner packet that defines a packet flow. The virtual router is also configured to determine, based at least on the outer header, that the packet is associated with a virtual network of the one or more virtual networks, determine a packet flow defined by the inner packet does not match any flow table entry of a flow table that identifies active flows only for virtual network and, in response, add a flow table entry for a reverse packet flow of the packet flow to the flow table.
-
Citations
17 Claims
-
1. A method comprising:
-
receiving, by a virtual router of a computing device for one or more virtual networks, a tunnel packet comprising an outer header and an inner packet that defines a packet flow, wherein the virtual router receives the tunnel packet from a switch fabric coupled to the computing device and comprising a plurality of switches interconnected to form a physical network that switches packets for the one or more virtual networks; determining, based at least on the outer header, that the packet is associated with a virtual network of the one or more virtual networks; determining, by the virtual router, a packet flow defined by the inner packet does not match any flow table entry of a flow table that identifies active flows only for the virtual network; and in response to determining the packet flow defined by the inner packet does not match any flow table entry of the flow table for the virtual network; adding a first flow table entry for the packet flow to the flow table; and adding a second flow table entry for a reverse packet flow of the packet flow to the flow table. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A network system comprising:
-
a switch fabric comprising a plurality of switches interconnected to form a physical network; a virtual network controller configured to configure and manage virtual networks within the physical network; and a plurality of servers interconnected by the switch fabric, wherein each of the servers comprises an operating environment configured to execute one or more virtual machines in communication via the virtual networks, and wherein the servers comprise a set of virtual routers configured to extend the virtual networks to the virtual machines, wherein a virtual router of the set of virtual routers is configured to; receive, from the switch fabric, a tunnel packet for a virtual network of the virtual networks, wherein the tunnel packet comprises an outer header and an inner packet that defines a packet flow; determine, based at least on the outer header, that the packet is associated with the virtual network; determine a packet flow defined by the inner packet does not match any flow table entry of a flow table that identifies active flows only for that virtual network; and in response to determining the packet flow defined by the inner packet does not match any flow table entry of the flow table, add a first flow table entry for the packet flow to the flow table and add a second flow table entry for a reverse packet flow of the packet flow to the flow table. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer-readable medium comprising instructions for causing one or more programmable processors of a computing device to:
-
receive, by a virtual router of the computing device for one or more virtual networks, a tunnel packet comprising an outer header and an inner packet that defines a packet flow, wherein the virtual router receives the tunnel packet from a switch fabric coupled to the computing device and comprising a plurality of switches interconnected to form a physical network that switches packets for the one or more virtual networks; determine, based at least on the outer header, that the packet is associated with a virtual network of the one or more virtual networks; determine, by the virtual router, a packet flow defined by the inner packet does not match any flow table entry of a flow table that identifies active flows only for virtual network; and in response to determining the packet flow defined by the inner packet does not match any flow table entry of the flow table; add a first flow table entry for the packet flow to the flow table; and add a second flow table entry for a reverse packet flow of the packet flow to the flow table.
-
Specification