Revert "fix(jobspec): Delete ipsec nfv density tests"
[csit.git] / resources / libraries / python / TestConfig.py
index 28778b2..eb093a4 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -19,10 +19,10 @@ from robot.api import logger
 from resources.libraries.python.Constants import Constants
 from resources.libraries.python.InterfaceUtil import InterfaceUtil, \
     InterfaceStatusFlags
+from resources.libraries.python.IPAddress import IPAddress
 from resources.libraries.python.IPUtil import IPUtil
 from resources.libraries.python.PapiExecutor import PapiSocketExecutor
 from resources.libraries.python.topology import Topology
-from resources.libraries.python.VatExecutor import VatExecutor
 
 
 class TestConfig:
@@ -116,38 +116,6 @@ class TestConfig:
         src_ip_start = ip_address(src_ip_start)
         dst_ip_start = ip_address(dst_ip_start)
 
-        if vxlan_count > 10:
-            commands = list()
-            for i in range(0, vxlan_count):
-                try:
-                    src_ip = src_ip_start + i * ip_step
-                    dst_ip = dst_ip_start + i * ip_step
-                except AddressValueError:
-                    logger.warn(
-                        u"Can't do more iterations - IP address limit "
-                        u"has been reached."
-                    )
-                    vxlan_count = i
-                    break
-                commands.append(
-                    f"sw_interface_add_del_address sw_if_index "
-                    f"{Topology.get_interface_sw_index(node, node_vxlan_if)} "
-                    f"{src_ip}/{128 if src_ip.version == 6 else 32}\n"
-                )
-                commands.append(
-                    f"vxlan_add_del_tunnel src {src_ip} dst {dst_ip} "
-                    f"vni {vni_start + i}\n"
-                )
-                commands.append(
-                    f"create_vlan_subif sw_if_index "
-                    f"{Topology.get_interface_sw_index(node, node_vlan_if)} "
-                    f"vlan {i + 1}\n"
-                )
-            VatExecutor().write_and_execute_script(
-                node, u"/tmp/create_vxlan_interfaces.config", commands
-            )
-            return vxlan_count
-
         cmd1 = u"sw_interface_add_del_address"
         args1 = dict(
             sw_if_index=InterfaceUtil.get_interface_index(node, node_vxlan_if),
@@ -155,10 +123,9 @@ class TestConfig:
             del_all=False,
             prefix=None
         )
-        cmd2 = u"vxlan_add_del_tunnel"
+        cmd2 = u"vxlan_add_del_tunnel_v3"
         args2 = dict(
-            is_add=1,
-            is_ipv6=0,
+            is_add=True,
             instance=Constants.BITWISE_NON_ZERO,
             src_address=None,
             dst_address=None,
@@ -174,7 +141,7 @@ class TestConfig:
             vlan_id=None
         )
 
-        with PapiSocketExecutor(node) as papi_exec:
+        with PapiSocketExecutor(node, is_async=True) as papi_exec:
             for i in range(0, vxlan_count):
                 try:
                     src_ip = src_ip_start + i * ip_step
@@ -189,14 +156,18 @@ class TestConfig:
                 args1[u"prefix"] = IPUtil.create_prefix_object(
                     src_ip, 128 if src_ip_start.version == 6 else 32
                 )
-                args2[u"src_address"] = getattr(src_ip, u"packed")
-                args2[u"dst_address"] = getattr(dst_ip, u"packed")
+                args2[u"src_address"] = IPAddress.create_ip_address_object(
+                    src_ip
+                )
+                args2[u"dst_address"] = IPAddress.create_ip_address_object(
+                    dst_ip
+                )
                 args2[u"vni"] = int(vni_start) + i
                 args3[u"vlan_id"] = i + 1
                 history = bool(not 1 < i < vxlan_count - 1)
-                papi_exec.add(cmd1, history=history, **args1).\
-                    add(cmd2, history=history, **args2).\
-                    add(cmd3, history=history, **args3)
+                papi_exec.add(cmd1, history=history, **args1)
+                papi_exec.add(cmd2, history=history, **args2)
+                papi_exec.add(cmd3, history=history, **args3)
             papi_exec.get_replies()
 
         return vxlan_count
