Re: [RFC v2 3/6] i40e: use extack for bpf errors
From: Jakub Kicinski <hidden>
Date: 2019-03-01 22:03:57
On Fri, 1 Mar 2019 13:55:53 -0800, Stephen Hemminger wrote:
On Fri, 1 Mar 2019 08:28:49 -0800 Jakub Kicinski [off-list ref] wrote:quoted
On Fri, 1 Mar 2019 12:31:08 +0100, Maciej Fijalkowski wrote:quoted
On Thu, 28 Feb 2019 19:06:45 -0800 Jakub Kicinski [off-list ref] wrote:quoted
On Thu, 28 Feb 2019 13:54:38 -0800, Stephen Hemminger wrote:quoted
@@ -12140,12 +12144,14 @@ static int i40e_xdp(struct net_device *dev, struct i40e_netdev_priv *np = netdev_priv(dev); struct i40e_vsi *vsi = np->vsi; - if (vsi->type != I40E_VSI_MAIN) + if (vsi->type != I40E_VSI_MAIN) { + NL_SET_ERR_MSG_MOD(xdp->extack, "XDP not allowed on VF");Is that right? Intel tends to have separate drivers for VFs, I think the i40evf got renamed to iavf.Good catch, this sanity check is to make sure that XDP is being enabled on main VSI of PF, not for example the VSI dedicated for Flow Director management (I40E_VSI_FDIR). Besides that, vsi->type != I40E_VSI_MAIN doesn't yield the I40E_VSI_SRIOV type. So it would be better to have an error message like "XDP is not allowed on VSIs other than main VSI". Thoughts?Do the other VSI types have netdevs? If they do this may be hard to understand (unless Intel's manuals refer to VSI and users know what that is). If there is no netdev on other VSIs perhaps this "should never happen" and we can convert it to a WARN_ON()?I was just making a best guess based on similar checks elsewhere in the code as to the correct error message
Digging into this I think there are more netdevs, so perhaps "XDP is only allowed on the main netdev instance"? Hopefully Intel folks can advise even better.