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

Reply via email to