@@ -216,50 +187,6 @@ class TestConfig:
         :type node_vlan_if: str
         """
         if_data = InterfaceUtil.vpp_get_interface_data(node)
-        if vxlan_count > 10:
-            commands = list()
-            for i in range(0, vxlan_count):
-                vxlan_subif_key = Topology.add_new_port(node, u"vxlan_tunnel")
-                vxlan_subif_name = f"vxlan_tunnel{i}"
-                founds = dict(vxlan=False, vlan=False)
-                vxlan_subif_idx = None
-                vlan_subif_key = Topology.add_new_port(node, u"vlan_subif")
-                vlan_subif_name = \
-                    f"{Topology.get_interface_name(node, node_vlan_if)}.{i + 1}"
-                vlan_idx = None
-                for data in if_data:
-                    if_name = data[u"interface_name"]
-                    if not founds[u"vxlan"] and if_name == vxlan_subif_name:
-                        vxlan_subif_idx = data[u"sw_if_index"]
-                        founds[u"vxlan"] = True
-                    elif not founds[u"vlan"] and if_name == vlan_subif_name:
-                        vlan_idx = data[u"sw_if_index"]
-                        founds[u"vlan"] = True
-                    if founds[u"vxlan"] and founds[u"vlan"]:
-                        break
-                Topology.update_interface_sw_if_index(
-                    node, vxlan_subif_key, vxlan_subif_idx)
-                Topology.update_interface_name(
-                    node, vxlan_subif_key, vxlan_subif_name)
-                commands.append(
-                    f"sw_interface_set_flags sw_if_index {vxlan_subif_idx} "
-                    f"admin-up link-up\n"
-                )
-                Topology.update_interface_sw_if_index(
-                    node, vlan_subif_key, vlan_idx
-                )
-                Topology.update_interface_name(
-                    node, vlan_subif_key, vlan_subif_name
-                )
-                commands.append(
-                    f"sw_interface_set_flags sw_if_index {vlan_idx} admin-up "
-                    f"link-up\n"
-                )
-            VatExecutor().write_and_execute_script(
-                node, u"/tmp/put_subinterfaces_up.config", commands
-            )
-            return
-
         cmd = u"sw_interface_set_flags"
         args1 = dict(
             sw_if_index=None,
@@ -270,7 +197,7 @@ class TestConfig:
             flags=InterfaceStatusFlags.IF_STATUS_API_FLAG_ADMIN_UP.value
         )
 
-        with PapiSocketExecutor(node) as papi_exec:
+        with PapiSocketExecutor(node, is_async=True) as papi_exec:
             for i in range(0, vxlan_count):
                 vxlan_subif_key = Topology.add_new_port(node, u"vxlan_tunnel")
                 vxlan_subif_name = f"vxlan_tunnel{i}"
@@ -306,9 +233,8 @@ class TestConfig:
                 )
                 args2[u"sw_if_index"] = vlan_idx
                 history = bool(not 1 < i < vxlan_count - 1)
-                papi_exec.add(cmd, history=history, **args1). \
-                    add(cmd, history=history, **args2)
-                papi_exec.add(cmd, **args1).add(cmd, **args2)
+                papi_exec.add(cmd, history=history, **args1)
+                papi_exec.add(cmd, history=history, **args2)
             papi_exec.get_replies()
 
     @staticmethod
@@ -340,43 +266,6 @@ class TestConfig:
         """
         dst_ip_start = ip_address(dst_ip_start)
 
-        if vxlan_count > 1:
-            idx_vxlan_if = Topology.get_interface_sw_index(node, node_vxlan_if)
-            commands = list()
-            for i in range(0, vxlan_count):
-                dst_ip = dst_ip_start + i * ip_step
-                commands.append(
-                    f"exec ip neighbor "
-                    f"{Topology.get_interface_name(node, node_vxlan_if)} "
-                    f"{dst_ip} "
-                    f"{Topology.get_interface_mac(op_node, op_node_if)} static "
-                    f"\n"
-                )
-                commands.append(
-                    f"ip_route_add_del "
-                    f"{dst_ip}/{128 if dst_ip.version == 6 else 32} count 1 "
-                    f"via {dst_ip} sw_if_index {idx_vxlan_if}\n"
-                )
-                sw_idx_vxlan = Topology.get_interface_sw_index(
-                    node, f"vxlan_tunnel{i + 1}"
-                )
-                commands.append(
-                    f"sw_interface_set_l2_bridge sw_if_index {sw_idx_vxlan} "
-                    f"bd_id {bd_id_start + i} shg 0 enable\n"
-                )
-                sw_idx_vlan = Topology.get_interface_sw_index(
-                    node, f"vlan_subif{i + 1}"
-                )
-                commands.append(
-                    f"sw_interface_set_l2_bridge sw_if_index {sw_idx_vlan} "
-                    f"bd_id {bd_id_start + i} shg 0 enable\n"
-                )
-            VatExecutor().write_and_execute_script(
-                node, u"/tmp/configure_routes_and_bridge_domains.config",
-                commands
-            )
-            return
-
         cmd1 = u"ip_neighbor_add_del"
         neighbor = dict(
             sw_if_index=Topology.get_interface_sw_index(node, node_vxlan_if),
@@ -418,14 +307,14 @@ class TestConfig:
             enable=1
         )
 
-        with PapiSocketExecutor(node) as papi_exec:
+        with PapiSocketExecutor(node, is_async=True) as papi_exec:
             for i in range(0, vxlan_count):
                 args1[u"neighbor"][u"ip_address"] = \
                     str(dst_ip_start + i * ip_step)
                 args2[u"route"][u"prefix"][u"address"][u"un"] = \
-                    IPUtil.union_addr(dst_ip_start + i * ip_step)
+                    IPAddress.union_addr(dst_ip_start + i * ip_step)
                 args2[u"route"][u"paths"][0][u"nh"][u"address"] = \
-                    IPUtil.union_addr(dst_ip_start + i * ip_step)
+                    IPAddress.union_addr(dst_ip_start + i * ip_step)
                 args3[u"rx_sw_if_index"] = Topology.get_interface_sw_index(
                     node, f"vxlan_tunnel{i+1}"
                 )
@@ -435,8 +324,9 @@ class TestConfig:
                 )
                 args4[u"bd_id"] = int(bd_id_start+i)
                 history = bool(not 1 < i < vxlan_count - 1)
-                papi_exec.add(cmd1, history=history, **args1). \
-                    add(cmd2, history=history, **args2). \
-                    add(cmd3, history=history, **args3). \
-                    add(cmd3, history=history, **args4)
+                papi_exec.add(cmd1, history=history, **args1)
+                papi_exec.add(cmd2, history=history, **args2)
+                papi_exec.add(cmd3, history=history, **args3)
+                # Yes, args4 go with cmd3, there is no cmd4.
+                papi_exec.add(cmd3, history=history, **args4)
             papi_exec.get_replies()