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

Tonghao Zhang xiangxia.m.yue at gmail.com
Mon Jan 20 11:33:44 UTC 2020

On Mon, Jan 20, 2020 at 4:59 PM Ilya Maximets <i.maximets at ovn.org> wrote:
> 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
That is better solution for me, thanks for explaining it to me.
> Best regards, Ilya Maximets.

More information about the dev mailing list