From: Ondrej Lichtner olichtne@redhat.com
There are no bonds in this test, and the hosts only have a single eth interface with id 'eth'.
Signed-off-by: Ondrej Lichtner olichtne@redhat.com --- recipes/regression_tests/phase3/vxlan_test.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/recipes/regression_tests/phase3/vxlan_test.py b/recipes/regression_tests/phase3/vxlan_test.py index f96fc46..ed14276 100644 --- a/recipes/regression_tests/phase3/vxlan_test.py +++ b/recipes/regression_tests/phase3/vxlan_test.py @@ -56,16 +56,9 @@ if nperf_cpupin: m1.run("service irqbalance stop") m2.run("service irqbalance stop")
- m1_phy1 = m1.get_interface("eth1") - m1_phy2 = m1.get_interface("eth2") - dev_list = [(m1, m1_phy1), (m1, m1_phy2)] - - if test_if2.get_type() == "bond": - m2_phy1 = m2.get_interface("eth1") - m2_phy2 = m2.get_interface("eth2") - dev_list.extend([(m2, m2_phy1), (m2, m2_phy2)]) - else: - dev_list.append((m2, test_if2)) + m1_phy1 = m1.get_interface("eth") + m2_phy1 = m2.get_interface("eth") + dev_list = [(m1, m1_phy1), (m2, m2_phy1)]
# this will pin devices irqs to cpu #0 for m, d in dev_list:
From: Ondrej Lichtner olichtne@redhat.com
When the scope is not present, the kernel returns all the ip addresses including IPv6 link local addresses, which mess up the ip address selection. This fixes that.
This also fixes a bug in ipv6 pings where we used an ipv4 address as the source.
Signed-off-by: Ondrej Lichtner olichtne@redhat.com --- .../regression_tests/phase3/2_virt_ovs_vxlan.py | 48 +++++++++++----------- 1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/recipes/regression_tests/phase3/2_virt_ovs_vxlan.py b/recipes/regression_tests/phase3/2_virt_ovs_vxlan.py index 388b603..910f2fa 100644 --- a/recipes/regression_tests/phase3/2_virt_ovs_vxlan.py +++ b/recipes/regression_tests/phase3/2_virt_ovs_vxlan.py @@ -73,47 +73,47 @@ ctl.wait(15) #pings ping_opts = {"count": 100, "interval": 0.1} if ipv in ['ipv4', 'both']: - ping((guest1, g1_nic, 0), - (guest2, g2_nic, 0), + ping((guest1, g1_nic, 0, {"scope": 0}), + (guest2, g2_nic, 0, {"scope": 0}), options=ping_opts, expect="fail") - ping((guest1, g1_nic, 0), - (guest3, g3_nic, 0), + ping((guest1, g1_nic, 0, {"scope": 0}), + (guest3, g3_nic, 0, {"scope": 0}), options=ping_opts) - ping((guest1, g1_nic, 0), - (guest4, g4_nic, 0), + ping((guest1, g1_nic, 0, {"scope": 0}), + (guest4, g4_nic, 0, {"scope": 0}), options=ping_opts, expect="fail")
- ping((guest2, g2_nic, 0), - (guest3, g3_nic, 0), + ping((guest2, g2_nic, 0, {"scope": 0}), + (guest3, g3_nic, 0, {"scope": 0}), options=ping_opts, expect="fail") - ping((guest2, g2_nic, 0), - (guest4, g4_nic, 0), + ping((guest2, g2_nic, 0, {"scope": 0}), + (guest4, g4_nic, 0, {"scope": 0}), options=ping_opts)
- ping((guest3, g3_nic, 0), - (guest4, g4_nic, 0), + ping((guest3, g3_nic, 0, {"scope": 0}), + (guest4, g4_nic, 0, {"scope": 0}), options=ping_opts, expect="fail")
if ipv in ['ipv6', 'both']: - ping6((guest1, g1_nic, 0), - (guest2, g2_nic, 1), + ping6((guest1, g1_nic, 1, {"scope": 0}), + (guest2, g2_nic, 1, {"scope": 0}), options=ping_opts, expect="fail") - ping6((guest1, g1_nic, 0), - (guest3, g3_nic, 1), + ping6((guest1, g1_nic, 1, {"scope": 0}), + (guest3, g3_nic, 1, {"scope": 0}), options=ping_opts) - ping6((guest1, g1_nic, 0), - (guest4, g4_nic, 1), + ping6((guest1, g1_nic, 1, {"scope": 0}), + (guest4, g4_nic, 1, {"scope": 0}), options=ping_opts, expect="fail")
- ping6((guest2, g2_nic, 0), - (guest3, g3_nic, 1), + ping6((guest2, g2_nic, 1, {"scope": 0}), + (guest3, g3_nic, 1, {"scope": 0}), options=ping_opts, expect="fail") - ping6((guest2, g2_nic, 0), - (guest4, g4_nic, 1), + ping6((guest2, g2_nic, 1, {"scope": 0}), + (guest4, g4_nic, 1, {"scope": 0}), options=ping_opts)
- ping6((guest3, g3_nic, 0), - (guest4, g4_nic, 1), + ping6((guest3, g3_nic, 1, {"scope": 0}), + (guest4, g4_nic, 1, {"scope": 0}), options=ping_opts, expect="fail")
# if nperf_mode == "multi":
From: Ondrej Lichtner olichtne@redhat.com
This makes the IP network aliases consistent for all recipes like this: * 'net' alias configures the IPv4 network between the baremetal hosts * 'vxlan_net' alias configures the IPv4 overlay VXLAN network * 'vxlan_net6' alias configures the IPv6 overlay VXLAN network
Signed-off-by: Ondrej Lichtner olichtne@redhat.com --- .../regression_tests/phase3/2_virt_ovs_vxlan.xml | 26 +++++++++++----------- .../regression_tests/phase3/novirt_ovs_vxlan.xml | 18 +++++++-------- .../regression_tests/phase3/vxlan_multicast.xml | 4 +--- recipes/regression_tests/phase3/vxlan_remote.xml | 5 +---- 4 files changed, 24 insertions(+), 29 deletions(-)
diff --git a/recipes/regression_tests/phase3/2_virt_ovs_vxlan.xml b/recipes/regression_tests/phase3/2_virt_ovs_vxlan.xml index f34c67f..05509d8 100644 --- a/recipes/regression_tests/phase3/2_virt_ovs_vxlan.xml +++ b/recipes/regression_tests/phase3/2_virt_ovs_vxlan.xml @@ -10,15 +10,15 @@ <alias name="nperf_num_parallel" value="2"/> <alias name="mapping_file" value="2_virt_ovs_vxlan.mapping" /> <alias name="net" value="192.168.2"/> - <alias name="net6" value="fc00:0:0:0"/> <alias name="vxlan_net" value="192.168.100"/> + <alias name="vxlan_net6" value="fc00:0:0:0"/> </define> <network> <host id="h1"> <interfaces> <eth id="if1" label="n1"> <addresses> - <address value="{$vxlan_net}.1/24"/> + <address value="{$net}.1/24"/> </addresses> </eth> <eth id="if2" label="to_guest1"/> @@ -38,7 +38,7 @@ </slaves> <tunnel id="vxlan1" type="vxlan"> <options> - <option name="option:remote_ip" value="{$vxlan_net}.2"/> + <option name="option:remote_ip" value="{$net}.2"/> <option name="option:key" value="flow"/> <option name="ofport_request" value="10"/> </options> @@ -57,8 +57,8 @@ <interfaces> <eth id="if1" label="to_guest1"> <addresses> - <address value="{$net}.1/24"/> - <address value="{$net6}::1/64"/> + <address value="{$vxlan_net}.1/24"/> + <address value="{$vxlan_net6}::1/64"/> </addresses> </eth> </interfaces> @@ -67,8 +67,8 @@ <interfaces> <eth id="if1" label="to_guest2"> <addresses> - <address value="{$net}.2/24"/> - <address value="{$net6}::2/64"/> + <address value="{$vxlan_net}.2/24"/> + <address value="{$vxlan_net6}::2/64"/> </addresses> </eth> </interfaces> @@ -77,7 +77,7 @@ <interfaces> <eth id="if1" label="n1"> <addresses> - <address value="{$vxlan_net}.2/24"/> + <address value="{$net}.2/24"/> </addresses> </eth> <eth id="if2" label="to_guest3"/> @@ -97,7 +97,7 @@ </slaves> <tunnel id="vxlan1" type="vxlan"> <options> - <option name="option:remote_ip" value="{$vxlan_net}.1"/> + <option name="option:remote_ip" value="{$net}.1"/> <option name="option:key" value="flow"/> <option name="ofport_request" value="10"/> </options> @@ -116,8 +116,8 @@ <interfaces> <eth id="if1" label="to_guest3"> <addresses> - <address value="{$net}.3/24"/> - <address value="{$net6}::3/64"/> + <address value="{$vxlan_net}.3/24"/> + <address value="{$vxlan_net6}::3/64"/> </addresses> </eth> </interfaces> @@ -126,8 +126,8 @@ <interfaces> <eth id="if1" label="to_guest4"> <addresses> - <address value="{$net}.4/24"/> - <address value="{$net6}::4/64"/> + <address value="{$vxlan_net}.4/24"/> + <address value="{$vxlan_net6}::4/64"/> </addresses> </eth> </interfaces> diff --git a/recipes/regression_tests/phase3/novirt_ovs_vxlan.xml b/recipes/regression_tests/phase3/novirt_ovs_vxlan.xml index 4f6c98d..1e4ec02 100644 --- a/recipes/regression_tests/phase3/novirt_ovs_vxlan.xml +++ b/recipes/regression_tests/phase3/novirt_ovs_vxlan.xml @@ -10,22 +10,22 @@ <alias name="nperf_num_parallel" value="2"/> <alias name="mapping_file" value="novirt_ovs_vxlan.mapping" /> <alias name="net" value="192.168.2"/> - <alias name="net6" value="fc00:0:0:0"/> <alias name="vxlan_net" value="192.168.100"/> + <alias name="vxlan_net6" value="fc00:0:0:0"/> </define> <network> <host id="test_host1"> <interfaces> <eth id="if1" label="n1"> <addresses> - <address value="{$vxlan_net}.1/24"/> + <address value="{$net}.1/24"/> </addresses> </eth> <ovs_bridge id="ovs1"> <internal id="int0"> <addresses> - <address value="{$net}.1/24"/> - <address value="{$net6}::1/64"/> + <address value="{$vxlan_net}.1/24"/> + <address value="{$vxlan_net6}::1/64"/> </addresses> <options> <option name="ofport_request" value="5"/> @@ -34,7 +34,7 @@ </internal> <tunnel id="vxlan1" type="vxlan"> <options> - <option name="option:remote_ip" value="{$vxlan_net}.2"/> + <option name="option:remote_ip" value="{$net}.2"/> <option name="option:key" value="flow"/> <option name="ofport_request" value="10"/> </options> @@ -51,7 +51,7 @@ <interfaces> <eth id="if1" label="n1"> <addresses> - <address value="{$vxlan_net}.2/24"/> + <address value="{$net}.2/24"/> </addresses> </eth> <ovs_bridge id="ovs2"> @@ -61,13 +61,13 @@ <option name="name" value="int0"/> </options> <addresses> - <address value="{$net}.2/24"/> - <address value="{$net6}::2/24"/> + <address value="{$vxlan_net}.2/24"/> + <address value="{$vxlan_net6}::2/24"/> </addresses> </internal> <tunnel id="vxlan1" type="vxlan"> <options> - <option name="option:remote_ip" value="{$vxlan_net}.1"/> + <option name="option:remote_ip" value="{$net}.1"/> <option name="option:key" value="flow"/> <option name="ofport_request" value="10"/> </options> diff --git a/recipes/regression_tests/phase3/vxlan_multicast.xml b/recipes/regression_tests/phase3/vxlan_multicast.xml index bb603f1..6b52231 100644 --- a/recipes/regression_tests/phase3/vxlan_multicast.xml +++ b/recipes/regression_tests/phase3/vxlan_multicast.xml @@ -11,7 +11,7 @@ <alias name="mapping_file" value="vxlan.mapping" /> <alias name="net" value="192.168.0"/> <alias name="vxlan_net" value="192.168.100"/> - <alias name="vxlan_net6" value="fc01:0:0:0"/> + <alias name="vxlan_net6" value="fc00:0:0:0"/> </define> <network> <host id="testmachine1"> @@ -19,7 +19,6 @@ <eth id="eth" label="tnet"> <addresses> <address value="{$net}.1/24" /> - <address value="fc00:0:0:0::1/64"/> </addresses> </eth> <vxlan id="test_if"> @@ -42,7 +41,6 @@ <eth id="eth" label="tnet"> <addresses> <address value="{$net}.2/24" /> - <address value="fc00:0:0:0::2/64"/> </addresses> </eth> <vxlan id="test_if"> diff --git a/recipes/regression_tests/phase3/vxlan_remote.xml b/recipes/regression_tests/phase3/vxlan_remote.xml index d04dee2..38392fb 100644 --- a/recipes/regression_tests/phase3/vxlan_remote.xml +++ b/recipes/regression_tests/phase3/vxlan_remote.xml @@ -10,9 +10,8 @@ <alias name="nperf_num_parallel" value="2"/> <alias name="mapping_file" value="vxlan_remote.mapping" /> <alias name="net" value="192.168.0"/> - <alias name="net6" value="fc00:0:0:0"/> <alias name="vxlan_net" value="192.168.100"/> - <alias name="vxlan_net6" value="fc01:0:0:0"/> + <alias name="vxlan_net6" value="fc00:0:0:0"/> </define> <network> <host id="testmachine1"> @@ -20,7 +19,6 @@ <eth id="eth" label="tnet"> <addresses> <address value="{$net}.1/24" /> - <address value="{$net6}::1/64"/> </addresses> </eth> <vxlan id="test_if"> @@ -43,7 +41,6 @@ <eth id="eth" label="tnet"> <addresses> <address value="{$net}.2/24" /> - <address value="fc00:0:0:0::2/64"/> </addresses> </eth> <vxlan id="test_if">
From: Ondrej Lichtner olichtne@redhat.com
This adds all the missing features that recipes from other phases have but were skipped for the initial vxlan recipes. This includes: * cpu pinning * multithreaded netperf mode !!!!!!!! CAUTION !!!!!!!!! this works differently than other phases - it's controlled by just the nperf_num_parallel alias - when '==1' then mode is normal and when >1 then mode is multithreaded. Don't forget that when multithreading is used, confidence is calculated manually by the LNST Netperf module instead of the netperf tool. * netperf debug alias * Removed the rest of the commented code related to offloads that aren't used in these vxlan recipes
Signed-off-by: Ondrej Lichtner olichtne@redhat.com --- .../regression_tests/phase3/2_virt_ovs_vxlan.py | 75 +++++++++++---------- .../regression_tests/phase3/2_virt_ovs_vxlan.xml | 4 +- .../regression_tests/phase3/novirt_ovs_vxlan.py | 58 ++++++++-------- .../regression_tests/phase3/novirt_ovs_vxlan.xml | 4 +- .../regression_tests/phase3/vxlan_multicast.xml | 4 +- recipes/regression_tests/phase3/vxlan_remote.xml | 4 +- recipes/regression_tests/phase3/vxlan_test.py | 78 ++++++---------------- 7 files changed, 102 insertions(+), 125 deletions(-)
diff --git a/recipes/regression_tests/phase3/2_virt_ovs_vxlan.py b/recipes/regression_tests/phase3/2_virt_ovs_vxlan.py index 910f2fa..79820e0 100644 --- a/recipes/regression_tests/phase3/2_virt_ovs_vxlan.py +++ b/recipes/regression_tests/phase3/2_virt_ovs_vxlan.py @@ -38,9 +38,10 @@ netperf_duration = int(ctl.get_alias("netperf_duration")) nperf_reserve = int(ctl.get_alias("nperf_reserve")) nperf_confidence = ctl.get_alias("nperf_confidence") nperf_max_runs = int(ctl.get_alias("nperf_max_runs")) +nperf_cpupin = ctl.get_alias("nperf_cpupin") nperf_cpu_util = ctl.get_alias("nperf_cpu_util") -nperf_mode = ctl.get_alias("nperf_mode") nperf_num_parallel = int(ctl.get_alias("nperf_num_parallel")) +nperf_debug = ctl.get_alias("nperf_debug") pr_user_comment = ctl.get_alias("perfrepo_comment")
pr_comment = generate_perfrepo_comment([guest1, guest2, guest3, guest4], @@ -56,17 +57,21 @@ g2_nic.set_mtu(mtu) g3_nic.set_mtu(mtu) g4_nic.set_mtu(mtu)
-host1.run("service irqbalance stop") -host2.run("service irqbalance stop") -guest1.run("service irqbalance stop") -guest2.run("service irqbalance stop") -guest3.run("service irqbalance stop") -guest4.run("service irqbalance stop") +if nperf_cpupin: + host1.run("service irqbalance stop") + host2.run("service irqbalance stop") + guest1.run("service irqbalance stop") + guest2.run("service irqbalance stop") + guest3.run("service irqbalance stop") + guest4.run("service irqbalance stop")
-#this will pin devices irqs to cpu #0 -for m, d in [(guest1, g1_nic), (guest2, g2_nic), (guest3, g3_nic), (guest4, g4_nic)]: - pin_dev_irqs(m, d, 0) + #this will pin devices irqs to cpu #0 + for m, d in [(guest1, g1_nic), (guest2, g2_nic), (guest3, g3_nic), (guest4, g4_nic)]: + pin_dev_irqs(m, d, 0)
+nperf_opts = "" +if nperf_cpupin and nperf_num_parallel == 1: + nperf_opts = " -T%s,%s" % (nperf_cpupin, nperf_cpupin)
ctl.wait(15)
@@ -116,17 +121,6 @@ if ipv in ['ipv6', 'both']: (guest4, g4_nic, 1, {"scope": 0}), options=ping_opts, expect="fail")
-# if nperf_mode == "multi": - # netperf_cli_tcp.unset_option("confidence") - # netperf_cli_udp.unset_option("confidence") - # netperf_cli_tcp6.unset_option("confidence") - # netperf_cli_udp6.unset_option("confidence") - - # netperf_cli_tcp.update_options({"num_parallel": nperf_num_parallel}) - # netperf_cli_udp.update_options({"num_parallel": nperf_num_parallel}) - # netperf_cli_tcp6.update_options({"num_parallel": nperf_num_parallel}) - # netperf_cli_udp6.update_options({"num_parallel": nperf_num_parallel}) -
if ipv in [ 'ipv4', 'both' ]: # prepare PerfRepo result for tcp @@ -136,7 +130,7 @@ if ipv in [ 'ipv4', 'both' ]: 'kernel_release', 'redhat_release']) result_tcp.add_tag(product_name) - if nperf_mode == "multi": + if nperf_num_parallel > 1: result_tcp.add_tag("multithreaded") result_tcp.set_parameter('num_parallel', nperf_num_parallel)
@@ -147,8 +141,11 @@ if ipv in [ 'ipv4', 'both' ]: client_opts={"duration" : netperf_duration, "testname" : "TCP_STREAM", "confidence" : nperf_confidence, + "num_parallel" : nperf_num_parallel, "cpu_util" : nperf_cpu_util, - "runs": nperf_max_runs}, + "runs": nperf_max_runs, + "netperf_opts": nperf_opts, + "debug": nperf_debug}, baseline = baseline, timeout = (netperf_duration + nperf_reserve)*nperf_max_runs)
@@ -163,7 +160,7 @@ if ipv in [ 'ipv4', 'both' ]: 'kernel_release', 'redhat_release']) result_udp.add_tag(product_name) - if nperf_mode == "multi": + if nperf_num_parallel > 1: result_udp.add_tag("multithreaded") result_udp.set_parameter('num_parallel', nperf_num_parallel)
@@ -174,8 +171,11 @@ if ipv in [ 'ipv4', 'both' ]: client_opts={"duration" : netperf_duration, "testname" : "UDP_STREAM", "confidence" : nperf_confidence, + "num_parallel" : nperf_num_parallel, "cpu_util" : nperf_cpu_util, - "runs": nperf_max_runs}, + "runs": nperf_max_runs, + "netperf_opts": nperf_opts, + "debug": nperf_debug}, baseline = baseline, timeout = (netperf_duration + nperf_reserve)*nperf_max_runs)
@@ -190,7 +190,7 @@ if ipv in [ 'ipv6', 'both' ]: 'kernel_release', 'redhat_release']) result_tcp.add_tag(product_name) - if nperf_mode == "multi": + if nperf_num_parallel > 1: result_tcp.add_tag("multithreaded") result_tcp.set_parameter('num_parallel', nperf_num_parallel)
@@ -201,9 +201,11 @@ if ipv in [ 'ipv6', 'both' ]: client_opts={"duration" : netperf_duration, "testname" : "TCP_STREAM", "confidence" : nperf_confidence, + "num_parallel" : nperf_num_parallel, "cpu_util" : nperf_cpu_util, "runs": nperf_max_runs, - "netperf_opts" : "-6"}, + "netperf_opts" : nperf_opts + "-6", + "debug": nperf_debug}, baseline = baseline, timeout = (netperf_duration + nperf_reserve)*nperf_max_runs)
@@ -218,7 +220,7 @@ if ipv in [ 'ipv6', 'both' ]: 'kernel_release', 'redhat_release']) result_udp.add_tag(product_name) - if nperf_mode == "multi": + if nperf_num_parallel > 1: result_udp.add_tag("multithreaded") result_udp.set_parameter('num_parallel', nperf_num_parallel)
@@ -229,9 +231,11 @@ if ipv in [ 'ipv6', 'both' ]: client_opts={"duration" : netperf_duration, "testname" : "UDP_STREAM", "confidence" : nperf_confidence, + "num_parallel" : nperf_num_parallel, "cpu_util" : nperf_cpu_util, "runs": nperf_max_runs, - "netperf_opts" : "-6"}, + "netperf_opts" : nperf_opts + "-6", + "debug": nperf_debug}, baseline = baseline, timeout = (netperf_duration + nperf_reserve)*nperf_max_runs)
@@ -239,9 +243,10 @@ if ipv in [ 'ipv6', 'both' ]: result_udp.set_comment(pr_comment) perf_api.save_result(result_udp)
-host1.run("service irqbalance start") -host2.run("service irqbalance start") -guest1.run("service irqbalance start") -guest2.run("service irqbalance start") -guest3.run("service irqbalance start") -guest4.run("service irqbalance start") +if nperf_cpupin: + host1.run("service irqbalance start") + host2.run("service irqbalance start") + guest1.run("service irqbalance start") + guest2.run("service irqbalance start") + guest3.run("service irqbalance start") + guest4.run("service irqbalance start") diff --git a/recipes/regression_tests/phase3/2_virt_ovs_vxlan.xml b/recipes/regression_tests/phase3/2_virt_ovs_vxlan.xml index 05509d8..f16f9bc 100644 --- a/recipes/regression_tests/phase3/2_virt_ovs_vxlan.xml +++ b/recipes/regression_tests/phase3/2_virt_ovs_vxlan.xml @@ -6,8 +6,8 @@ <alias name="nperf_reserve" value="20" /> <alias name="nperf_confidence" value="99,5" /> <alias name="nperf_max_runs" value="5"/> - <alias name="nperf_mode" value="default"/> - <alias name="nperf_num_parallel" value="2"/> + <alias name="nperf_num_parallel" value="1"/> + <alias name="nperf_debug" value="0"/> <alias name="mapping_file" value="2_virt_ovs_vxlan.mapping" /> <alias name="net" value="192.168.2"/> <alias name="vxlan_net" value="192.168.100"/> diff --git a/recipes/regression_tests/phase3/novirt_ovs_vxlan.py b/recipes/regression_tests/phase3/novirt_ovs_vxlan.py index 6114bff..f69e77f 100644 --- a/recipes/regression_tests/phase3/novirt_ovs_vxlan.py +++ b/recipes/regression_tests/phase3/novirt_ovs_vxlan.py @@ -32,9 +32,10 @@ netperf_duration = int(ctl.get_alias("netperf_duration")) nperf_reserve = int(ctl.get_alias("nperf_reserve")) nperf_confidence = ctl.get_alias("nperf_confidence") nperf_max_runs = int(ctl.get_alias("nperf_max_runs")) +nperf_cpupin = ctl.get_alias("nperf_cpupin") nperf_cpu_util = ctl.get_alias("nperf_cpu_util") -nperf_mode = ctl.get_alias("nperf_mode") nperf_num_parallel = int(ctl.get_alias("nperf_num_parallel")) +nperf_debug = ctl.get_alias("nperf_debug") pr_user_comment = ctl.get_alias("perfrepo_comment")
pr_comment = generate_perfrepo_comment([h1, h2], pr_user_comment) @@ -45,23 +46,17 @@ h2_nic = h2.get_device("int0") h1_nic.set_mtu(mtu) h2_nic.set_mtu(mtu)
-h1.run("service irqbalance stop") -h2.run("service irqbalance stop") +if nperf_cpupin: + h1.run("service irqbalance stop") + h2.run("service irqbalance stop")
-# this will pin devices irqs to cpu #0 -for m, d in [(h1, h1_nic), (h2, h2_nic)]: - pin_dev_irqs(m, d, 0) + # this will pin devices irqs to cpu #0 + for m, d in [(h1, h1_nic), (h2, h2_nic)]: + pin_dev_irqs(m, d, 0)
-# if nperf_mode == "multi": - # netperf_cli_tcp.unset_option("confidence") - # netperf_cli_udp.unset_option("confidence") - # netperf_cli_tcp6.unset_option("confidence") - # netperf_cli_udp6.unset_option("confidence") - - # netperf_cli_tcp.update_options({"num_parallel": nperf_num_parallel}) - # netperf_cli_udp.update_options({"num_parallel": nperf_num_parallel}) - # netperf_cli_tcp6.update_options({"num_parallel": nperf_num_parallel}) - # netperf_cli_udp6.update_options({"num_parallel": nperf_num_parallel}) +nperf_opts = "" +if nperf_cpupin and nperf_num_parallel == 1: + nperf_opts = " -T%s,%s" % (nperf_cpupin, nperf_cpupin)
ctl.wait(15)
@@ -88,7 +83,7 @@ if ipv in [ 'ipv4', 'both' ]: 'kernel_release', 'redhat_release']) result_tcp.add_tag(product_name) - if nperf_mode == "multi": + if nperf_num_parallel > 1: result_tcp.add_tag("multithreaded") result_tcp.set_parameter('num_parallel', nperf_num_parallel)
@@ -100,8 +95,11 @@ if ipv in [ 'ipv4', 'both' ]: client_opts={"duration" : netperf_duration, "testname" : "TCP_STREAM", "confidence" : nperf_confidence, + "num_parallel" : nperf_num_parallel, "cpu_util" : nperf_cpu_util, - "runs": nperf_max_runs}, + "runs": nperf_max_runs, + "debug": nperf_debug, + "netperf_opts": nperf_opts}, baseline = baseline, timeout = (netperf_duration + nperf_reserve)*nperf_max_runs)
@@ -116,7 +114,7 @@ if ipv in [ 'ipv4', 'both' ]: 'kernel_release', 'redhat_release']) result_udp.add_tag(product_name) - if nperf_mode == "multi": + if nperf_num_parallel > 1: result_udp.add_tag("multithreaded") result_udp.set_parameter('num_parallel', nperf_num_parallel)
@@ -128,8 +126,11 @@ if ipv in [ 'ipv4', 'both' ]: client_opts={"duration" : netperf_duration, "testname" : "UDP_STREAM", "confidence" : nperf_confidence, + "num_parallel" : nperf_num_parallel, "cpu_util" : nperf_cpu_util, - "runs": nperf_max_runs}, + "runs": nperf_max_runs, + "debug": nperf_debug, + "netperf_opts": nperf_opts}, baseline = baseline, timeout = (netperf_duration + nperf_reserve)*nperf_max_runs)
@@ -146,7 +147,7 @@ if ipv in [ 'ipv6', 'both' ]: 'kernel_release', 'redhat_release']) result_tcp.add_tag(product_name) - if nperf_mode == "multi": + if nperf_num_parallel > 1: result_tcp.add_tag("multithreaded") result_tcp.set_parameter('num_parallel', nperf_num_parallel)
@@ -158,9 +159,11 @@ if ipv in [ 'ipv6', 'both' ]: client_opts={"duration" : netperf_duration, "testname" : "TCP_STREAM", "confidence" : nperf_confidence, + "num_parallel" : nperf_num_parallel, "cpu_util" : nperf_cpu_util, "runs": nperf_max_runs, - "netperf_opts" : "-6"}, + "debug": nperf_debug, + "netperf_opts" : nperf_opts + "-6"}, baseline = baseline, timeout = (netperf_duration + nperf_reserve)*nperf_max_runs)
@@ -175,7 +178,7 @@ if ipv in [ 'ipv6', 'both' ]: 'kernel_release', 'redhat_release']) result_udp.add_tag(product_name) - if nperf_mode == "multi": + if nperf_num_parallel > 1: result_udp.add_tag("multithreaded") result_udp.set_parameter('num_parallel', nperf_num_parallel)
@@ -187,9 +190,11 @@ if ipv in [ 'ipv6', 'both' ]: client_opts={"duration" : netperf_duration, "testname" : "UDP_STREAM", "confidence" : nperf_confidence, + "num_parallel" : nperf_num_parallel, "cpu_util" : nperf_cpu_util, "runs": nperf_max_runs, - "netperf_opts" : "-6"}, + "debug": nperf_debug, + "netperf_opts" : nperf_opts + "-6"}, baseline = baseline, timeout = (netperf_duration + nperf_reserve)*nperf_max_runs)
@@ -197,5 +202,6 @@ if ipv in [ 'ipv6', 'both' ]: result_udp.set_comment(pr_comment) perf_api.save_result(result_udp)
-h1.run("service irqbalance start") -h2.run("service irqbalance start") +if nperf_cpupin: + h1.run("service irqbalance start") + h2.run("service irqbalance start") diff --git a/recipes/regression_tests/phase3/novirt_ovs_vxlan.xml b/recipes/regression_tests/phase3/novirt_ovs_vxlan.xml index 1e4ec02..25404b7 100644 --- a/recipes/regression_tests/phase3/novirt_ovs_vxlan.xml +++ b/recipes/regression_tests/phase3/novirt_ovs_vxlan.xml @@ -6,8 +6,8 @@ <alias name="nperf_reserve" value="20" /> <alias name="nperf_confidence" value="99,5" /> <alias name="nperf_max_runs" value="5"/> - <alias name="nperf_mode" value="default"/> - <alias name="nperf_num_parallel" value="2"/> + <alias name="nperf_num_parallel" value="1"/> + <alias name="nperf_debug" value="0"/> <alias name="mapping_file" value="novirt_ovs_vxlan.mapping" /> <alias name="net" value="192.168.2"/> <alias name="vxlan_net" value="192.168.100"/> diff --git a/recipes/regression_tests/phase3/vxlan_multicast.xml b/recipes/regression_tests/phase3/vxlan_multicast.xml index 6b52231..2327c6b 100644 --- a/recipes/regression_tests/phase3/vxlan_multicast.xml +++ b/recipes/regression_tests/phase3/vxlan_multicast.xml @@ -6,8 +6,8 @@ <alias name="nperf_reserve" value="20" /> <alias name="nperf_confidence" value="99,5" /> <alias name="nperf_max_runs" value="5"/> - <alias name="nperf_mode" value="default"/> - <alias name="nperf_num_parallel" value="2"/> + <alias name="nperf_num_parallel" value="1"/> + <alias name="nperf_debug" value="0"/> <alias name="mapping_file" value="vxlan.mapping" /> <alias name="net" value="192.168.0"/> <alias name="vxlan_net" value="192.168.100"/> diff --git a/recipes/regression_tests/phase3/vxlan_remote.xml b/recipes/regression_tests/phase3/vxlan_remote.xml index 38392fb..6fbf3eb 100644 --- a/recipes/regression_tests/phase3/vxlan_remote.xml +++ b/recipes/regression_tests/phase3/vxlan_remote.xml @@ -6,8 +6,8 @@ <alias name="nperf_reserve" value="20" /> <alias name="nperf_confidence" value="99,5" /> <alias name="nperf_max_runs" value="5"/> - <alias name="nperf_mode" value="default"/> - <alias name="nperf_num_parallel" value="2"/> + <alias name="nperf_num_parallel" value="1"/> + <alias name="nperf_debug" value="0"/> <alias name="mapping_file" value="vxlan_remote.mapping" /> <alias name="net" value="192.168.0"/> <alias name="vxlan_net" value="192.168.100"/> diff --git a/recipes/regression_tests/phase3/vxlan_test.py b/recipes/regression_tests/phase3/vxlan_test.py index ed14276..9086a1e 100644 --- a/recipes/regression_tests/phase3/vxlan_test.py +++ b/recipes/regression_tests/phase3/vxlan_test.py @@ -26,13 +26,6 @@ m2.sync_resources(modules=["IcmpPing", "Icmp6Ping", "Netperf"]) # TESTS # ------
-# offloads = ["gro", "gso", "tso", "tx", "rx"] -# offload_settings = [ [("gro", "on"), ("gso", "on"), ("tso", "on"), ("tx", "on"), ("rx", "on")], - # [("gro", "off"), ("gso", "on"), ("tso", "on"), ("tx", "on"), ("rx", "on")], - # [("gro", "on"), ("gso", "off"), ("tso", "off"), ("tx", "on"), ("rx", "on")], - # [("gro", "on"), ("gso", "on"), ("tso", "off"), ("tx", "off"), ("rx", "on")], - # [("gro", "on"), ("gso", "on"), ("tso", "on"), ("tx", "on"), ("rx", "off")]] - ipv = ctl.get_alias("ipv") mtu = ctl.get_alias("mtu") netperf_duration = int(ctl.get_alias("netperf_duration")) @@ -41,8 +34,8 @@ nperf_confidence = ctl.get_alias("nperf_confidence") nperf_max_runs = int(ctl.get_alias("nperf_max_runs")) nperf_cpupin = ctl.get_alias("nperf_cpupin") nperf_cpu_util = ctl.get_alias("nperf_cpu_util") -nperf_mode = ctl.get_alias("nperf_mode") nperf_num_parallel = int(ctl.get_alias("nperf_num_parallel")) +nperf_debug = ctl.get_alias("nperf_debug") pr_user_comment = ctl.get_alias("perfrepo_comment")
pr_comment = generate_perfrepo_comment([m1, m2], pr_user_comment) @@ -64,36 +57,14 @@ if nperf_cpupin: for m, d in dev_list: pin_dev_irqs(m, d, 0)
-# p_opts = "-L %s" % (test_if2.get_ip(0)) -# if nperf_cpupin and nperf_mode != "multi": - # p_opts += " -T%s,%s" % (nperf_cpupin, nperf_cpupin) - -# p_opts6 = "-L %s -6" % (test_if2.get_ip(1)) -# if nperf_cpupin and nperf_mode != "multi": - # p_opts6 += " -T%s,%s" % (nperf_cpupin, nperf_cpupin) - -# if nperf_mode == "multi": - # netperf_cli_tcp.unset_option("confidence") - # netperf_cli_udp.unset_option("confidence") - # netperf_cli_tcp6.unset_option("confidence") - # netperf_cli_udp6.unset_option("confidence") - - # netperf_cli_tcp.update_options({"num_parallel": nperf_num_parallel}) - # netperf_cli_udp.update_options({"num_parallel": nperf_num_parallel}) - # netperf_cli_tcp6.update_options({"num_parallel": nperf_num_parallel}) - # netperf_cli_udp6.update_options({"num_parallel": nperf_num_parallel}) +nperf_opts = "" +if nperf_cpupin and nperf_num_parallel == 1: + nperf_opts = " -T%s,%s" % (nperf_cpupin, nperf_cpupin)
ctl.wait(15)
ping_opts = {"count": 100, "interval": 0.1}
-# for setting in offload_settings: - # dev_features = "" - # for offload in setting: - # dev_features += " %s %s" % (offload[0], offload[1]) - # m1.run("ethtool -K %s %s" % (test_if1.get_devname(), dev_features)) - # m2.run("ethtool -K %s %s" % (test_if2.get_devname(), dev_features)) - if ipv in [ 'ipv4', 'both' ]: ping((m1, test_if1, 0, {"scope": 0}), (m2, test_if2, 0, {"scope": 0}), @@ -107,10 +78,8 @@ if ipv in [ 'ipv4', 'both' ]: hash_ignore=[ 'kernel_release', 'redhat_release']) - # for offload in setting: - # result_tcp.set_parameter(offload[0], offload[1]) result_tcp.add_tag(product_name) - if nperf_mode == "multi": + if nperf_num_parallel > 1: result_tcp.add_tag("multithreaded") result_tcp.set_parameter('num_parallel', nperf_num_parallel)
@@ -122,8 +91,11 @@ if ipv in [ 'ipv4', 'both' ]: client_opts={"duration" : netperf_duration, "testname" : "TCP_STREAM", "confidence" : nperf_confidence, + "num_parallel" : nperf_num_parallel, "cpu_util" : nperf_cpu_util, - "runs": nperf_max_runs}, + "runs": nperf_max_runs, + "debug": nperf_debug, + "netperf_opts": nperf_opts}, baseline = baseline, timeout = (netperf_duration + nperf_reserve)*nperf_max_runs)
@@ -137,10 +109,8 @@ if ipv in [ 'ipv4', 'both' ]: hash_ignore=[ 'kernel_release', 'redhat_release']) - # for offload in setting: - # result_udp.set_parameter(offload[0], offload[1]) result_udp.add_tag(product_name) - if nperf_mode == "multi": + if nperf_num_parallel > 1: result_udp.add_tag("multithreaded") result_udp.set_parameter('num_parallel', nperf_num_parallel)
@@ -152,8 +122,11 @@ if ipv in [ 'ipv4', 'both' ]: client_opts={"duration" : netperf_duration, "testname" : "UDP_STREAM", "confidence" : nperf_confidence, + "num_parallel" : nperf_num_parallel, "cpu_util" : nperf_cpu_util, - "runs": nperf_max_runs}, + "runs": nperf_max_runs, + "debug": nperf_debug, + "netperf_opts": nperf_opts}, baseline = baseline, timeout = (netperf_duration + nperf_reserve)*nperf_max_runs)
@@ -172,10 +145,8 @@ if ipv in [ 'ipv6', 'both' ]: hash_ignore=[ 'kernel_release', 'redhat_release']) - # for offload in setting: - # result_tcp.set_parameter(offload[0], offload[1]) result_tcp.add_tag(product_name) - if nperf_mode == "multi": + if nperf_num_parallel > 1: result_tcp.add_tag("multithreaded") result_tcp.set_parameter('num_parallel', nperf_num_parallel)
@@ -187,9 +158,11 @@ if ipv in [ 'ipv6', 'both' ]: client_opts={"duration" : netperf_duration, "testname" : "TCP_STREAM", "confidence" : nperf_confidence, + "num_parallel" : nperf_num_parallel, "cpu_util" : nperf_cpu_util, "runs": nperf_max_runs, - "netperf_opts" : "-6"}, + "debug": nperf_debug, + "netperf_opts" : nperf_opts + " -6"}, baseline = baseline, timeout = (netperf_duration + nperf_reserve)*nperf_max_runs)
@@ -203,10 +176,8 @@ if ipv in [ 'ipv6', 'both' ]: hash_ignore=[ 'kernel_release', 'redhat_release']) - # for offload in setting: - # result_udp.set_parameter(offload[0], offload[1]) result_udp.add_tag(product_name) - if nperf_mode == "multi": + if nperf_num_parallel > 1: result_udp.add_tag("multithreaded") result_udp.set_parameter('num_parallel', nperf_num_parallel)
@@ -218,9 +189,11 @@ if ipv in [ 'ipv6', 'both' ]: client_opts={"duration" : netperf_duration, "testname" : "UDP_STREAM", "confidence" : nperf_confidence, + "num_parallel" : nperf_num_parallel, "cpu_util" : nperf_cpu_util, "runs": nperf_max_runs, - "netperf_opts" : "-6"}, + "debug": nperf_debug, + "netperf_opts" : nperf_opts + "-6"}, baseline = baseline, timeout = (netperf_duration + nperf_reserve)*nperf_max_runs)
@@ -228,13 +201,6 @@ if ipv in [ 'ipv6', 'both' ]: result_udp.set_comment(pr_comment) perf_api.save_result(result_udp)
-#reset offload states -# dev_features = "" -# for offload in offloads: - # dev_features += " %s %s" % (offload, "on") -# m1.run("ethtool -K %s %s" % (test_if1.get_devname(), dev_features)) -# m2.run("ethtool -K %s %s" % (test_if2.get_devname(), dev_features)) - if nperf_cpupin: m1.run("service irqbalance start") m2.run("service irqbalance start")
From: Ondrej Lichtner olichtne@redhat.com
This adds .README files for the recently added vxlan recipes.
Signed-off-by: Ondrej Lichtner olichtne@redhat.com --- .../phase3/2_virt_ovs_vxlan.README | 129 +++++++++++++++++++++ .../phase3/novirt_ovs_vxlan.README | 93 +++++++++++++++ .../regression_tests/phase3/vxlan_multicast.README | 86 ++++++++++++++ .../regression_tests/phase3/vxlan_remote.README | 86 ++++++++++++++ 4 files changed, 394 insertions(+) create mode 100644 recipes/regression_tests/phase3/2_virt_ovs_vxlan.README create mode 100644 recipes/regression_tests/phase3/novirt_ovs_vxlan.README create mode 100644 recipes/regression_tests/phase3/vxlan_multicast.README create mode 100644 recipes/regression_tests/phase3/vxlan_remote.README
diff --git a/recipes/regression_tests/phase3/2_virt_ovs_vxlan.README b/recipes/regression_tests/phase3/2_virt_ovs_vxlan.README new file mode 100644 index 0000000..e7c8c90 --- /dev/null +++ b/recipes/regression_tests/phase3/2_virt_ovs_vxlan.README @@ -0,0 +1,129 @@ +Topology: + + switch + +--------+ + | | + +--------------------+ +----------------------+ + | | | | + | | | | + | | | | + | +--------+ | + | | + | | + +--+--+ +--+--+ ++---------| eth |--------+ +---------| eth |--------+ +| +-----+ | | +-----+ | +| | | | +| +----------------------------------------------------+ | +| | | | | | +| +----------+---------+ | | +----------+---------+ | +| | vxlan | | | | vxlan | | +| | | | | | | | +| | ovs_bridge | | | | ovs_bridge | | +| |tun_id tun_id| | | |tun_id tun_id| | +| | 100 200 | | | | 100 200 | | +| +--+--------------+--+ | | +--+--------------+--+ | +| | host1 | | | | host2 | | +| | | | | | | | +| | | | | | | | +| +-+-+ +-+-+ | | +-+-+ +-+-+ | ++--+tap+----------+tap+--+ +--+tap+----------+tap+--+ + +-+-+ +-+-+ +-+-+ +-+-+ + | | | | + +-+-+ +-+-+ +-+-+ +-+-+ ++--+eth+--+ +--+eth+--+ +--+eth+--+ +--+eth+--+ +| +---+ | | +---+ | | +---+ | | +---+ | +| | | | | | | | +| guest1 | | guest2 | | guest3 | | guest4 | +| | | | | | | | +| | | | | | | | ++---------+ +---------+ +---------+ +---------+ + +Number of hosts: 6 +Host #1 description: + One ethernet device configured with {$net}.1/24 ip address + Two tap devices + One Open vSwitch bridge that separates the guests into two distinct VXLANs + with tun_id=100 and tun_id=200. The vxlan port remote_ip points to the + ethernet interface of Host #2. + Host for guest1 and guest2 virtual machines +Host #2 description: + One ethernet device configured with {$net}.2/24 ip address + Two tap devices + One Open vSwitch bridge that separates the guests into two distinct VXLANs + with tun_id=100 and tun_id=200. The vxlan port remote_ip points to the + ethernet interface of Host #1. + Host for guest3 and guest4 virtual machines +Guest #1 description: + One ethernet device configured with ip addresses: + {$vxlan_net}.1/24 + {$vxlan_net6}::1/64 +Guest #2 description: + One ethernet device configured with ip addresses: + {$vxlan_net}.2/24 + {$vxlan_net6}::2/64 +Guest #3 description: + One ethernet device configured with ip addresses: + {$vxlan_net}.3/24 + {$vxlan_net6}::3/64 +Guest #4 description: + One ethernet device configured with ip addresses: + {$vxlan_net}.4/24 + {$vxlan_net6}::4/64 +Test name: + 2_virt_ovs_vxlan.py +Test description: + Ping: + + count: 100 + + interval: 0.1s + + guest1 -> guest2 expecting FAIL + + guest1 -> guest3 expecting PASS + + guest1 -> guest4 expecting FAIL + + guest2 -> guest3 expecting FAIL + + guest2 -> guest4 expecting PASS + + guest3 -> guest4 expecting FAIL + Ping6: + + count: 100 + + interval: 0.1s + + guest1 -> guest2 expecting FAIL + + guest1 -> guest3 expecting PASS + + guest1 -> guest4 expecting FAIL + + guest2 -> guest3 expecting FAIL + + guest2 -> guest4 expecting PASS + + guest3 -> guest4 expecting FAIL + Netperf: + + duration: 60s, repeated 5 times to calculate confidence + + guest1 -> guest3 TCP_STREAM ipv4 + + guest1 -> guest3 UDP_STREAM ipv4 + + guest1 -> guest3 TCP_STREAM ipv6 + + guest1 -> guest3 UDP_STREAM ipv6 + +PerfRepo integration: + First, preparation in PerfRepo is required - you need to create Test objects + through the web interface that properly describe the individual Netperf + tests that this recipe runs. Don't forget to also add appropriate metrics. + For these Netperf tests it's always: + * throughput + * throughput_min + * throughput_max + * throughput_deviation + + After that, to enable support for PerfRepo you need to create the file + 2_virt_ovs_vxlan.mapping and define the following id mappings: + tcp_ipv4_id -> to store ipv4 TCP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + tcp_ipv6_id -> to store ipv6 TCP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + udp_ipv4_id -> to store ipv4 UDP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + udp_ipv6_id -> to store ipv4 UDP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + + To enable result comparison agains baselines you need to create a Report in + PerfRepo that will store the baseline. Set up the Report to only contain results + with the same hash tag and then add a new mapping to the mapping file, with + this format: + <some_hash> = <report_id> + + The hash value is automatically generated during test execution and added + to each result stored in PerfRepo. To get the Report id you need to open + that report in our browser and find if in the URL. + + When running this recipe you should also define the 'product_name' alias + (e.g. RHEL7) in order to tag the result object in PerfRepo. diff --git a/recipes/regression_tests/phase3/novirt_ovs_vxlan.README b/recipes/regression_tests/phase3/novirt_ovs_vxlan.README new file mode 100644 index 0000000..8570ebd --- /dev/null +++ b/recipes/regression_tests/phase3/novirt_ovs_vxlan.README @@ -0,0 +1,93 @@ +Topology: + + switch + +--------+ + | | + +--------------------+ +----------------------+ + | | | | + | | | | + | | | | + | +--------+ | + | | + | | + +--+--+ +--+--+ ++---------| eth |--------+ +---------| eth |--------+ +| +-----+ | | +-----+ | +| | | | +| +----------------------------------------------------+ | +| | | | | | +| +----------+---------+ | | +----------+---------+ | +| | vxlan | | | | vxlan | | +| | | | | | | | +| | ovs_bridge | | | | ovs_bridge | | +| | | | | | | | +| | +----+ | | | | +----+ | | +| +-------|int0|-------+ | | +-------|int0|-------+ | +| +----+ | | +----+ | +| | | | +| host1 | | host2 | +| | | | ++------------------------+ +------------------------+ + +Number of hosts: 6 +Host #1 description: + One ethernet device configured with {$net}.1/24 ip address + One Open vSwitch bridge configured with: + * a VXLAN tunnel with remote_ip set to the ethernet interface of Host #2. + * an 'internal' port tagged with tun_id=100 and ip addresses: + {$vxlan_net}.1/24 + {$vxlan_net6}::1/64 +Host #2 description: + One ethernet device configured with {$net}.2/24 ip address + One Open vSwitch bridge configured with: + * a VXLAN tunnel with remote_ip set to the ethernet interface of Host #1. + * an 'internal' port tagged with tun_id=100 and ip addresses: + {$vxlan_net}.2/24 + {$vxlan_net6}::2/64 +Test name: + novirt_ovs_vxlan.py +Test description: + Ping: + + count: 100 + + interval: 0.1s + + host1.int0 -> host2.int0 expecting PASS + Ping6: + + count: 100 + + interval: 0.1s + + host1.int0 -> host2.int0 expecting PASS + Netperf: + + duration: 60s, repeated 5 times to calculate confidence + + host1.int0 -> host2.int0 TCP_STREAM ipv4 + + host1.int0 -> host2.int0 UDP_STREAM ipv4 + + host1.int0 -> host2.int0 TCP_STREAM ipv6 + + host1.int0 -> host2.int0 UDP_STREAM ipv6 + +PerfRepo integration: + First, preparation in PerfRepo is required - you need to create Test objects + through the web interface that properly describe the individual Netperf + tests that this recipe runs. Don't forget to also add appropriate metrics. + For these Netperf tests it's always: + * throughput + * throughput_min + * throughput_max + * throughput_deviation + + After that, to enable support for PerfRepo you need to create the file + novirt_ovs_vxlan.mapping and define the following id mappings: + tcp_ipv4_id -> to store ipv4 TCP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + tcp_ipv6_id -> to store ipv6 TCP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + udp_ipv4_id -> to store ipv4 UDP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + udp_ipv6_id -> to store ipv4 UDP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + + To enable result comparison agains baselines you need to create a Report in + PerfRepo that will store the baseline. Set up the Report to only contain results + with the same hash tag and then add a new mapping to the mapping file, with + this format: + <some_hash> = <report_id> + + The hash value is automatically generated during test execution and added + to each result stored in PerfRepo. To get the Report id you need to open + that report in our browser and find if in the URL. + + When running this recipe you should also define the 'product_name' alias + (e.g. RHEL7) in order to tag the result object in PerfRepo. diff --git a/recipes/regression_tests/phase3/vxlan_multicast.README b/recipes/regression_tests/phase3/vxlan_multicast.README new file mode 100644 index 0000000..cc082da --- /dev/null +++ b/recipes/regression_tests/phase3/vxlan_multicast.README @@ -0,0 +1,86 @@ +Topology: + + switch + +------+ + | | + | | + +-------------+ +-------------+ + | | | | + | | | | + | +------+ | + | | + | | + +-+--+ +-+--+ ++-------|eth1|------+ +-------|eth1|------+ +| +-+--+ | | +-+--+ | +| | | | | | +| +-----+ | | +-----+ | +| |vxlan| | | |vxlan| | +| +-----+ | | +-----+ | +| | | | +| host1 | | host2 | +| | | | +| | | | +| | | | ++-------------------+ +-------------------+ + +Number of hosts: 2 +Host #1 description: + One ethernet device configured with ip address {$net}.1/24 + VXLAN interface on top of the ethernet interface using group_ip 239.1.1.1 + configured with ip addresses: + {$vxlan_net}.1/24 + {$vxlan_net6}::1/64 +Host #2 description: + One ethernet device configured with ip address {$net}.2/24 + VXLAN interface on top of the ethernet interface using group_ip 239.1.1.1 + configured with ip addresses: + {$vxlan_net}.2/24 + {$vxlan_net6}::2/64 +Test name: + vxlan_test.py +Test description: + Ping: + + count: 100 + + interval: 0.1s + + host1.vxlan -> host2.vxlan expecting PASS + Ping6: + + count: 100 + + interval: 0.1s + + host1.vxlan -> host2.vxlan expecting PASS + Netperf: + + duration: 60s, repeated 5 times to calculate confidence + + host1.vxlan -> host2.vxlan TCP_STREAM ipv4 + + host1.vxlan -> host2.vxlan UDP_STREAM ipv4 + + host1.vxlan -> host2.vxlan TCP_STREAM ipv6 + + host1.vxlan -> host2.vxlan UDP_STREAM ipv6 + +PerfRepo integration: + First, preparation in PerfRepo is required - you need to create Test objects + through the web interface that properly describe the individual Netperf + tests that this recipe runs. Don't forget to also add appropriate metrics. + For these Netperf tests it's always: + * throughput + * throughput_min + * throughput_max + * throughput_deviation + + After that, to enable support for PerfRepo you need to create the file + vxlan_multicast.mapping and define the following id mappings: + tcp_ipv4_id -> to store ipv4 TCP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + tcp_ipv6_id -> to store ipv6 TCP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + udp_ipv4_id -> to store ipv4 UDP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + udp_ipv6_id -> to store ipv4 UDP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + + To enable result comparison agains baselines you need to create a Report in + PerfRepo that will store the baseline. Set up the Report to only contain results + with the same hash tag and then add a new mapping to the mapping file, with + this format: + <some_hash> = <report_id> + + The hash value is automatically generated during test execution and added + to each result stored in PerfRepo. To get the Report id you need to open + that report in our browser and find if in the URL. + + When running this recipe you should also define the 'product_name' alias + (e.g. RHEL7) in order to tag the result object in PerfRepo. diff --git a/recipes/regression_tests/phase3/vxlan_remote.README b/recipes/regression_tests/phase3/vxlan_remote.README new file mode 100644 index 0000000..08fc8ef --- /dev/null +++ b/recipes/regression_tests/phase3/vxlan_remote.README @@ -0,0 +1,86 @@ +Topology: + + switch + +------+ + | | + | | + +-------------+ +-------------+ + | | | | + | | | | + | +------+ | + | | + | | + +-+--+ +-+--+ ++-------|eth1|------+ +-------|eth1|------+ +| +-+--+ | | +-+--+ | +| | | | | | +| +-----+ | | +-----+ | +| |vxlan| | | |vxlan| | +| +-----+ | | +-----+ | +| | | | +| host1 | | host2 | +| | | | +| | | | +| | | | ++-------------------+ +-------------------+ + +Number of hosts: 2 +Host #1 description: + One ethernet device configured with ip address {$net}.1/24 + VXLAN interface on top of the ethernet interface using remote_ip {$net}.2 + configured with ip addresses: + {$vxlan_net}.1/24 + {$vxlan_net6}::1/64 +Host #2 description: + One ethernet device configured with ip address {$net}.2/24 + VXLAN interface on top of the ethernet interface using remote_ip {$net}.1 + configured with ip addresses: + {$vxlan_net}.2/24 + {$vxlan_net6}::2/64 +Test name: + vxlan_test.py +Test description: + Ping: + + count: 100 + + interval: 0.1s + + host1.vxlan -> host2.vxlan expecting PASS + Ping6: + + count: 100 + + interval: 0.1s + + host1.vxlan -> host2.vxlan expecting PASS + Netperf: + + duration: 60s, repeated 5 times to calculate confidence + + host1.vxlan -> host2.vxlan TCP_STREAM ipv4 + + host1.vxlan -> host2.vxlan UDP_STREAM ipv4 + + host1.vxlan -> host2.vxlan TCP_STREAM ipv6 + + host1.vxlan -> host2.vxlan UDP_STREAM ipv6 + +PerfRepo integration: + First, preparation in PerfRepo is required - you need to create Test objects + through the web interface that properly describe the individual Netperf + tests that this recipe runs. Don't forget to also add appropriate metrics. + For these Netperf tests it's always: + * throughput + * throughput_min + * throughput_max + * throughput_deviation + + After that, to enable support for PerfRepo you need to create the file + vxlan_remote.mapping and define the following id mappings: + tcp_ipv4_id -> to store ipv4 TCP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + tcp_ipv6_id -> to store ipv6 TCP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + udp_ipv4_id -> to store ipv4 UDP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + udp_ipv6_id -> to store ipv4 UDP_STREAM Netperf test results, maps to TestUid of a PerfRepo Test object + + To enable result comparison agains baselines you need to create a Report in + PerfRepo that will store the baseline. Set up the Report to only contain results + with the same hash tag and then add a new mapping to the mapping file, with + this format: + <some_hash> = <report_id> + + The hash value is automatically generated during test execution and added + to each result stored in PerfRepo. To get the Report id you need to open + that report in our browser and find if in the URL. + + When running this recipe you should also define the 'product_name' alias + (e.g. RHEL7) in order to tag the result object in PerfRepo.
Fri, May 20, 2016 at 10:19:33AM CEST, olichtne@redhat.com wrote:
From: Ondrej Lichtner olichtne@redhat.com
There are no bonds in this test, and the hosts only have a single eth interface with id 'eth'.
Signed-off-by: Ondrej Lichtner olichtne@redhat.com
Besides the pin_dev_irqs issue it looks fine.
-Jan
lnst-developers@lists.fedorahosted.org