Hello there,
Maybe someone can help me.
Last time I was here with the same problem, I’ve been told to try with the latest openvswitch build so I did:
ovs-vsctl (Open vSwitch) 2.11.90
It improved things a little, but still not perfect.
Setup:
Dual port ConnectX5 (MT27800) latest firmware.
Ubuntu 18.04 Linux kernel: 4.18.0-25-generic
(No ofed drivers as the ofed driver fails to enable eswitch with this: (0000:3b:00.0): E-Switch: Failed setting eswitch to offloads)
LACP active on both of the ports (port0 and port1) on the connectx5, systemd activates the lacp and the SRIOV sub interfaces before networking starts. OVS offloading in ovs enabled.
SRIOV subinterfaces on port0 created (boot time), port1 doesn’t have any SRIOV subinterfaces created.
When the vm’s traffic (using asap2) goes through the port0 (left port on the cart), all works fine, everything gets offloaded:
listening on eth3, link-type EN10MB (Ethernet), capture size 262144 bytes
15:32:36.042217 IP 10.100.140.15 > 10.100.140.3: ICMP echo request, id 1357, seq 1, length 64
15:32:36.042451 IP 10.100.140.3 > 10.100.140.15: ICMP echo reply, id 1357, seq 1, length 64
15:32:41.166466 ARP, Request who-has 10.100.140.3 tell 10.100.140.15, length 46
15:32:41.166588 ARP, Reply 10.100.140.3 is-at fa:16:3e:04:b7:60, length 46
As we see only 2 packet hits the virtual port as seen in the docs.
When I down port0 and the flow moves to port1 (right port on the card), this happens:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth3, link-type EN10MB (Ethernet), capture size 262144 bytes
15:38:47.401961 IP 10.100.140.15 > 10.100.140.3: ICMP echo request, id 1362, seq 40, length 64
15:38:48.425970 IP 10.100.140.15 > 10.100.140.3: ICMP echo request, id 1362, seq 41, length 64
15:38:49.449992 IP 10.100.140.15 > 10.100.140.3: ICMP echo request, id 1362, seq 42, length 64
In this case offload happens in only one direction which is not ideal.
When I re-enable the port0 the traffic will still flow on the port1 and still gonna be half offloaded. If I disable the port1 once again, the traffic finally moves back to port0 and gets fully offloaded.
Is this a bug? A feature? What am I doing wrong? :(
Any help would be appreciated.
Thank you very much!
Zoltan