feat(core): Multilink backend 39/39439/12
authorpmikus <peter.mikus@protonmail.ch>
Fri, 25 Aug 2023 08:30:01 +0000 (08:30 +0000)
committerPeter Mikus <peter.mikus@protonmail.ch>
Thu, 21 Sep 2023 06:25:22 +0000 (06:25 +0000)
Signed-off-by: pmikus <peter.mikus@protonmail.ch>
Change-Id: I8d168979ab9722e0056e97edb228f29cbfa245e3

20 files changed:
resources/libraries/python/IPTopology.py [new file with mode: 0644]
resources/libraries/python/TrafficGenerator.py
resources/libraries/robot/ip/ip4.robot
resources/libraries/robot/shared/default.robot
resources/libraries/robot/shared/suite_setup.robot
tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale1m-ndrpdr.robot
tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-ndrpdr.robot
tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-rnd-ndrpdr.robot
tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-ndrpdr.robot
tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-rnd-ndrpdr.robot
tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-ndrpdr.robot
tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-rnd-ndrpdr.robot
tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale1m-ndrpdr.robot
tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale200k-ndrpdr.robot
tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale200k-rnd-ndrpdr.robot
tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale20k-ndrpdr.robot
tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale20k-rnd-ndrpdr.robot
tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale2m-ndrpdr.robot
tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale2m-rnd-ndrpdr.robot
topologies/available/lf_3na_spr_testbed21.yaml

diff --git a/resources/libraries/python/IPTopology.py b/resources/libraries/python/IPTopology.py
new file mode 100644 (file)
index 0000000..1e5a180
--- /dev/null
@@ -0,0 +1,97 @@
+# 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:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""IP Topology Library."""
+
+from robot.libraries.BuiltIn import BuiltIn
+
+from resources.libraries.python.IPUtil import IPUtil
+
+
+class IPTopology:
+    """IP Topology Library."""
+
+    @staticmethod
+    def initialize_ipv4_forwarding(count=1, parallel_links=1):
+        """
+        Custom setup of IPv4 forwarding with scalability of IP routes on all
+        DUT nodes in 2-node / 3-node circular topology.
+
+        :param count: Number of routes to configure.
+        :param parallel_links: Number of parallel links to configure.
+        :type count: int
+        :type parallel_links: int
+        """
+        topology = BuiltIn().get_variable_value("&{topology_info}")
+        dut = topology["duts"][-1]
+        ifl = BuiltIn().get_variable_value("${int}")
+
+        for l, i in zip(range(parallel_links), range(1, parallel_links*2, 2)):
+            dut1_int1 = BuiltIn().get_variable_value(f"${{DUT1_{ifl}{i}}}[0]")
+            dut1_int2 = BuiltIn().get_variable_value(f"${{DUT1_{ifl}{i+1}}}[0]")
+            dut_int1 = BuiltIn().get_variable_value(f"${{{dut}_{ifl}{i}}}[0]")
+            dut_int2 = BuiltIn().get_variable_value(f"${{{dut}_{ifl}{i+1}}}[0]")
+
+            IPUtil.vpp_add_ip_neighbor(
+                topology["DUT1"], dut1_int1, f"1.{l}.1.1",
+                topology[f"TG_pf{i}_mac"][0]
+            )
+            if dut == "DUT2":
+                dut_mac1 = BuiltIn().get_variable_value(
+                    f"${{{dut}_{ifl}{i}_mac}}[0]"
+                )
+                IPUtil.vpp_add_ip_neighbor(
+                    topology["DUT1"], dut1_int2, f"3.{l}.3.2", dut_mac1
+                )
+                dut_mac2 = BuiltIn().get_variable_value(
+                    f"${{DUT1_{ifl}{i+1}_mac}}[0]"
+                )
+                IPUtil.vpp_add_ip_neighbor(
+                    topology["DUT2"], dut_int1, f"3.{l}.3.1", dut_mac2
+                )
+            IPUtil.vpp_add_ip_neighbor(
+                topology[dut], dut_int2, f"2.{l}.2.1",
+                topology[f"TG_pf{i}_mac"][0]
+            )
+
+            IPUtil.vpp_interface_set_ip_address(
+                topology["DUT1"], dut1_int1, f"1.{l}.1.2", 30
+            )
+            if dut == "DUT2":
+                IPUtil.vpp_interface_set_ip_address(
+                    topology["DUT1"], dut1_int2, f"3.{l}.3.1", 30
+                )
+                IPUtil.vpp_interface_set_ip_address(
+                    topology["DUT2"], dut_int1, f"3.{l}.3.2", 30
+                )
+            IPUtil.vpp_interface_set_ip_address(
+                topology[dut], dut_int2, f"2.{l}.2.2", 30
+            )
+
+            IPUtil.vpp_route_add(
+                topology["DUT1"], f"{i}0.0.0.0", 32, gateway=f"1.{l}.1.1",
+                interface=dut1_int1, count=count
+            )
+            if dut == "DUT2":
+                IPUtil.vpp_route_add(
+                    topology["DUT1"], f"{i+1}0.0.0.0", 32, gateway=f"3.{l}.3.2",
+                    interface=dut1_int2, count=count
+                )
+                IPUtil.vpp_route_add(
+                    topology["DUT2"], f"{i}0.0.0.0", 32, gateway=f"3.{l}.3.1",
+                    interface=dut_int1, count=count
+                )
+            IPUtil.vpp_route_add(
+                topology[dut], f"{i+1}0.0.0.0", 32, gateway=f"2.{l}.2.1",
+                interface=dut_int2, count=count
+            )
index afb9388..4543bae 100644 (file)
@@ -278,64 +278,69 @@ class TrafficGenerator(AbstractMeasurer):
         else:
             return "none"
 
-    def initialize_traffic_generator(
-            self, tg_node, tg_if1, tg_if2, tg_if1_adj_node, tg_if1_adj_if,
-            tg_if2_adj_node, tg_if2_adj_if, osi_layer, tg_if1_dst_mac=None,
-            tg_if2_dst_mac=None):
+    def initialize_traffic_generator(self, osi_layer, parallel_links=1):
         """TG initialization.
 
-        :param tg_node: Traffic generator node.
-        :param tg_if1: TG - name of first interface.
-        :param tg_if2: TG - name of second interface.
-        :param tg_if1_adj_node: TG if1 adjecent node.
-        :param tg_if1_adj_if: TG if1 adjecent interface.
-        :param tg_if2_adj_node: TG if2 adjecent node.
-        :param tg_if2_adj_if: TG if2 adjecent interface.
         :param osi_layer: 'L2', 'L3' or 'L7' - OSI Layer testing type.
-        :param tg_if1_dst_mac: Interface 1 destination MAC address.
-        :param tg_if2_dst_mac: Interface 2 destination MAC address.
-        :type tg_node: dict
-        :type tg_if1: str
-        :type tg_if2: str
-        :type tg_if1_adj_node: dict
-        :type tg_if1_adj_if: str
-        :type tg_if2_adj_node: dict
-        :type tg_if2_adj_if: str
+        :param parallel_links: Number of parallel links to configure.
         :type osi_layer: str
-        :type tg_if1_dst_mac: str
-        :type tg_if2_dst_mac: str
-        :returns: nothing
-        :raises RuntimeError: In case of issue during initialization.
+        :type parallel_links: int
+        :raises ValueError: If OSI layer is unknown.
         """
-        subtype = check_subtype(tg_node)
+        if osi_layer not in ("L2", "L3", "L7"):
+            raise ValueError("Unknown OSI layer!")
+
+        topology = BuiltIn().get_variable_value("&{topology_info}")
+        self._node = topology["TG"]
+        subtype = check_subtype(self._node)
+
         if subtype == NodeSubTypeTG.TREX:
-            self._node = tg_node
+            trex_topology = list()
             self._mode = TrexMode.ASTF if osi_layer == "L7" else TrexMode.STL
 
