Dynamically adjusting the number of flows allowed in a flow table cache
First Claim
1. A non-transitory machine readable medium storing a program that when executed by at least one processing unit processes packets, the program comprising sets of instructions for:
- generating and installing flow entries in a cache, wherein each flow entry is generated using at least one flow entry, from a flow table, that specifies performing a set of actions on incoming packets; and
validating one or more of the flow entries that are installed in the cache by determining whether a set of actions in each flow entry matches a set of actions of a corresponding flow entry in the flow table, said validating comprising;
for each flow entry in the cache in which the set of actions matches the set of actions of a corresponding flow entry in the flow table, maintaining the flow entry in the cache; and
for each flow entry in the cache in which the set of actions does not match the set of actions of a corresponding flow entry in the flow table, removing or modifying the flow entry in the cache;
wherein said generating and installing flow entries are executed in a first execution thread and said validating, removing, and modifying are executed in a second, different execution thread.
0 Assignments
0 Petitions
Accused Products
Abstract
Some embodiments provide a physical forwarding element that dynamically adjusts the number of flows allowed in a flow table cache. In adjusting, the physical forwarding element initially sets the maximum number of flows allowed in the cache. From the flow table cache, the physical forwarding then iterates through the set maximum number of flows and records the length of time it took to iterate through the flows. Based on the duration, the physical forwarding element then automatically adjusts the size of the flow table cache by increasing or decreasing the number of flows allowed in the cache. Alternatively, the physical forwarding element may choose to keep the cache size the same based on the duration.
-
Citations
18 Claims
-
1. A non-transitory machine readable medium storing a program that when executed by at least one processing unit processes packets, the program comprising sets of instructions for:
-
generating and installing flow entries in a cache, wherein each flow entry is generated using at least one flow entry, from a flow table, that specifies performing a set of actions on incoming packets; and validating one or more of the flow entries that are installed in the cache by determining whether a set of actions in each flow entry matches a set of actions of a corresponding flow entry in the flow table, said validating comprising; for each flow entry in the cache in which the set of actions matches the set of actions of a corresponding flow entry in the flow table, maintaining the flow entry in the cache; and for each flow entry in the cache in which the set of actions does not match the set of actions of a corresponding flow entry in the flow table, removing or modifying the flow entry in the cache; wherein said generating and installing flow entries are executed in a first execution thread and said validating, removing, and modifying are executed in a second, different execution thread. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of processing packets, the method comprising:
-
generating and installing flow entries in a cache, wherein each flow entry is generated using at least one flow entry, from a flow table, that specifies performing a set of actions on incoming packets; and validating one or more of the flow entries that are installed in the cache by determining whether a set of actions in each flow entry matches a set of actions of a corresponding flow entry in the flow table, said validating comprising; for each flow entry in the cache in which the set of actions matches the set of actions of a corresponding flow entry in the flow table, maintaining the flow entry in the cache; and for each flow entry in the cache in which the set of actions does not match the set of actions of a corresponding flow entry in the flow table, removing or modifying the flow entry in the cache; wherein said generating and installing flow entries are executed in a first execution thread and said validating, removing, and modifying are executed in a second, different execution thread. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification