Hi all, I have experienced packet loss when using DPDK Virtual Devices and have questions about troubleshooting it. The documentation [1] says "Not all DPDK virtual PMD drivers have been tested and verified to work." Does anyone know the current support status for Tap Poll Mode Driver [2] ? Or is there a mistake in my procedure? Below are instructions on how to reproduce this issue. For reference, I found a presentation [3] at ovscon2019 that talks about using tap interface with OvS-DPDK.
Environment ----------- - Ubuntu 20.04 LTS on Virtual Machine (QEMU/KVM) - Ubuntu 20.04 LTS on Bare Metal Machine Diagram ------- tap1 (Tap Poll Mode Driver, source of ping6) --- br0 (datapath_type=netdev) --- tap2 (Tap Poll Mode Driver, destination of ping6) Reproduction Steps ------------------ # https://ubuntu.com/server/docs/openvswitch-dpdk sudo apt install -y openvswitch-switch-dpdk sudo update-alternatives --set ovs-vswitchd /usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk sudo ovs-vsctl set Open_vSwitch . "other_config:dpdk-init=true" sudo ovs-vsctl set Open_vSwitch . "other_config:dpdk-lcore-mask=0x1" sudo ovs-vsctl set Open_vSwitch . "other_config:dpdk-alloc-mem=2048" sudo service openvswitch-switch restart sudo /usr/share/openvswitch/scripts/ovs-ctl version # ovsdb-server (Open vSwitch) 2.13.3 # ovs-vswitchd (Open vSwitch) 2.13.3 # DPDK 19.11.7 sudo ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev sudo ovs-vsctl add-port br0 myeth0 -- set Interface myeth0 type=dpdk options:dpdk-devargs="net_tap0,iface=tap1" sudo ovs-vsctl add-port br0 myeth1 -- set Interface myeth1 type=dpdk options:dpdk-devargs="net_tap1,iface=tap2" sudo ovs-ofctl del-flows br0 sudo ovs-ofctl add-flow br0 priority=10,in_port=myeth1,actions:output=myeth0 sudo ovs-ofctl add-flow br0 priority=10,in_port=myeth0,actions:output=myeth1 sudo ip netns add ns1 sudo ip netns add ns2 sudo ip link set tap1 netns ns1 sudo ip link set tap2 netns ns2 sudo ip netns exec ns1 ip link set tap1 up sudo ip netns exec ns2 ip link set tap2 up sudo ip netns exec ns1 ip link set lo up sudo ip netns exec ns2 ip link set lo up # ping6 from tap1 to tap2 # Only one ping succeeds every few times. In some cases, there is no response at all. sudo ip netns exec ns1 ping6 $ipv6_address_of_tap2 -I tap1 # 64 bytes from fe80::8433:52ff:fe29:f20a%tap1: icmp_seq=1 ttl=64 time=0.223 ms # 64 bytes from fe80::8433:52ff:fe29:f20a%tap1: icmp_seq=5 ttl=64 time=0.321 ms # 64 bytes from fe80::8433:52ff:fe29:f20a%tap1: icmp_seq=9 ttl=64 time=0.291 ms # 64 bytes from fe80::8433:52ff:fe29:f20a%tap1: icmp_seq=13 ttl=64 time=0.281 ms # 64 bytes from fe80::8433:52ff:fe29:f20a%tap1: icmp_seq=17 ttl=64 time=0.284 ms sudo ovs-vsctl get Open_vSwitch . dpdk_initialized # true sudo ovs-appctl dpif-netdev/pmd-rxq-show # pmd thread numa_id 0 core_id 5: # isolated : false # port: myeth0 queue-id: 0 (enabled) pmd usage: 0 % # port: myeth1 queue-id: 0 (enabled) pmd usage: 0 % [1]: https://docs.openvswitch.org/en/latest/topics/dpdk/vdev/ [2]: https://doc.dpdk.org/guides/nics/tap.html [3]: https://www.openvswitch.org/support/ovscon2019/day1/1101-Utilizing%20DPDK%20Virtual%20Devices%20in%20OVS.pdf Best Regards, Nobuhiro Miki _______________________________________________ discuss mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