-            if osi_layer == "L2":
-                tg_if1_adj_addr = Topology().get_interface_mac(tg_node, tg_if2)
-                tg_if2_adj_addr = Topology().get_interface_mac(tg_node, tg_if1)
-            elif osi_layer in ("L3", "L7"):
-                tg_if1_adj_addr = Topology().get_interface_mac(
-                    tg_if1_adj_node, tg_if1_adj_if
+            for l in range(1, parallel_links*2, 2):
+                tg_if1_adj_addr = topology[f"TG_pf{l+1}_mac"][0]
+                tg_if2_adj_addr = topology[f"TG_pf{l}_mac"][0]
+                if osi_layer in ("L3", "L7"):
+                    ifl = BuiltIn().get_variable_value("${int}")
+                    last = topology["duts_count"]
+                    tg_if1_adj_addr = Topology().get_interface_mac(
+                        topology["DUT1"], 
+                        BuiltIn().get_variable_value(
+                            f"${{DUT1_{ifl}{l}}}[0]"
+                        )
+                    )
+                    tg_if2_adj_addr = Topology().get_interface_mac(
+                        topology[f"DUT{last}"], 
+                        BuiltIn().get_variable_value(
+                            f"${{DUT{last}_{ifl}{l+1}}}[0]"
+                        )
+                    )
+
+                trex_topology.append(
+                    dict(
+                        interface=topology[f"TG_pf{l}"][0],
+                        dst_mac=tg_if1_adj_addr
+                    )
                 )
-                tg_if2_adj_addr = Topology().get_interface_mac(
-                    tg_if2_adj_node, tg_if2_adj_if
+                trex_topology.append(
+                    dict(
+                        interface=topology[f"TG_pf{l+1}"][0],
+                        dst_mac=tg_if2_adj_addr
+                    )
                 )
-            else:
-                raise ValueError("Unknown OSI layer!")
-
-            tg_topology = list()
-            tg_topology.append(dict(interface=tg_if1, dst_mac=tg_if1_adj_addr))
-            tg_topology.append(dict(interface=tg_if2, dst_mac=tg_if2_adj_addr))
-            if1_pci = Topology().get_interface_pci_addr(self._node, tg_if1)
-            if2_pci = Topology().get_interface_pci_addr(self._node, tg_if2)
-            if min(if1_pci, if2_pci) != if1_pci:
-                self._ifaces_reordered = True
-                tg_topology.reverse()
-
-            TrexInitConfig.init_trex_startup_configuration(tg_node, tg_topology)
-            TrafficGenerator.startup_trex(tg_node, osi_layer, subtype=subtype)
+                if1_pci = topology[f"TG_pf{l}_pci"][0]
+                if2_pci = topology[f"TG_pf{l+1}_pci"][0]
+                if min(if1_pci, if2_pci) != if1_pci:
+                    self._ifaces_reordered = True
+                    trex_topology.reverse()
+
+            TrexInitConfig.init_trex_startup_configuration(
+                self._node, trex_topology
+            )
+            TrafficGenerator.startup_trex(
+                self._node, osi_layer, subtype=subtype
+            )
 
     @staticmethod
     def startup_trex(tg_node, osi_layer, subtype=None):
index 1d4e3e2..e3ebd0e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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:
@@ -12,9 +12,6 @@
 # limitations under the License.
 
 *** Settings ***
-| Library | resources.libraries.python.InterfaceUtil
-| Library | resources.libraries.python.IPUtil
-|
 | Documentation | IPv4 keywords
 
 *** Keywords ***
 | | ... | Vpp Route Add | ${dut2} | ${remote_host2_ip} | ${remote_host_mask}
 | | ... | gateway=1.1.1.1 | interface=${DUT2_${int}1}[0]
 
-| Initialize IPv4 forwarding with scaling in circular topology
-| | [Documentation]
-| | ... | Custom setup of IPv4 topology with scalability of ip routes on all
-| | ... | DUT nodes in 2-node / 3-node circular topology
-| |
-| | ... | *Arguments:*
-| | ... | - count - IP route count. Type: integer
-| |
-| | ... | *Return:*
-| | ... | - No value returned
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Initialize IPv4 forwarding with scaling in 3-node circular \
-| | ... | topology \| 100000 \|
-| |
-| | [Arguments] | ${count}
-| |
-| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error
-| | ... | Variable Should Exist | ${dut2}
-| |
-| | Set interfaces in path up
-| |
-| | VPP Add IP Neighbor
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | 1.1.1.1 | ${TG_pf1_mac}[0]
-| | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | VPP Add IP Neighbor
-| | ... | ${dut1} | ${DUT1_${int}2}[0] | 2.2.2.2 | ${DUT2_${int}1_mac}[0]
-| | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | VPP Add IP Neighbor
-| | ... | ${dut2} | ${DUT2_${int}1}[0] | 2.2.2.1 | ${DUT1_${int}2_mac}[0]
-| | ${dut}= | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | Set Variable | ${dut2}
-| | ... | ELSE | Set Variable | ${dut1}
-| | ${dut_if2}= | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | Set Variable | ${DUT2_${int}2}[0]
-| | ... | ELSE | Set Variable | ${DUT1_${int}2}[0]
-| | VPP Add IP Neighbor
-| | ... | ${dut} | ${dut_if2} | 3.3.3.1 | ${TG_pf2_mac}[0]
-| | VPP Interface Set IP Address
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | 1.1.1.2 | 30
-| | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | VPP Interface Set IP Address | ${dut1} | ${DUT1_${int}2}[0] | 2.2.2.1
-| | ... | 30
-| | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | VPP Interface Set IP Address | ${dut2} | ${DUT2_${int}1}[0] | 2.2.2.2
-| | ... | 30
-| | VPP Interface Set IP Address | ${dut} | ${dut_if2} | 3.3.3.2 | 30
-| | Vpp Route Add | ${dut1} | 10.0.0.0 | 32 | gateway=1.1.1.1
-| | ... | interface=${DUT1_${int}1}[0] | count=${count}
-| | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | Vpp Route Add | ${dut1} | 20.0.0.0 | 32 | gateway=2.2.2.2
-| | ... | interface=${DUT1_${int}2}[0] | count=${count}
-| | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | Vpp Route Add | ${dut2} | 10.0.0.0 | 32 | gateway=2.2.2.1
-| | ... | interface=${DUT2_${int}1}[0] | count=${count}
-| | Vpp Route Add | ${dut} | 20.0.0.0 | 32 | gateway=3.3.3.1
-| | ... | interface=${dut_if2} | count=${count}
-
 | Initialize IPv4 routing with memif pairs
 | | [Documentation]
 | | ... | Create pairs of Memif interfaces on all defined VPP nodes. Put each
index c17b7ac..65e6613 100644 (file)
@@ -28,6 +28,7 @@
 | Library | resources.libraries.python.FlowUtil
 | Library | resources.libraries.python.L2Util
 | Library | resources.libraries.python.InterfaceUtil
+| Library | resources.libraries.python.IPTopology
 | Library | resources.libraries.python.IPUtil
 | Library | resources.libraries.python.IPv6Util
 | Library | resources.libraries.python.IrqUtil
index 438a39f..4616ae0 100644 (file)
 | | ${type} = | Get TG Type | ${nodes}[TG]
 | | ${version} = | Get TG Version | ${nodes}[TG]
 | | Export TG Type And Version | ${type} | ${version}
-| | Initialize traffic generator
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-| | ... | ${dut1} | ${DUT1_${int}1}[0]
-| | ... | ${dut${duts_count}} | ${DUT${duts_count}_${int}2}[0]
-| | ... | ${osi_layer}
+| | Initialize traffic generator | ${osi_layer}
 
 | Additional Suite Setup Action For performance_tg_nic
 | | [Documentation]
 | | ... | Additional Setup for suites which uses performance measurement
-| | ... | for L1 cross connect tests
+| | ... | for L1 cross connect tests.
 | |
 | | ${type} = | Get TG Type | ${nodes}[TG]
 | | ${version} = | Get TG Version | ${nodes}[TG]
 | | Export Dut Type And Version | ${type} | ${version}
 | | Export TG Type And Version | ${type} | ${version}
-| | Initialize traffic generator
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-| | ... | ${tg} | ${TG_pf2}[0]
-| | ... | ${tg} | ${TG_pf1}[0]
-| | ... | ${osi_layer}
+| | Initialize traffic generator | "L2"
 
 | Additional Suite Setup Action For iPerf3
 | | [Documentation]
index 735495e..95e34e2 100644 (file)
@@ -91,8 +91,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index cb9b486..76848db 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 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:
@@ -90,8 +90,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index f5f0f6d..887f8cd 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 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:
@@ -90,8 +90,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index 46a544b..eb4d284 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 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:
@@ -90,8 +90,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index 451bdf2..974c1cc 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 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:
@@ -90,8 +90,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index 24be059..fa0292f 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 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:
@@ -90,8 +90,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index a593b32..ddb5b75 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 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:
@@ -90,8 +90,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index 084646b..44c27a0 100644 (file)
@@ -91,8 +91,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index a894529..e35e117 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 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:
@@ -90,8 +90,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index f7ce70c..3de3769 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 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:
@@ -91,8 +91,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index 27cc66a..3d5ac4e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 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:
@@ -90,8 +90,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index d900f5f..e1760a6 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 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:
@@ -91,8 +91,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index f320398..036860d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 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:
@@ -90,8 +90,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index ffab0d3..ddaa858 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 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:
@@ -91,8 +91,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index 1167ab0..6a68781 100644 (file)
@@ -151,7 +151,7 @@ nodes:
         model: Mellanox-CX7VEAT
       port3:
         # s52-t21-sut1-c2/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
-        mac_address: "b8:3f:d2:b7:a1:88"
+        mac_address: "b8:3f:d2:b7:a0:50"
         pci_address: "0000:3d:00.0"
         ip4_address: "172.16.30.2"
         driver: mlx5_core
@@ -159,7 +159,7 @@ nodes:
         model: Mellanox-CX7VEAT
       port4:
         # s52-t21-sut1-c2/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
-        mac_address: "b8:3f:d2:b7:a1:89"
+        mac_address: "b8:3f:d2:b7:a0:51"
         pci_address: "0000:3d:00.1"
         ip4_address: "172.16.40.2"
         driver: mlx5_core
@@ -167,7 +167,7 @@ nodes:
         model: Mellanox-CX7VEAT
       port5:
         # s52-t21-sut1-c10/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
-        mac_address: "b8:3f:d2:b7:a0:50"
+        mac_address: "b8:3f:d2:b7:a1:88"
         pci_address: "0000:17:00.0"
         ip4_address: "172.16.50.2"
         driver: mlx5_core
@@ -175,7 +175,7 @@ nodes:
         model: Mellanox-CX7VEAT
       port6:
         # s52-t21-sut1-c10/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
-        mac_address: "b8:3f:d2:b7:a0:51"
+        mac_address: "b8:3f:d2:b7:a1:89"
         pci_address: "0000:17:00.1"
         ip4_address: "172.16.60.2"
         driver: mlx5_core