docs: Fixing typo in testusage.rst for port name example.
[vswitchperf.git] / vswitches / vswitch.py
index dbf3e7d..73e0a0c 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 2015 Intel Corporation.
+# Copyright 2015-2016 Intel Corporation.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -36,10 +36,12 @@ class IVSwitch(object):
         """
         raise NotImplementedError()
 
-    def add_switch(self, switch_name):
+    def add_switch(self, switch_name, params):
         """Create a new logical switch with no ports
 
         :param switch_name: The name of the new logical switch
+        :param params: Optional parameters to configure switch
+
         :returns: None
         """
         raise NotImplementedError()
@@ -69,6 +71,14 @@ class IVSwitch(object):
         """
         raise NotImplementedError()
 
+    def add_tunnel_port(self, switch_name, remote_ip, tunnel_type, params=None):
+        """Create a new port to the logical switch for tunneling
+
+        :param switch_name: The switch where the port is attached to
+        :returns: (port name, OpenFlow port number)
+        """
+        raise NotImplementedError()
+
     def get_ports(self, switch_name):
         """Return a list of tuples describing the ports of the logical switch
 
@@ -87,11 +97,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 = {
@@ -119,3 +136,21 @@ class IVSwitch(object):
         :param switch_name: The switch on which to operate
         """
         raise NotImplementedError()
+
+    def add_route(self, switch_name, network, destination):
+        """Add a route for tunneling routing table
+
+        :param switch_name: The switch on which to operate
+        :param network: Target destination network
+        :param destination: Gateway IP
+        """
+        raise NotImplementedError()
+
+    def set_tunnel_arp(self, ip_addr, mac_addr, switch_name):
+        """Add arp entry for tunneling
+
+        :param ip_addr: IP of bridge
+        :param mac_addr: MAC address of the bridge
+        :param switch_name: Name of the bridge
+        """
+        raise NotImplementedError()