Fri, May 24, 2019 at 07:26:50PM CEST, csfakian(a)redhat.com wrote:
From: Christos Sfakianakis <csfakian(a)redhat.com>
Add ShortLivedConnectionsRecipe, which accounts for
short_lived_connections of old phase 3.
If the test currently cannot run (since we want to use iperf
that does not implement the test instead of netperf) the commit message
or the code should include a note about this (instead of having a note
in the cover letter).
Another comment few lines below.
Signed-off-by: Christos Sfakianakis <csfakian(a)redhat.com>
---
.../ENRT/ShortLivedConnectionsRecipe.py | 74 +++++++++++++++++++
1 file changed, 74 insertions(+)
create mode 100644 lnst/Recipes/ENRT/ShortLivedConnectionsRecipe.py
diff --git a/lnst/Recipes/ENRT/ShortLivedConnectionsRecipe.py
b/lnst/Recipes/ENRT/ShortLivedConnectionsRecipe.py
new file mode 100644
index 0000000..e311fa2
--- /dev/null
+++ b/lnst/Recipes/ENRT/ShortLivedConnectionsRecipe.py
@@ -0,0 +1,74 @@
+"""
+Implements scenario similar to regression_tests/phase3/
+(short_lived_connections.xml + short_lived_connections.py)
+"""
+from lnst.Common.IpAddress import ipaddress
+from lnst.Controller import HostReq, DeviceReq, RecipeParam
+from lnst.Recipes.ENRT.BaseEnrtRecipe import BaseEnrtRecipe, EnrtConfiguration
+from lnst.Common.Parameters import Param, IntParam, ListParam
+
+class ShortLivedConnectionsRecipe(BaseEnrtRecipe):
+ host1 = HostReq()
+ host1.eth0 = DeviceReq(label="to_switch",
driver=RecipeParam("driver"))
+
+ host2 = HostReq()
+ host2.eth0 = DeviceReq(label="to_switch",
driver=RecipeParam("driver"))
+
+ perf_tests = Param(default=("TCP_RR", "TCP_CRR"))
+ ip_versions = Param(default=("ipv4",))
+ perf_parallel_streams = IntParam(default=2)
+ perf_msg_size = ListParam(default=[1000, 5000, 7000, 10000, 12000])
+
+ def generate_ping_configurations(self, main_config, sub_config):
+ return []
+
+ def generate_flow_combinations(self, main_config, sub_config):
+ for size in self.params.perf_msg_size:
+ for flow in super(ShortLivedConnectionsRecipe,
self).generate_flow_combinations(
+ main_config,
sub_config):
+ flow[0].msg_size = size
+ yield flow
+
+ def test_wide_configuration(self):
+ host1, host2 = self.matched.host1, self.matched.host2
+
+ for host in [host1, host2]:
+ host.eth0.down()
+
+ net_addr = "192.168.101"
+
+ for i, host in enumerate([host1, host2], 10):
+ host.eth0.ip_add(ipaddress(net_addr + "." + str(i) +
"/24"))
+
+ #Due to limitations in the current EnrtConfiguration
+ #class, a single vlan test pair is chosen
There are no vlans in this test - the comment is likely a copy-paste
issue.
-Jan
>+ configuration = EnrtConfiguration()
>+ configuration.endpoint1 = host1.eth0
>+ configuration.endpoint2 = host2.eth0
>+
>+ if "mtu" in self.params:
>+ for host in [host1, host2]:
>+ host.eth0.mtu = self.params.mtu
>+
>+ for host in [host1, host2]:
>+ host.eth0.up()
>+
>+ #TODO better service handling through HostAPI
>+ if "dev_intr_cpu" in self.params:
>+ for host in [host1, host2]:
>+ host.run("service irqbalance stop")
>+ self._pin_dev_interrupts(host.eth0, self.params.dev_intr_cpu)
>+
>+ if self.params.perf_parallel_streams > 1:
>+ for host in [host1, host2]:
>+ host.run("tc qdisc replace dev %s root mq" %
host.eth0.name)
>+
>+ return configuration
>+
>+ def test_wide_deconfiguration(self, config):
>+ host1, host2 = self.matched.host1, self.matched.host2
>+
>+ #TODO better service handling through HostAPI
>+ if "dev_intr_cpu" in self.params:
>+ for host in [host1, host2]:
>+ host.run("service irqbalance start")
>--
>2.17.1
>_______________________________________________
>LNST-developers mailing list -- lnst-developers(a)lists.fedorahosted.org
>To unsubscribe send an email to lnst-developers-leave(a)lists.fedorahosted.org
>Fedora Code of Conduct:
https://getfedora.org/code-of-conduct.html
>List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_guidelines
>List Archives:
https://lists.fedorahosted.org/archives/list/lnst-developers@lists.fedora...