Merge "sriov: Determine path to the bind-tool"
[vswitchperf.git] / vswitches / vswitch.py
index a28c0f6..efa3a34 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.
@@ -20,6 +20,14 @@ class IVSwitch(object):
 
     Other methods are called only between start() and stop()
     """
+    def get_version(self):
+        """Return version of vSwitch and DPDK (if used by vSwitch)
+           This method should be implemented in case, that version
+           of vswitch or DPDK can be read only during vSwitch runtime.
+           Otherwise it can be implemented inside tools/systeminfo.py.
+        """
+        raise NotImplementedError()
+
     def start(self):
         """Start the vSwitch
 
@@ -28,6 +36,13 @@ class IVSwitch(object):
         """
         raise NotImplementedError()
 
+    def restart(self):
+        """Retart the vSwitch
+
+        Restart of vSwitch is required for failover testcases.
+        """
+        raise NotImplementedError()
+
     def stop(self):
         """Stop the vSwitch
 
@@ -71,6 +86,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
 
@@ -122,9 +145,60 @@ class IVSwitch(object):
         """
         raise NotImplementedError()
 
+    def add_connection(self, switch_name, port1, port2, bidir=False):
+        """Creates connection between given ports.
+
+        :param switch_name: switch on which to operate
+        :param port1: port to be used in connection
+        :param port2: port to be used in connection
+        :param bidir: switch between uni and bidirectional traffic
+
+        :raises: RuntimeError
+        """
+        raise NotImplementedError()
+
+    def del_connection(self, switch_name, port1, port2, bidir=False):
+        """Remove connection between two interfaces.
+
+        :param switch_name: switch on which to operate
+        :param port1: port to be used in connection
+        :param port2: port to be used in connection
+        :param bidir: switch between uni and bidirectional traffic
+
+        :raises: RuntimeError
+        """
+        raise NotImplementedError()
+
+    def dump_connections(self, switch_name):
+        """Dump connections between interfaces.
+
+        :param switch_name: switch on which to operate
+
+        :raises: RuntimeError
+        """
+        raise NotImplementedError()
+
     def dump_flows(self, switch_name):
         """Dump flows from the logical switch
 
         :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()