Ubuntu: eoan DPDK pkg: 18.11.1-3 OVS DPDK pkg: 2.11.0-0ubuntu2 Kerenl: 5.0.0-20-generic
If two servers each have an ovs bridge with a dpdk device for external network access and a network namespace attached then communication between taps in the namespaces fails if jumbo frames are enabled. If on one of the servers the external nic is switched so it is no longer managed by dpdk then service is restored. Server 1: root@node-licetus:~# ovs-vsctl show 1fed66c2-b7af-477d-b035-0e1d78451f6e Bridge br-test Port br-test Interface br-test type: internal Port "tap1" Interface "tap1" type: internal Port "dpdk-nic1" Interface "dpdk-nic1" type: dpdk options: {dpdk-devargs="0000:03:00.0"} ovs_version: "2.11.0" root@node-licetus:~# ovs-vsctl get Interface dpdk-nic1 mtu 9000 root@node-licetus:~# ip netns exec ns1 ip addr show tap1 11: tap1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UNKNOWN group default qlen 1000 link/ether 56:b1:9c:a3:de:81 brd ff:ff:ff:ff:ff:ff inet 10.246.112.101/21 scope global tap1 valid_lft forever preferred_lft forever inet6 fe80::54b1:9cff:fea3:de81/64 scope link valid_lft forever preferred_lft forever Server 2: root@node-hippalus:~# ovs-vsctl show cd383272-d341-4be8-b2ab-17ea8cb63ae6 Bridge br-test Port "dpdk-nic1" Interface "dpdk-nic1" type: dpdk options: {dpdk-devargs="0000:03:00.0"} Port br-test Interface br-test type: internal Port "tap1" Interface "tap1" type: internal ovs_version: "2.11.0" root@node-hippalus:~# ovs-vsctl get Interface dpdk-nic1 mtu 9000 root@node-hippalus:~# ip netns exec ns1 ip addr show tap1 11: tap1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UNKNOWN group default qlen 1000 link/ether a6:f2:d8:59:d5:7d brd ff:ff:ff:ff:ff:ff inet 10.246.112.102/21 scope global tap1 valid_lft forever preferred_lft forever inet6 fe80::a4f2:d8ff:fe59:d57d/64 scope link valid_lft forever preferred_lft forever Test: root@node-licetus:~# ip netns exec ns1 iperf -s -m ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 128 KByte (default) ------------------------------------------------------------ root@node-hippalus:~# ip netns exec ns1 iperf -c 10.246.112.101 ------------------------------------------------------------ Client connecting to 10.246.112.101, TCP port 5001 TCP window size: 325 KByte (default) ------------------------------------------------------------ [ 3] local 10.246.112.102 port 52848 connected with 10.246.112.101 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.4 sec 323 KBytes 256 Kbits/sec * If the mtu of either tap device is dropped to 1500 then the tests pass: root@node-licetus:~# ip netns exec ns1 ip link set dev tap1 mtu 9000 root@node-licetus:~# ip netns exec ns1 iperf -s -m ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 128 KByte (default) ------------------------------------------------------------ [ 4] local 10.246.112.101 port 5001 connected with 10.246.112.102 port 52850 [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.1 sec 502 MBytes 418 Mbits/sec [ 4] MSS size 1448 bytes (MTU 1500 bytes, ethernet) root@node-hippalus:~# ip netns exec ns1 ip link set dev tap1 mtu 1500 root@node-hippalus:~# ip netns exec ns1 iperf -c 10.246.112.101 ------------------------------------------------------------ Client connecting to 10.246.112.101, TCP port 5001 TCP window size: 748 KByte (default) ------------------------------------------------------------ [ 3] local 10.246.112.102 port 52850 connected with 10.246.112.101 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 502 MBytes 420 Mbits/sec * If in server 2 the dpdk device is replaced with the same physical device but not managed by dpdk jumbo frame then the tests pass: root@node-hippalus:~# ls -dl /sys/devices/pci0000:00/0000:00:02.0/0000:03:00.0/net/enp3s0f0 drwxr-xr-x 6 root root 0 Jul 8 14:04 /sys/devices/pci0000:00/0000:00:02.0/0000:03:00.0/net/enp3s0f0 root@node-hippalus:~# ovs-vsctl show cd383272-d341-4be8-b2ab-17ea8cb63ae6 Bridge br-test Port "tap1" Interface "tap1" type: internal Port br-test Interface br-test type: internal Port "enp3s0f0" Interface "enp3s0f0" ovs_version: "2.11.0" root@node-hippalus:~# ip netns exec ns1 ip addr show tap1 10: tap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether ba:39:55:e2:b8:81 brd ff:ff:ff:ff:ff:ff inet 10.246.112.102/21 scope global tap1 valid_lft forever preferred_lft forever inet6 fe80::b839:55ff:fee2:b881/64 scope link valid_lft forever preferred_lft forever root@node-hippalus:~# ip netns exec ns1 iperf -c 10.246.112.101 ------------------------------------------------------------ Client connecting to 10.246.112.101, TCP port 5001 TCP window size: 325 KByte (default) ------------------------------------------------------------ [ 3] local 10.246.112.102 port 35232 connected with 10.246.112.101 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 6.07 GBytes 5.21 Gbits/sec root@node-licetus:~# ip netns exec ns1 iperf -s -m ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 128 KByte (default) ------------------------------------------------------------ [ 4] local 10.246.112.101 port 5001 connected with 10.246.112.102 port 35232 [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.0 sec 6.07 GBytes 5.21 Gbits/sec [ 4] MSS size 8948 bytes (MTU 8988 bytes, unknown interface) -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1833713 Title: Metadata is broken with dpdk bonding, jumbo frames and metadata from qdhcp To manage notifications about this bug go to: https://bugs.launchpad.net/charm-neutron-openvswitch/+bug/1833713/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs