----- Original Message -----
From: "Jan Tluka" <jtluka(a)redhat.com>
To: csfakian(a)redhat.com
Cc: lnst-developers(a)lists.fedorahosted.org
Sent: Monday, October 1, 2018 9:14:08 AM
Subject: Re: [PATCH-next 05/10] lnst.Recipes.ENRT: add VirtualOvsBridgeVlanInGuestRecipe
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?
Hi Jan, I can rename these as you suggested, thanks.
>
> >+
> >+ 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.fedorahosted.org
> _______________________________________________
> 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...
>