[ovs-dev] [PATCH RESEND ovs-dev] netdev-offload-tc: Add checking when assigning flow api

Ilya Maximets i.maximets at ovn.org
Mon Jan 20 08:59:03 UTC 2020


On 19.01.2020 12:40, xiangxia.m.yue at gmail.com wrote:
> From: Tonghao Zhang <xiangxia.m.yue at gmail.com>
> 
> netdev_assign_flow_api will try to init the netdev,
> if success, the netdev will use the offload api.
> If we init the type of netdev is dpdk, using the tc offload
> api (netdev_tc_init_flow_api, which may be called firstly.),
> the err log always is showing up. This patch adds a additional
> check, and can void the err log.
> 
> "failed adding ingress qdisc required for offloading: No such device"

I don't think that it's a good solution to restrict netdev-offload-tc
to netdev-linux ports only for two reasons:

1. netdev-vport offloading works via tc and this patch seems to break
   this functionality.

2. netdev-dpdk ports in theory could be offloaded via netdev-offload-tc
   in case of bifurcated drivers (Mellanox NICs).

The root cause of your issue is that netdev-dpdk reports fake ifindex
for ports that doesn't have one.  This is actually in issue, because
it's possible that reported ifindex will be valid for some other system
network interface and OVS will try to pass unrelated configuration to it.

IMHO, netdev-dpdk should not report fake ifindexes in the first place.
This will eliminate your issue since 'no ifindex' logged in INFO level.
However, I didn't check if this is fully safe and which parts will be
broken.  At least you'll need a couple of patches from this patch set
to make offloading work without ifindex:
https://patchwork.ozlabs.org/project/openvswitch/list/?series=146209

Best regards, Ilya Maximets.


More information about the dev mailing list