Add vxlan tests using xconnect
[csit.git] / resources / libraries / python / L2Util.py
index b39515d..4dc230c 100644 (file)
@@ -15,7 +15,7 @@
 
 from robot.api.deco import keyword
 from resources.libraries.python.topology import Topology
-from resources.libraries.python.VatExecutor import VatExecutor
+from resources.libraries.python.VatExecutor import VatExecutor, VatTerminal
 
 
 class L2Util(object):
@@ -153,3 +153,33 @@ class L2Util(object):
                                       sw_if_id2=sw_if_index2,
                                       bd_id=bd_id,
                                       learn=int(learn))
+
+    @staticmethod
+    def vpp_setup_bidirectional_cross_connect(node, interface1, interface2):
+        """Create bidirectional cross-connect between 2 interfaces on vpp node.
+
+        :param node: Node to add bidirectional cross-connect
+        :param interface1: first interface name or sw_if_index
+        :param interface2: second interface name or sw_if_index
+        :type node: dict
+        :type interface1: str or int
+        :type interface2: str or int
+        """
+
+        if isinstance(interface1, basestring):
+            sw_iface1 = Topology().get_interface_sw_index(node, interface1)
+        else:
+            sw_iface1 = interface1
+
+        if isinstance(interface2, basestring):
+            sw_iface2 = Topology().get_interface_sw_index(node, interface2)
+        else:
+            sw_iface2 = interface2
+
+        with VatTerminal(node) as vat:
+            vat.vat_terminal_exec_cmd_from_template('l2_xconnect.vat',
+                                                    interface1=sw_iface1,
+                                                    interface2=sw_iface2)
+            vat.vat_terminal_exec_cmd_from_template('l2_xconnect.vat',
+                                                    interface1=sw_iface2,
+                                                    interface2=sw_iface1)