RE: [PATCH net 1/3] net: fec: dynamically set the NETDEV_XDP_ACT_NDO_XMIT feature of XDP

From: Wei Fang
Date: Wed Jul 05 2023 - 02:31:09 EST


> -----Original Message-----
> From: Toke Høiland-Jørgensen <toke@xxxxxxxxxx>
> Sent: 2023年7月5日 7:54
> To: Andrew Lunn <andrew@xxxxxxx>; Wei Fang <wei.fang@xxxxxxx>
> Cc: davem@xxxxxxxxxxxxx; edumazet@xxxxxxxxxx; kuba@xxxxxxxxxx;
> pabeni@xxxxxxxxxx; ast@xxxxxxxxxx; daniel@xxxxxxxxxxxxx;
> hawk@xxxxxxxxxx; john.fastabend@xxxxxxxxx; Shenwei Wang
> <shenwei.wang@xxxxxxx>; Clark Wang <xiaoning.wang@xxxxxxx>;
> netdev@xxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>;
> linux-kernel@xxxxxxxxxxxxxxx; bpf@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH net 1/3] net: fec: dynamically set the
> NETDEV_XDP_ACT_NDO_XMIT feature of XDP
>
> Andrew Lunn <andrew@xxxxxxx> writes:
>
> > On Tue, Jul 04, 2023 at 04:29:14PM +0800, wei.fang@xxxxxxx wrote:
> >> From: Wei Fang <wei.fang@xxxxxxx>
> >>
> >> When a XDP program is installed or uninstalled, fec_restart() will be
> >> invoked to reset MAC and buffer descriptor rings. It's reasonable not
> >> to transmit any packet during the process of reset. However, the
> >> NETDEV_XDP_ACT_NDO_XMIT bit of xdp_features is enabled by default,
> >> that is to say, it's possible that the fec_enet_xdp_xmit() will be
> >> invoked even if the process of reset is not finished. In this case,
> >> the redirected XDP frames might be dropped and available transmit BDs
> >> may be incorrectly deemed insufficient. So this patch disable the
> >> NETDEV_XDP_ACT_NDO_XMIT feature by default and dynamically
> configure
> >> this feature when the bpf program is installed or uninstalled.
> >
> > I don't know much about XDP, so please excuse what might be a stupid
> > question.
> >
> > Is this a generic issue? Should this
> > xdp_features_clear_redirect_target(dev) /
> > xdp_features_set_redirect_target(dev, false) be done in the core?
>
> No, because not all drivers require an XDP program to be attached to support
> being a redirect target (which is one of the reasons we introduced these
> feature bits in the first place :)).
>

Hi Toke,
Thanks for your explanation so much. :)