Hello,
I have a Mellanox MCX512A-ACA_Ax adapter which is in switchdev mode. I have added 3 representor ports in OVS and tried running traffic between two of the ports. It works fine as expected, flows get offloaded and I get full rate.
ovs-dpctl dump-flows --names type=offloaded | grep enp
in_port(enp59s0f0_4),eth(src=fa:16:3e:95:fa:61,dst=fa:16:3e:30:0c:46),eth_type(0x0800), packets:2017511626, bytes:3206738851796, used:0.920s, actions:enp59s0f0_2
in_port(enp59s0f0_2),eth(src=fa:16:3e:30:0c:46,dst=fa:16:3e:95:fa:61),eth_type(0x0800), packets:2970848248, bytes:1509190466534, used:0.920s, actions:enp59s0f0_4
The issue is that when I try to create a mirror from one source VF to the other, the flows are not offloaded anymore and the rate drops.
ovs-vsctl – --id=@p1 get port enp59s0f0_5 – --id=@p2 get port enp59s0f0_2 – --id=@m create mirror name=m0 select-src-port=@p2 output-port=@p1 – set bridge br-int mirrors=@m
Am I doing anything wrong or is it a limitation?
My expectation was for the switch to send packets on both VFs without the packet arriving at the representor port.
Also I tried adding a flow manually to multicast the packets from vf 2 to vf 4 and 5.
ovs-ofctl add-flow br-int “table=0,priority=20,in_port=enp59s0f0_2,actions=enp59s0f0_4,enp59s0f0_5”
Again, the flow is not offloaded.
I’m running CentOS 7.5 with kernel 3.10.0-1062.12.1.el7.x86_64 and OVS 2.9.0. I also tried on CentOS 7.7 with kernel 3.10.0-1062.4.3.el7.x86_64 and OVS 2.11.0 with no luck.
Regards,
Alex