Mon, Sep 24, 2018 at 07:27:54PM CEST, csfakian(a)redhat.com wrote:
From: Christos Sfakianakis <csfakian(a)redhat.com>
Add ported recipe VirtualOvsBridgeVlanInGuestRecipe, implementing
old regression_tests/phase2/virtual_ovs_bridge_vlan_in_guest.xml.
Base it on previously ported SimplePerfRecipe.
Signed-off-by: Christos Sfakianakis <csfakian(a)redhat.com>
---
.../ENRT/VirtualOvsBridgeVlanInGuestRecipe.py | 89 +++++++++++++++++++
1 file changed, 89 insertions(+)
create mode 100644 lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestRecipe.py
diff --git a/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestRecipe.py
b/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestRecipe.py
new file mode 100644
index 0000000..14f5331
--- /dev/null
+++ b/lnst/Recipes/ENRT/VirtualOvsBridgeVlanInGuestRecipe.py
@@ -0,0 +1,89 @@
+"""
+Implements scenario similar to regression_tests/phase2/
+(virtual_ovs_bridge_vlan_in_guest.xml + virtual_ovs_bridge_vlan_in_guest.py)
+"""
+from lnst.Common.Parameters import Param
+from lnst.Common.IpAddress import ipaddress
+from lnst.Controller import HostReq, DeviceReq
+from lnst.Recipes.ENRT.BaseEnrtRecipe import BaseEnrtRecipe, EnrtConfiguration
+from lnst.Devices import VlanDevice
+from lnst.Devices import OvsBridgeDevice
+
+class VirtualOvsBridgeVlanInGuestRecipe(BaseEnrtRecipe):
+ host1 = HostReq()
+ host1.eth0 = DeviceReq(label="to_switch")
+ host1.eth1 = DeviceReq(label="to_guest")
All devices that have "to_guest" label are actually tap devices. Could we
rename these to tap[0-9] instead of eth[0-9]? It was a bit confusing for me.
This applies to all virt* recipes in the patchset. And also to migrated
phase1 recipes.
What do you think?
>+
>+ host2 = HostReq()
>+ host2.eth0 = DeviceReq(label="to_switch")
>+
>+ guest1 = HostReq()
>+ guest1.eth0 = DeviceReq(label="to_guest")
>+
>+ offload_combinations = Param(default=(
>+ dict(gro="on", gso="on", tso="on",
tx="on", rx="on"),
>+ dict(gro="off", gso="on", tso="on",
tx="on", rx="on"),
>+ dict(gro="on", gso="off", tso="off",
tx="on", rx="on"),
>+ dict(gro="on", gso="on", tso="off",
tx="off", rx="on"),
>+ dict(gro="on", gso="on", tso="on",
tx="on", rx="off")))
>+
>+ def test_wide_configuration(self):
>+ host1, host2, guest1 = self.matched.host1, self.matched.host2,
self.matched.guest1
>+
>+ host1.eth0.down()
>+ host1.eth1.down()
>+ host1.br0 = OvsBridgeDevice()
>+ host1.br0.port_add(host1.eth0)
>+ host1.br0.port_add(host1.eth1)
>+
>+ host2.eth0.down()
>+ host2.vlan1 = VlanDevice(realdev=host2.eth0, vlan_id=10)
>+
>+ guest1.eth0.down()
>+ guest1.vlan1 = VlanDevice(realdev=guest1.eth0, vlan_id=10)
>+
>+ #Due to limitations in the current EnrtConfiguration
>+ #class, a single vlan test pair is chosen
>+ configuration = EnrtConfiguration()
>+ configuration.endpoint1 = guest1.vlan1
>+ configuration.endpoint2 = host2.vlan1
>+
>+ if "mtu" in self.params:
>+ host1.br0.mtu = self.params.mtu
>+ host2.vlan1.mtu = self.params.mtu
>+ guest1.vlan1.mtu = self.params.mtu
>+
>+ net_addr_1 = "192.168.10"
>+ net_addr6_1 = "fc00:0:0:1"
>+
>+ host2.vlan1.ip_add(ipaddress(net_addr_1 + ".2/24"))
>+ host2.vlan1.ip_add(ipaddress(net_addr6_1 + "::2/64"))
>+ guest1.vlan1.ip_add(ipaddress(net_addr_1 + ".3/24"))
>+ guest1.vlan1.ip_add(ipaddress(net_addr6_1 + "::3/64"))
>+
>+ host1.eth0.up()
>+ host1.eth1.up()
>+ host1.br0.up()
>+ host2.eth0.up()
>+ host2.vlan1.up()
>+ guest1.eth0.up()
>+ guest1.vlan1.up()
>+
>+ #TODO better service handling through HostAPI
>+ host1.run("service irqbalance stop")
>+ host2.run("service irqbalance stop")
>+ guest1.run("service irqbalance stop")
>+
>+ for m in self.matched:
>+ for dev in m.devices:
>+ self._pin_dev_interrupts(dev, self.params.dev_intr_cpu)
>+
>+ return configuration
>+
>+ def test_wide_deconfiguration(self, config):
>+ host1, host2, guest1 = self.matched.host1, self.matched.host2,
self.matched.guest1
>+
>+ #TODO better service handling through HostAPI
>+ host1.run("service irqbalance start")
>+ host2.run("service irqbalance start")
>+ guest1.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...