summaryrefslogtreecommitdiffstats
path: root/vswitches
diff options
context:
space:
mode:
Diffstat (limited to 'vswitches')
-rw-r--r--vswitches/ovs_dpdk_vhost.py4
-rw-r--r--vswitches/ovs_vanilla.py4
-rw-r--r--vswitches/vswitch.py9
3 files changed, 12 insertions, 5 deletions
diff --git a/vswitches/ovs_dpdk_vhost.py b/vswitches/ovs_dpdk_vhost.py
index cf60a5e2..2c7b81ff 100644
--- a/vswitches/ovs_dpdk_vhost.py
+++ b/vswitches/ovs_dpdk_vhost.py
@@ -148,11 +148,11 @@ class OvsDpdkVhost(IVSwitch):
bridge = self._bridges[switch_name]
bridge.del_port(port_name)
- def add_flow(self, switch_name, flow):
+ def add_flow(self, switch_name, flow, cache='off'):
"""See IVswitch for general description
"""
bridge = self._bridges[switch_name]
- bridge.add_flow(flow)
+ bridge.add_flow(flow, cache=cache)
def del_flow(self, switch_name, flow=None):
"""See IVswitch for general description
diff --git a/vswitches/ovs_vanilla.py b/vswitches/ovs_vanilla.py
index c6617404..3078de02 100644
--- a/vswitches/ovs_vanilla.py
+++ b/vswitches/ovs_vanilla.py
@@ -164,11 +164,11 @@ class OvsVanilla(IVSwitch):
bridge = self._bridges[switch_name]
bridge.del_port(port_name)
- def add_flow(self, switch_name, flow):
+ def add_flow(self, switch_name, flow, cache='off'):
"""See IVswitch for general description
"""
bridge = self._bridges[switch_name]
- bridge.add_flow(flow)
+ bridge.add_flow(flow, cache=cache)
def del_flow(self, switch_name, flow=None):
"""See IVswitch for general description
diff --git a/vswitches/vswitch.py b/vswitches/vswitch.py
index fbec861a..a28c0f6b 100644
--- a/vswitches/vswitch.py
+++ b/vswitches/vswitch.py
@@ -89,11 +89,18 @@ class IVSwitch(object):
"""
raise NotImplementedError()
- def add_flow(self, switch_name, flow):
+ def add_flow(self, switch_name, flow, cache='off'):
"""Add a flow rule to the logical switch
:param switch_name: The switch on which to operate
:param flow: Flow description as a dictionary
+ :param cache: Optional. Specifies if flow should be inserted
+ to the switch or cached to increase performance during manipulation
+ with large number of flows.
+ Values:
+ 'off' - cache is off and flow is inserted directly to the switch
+ 'on' - cache is on and flow is inserted into the cache
+ 'flush' - cache content will be inserted into the switch
Example flow dictionary:
flow = {