Bug 1921462
| Summary: | i40e/ice driver: ipv6 ping failed when sr-iov vf add to ovs bridge | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux Fast Datapath | Reporter: | liting <tli> |
| Component: | openvswitch2.13 | Assignee: | David Marchand <dmarchan> |
| Status: | CLOSED MIGRATED | QA Contact: | liting <tli> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | FDP 21.A | CC: | cgoncalves, ctrautma, fleitner, jhsiao, ralongi |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2024-03-12 10:19:03 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
The issue still exist on openvswitch2.15-2.15.0-26. [root@netqe22 ~]# uname -r 4.18.0-305.el8.x86_64 [root@netqe22 ~]# rpm -qa|grep openvswitch openvswitch2.15-2.15.0-26.el8fdp.x86_64 openvswitch-selinux-extra-policy-1.0-28.el8fdp.noarch beaker job link. https://beaker.engineering.redhat.com/jobs/5677369 The issue also exist on ice card. https://beaker.engineering.redhat.com/jobs/5613952 After disable spoof check, and turn trust on. The ipv6 ping successfully. For ice card. it also exist this issue. ipv6 ping failed https://beaker.engineering.redhat.com/jobs/6644207 For fdp22e, rhel9.0, ice card. this issue still exist https://beaker.engineering.redhat.com/jobs/6713629 for fdp22F, ice card, this issue still exist https://beaker.engineering.redhat.com/jobs/6815954 for fdp22G, ice card, this issue still exist. https://beaker.engineering.redhat.com/jobs/6956356 What happens if you use the iavf driver from the kernel instead of dpdk? (In reply to Stefan Assmann from comment #8) > What happens if you use the iavf driver from the kernel instead of dpdk? I try to use iavf driver to run the same cases with kernel, the ipv6 ping succcessfully. ipv6 ping failed only exist in dpdk case. For fdp22k, this issue still exist. i40e: https://beaker.engineering.redhat.com/jobs/7210502 For fdp22.L, ice still has this issue. https://beaker.engineering.redhat.com/jobs/7316969 https://beaker.engineering.redhat.com/jobs/7316975 For fdp23.A, ice still has this issue https://beaker.engineering.redhat.com/jobs/7529038 For fdp23.C, i40e has no this issue, but ice still has this issue. ice rhel9.2 job: https://beaker.engineering.redhat.com/jobs/7719135 ice rhel8.6 job: https://beaker.engineering.redhat.com/jobs/7715761 It still happened with ovs3.2/dpdk-22.11-4.el9 on rhel9.2 on ice card. https://beaker.engineering.redhat.com/jobs/8440484 It has no this issue with openvswitch3.1-3.1.0-54.el9fdp/dpdk-22.11-4.el9 on i40e card. https://beaker.engineering.redhat.com/jobs/8449516 It has no this issue with openvswitch3.2-3.2.0-17.el9fdp/dpdk-22.11-4.el9 on i40e card. https://beaker.engineering.redhat.com/jobs/8446277 For ice driver, qinq case also ping ipv6 failed. https://beaker.engineering.redhat.com/jobs/8547980 For this ipv6 ping failed issue, I found it can ping ipv6 address successfully when vf configure trust on. But ipv6 ping failed when vf configure trust off.
For ice driver, qinq case(SW Inner / HW outer QinQ) aslo ping ipv6 failed when vf configure trust off. Test steps:
ice card on wsfd-advnetlab10.anl.lab.eng.bos.redhat.com <----directly connect----> ice card on wsfd-advnetlab11.anl.lab.eng.bos.redhat.com
wsfd-advnetlab10.anl.lab.eng.bos.redhat.com:
#create two vfs for pf ens1f0
5: ens1f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 40:a6:b7:96:aa:bc brd ff:ff:ff:ff:ff:ff
vf 0 link/ether 00:60:2f:ed:a6:64 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off
vf 1 link/ether 52:54:00:11:8f:ea brd ff:ff:ff:ff:ff:ff, vlan 4, vlan protocol 802.1ad, spoof checking on, link-state auto, trust off
#configure the vf 1 mac same with the guest's mac
ip link set ens1f0 vf 1 mac 52:54:00:11:8f:ea
ip link set ens1f0 vf 1 vlan 4 proto 802.1ad
driverctl -v set-override 0000:3b:01.1 vfio-pci
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=1024,1024
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x44000044000
ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev
ovs-vsctl add-br ovsbr1 -- set bridge ovsbr1 datapath_type=netdev
ovs-vsctl add-port ovsbr1 dpdk0 -- set Interface dpdk0 type=dpdk type=dpdk options:dpdk-devargs=0000:3b:01.1
ovs-vsctl add-port ovsbr0 dpdkvhostuserclient0 -- set Interface dpdkvhostuserclient0 type=dpdkvhostuserclient -- set Interface dpdkvhostuserclient0 options:vhost-server-path=/tmp/dpdkvhostuserclient0
ovs-vsctl add-port ovsbr0 patch-ovs-0 -- set Interface patch-ovs-0 type=patch options:peer=patch-ovs-1
ovs-vsctl add-port ovsbr1 patch-ovs-1 -- set Interface patch-ovs-1 type=patch options:peer=patch-ovs-0
ip link set ovsbr0 up
ip link set ovsbr1 up
inside guest:
ip link add link enp4s0 name enp4s0.3 type vlan id 3 proto 802.1q
ip link set enp4s0.3 up
ip addr add 20.0.0.1/24 dev enp4s0.3
ip addr add 2001:5c0:9168::1/24 dev enp4s0.3
wsfd-advnetlab11.anl.lab.eng.bos.redhat.com:
create two vfs for pf ens1f0.
6: ens1f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 40:a6:b7:96:bf:b8 brd ff:ff:ff:ff:ff:ff
vf 0 link/ether 00:60:2f:fb:15:53 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off
vf 1 link/ether 52:54:00:11:8f:e9 brd ff:ff:ff:ff:ff:ff, vlan 4, vlan protocol 802.1ad, spoof checking on, link-state auto, trust off
#configure the vf 1 mac same with the guest's mac
ip link set ens1f0 vf 1 mac 52:54:00:11:8f:e9
ip link set ens1f0 vf 1 vlan 4 proto 802.1ad
driverctl -v set-override 0000:3b:01.1 vfio-pci
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=1024,1024
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x44000044000
ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev
ovs-vsctl add-br ovsbr1 -- set bridge ovsbr1 datapath_type=netdev
ovs-vsctl add-port ovsbr1 dpdk0 -- set Interface dpdk0 type=dpdk type=dpdk options:dpdk-devargs=0000:3b:01.1
ovs-vsctl add-port ovsbr0 dpdkvhostuserclient0 -- set Interface dpdkvhostuserclient0 type=dpdkvhostuserclient -- set Interface dpdkvhostuserclient0 options:vhost-server-path=/tmp/dpdkvhostuserclient0
ovs-vsctl add-port ovsbr0 patch-ovs-0 -- set Interface patch-ovs-0 type=patch options:peer=patch-ovs-1
ovs-vsctl add-port ovsbr1 patch-ovs-1 -- set Interface patch-ovs-1 type=patch options:peer=patch-ovs-0
ip link set ovsbr0 up
ip link set ovsbr1 up
inside guest:
ip link add link enp4s0 name enp4s0.3 type vlan id 3 proto 802.1q
ip link set enp4s0.3 up
ip addr add 20.0.0.2/24 dev enp4s0.3
ip addr add 2001:5c0:9168::2/24 dev enp4s0.3
ping 20.0.0.1 -c 10 ----successfully
ping6 2001:5c0:9168::1 -------failed
For i40e card, qinq case(Full SW QinQ) also exist this issue, when vf configure trust off,the ipv6 ping failed.
Does it work with kernel VLANs instead of OVS/DPDK for SW Inner? (In reply to Carlos Goncalves from comment #22) > Does it work with kernel VLANs instead of OVS/DPDK for SW Inner? I have not test kernel vlans case, I will test it later. The issue also exist on bnxt_en driver card. job: https://beaker.engineering.redhat.com/jobs/8615536 netqe22 bnxt_en card <---directly connect--> netqe32 i40e driver card netqe22 bnxt side: echo 2 > /sys/devices/pci0000:80/0000:80:02.0/0000:82:00.0/sriov_numvfs ip link set enp130s0f0np0 vf 1 trust on ip link set enp130s0f0np0 vf 1 vlan 3 driverctl -v set-override 0000:82:02.1 vfio-pci systemctl restart openvswitch ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=1024,1024 ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0xa00000a00000 ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev ovs-vsctl add-port ovsbr0 dpdk0 -- set Interface dpdk0 type=dpdk type=dpdk options:dpdk-devargs=0000:82:02.1 ovs-vsctl add-port ovsbr0 dpdkvhostuserclient0 -- set Interface dpdkvhostuserclient0 type=dpdkvhostuserclient -- set Interface dpdkvhostuserclient0 options:vhost-server-path=/tmp/dpdkvhostuserclient0 [root@netqe22 no-bond]# virsh dumpxml master3 <domain type='kvm' id='1'> <name>master3</name> <uuid>37425e76-af6a-44a6-aba0-73434afe34c0</uuid> <memory unit='KiB'>6291456</memory> <currentMemory unit='KiB'>6291456</currentMemory> <memoryBacking> <hugepages> <page size='1048576' unit='KiB'/> </hugepages> <access mode='shared'/> </memoryBacking> <vcpu placement='static'>3</vcpu> <cputune> <vcpupin vcpu='0' cpuset='3'/> <vcpupin vcpu='1' cpuset='5'/> <vcpupin vcpu='2' cpuset='29'/> <emulatorpin cpuset='3'/> </cputune> <numatune> <memory mode='strict' nodeset='1'/> </numatune> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-rhel9.2.0'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pmu state='off'/> <vmport state='off'/> <ioapic driver='qemu'/> </features> <cpu mode='host-passthrough' check='none' migratable='on'> <feature policy='require' name='tsc-deadline'/> <numa> <cell id='0' cpus='0-2' memory='6291456' unit='KiB' memAccess='shared'/> </numa> </cpu> <clock offset='utc'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <pm> <suspend-to-mem enabled='no'/> <suspend-to-disk enabled='no'/> </pm> <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/var/lib/libvirt/images/master3.qcow2' index='1'/> <backingStore/> <target dev='vda' bus='virtio'/> <alias name='virtio-disk0'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </disk> <controller type='usb' index='0' model='none'> <alias name='usb'/> </controller> <controller type='pci' index='0' model='pcie-root'> <alias name='pcie.0'/> </controller> <controller type='pci' index='1' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='1' port='0x10'/> <alias name='pci.1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </controller> <controller type='pci' index='2' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='2' port='0x11'/> <alias name='pci.2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </controller> <controller type='pci' index='3' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='3' port='0x8'/> <alias name='pci.3'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> <controller type='pci' index='4' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='4' port='0x9'/> <alias name='pci.4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </controller> <controller type='pci' index='5' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='5' port='0xa'/> <alias name='pci.5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </controller> <controller type='pci' index='6' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='6' port='0xb'/> <alias name='pci.6'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </controller> <controller type='sata' index='0'> <alias name='ide'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <interface type='vhostuser'> <mac address='52:54:00:11:8f:ea'/> <source type='unix' path='/tmp/dpdkvhostuserclient0' mode='server'/> <target dev='dpdkvhostuserclient0'/> <model type='virtio'/> <driver name='vhost'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </interface> <interface type='bridge'> <mac address='52:54:00:bb:63:7b'/> <source bridge='virbr0'/> <target dev='vnet0'/> <model type='virtio'/> <alias name='net1'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/0'/> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/0'> <source path='/dev/pts/0'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <input type='mouse' bus='ps2'> <alias name='input0'/> </input> <input type='keyboard' bus='ps2'> <alias name='input1'/> </input> <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <audio id='1' type='none'/> <video> <model type='cirrus' vram='16384' heads='1' primary='yes'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/> </video> <watchdog model='itco' action='reset'> <alias name='watchdog0'/> </watchdog> <memballoon model='virtio'> <alias name='balloon0'/> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </memballoon> <iommu model='intel'> <driver intremap='on' caching_mode='on' iotlb='on'/> <alias name='iommu0'/> </iommu> </devices> <seclabel type='dynamic' model='selinux' relabel='yes'> <label>system_u:system_r:svirt_t:s0:c257,c997</label> <imagelabel>system_u:object_r:svirt_image_t:s0:c257,c997</imagelabel> </seclabel> <seclabel type='dynamic' model='dac' relabel='yes'> <label>+107:+983</label> <imagelabel>+107:+983</imagelabel> </seclabel> </domain> inside guest: ip addr add 20.0.0.2/24 dev enp4s0 ip addr add 2001:5c0:9168::1/64 dev enp4s0 netqe32 i40e side: echo 2 > /sys/devices/pci0000:5d/0000:5d:00.0/0000:5e:00.0/sriov_numvfs ip link set ens3f0 vf 1 trust on ip link set ens3f0 vf 1 vlan 3 driverctl -v set-override 0000:5e:02.1 vfio-pci systemctl restart openvswitch ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=1024,1024 ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x440000044000 ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev ovs-vsctl add-port ovsbr0 dpdk0 -- set Interface dpdk0 type=dpdk type=dpdk options:dpdk-devargs=0000:5e:02.1 ovs-vsctl add-port ovsbr0 dpdkvhostuserclient0 -- set Interface dpdkvhostuserclient0 type=dpdkvhostuserclient -- set Interface dpdkvhostuserclient0 options:vhost-server-path=/tmp/dpdkvhostuserclient0 ip link set ovsbr0 up [root@netqe32 ~]# virsh dumpxml master3 <domain type='kvm' id='1'> <name>master3</name> <uuid>37425e76-af6a-44a6-aba0-73434afe34c0</uuid> <memory unit='KiB'>6291456</memory> <currentMemory unit='KiB'>6291456</currentMemory> <memoryBacking> <hugepages> <page size='1048576' unit='KiB'/> </hugepages> <access mode='shared'/> </memoryBacking> <vcpu placement='static'>3</vcpu> <cputune> <vcpupin vcpu='0' cpuset='2'/> <vcpupin vcpu='1' cpuset='4'/> <vcpupin vcpu='2' cpuset='32'/> <emulatorpin cpuset='2'/> </cputune> <numatune> <memory mode='strict' nodeset='0'/> </numatune> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-rhel9.2.0'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pmu state='off'/> <vmport state='off'/> <ioapic driver='qemu'/> </features> <cpu mode='host-passthrough' check='none' migratable='on'> <feature policy='require' name='tsc-deadline'/> <numa> <cell id='0' cpus='0-2' memory='6291456' unit='KiB' memAccess='shared'/> </numa> </cpu> <clock offset='utc'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <pm> <suspend-to-mem enabled='no'/> <suspend-to-disk enabled='no'/> </pm> <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/var/lib/libvirt/images/master3.qcow2' index='1'/> <backingStore/> <target dev='vda' bus='virtio'/> <alias name='virtio-disk0'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </disk> <controller type='usb' index='0' model='none'> <alias name='usb'/> </controller> <controller type='pci' index='0' model='pcie-root'> <alias name='pcie.0'/> </controller> <controller type='pci' index='1' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='1' port='0x10'/> <alias name='pci.1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </controller> <controller type='pci' index='2' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='2' port='0x11'/> <alias name='pci.2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </controller> <controller type='pci' index='3' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='3' port='0x8'/> <alias name='pci.3'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> <controller type='pci' index='4' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='4' port='0x9'/> <alias name='pci.4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </controller> <controller type='pci' index='5' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='5' port='0xa'/> <alias name='pci.5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </controller> <controller type='pci' index='6' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='6' port='0xb'/> <alias name='pci.6'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </controller> <controller type='sata' index='0'> <alias name='ide'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <interface type='vhostuser'> <mac address='52:54:00:11:8f:e9'/> <source type='unix' path='/tmp/dpdkvhostuserclient0' mode='server'/> <target dev='dpdkvhostuserclient0'/> <model type='virtio'/> <driver name='vhost'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </interface> <interface type='bridge'> <mac address='52:54:00:bb:63:7b'/> <source bridge='virbr0'/> <target dev='vnet0'/> <model type='virtio'/> <alias name='net1'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/0'/> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/0'> <source path='/dev/pts/0'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <input type='mouse' bus='ps2'> <alias name='input0'/> </input> <input type='keyboard' bus='ps2'> <alias name='input1'/> </input> <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <audio id='1' type='none'/> <video> <model type='cirrus' vram='16384' heads='1' primary='yes'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/> </video> <watchdog model='itco' action='reset'> <alias name='watchdog0'/> </watchdog> <memballoon model='virtio'> <alias name='balloon0'/> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </memballoon> <iommu model='intel'> <driver intremap='on' caching_mode='on' iotlb='on'/> <alias name='iommu0'/> </iommu> </devices> <seclabel type='dynamic' model='selinux' relabel='yes'> <label>system_u:system_r:svirt_t:s0:c502,c908</label> <imagelabel>system_u:object_r:svirt_image_t:s0:c502,c908</imagelabel> </seclabel> <seclabel type='dynamic' model='dac' relabel='yes'> <label>+107:+983</label> <imagelabel>+107:+983</imagelabel> </seclabel> </domain> inside guest: ip addr add 20.0.0.2/24 dev enp4s0 ip addr add 2001:5c0:9168::2/64 dev enp4s0 When configure vf trust on. Inside guest of netqe32, ping 20.0.0.1 successfully. Ping 2001:5c0:9168::1 failed. And inside guest of netqe22, ping 20.0.0.2 successfully, ping 2001:5c0:9168::6 successfully. After netqe22 ping netqe32 successfully, and then netqe32 can ping 2001:5c0:9168::1 successully. When configure vf trust off, Inside guest of netqe32, ping 20.0.0.1 successfully. Ping 2001:5c0:9168::1 failed. Inside guest of netqe22, ping 20.0.0.2 successfully, ping 2001:5c0:9168::6 failed. (In reply to Carlos Goncalves from comment #22) > Does it work with kernel VLANs instead of OVS/DPDK for SW Inner? I run the ovs dpdk qinq kernel case for SW Inner, ipv6 ping successfully when vf configure trust off. So the issue only occur on OVS/DPDK case. 730-52 i40e card <---directly connect--> 730-53 i40e card 730-52 side: [root@dell-per730-52 ~]# ip a 6: enp7s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 3c:fd:fe:ad:bc:e8 brd ff:ff:ff:ff:ff:ff vf 0 link/ether 00:60:2f:c4:c4:12 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off vf 1 link/ether 52:54:00:11:8f:ea brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off [root@dell-per730-52 ~]# ovs-vsctl show 54e496c6-7526-47d3-90c0-305d60a2be9a Bridge ovsbr1 Port patch-ovs-1 Interface patch-ovs-1 type: patch options: {peer=patch-ovs-0} Port enp7s0f0v1 Interface enp7s0f0v1 Port ovsbr1 Interface ovsbr1 type: internal Bridge ovsbr0 Port tap0 tag: 4 Interface tap0 Port ovsbr0 Interface ovsbr0 type: internal Port patch-ovs-0 Interface patch-ovs-0 type: patch options: {peer=patch-ovs-1} ovs_version: "2.17.9" with following xml start guest [root@dell-per730-52 ~]# virsh dumpxml master4 <domain type='kvm' id='1'> <name>master4</name> <uuid>37425e76-af6a-44a6-aba0-73434afe34c2</uuid> <memory unit='KiB'>8388608</memory> <currentMemory unit='KiB'>8388608</currentMemory> <memoryBacking> <hugepages> <page size='1048576' unit='KiB' nodeset='0'/> </hugepages> <access mode='shared'/> </memoryBacking> <vcpu placement='static'>3</vcpu> <cputune> <vcpupin vcpu='0' cpuset='0'/> <vcpupin vcpu='1' cpuset='1'/> <vcpupin vcpu='2' cpuset='2'/> <emulatorpin cpuset='1'/> </cputune> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-rhel9.2.0'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> </features> <cpu mode='host-passthrough' check='none' migratable='on'> <feature policy='require' name='tsc-deadline'/> <numa> <cell id='0' cpus='0-2' memory='8388608' unit='KiB' memAccess='shared'/> </numa> </cpu> <clock offset='utc'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <pm> <suspend-to-mem enabled='no'/> <suspend-to-disk enabled='no'/> </pm> <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/var/lib/libvirt/images/master4.qcow2' index='1'/> <backingStore/> <target dev='vda' bus='virtio'/> <alias name='virtio-disk0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk> <controller type='usb' index='0' model='ich9-ehci1'> <alias name='usb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <alias name='usb'/> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <alias name='usb'/> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <alias name='usb'/> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/> </controller> <controller type='pci' index='0' model='pcie-root'> <alias name='pcie.0'/> </controller> <controller type='virtio-serial' index='0'> <alias name='virtio-serial0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> <controller type='sata' index='0'> <alias name='ide'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <interface type='bridge'> <mac address='52:54:00:11:8f:ea'/> <source bridge='ovsbr0'/> <virtualport type='openvswitch'> <parameters interfaceid='f54fd445-25b0-4231-8ea7-b83f2a1f8df2'/> </virtualport> <target dev='tap0'/> <model type='virtio'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </interface> <interface type='bridge'> <mac address='52:54:00:bb:63:7b'/> <source bridge='virbr0'/> <target dev='vnet0'/> <model type='virtio'/> <alias name='net1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/0'/> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/0'> <source path='/dev/pts/0'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-1-master4/org.qemu.guest_agent.0'/> <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/> <alias name='channel0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <alias name='input0'/> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'> <alias name='input1'/> </input> <input type='keyboard' bus='ps2'> <alias name='input2'/> </input> <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <audio id='1' type='none'/> <video> <model type='cirrus' vram='16384' heads='1' primary='yes'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <watchdog model='itco' action='reset'> <alias name='watchdog0'/> </watchdog> <memballoon model='virtio'> <alias name='balloon0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </memballoon> </devices> <seclabel type='dynamic' model='selinux' relabel='yes'> <label>system_u:system_r:svirt_t:s0:c107,c748</label> <imagelabel>system_u:object_r:svirt_image_t:s0:c107,c748</imagelabel> </seclabel> <seclabel type='dynamic' model='dac' relabel='yes'> <label>+107:+983</label> <imagelabel>+107:+983</imagelabel> </seclabel> </domain> inside guest: [root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:bb:63:7b brd ff:ff:ff:ff:ff:ff inet 192.168.122.138/24 brd 192.168.122.255 scope global dynamic noprefixroute enp0s3 valid_lft 2985sec preferred_lft 2985sec inet6 fe80::a061:c39c:a5f3:16ff/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:11:8f:ea brd ff:ff:ff:ff:ff:ff inet 20.0.0.1/24 scope global enp0s9 valid_lft forever preferred_lft forever inet6 2001:5c0:9168::1/64 scope global valid_lft forever preferred_lft forever inet6 fe80::a2cf:7cde:10cf:9010/64 scope link noprefixroute valid_lft forever preferred_lft forever dell730-53 side: [root@dell-per730-53 ~]# ip link show 6: enp4s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 3c:fd:fe:ad:bf:c4 brd ff:ff:ff:ff:ff:ff vf 0 link/ether 00:60:2f:46:cf:4c brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off vf 1 link/ether 52:54:00:11:8f:e9 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off [root@dell-per730-53 ~]# ovs-vsctl show f27bbe51-755d-4d95-be10-b32aff047a62 Bridge ovsbr1 Port ovsbr1 Interface ovsbr1 type: internal Port patch-ovs-1 Interface patch-ovs-1 type: patch options: {peer=patch-ovs-0} Port enp4s0f0v1 Interface enp4s0f0v1 Bridge ovsbr0 Port tap0 tag: 4 Interface tap0 Port ovsbr0 Interface ovsbr0 type: internal Port patch-ovs-0 Interface patch-ovs-0 type: patch options: {peer=patch-ovs-1} ovs_version: "2.17.9" start guest with following xml [root@dell-per730-53 ~]# virsh dumpxml master4 <domain type='kvm' id='1'> <name>master4</name> <uuid>37425e76-af6a-44a6-aba0-73434afe34c2</uuid> <memory unit='KiB'>8388608</memory> <currentMemory unit='KiB'>8388608</currentMemory> <memoryBacking> <hugepages> <page size='1048576' unit='KiB' nodeset='0'/> </hugepages> <access mode='shared'/> </memoryBacking> <vcpu placement='static'>3</vcpu> <cputune> <vcpupin vcpu='0' cpuset='0'/> <vcpupin vcpu='1' cpuset='1'/> <vcpupin vcpu='2' cpuset='2'/> <emulatorpin cpuset='1'/> </cputune> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-rhel9.2.0'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> </features> <cpu mode='host-passthrough' check='none' migratable='on'> <feature policy='require' name='tsc-deadline'/> <numa> <cell id='0' cpus='0-2' memory='8388608' unit='KiB' memAccess='shared'/> </numa> </cpu> <clock offset='utc'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <pm> <suspend-to-mem enabled='no'/> <suspend-to-disk enabled='no'/> </pm> <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/var/lib/libvirt/images/master4.qcow2' index='1'/> <backingStore/> <target dev='vda' bus='virtio'/> <alias name='virtio-disk0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk> <controller type='usb' index='0' model='ich9-ehci1'> <alias name='usb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <alias name='usb'/> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <alias name='usb'/> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <alias name='usb'/> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/> </controller> <controller type='pci' index='0' model='pcie-root'> <alias name='pcie.0'/> </controller> <controller type='virtio-serial' index='0'> <alias name='virtio-serial0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> <controller type='sata' index='0'> <alias name='ide'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <interface type='bridge'> <mac address='52:54:00:11:8f:e9'/> <source bridge='ovsbr0'/> <virtualport type='openvswitch'> <parameters interfaceid='f54fd445-25b0-4231-8ea7-b83f2a1f8df2'/> </virtualport> <target dev='tap0'/> <model type='virtio'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </interface> <interface type='bridge'> <mac address='52:54:00:bb:63:7b'/> <source bridge='virbr0'/> <target dev='vnet0'/> <model type='virtio'/> <alias name='net1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/0'/> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/0'> <source path='/dev/pts/0'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-1-master4/org.qemu.guest_agent.0'/> <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/> <alias name='channel0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <alias name='input0'/> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'> <alias name='input1'/> </input> <input type='keyboard' bus='ps2'> <alias name='input2'/> </input> <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <audio id='1' type='none'/> <video> <model type='cirrus' vram='16384' heads='1' primary='yes'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <watchdog model='itco' action='reset'> <alias name='watchdog0'/> </watchdog> <memballoon model='virtio'> <alias name='balloon0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </memballoon> </devices> <seclabel type='dynamic' model='selinux' relabel='yes'> <label>system_u:system_r:svirt_t:s0:c297,c588</label> <imagelabel>system_u:object_r:svirt_image_t:s0:c297,c588</imagelabel> </seclabel> <seclabel type='dynamic' model='dac' relabel='yes'> <label>+107:+983</label> <imagelabel>+107:+983</imagelabel> </seclabel> </domain> inside guest: [root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:bb:63:7b brd ff:ff:ff:ff:ff:ff inet 192.168.122.138/24 brd 192.168.122.255 scope global dynamic noprefixroute enp0s3 valid_lft 2694sec preferred_lft 2694sec inet6 fe80::d99:29d1:35b4:dacb/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:11:8f:e9 brd ff:ff:ff:ff:ff:ff inet 20.0.0.2/24 scope global enp0s9 valid_lft forever preferred_lft forever inet6 2001:5c0:9168::2/64 scope global valid_lft forever preferred_lft forever inet6 fe80::8725:1aa6:b00e:1e7e/64 scope link noprefixroute valid_lft forever preferred_lft forever [root@localhost ~]# ping 20.0.0.1 -c 1 PING 20.0.0.1 (20.0.0.1) 56(84) bytes of data. 64 bytes from 20.0.0.1: icmp_seq=1 ttl=64 time=0.599 ms --- 20.0.0.1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.599/0.599/0.599/0.000 ms [root@localhost ~]# ping6 2001:5c0:9168::1 -c 1 PING 2001:5c0:9168::1(2001:5c0:9168::1) 56 data bytes 64 bytes from 2001:5c0:9168::1: icmp_seq=1 ttl=64 time=0.575 ms --- 2001:5c0:9168::1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.575/0.575/0.575/0.000 ms Sorry, the comment#25 is just test vlan kernel case. I forgot configure the vlan interface inside guest. When I create vlan interface inside guest, and it should be qinq case SW Inner. For ovs kernel qinq case for SW Inner. ipv6 ping failed when configure vf trust off. ipv6 ping successfully when configure vf trust on. So this issue also exist on ovs kernel qinq case for SW Inner. dell730-52 guest: [root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:bb:63:7b brd ff:ff:ff:ff:ff:ff inet 192.168.122.138/24 brd 192.168.122.255 scope global dynamic noprefixroute enp0s3 valid_lft 2942sec preferred_lft 2942sec inet6 fe80::a061:c39c:a5f3:16ff/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:11:8f:ea brd ff:ff:ff:ff:ff:ff inet6 fe80::a2cf:7cde:10cf:9010/64 scope link noprefixroute valid_lft forever preferred_lft forever 4: enp0s9.3@enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00:11:8f:ea brd ff:ff:ff:ff:ff:ff inet 20.0.0.1/24 scope global enp0s9.3 valid_lft forever preferred_lft forever inet6 2001:5c0:9168::1/64 scope global valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe11:8fea/64 scope link valid_lft forever preferred_lft forever dell730-53 guest: [root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:bb:63:7b brd ff:ff:ff:ff:ff:ff inet 192.168.122.138/24 brd 192.168.122.255 scope global dynamic noprefixroute enp0s3 valid_lft 2970sec preferred_lft 2970sec inet6 fe80::d99:29d1:35b4:dacb/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:11:8f:e9 brd ff:ff:ff:ff:ff:ff inet6 fe80::8725:1aa6:b00e:1e7e/64 scope link noprefixroute valid_lft forever preferred_lft forever 4: enp0s9.3@enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00:11:8f:e9 brd ff:ff:ff:ff:ff:ff inet 20.0.0.2/24 scope global enp0s9.3 valid_lft forever preferred_lft forever inet6 2001:5c0:9168::2/64 scope global valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe11:8fe9/64 scope link valid_lft forever preferred_lft forever [root@localhost ~]# ping6 2001:5c0:9168::1 PING 2001:5c0:9168::1(2001:5c0:9168::1) 56 data bytes From 2001:5c0:9168::2 icmp_seq=1 Destination unreachable: Address unreachable From 2001:5c0:9168::2 icmp_seq=2 Destination unreachable: Address unreachable From 2001:5c0:9168::2 icmp_seq=3 Destination unreachable: Address unreachable From 2001:5c0:9168::2 icmp_seq=4 Destination unreachable: Address unreachable From 2001:5c0:9168::2 icmp_seq=5 Destination unreachable: Address unreachable From 2001:5c0:9168::2 icmp_seq=6 Destination unreachable: Address unreachable update the ovs kernel qinq SW Inner case. For vf configure trust on, this IPv6 does not always ping successfully. https://beaker.engineering.redhat.com/jobs/8628754 For rhel8.10, when vf configure trust on, ipv6 cannot ping successfully on i40e driver. https://beaker.engineering.redhat.com/jobs/8628880 For rhel9.2, 740-57 ice <--connect--> 740-73 i40e env, ping ipv6 address not always successfully https://beaker.engineering.redhat.com/jobs/8752006 For rhel9.2, 730-52 i40e <--connect--> 730-53 i40e env, ping ipv6 address not always successfully https://beaker.engineering.redhat.com/jobs/8752408 For rhel9.2 and rhel8.6, netqe45 ice <--connect--> netqe46 ice env, ping ipv6 address not always successfully. rhel9.2 ovs2.17: https://beaker.engineering.redhat.com/jobs/8753517 rhel9.2 ovs3.2: https://beaker.engineering.redhat.com/jobs/8753511 https://beaker.engineering.redhat.com/jobs/8753510 rhel9.2 ovs3.1 https://beaker.engineering.redhat.com/jobs/8752597 rhel8.6 ovs2.17 https://beaker.engineering.redhat.com/jobs/8753502 For above #comment31, it is ovs kernel qinq case job. It also has this issue. For ovs kernel qinq case, following is the detail results. >>>>>>>>>>>>>>>>i40e driver<<<<<<<<<<<<<<<<<<<<<< test env: 730-52 25g i40e <--connect--> 730-53 25g i40e SW Inner kernel VLAN: ping ipv4 address successfully, but ping ipv6 address not always successfully. I have added a comment to the following bug. https://bugzilla.redhat.com/show_bug.cgi?id=1921462 rhel9.2 ovs3.1 https://beaker.engineering.redhat.com/jobs/8752659 rhel9.2 ovs2.17 https://beaker.engineering.redhat.com/jobs/8752408 rhel8.6 ovs2.17 https://beaker.engineering.redhat.com/jobs/8752859 test env: 730-52 25g i40e <--connect--> 730-53 25g i40e HW outer SR-IOV VF: not tested, it blocked by following bug. https://bugzilla.redhat.com/show_bug.cgi?id=2229854 750-37 10g ixgbe <--connect--> 10g i40e SW Inner kernel VLAN: ping both ipv4 and ipv6 address successfully job: rhel9.2 ovs3.1 https://beaker.engineering.redhat.com/jobs/8751898 >>>>>>>>>>>>ice driver<<<<<<<<<<<<<<<< test env: netqe45 25g ice <--connect--> netqe46 25g ice SW Inner kernel VLAN: ping ipv4 address successfully, but ping ipv6 address not always successfully. I have added a comment to the following bug. https://bugzilla.redhat.com/show_bug.cgi?id=1921462 rhel9.2 ovs3.1 https://beaker.engineering.redhat.com/jobs/8752597 rhel9.2 ovs3.2 https://beaker.engineering.redhat.com/jobs/8753510 https://beaker.engineering.redhat.com/jobs/8753511 rhel9.2 ovs2.17 https://beaker.engineering.redhat.com/jobs/8753517 rhel8.6 ovs2.17 https://beaker.engineering.redhat.com/jobs/8756680 test env: netqe45 25g ice <--connect--> netqe46 25g ice HW outer SR-IOV VF: ping ipv4 address successfully, but ping ipv6 address not always successfully. I have added a comment to the following bug. https://bugzilla.redhat.com/show_bug.cgi?id=1921462 rhel9.2 ovs2.17 https://beaker.engineering.redhat.com/jobs/8756248 rhel9.2 ovs3.2 https://beaker.engineering.redhat.com/jobs/8756354 rhel9.2 ovs3.1 https://beaker.engineering.redhat.com/jobs/8756420 rhel8.6 ovs2.17 https://beaker.engineering.redhat.com/jobs/8756638 test env: wsfd-advnetlab10 ice <--connect--> wsfd-advnetlab11 ice SW Inner kernel VLAN: ping ipv4 address successfully, but ping ipv6 address not always successfully. rhel9.2 ovs3.1 https://beaker.engineering.redhat.com/jobs/8756294 rhel9.2 ovs2.17 https://beaker.engineering.redhat.com/jobs/8756169 rhel9.2 ovs3.2 https://beaker.engineering.redhat.com/jobs/8756310 rhel8.6 ovs2.17 https://beaker.engineering.redhat.com/jobs/8756315 test env: wsfd-advnetlab10 ice <--connect--> wsfd-advnetlab11 ice HW outer SR-IOV VF: ping ipv4 address successfully, but ping ipv6 address not always successfully. rhel9.2 ovs2.17 https://beaker.engineering.redhat.com/jobs/8755945 rhel9.2 ovs3.1 https://beaker.engineering.redhat.com/jobs/8756670 rhel9.2 ovs3.2 https://beaker.engineering.redhat.com/jobs/8756678 rhel8.6 ovs2.17 https://beaker.engineering.redhat.com/jobs/8756434 |
Description of problem: i40e driver: ipv6 ping failed when sr-iov vf add to ovs bridge Version-Release number of selected component (if applicable): [root@netqe22 ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 8.3 (Ootpa) [root@netqe22 ~]# uname -a Linux netqe22.knqe.lab.eng.bos.redhat.com 4.18.0-240.el8.x86_64 #1 SMP Wed Sep 23 05:13:10 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux [root@netqe22 ~]# rpm -qa|grep dpdk dpdk-19.11.3-1.el8.x86_64 dpdk-tools-19.11.3-1.el8.x86_64 [root@netqe22 ~]# rpm -qa|grep openv openvswitch-selinux-extra-policy-1.0-23.el8fdp.noarch openvswitch2.13-2.13.0-77.el8fdp.x86_64 [root@netqe22 ~]# ethtool -i enp3s0f1 driver: i40e version: 2.8.20-k firmware-version: 6.01 0x800035cf 1.1747.0 expansion-rom-version: bus-info: 0000:03:00.1 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: yes How reproducible: Steps to Reproduce: Netqe22 i40e nic connect with Netqe32 i40e nic directly. Two server build same topo. On netqe22 1. create two vf for pf enp3s0f0 2.Bind vf 1 to dpdk, and add dpdk0 to ovs bridge. /usr/share/dpdk/usertools/dpdk-devbind.py -b vfio-pci 0000:03:02.1 systemctl restart openvswitch ovs-vsctl set Open_vSwitch . 'other_config={}' ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=1024,1024 ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x500000500000 ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev ovs-vsctl add-port ovsbr0 dpdk0 -- set Interface dpdk0 type=dpdk type=dpdk options:dpdk-devargs=0000:03:02.1 ovs-vsctl add-port ovsbr0 dpdkvhostuserclient0 -- set Interface dpdkvhostuserclient0 type=dpdkvhostuserclient -- set Interface dpdkvhostuserclient0 options:vhost-server-path=/tmp/dpdkvhostuserclient0 3.Configure the vf 1 mac same with guest's mac ip link set enp3s0f0 vf 1 mac $guest_mac 4. Inside guest, configure ipv4 and ipv6 address for eth0 ip addr add 20.0.0.2/24 dev eth0 ip addr add 2001:5c0:9168::2/24 dev eth0 5. On netqe32 system, run above similar command on it. [root@netqe22 ~]# ovs-vsctl show 0f33bdd1-3a4d-4b05-ba46-55413d87c26d Bridge ovsbr0 datapath_type: netdev Port ovsbr0 Interface ovsbr0 type: internal Port dpdk0 Interface dpdk0 type: dpdk options: {dpdk-devargs="0000:03:02.1"} Port dpdkvhostuserclient0 Interface dpdkvhostuserclient0 type: dpdkvhostuserclient options: {vhost-server-path="/tmp/dpdkvhostuserclient0"} ovs_version: "2.13.2" 6. On netqe32 guest, ping the ip on netqe22 guest. Actual results: On netqe32, ipv4 ping successfully, ipv6 ping failed. When configure vf 1 trust on, ipv6 still ping failed. Expected results: ipv6 can ping successfully. Additional info: https://beaker.engineering.redhat.com/jobs/5035715