On 2021-12-14 1:59 PM, Roi Dayan wrote:


On 2021-12-09 3:16 PM, Ilya Maximets wrote:
On 12/8/21 03:57, lin huang wrote:
From: linhuang <linhu...@ruijie.com.cn>

Userspace tunnel doesn't have a valid device in the kernel. So
get_ifindex() function (ioctl) always get error during
adding a port, deleting a port or updating a port status.

The info log is
"2021-08-29T09:17:39.830Z|00059|netdev_linux|INFO|ioctl(SIOCGIFINDEX)
on vxlan_sys_4789 device failed: No such device"

If there are a lot of userspace tunnel ports on a bridge, the
iface_refresh_netdev_status() function will spend a lot of time.

So ignore userspace tunnel port ioctl(SIOCGIFINDEX) operation, just
return -ENODEV.

Signed-off-by: Lin Huang <linhu...@ruijie.com.cn>
Test-by: Mike Pattrick <m...@redhat.com>
---
  lib/netdev-vport.c | 6 ++++++
  vswitchd/bridge.c  | 2 ++
  2 files changed, 8 insertions(+)


Applied.  Thanks!

Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
d...@openvswitch.org
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.openvswitch.org%2Fmailman%2Flistinfo%2Fovs-dev&amp;data=04%7C01%7Croid%40nvidia.com%7C8865bff084424563a30308d9bb16357f%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637746526329615023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=53XCrfcyaY1orDpnmjdf7FV5espcWKPElCMDJKVU5Jw%3D&amp;reserved=0


Hi,

We encounter an offload issue with this commit that OVS doesn't add
rules to TC and keeps on with OVS dp.

To reproduce the issue, configure ovs with bridge and 2 ports,
restart openvswitch service and then do ping between the ports.
Removing/readding port to bridge or calling dpctl/dump-flows "fix" the
issue and ovs calls TC again.

 From first look it's because br->ofproto->type is not the same pointer
usually set in netdev_ports_insert() which can be dpi_class->type or
static "system" and in the netdev_ports_* functions the code uses
pointer equal instead of strcmp() to check the type.
So netdev_ports_lookup() returns error now.

2021-12-14T10:56:18.240Z|00010|dpif_netlink(handler1)|ERR|XXX parse_flow_put 2243 get port for type system ret (nil)

Even after changing all netdev_ports_* to use strcmp() and
netdev_ports_lookup() is ok and we do get to tc flow put.
Looks like we get an error from tc to offload. so checking this part
now.

2021-12-14T11:23:09.230Z|00035|dpif_netlink(handler1)|ERR|failed to offload flow: No such device: enp8s0f0_0

So still looking on this but wanted to share about the behavior.

Thanks,
Roi

I forgot to mention but just to make it clear,
need to set hw-offload=true.

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to