aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries
diff options
context:
space:
mode:
authorpmikus <pmikus@cisco.com>2016-06-20 13:13:02 +0100
committerMiroslav Miklus <mmiklus@cisco.com>2016-08-01 14:41:46 +0000
commit8fa8590c30540f53edb02c223a6de616cbe149da (patch)
treeaffd629efc2ce42dc7a39c9f3d5ae93725544f35 /resources/libraries
parentfeef56fdb844e82997e8665557762a004f0d1922 (diff)
CSIT-179 IPv6 Scale - performance
- Add libraries for ipv6 scale setup - Add test cases for testing 10k/100k/1M fib entries - Add t-rex profiles for large scale testing Change-Id: I4260405c960afe659db7e0764a68a87b9e8de0b2 Signed-off-by: pmikus <pmikus@cisco.com>
Diffstat (limited to 'resources/libraries')
-rw-r--r--resources/libraries/python/TrafficGenerator.py45
-rw-r--r--resources/libraries/python/VppConfigGenerator.py6
-rw-r--r--resources/libraries/robot/performance.robot40
3 files changed, 91 insertions, 0 deletions
diff --git a/resources/libraries/python/TrafficGenerator.py b/resources/libraries/python/TrafficGenerator.py
index a640c1d80a..28a75669b2 100644
--- a/resources/libraries/python/TrafficGenerator.py
+++ b/resources/libraries/python/TrafficGenerator.py
@@ -406,6 +406,51 @@ class TrafficGenerator(object):
_p0, _p1, _async, _latency,
warmup_time),
timeout=int(duration)+60)
+ elif traffic_type in ["3-node-IPv6-dst-10000"]:
+ (ret, stdout, stderr) = ssh.exec_command(
+ "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
+ "--duration={1} -r {2} -s {3} -6 "
+ "--p{4}_src_start_ip 2001:1::1 "
+ "--p{4}_dst_start_ip 2001:2::0 "
+ "--p{4}_dst_end_ip 2001:2::270F "
+ "--p{5}_src_start_ip 2001:2::1 "
+ "--p{5}_dst_start_ip 2001:1::0 "
+ "--p{5}_dst_end_ip 2001:1::270F "
+ "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
+ duration, rate, framesize,
+ _p0, _p1, _async, _latency,
+ warmup_time),
+ timeout=int(duration)+60)
+ elif traffic_type in ["3-node-IPv6-dst-100000"]:
+ (ret, stdout, stderr) = ssh.exec_command(
+ "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
+ "--duration={1} -r {2} -s {3} -6 "
+ "--p{4}_src_start_ip 2001:1::1 "
+ "--p{4}_dst_start_ip 2001:2::0 "
+ "--p{4}_dst_end_ip 2001:2::1:869F "
+ "--p{5}_src_start_ip 2001:2::1 "
+ "--p{5}_dst_start_ip 2001:1::0 "
+ "--p{5}_dst_end_ip 2001:1::1:869F "
+ "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
+ duration, rate, framesize,
+ _p0, _p1, _async, _latency,
+ warmup_time),
+ timeout=int(duration)+60)
+ elif traffic_type in ["3-node-IPv6-dst-1000000"]:
+ (ret, stdout, stderr) = ssh.exec_command(
+ "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
+ "--duration={1} -r {2} -s {3} -6 "
+ "--p{4}_src_start_ip 2001:1::1 "
+ "--p{4}_dst_start_ip 2001:2::0 "
+ "--p{4}_dst_end_ip 2001:2::F:423F "
+ "--p{5}_src_start_ip 2001:2::1 "
+ "--p{5}_dst_start_ip 2001:1::0 "
+ "--p{5}_dst_end_ip 2001:1::F:423F "
+ "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
+ duration, rate, framesize,
+ _p0, _p1, _async, _latency,
+ warmup_time),
+ timeout=int(duration)+60)
else:
raise NotImplementedError('Unsupported traffic type')
diff --git a/resources/libraries/python/VppConfigGenerator.py b/resources/libraries/python/VppConfigGenerator.py
index de1f0c7e5c..ad3f23483e 100644
--- a/resources/libraries/python/VppConfigGenerator.py
+++ b/resources/libraries/python/VppConfigGenerator.py
@@ -60,6 +60,12 @@ dpdk {{
{nomultiseg}
{enablevhostuser}
}}
+
+ip6 {{
+ hash-buckets 2000000
+ heap-size 500m
+}}
+
"""
# End VPP configuration template.
diff --git a/resources/libraries/robot/performance.robot b/resources/libraries/robot/performance.robot
index 78cdd8b845..bb9e8ab135 100644
--- a/resources/libraries/robot/performance.robot
+++ b/resources/libraries/robot/performance.robot
@@ -386,6 +386,46 @@
| | 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}
+| Scale IPv6 forwarding initialized in a 3-node circular topology
+| | [Documentation]
+| | ... | Custom setup of IPv6 topology with scalability of ip routes on all
+| | ... | DUT nodes in 3-node circular topology
+| | ...
+| | ... | *Arguments:*
+| | ... | - ${count} - IP route count. Type: integer
+| | ...
+| | ... | *Return:*
+| | ... | - No value returned
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Scale IPv6 forwarding initialized in a 3-node circular topology \
+| | ... | \| 100000 \|
+| | [Arguments] | ${count}
+| | ${subn_prefix}= | Set Variable | 64
+| | ${host_prefix}= | Set Variable | 128
+| | VPP Set If IPv6 Addr | ${dut1} | ${dut1_if1} | 2001:3::1 | ${subn_prefix}
+| | VPP Set If IPv6 Addr | ${dut1} | ${dut1_if2} | 2001:4::1 | ${subn_prefix}
+| | VPP Set If IPv6 Addr | ${dut2} | ${dut2_if1} | 2001:4::2 | ${subn_prefix}
+| | VPP Set If IPv6 Addr | ${dut2} | ${dut2_if2} | 2001:5::1 | ${subn_prefix}
+| | ${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} | ${dut2_if1}
+| | Vpp nodes ra suppress link layer | ${nodes}
+| | Add Ip Neighbor | ${dut1} | ${dut1_if1} | 2001:3::2 | ${tg1_if1_mac}
+| | Add Ip Neighbor | ${dut1} | ${dut1_if2} | 2001:4::2 | ${dut2_if1_mac}
+| | Add Ip Neighbor | ${dut2} | ${dut2_if1} | 2001:4::1 | ${dut1_if2_mac}
+| | Add Ip Neighbor | ${dut2} | ${dut2_if2} | 2001:5::2 | ${tg1_if2_mac}
+| | Vpp Route Add | ${dut1} | 2001:2::0 | ${host_prefix} | 2001:4::2
+| | ... | interface=${dut1_if2} | count=${count}
+| | Vpp Route Add | ${dut1} | 2001:1::0 | ${host_prefix} | 2001:3::2
+| | ... | interface=${dut1_if1} | count=${count}
+| | Vpp Route Add | ${dut2} | 2001:1::0 | ${host_prefix} | 2001:4::1
+| | ... | interface=${dut2_if2} | count=${count}
+| | Vpp Route Add | ${dut2} | 2001:2::0 | ${host_prefix} | 2001:5::2
+| | ... | interface=${dut2_if1} | count=${count}
+
| L2 xconnect initialized in a 3-node circular topology
| | [Documentation]
| | ... | Setup L2 xconnect topology by cross connecting two interfaces on