aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries
diff options
context:
space:
mode:
Diffstat (limited to 'resources/libraries')
-rw-r--r--resources/libraries/python/IPv6Setup.py21
-rw-r--r--resources/libraries/python/TrafficGenerator.py13
-rw-r--r--resources/libraries/robot/performance.robot36
3 files changed, 66 insertions, 4 deletions
diff --git a/resources/libraries/python/IPv6Setup.py b/resources/libraries/python/IPv6Setup.py
index c016423f32..6b5d8a5f66 100644
--- a/resources/libraries/python/IPv6Setup.py
+++ b/resources/libraries/python/IPv6Setup.py
@@ -210,6 +210,27 @@ class IPv6Setup(object):
sw_if_index=sw_if_index,
state='admin-down')
+
+ @staticmethod
+ def vpp_set_ipv6_neighbor(node, interface, ipaddr, macaddr):
+ """Set IPv6 neighbor.
+
+ :param node: VPP node.
+ :param interface: Interface name.
+ :param ip_address: IPv6 address.
+ :param mac_address: mac address.
+ :type node: dict
+ :type interface: str
+ :type ip_address: str
+ :type mac_address: str
+ """
+ sw_if_index = Topology.get_interface_sw_index(node, interface)
+ VatExecutor.cmd_from_template(node,
+ 'add_ip_neighbor.vat',
+ sw_if_index=sw_if_index,
+ ip_address=ipaddr,
+ mac_address=macaddr)
+
@staticmethod
def vpp_ra_suppress_link_layer(node, interface):
"""Suppress ICMPv6 router advertisement message for link scope address.
diff --git a/resources/libraries/python/TrafficGenerator.py b/resources/libraries/python/TrafficGenerator.py
index adc22b3de6..b125a0b53d 100644
--- a/resources/libraries/python/TrafficGenerator.py
+++ b/resources/libraries/python/TrafficGenerator.py
@@ -236,6 +236,19 @@ class TrafficGenerator(object):
"--p{4}_dst_start_ip 10.10.10.2'".\
format(duration, rate, framesize, _p0, _p1),\
timeout=int(duration)+60)
+ elif traffic_type in ["3-node-IPv6"]:
+ (ret, stdout, stderr) = ssh.exec_command(
+ "sh -c '/tmp/openvpp-testing/resources/tools/t-rex/"
+ "t-rex-stateless.py "
+ "-d {0} -r {1} -s {2} -6 "
+ "--p{3}_src_start_ip 2001:1::2 "
+ "--p{3}_src_end_ip 2001:1::FE "
+ "--p{3}_dst_start_ip 2001:2::2 "
+ "--p{4}_src_start_ip 2001:2::2 "
+ "--p{4}_src_end_ip 2001:2::FE "
+ "--p{4}_dst_start_ip 2001:1::2'".\
+ format(duration, rate, framesize, _p0, _p1),\
+ timeout=int(duration)+60)
else:
raise NotImplementedError('Unsupported traffic type')
diff --git a/resources/libraries/robot/performance.robot b/resources/libraries/robot/performance.robot
index a2c8acde27..d43073d30d 100644
--- a/resources/libraries/robot/performance.robot
+++ b/resources/libraries/robot/performance.robot
@@ -12,14 +12,18 @@
# limitations under the License.
*** Settings ***
+| Library | resources.libraries.python.topology.Topology
+| Library | resources.libraries.python.NodePath
+| Library | resources.libraries.python.InterfaceUtil
+| Library | resources.libraries.python.TrafficGenerator
+| Library | resources.libraries.python.TrafficGenerator.TGDropRateSearchImpl
| Resource | resources/libraries/robot/default.robot
| Resource | resources/libraries/robot/interfaces.robot
+| Resource | resources/libraries/robot/counters.robot
+| Resource | resources/libraries/robot/bridge_domain.robot
| Resource | resources/libraries/robot/l2_xconnect.robot
| Resource | resources/libraries/robot/ipv4.robot
-| Resource | resources/libraries/robot/bridge_domain.robot
-| Resource | resources/libraries/robot/counters.robot
-| Library | resources.libraries.python.TrafficGenerator
-| Library | resources.libraries.python.TrafficGenerator.TGDropRateSearchImpl
+| Resource | resources/libraries/robot/ipv6.robot
| Documentation | Performance suite keywords
*** Keywords ***
@@ -95,6 +99,29 @@
| | dut2_v4.set_route | 10.10.10.0 | 24 | 1.1.1.1 | ${dut2_if1}
| | All Vpp Interfaces Ready Wait | ${nodes}
+| IPv6 forwarding initialized in a 3-node circular topology
+| | [Documentation] | Custom setup of IPv6 topology on all DUT nodes
+| | ${prefix}= | Set Variable | 64
+| | ${tg1_if1_mac}= | Get Interface MAC | ${tg} | ${tg_if1}
+| | ${tg1_if2_mac}= | Get Interface MAC | ${tg} | ${tg_if2}
+| | ${dut1_if2_mac}= | Get Interface MAC | ${dut1} | ${dut1_if2}
+| | ${dut2_if1_mac}= | Get Interface MAC | ${dut2} | ${dut1_if1}
+| | VPP Set If IPv6 Addr | ${dut1} | ${dut1_if1} | 2001:1::1 | ${prefix}
+| | VPP Set If IPv6 Addr | ${dut1} | ${dut1_if2} | 2001:3::1 | ${prefix}
+| | VPP Set If IPv6 Addr | ${dut2} | ${dut2_if1} | 2001:3::2 | ${prefix}
+| | VPP Set If IPv6 Addr | ${dut2} | ${dut2_if2} | 2001:2::1 | ${prefix}
+| | Vpp nodes ra suppress link layer | ${nodes}
+| | Vpp set IPv6 neighbor | ${dut1} | ${dut1_if1} | 2001:1::2
+| | ... | ${tg1_if1_mac}
+| | Vpp set IPv6 neighbor | ${dut2} | ${dut2_if2} | 2001:2::2
+| | ... | ${tg1_if2_mac}
+| | Vpp set IPv6 neighbor | ${dut1} | ${dut1_if2} | 2001:3::2
+| | ... | ${dut2_if1_mac}
+| | Vpp set IPv6 neighbor | ${dut2} | ${dut2_if1} | 2001:3::1
+| | ... | ${dut1_if2_mac}
+| | Vpp Route Add | ${dut1} | 2001:2::0 | ${prefix} | 2001:3::2 | ${dut1_if2}
+| | Vpp Route Add | ${dut2} | 2001:1::0 | ${prefix} | 2001:3::1 | ${dut2_if1}
+
| L2 xconnect initialized in a 3-node circular topology
| | [Documentation] | Custom setup of L2 xconnect topology
| | L2 setup xconnect on DUT | ${dut1} | ${dut1_if1} | ${dut1_if2}
@@ -150,6 +177,7 @@
| | ... | ${topology_type} | ${min_rate} | ${max_rate} | ${threshold}
| | Set Duration | 60
| | Set Search Rate Boundaries | ${max_rate} | ${min_rate}
+| | Set Search Frame Size | ${framesize}
| | Set Search Rate Type pps
| | Set Binary Convergence Threshold | ${threshold}
| | Binary Search | ${binary_min} | ${binary_max} | ${topology_type}