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
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs