On Jan 23, Jakub Kicinski wrote: > On Sun, 22 Jan 2023 13:13:41 +0100 Lorenzo Bianconi wrote: > > > > diff --git a/kernel/bpf/devmap.c b/kernel/bpf/devmap.c > > > > index d01e4c55b376..69ceecc792df 100644 > > > > --- a/kernel/bpf/devmap.c > > > > +++ b/kernel/bpf/devmap.c > > > > @@ -474,7 +474,11 @@ static inline int __xdp_enqueue(struct net_device *dev, struct xdp_frame *xdpf, > > > > { > > > > int err; > > > > - if (!dev->netdev_ops->ndo_xdp_xmit) > > > > + if (!(dev->xdp_features & NETDEV_XDP_ACT_NDO_XMIT)) > > > > > > The current "dev->netdev_ops->ndo_xdp_xmit" check is self explaining. > > > Any plan to put some document for the NETDEV_XDP_ACT_* values? > > > > > > > I am not a yaml description expert but I guess we can xdp features description > > in Documentation/netlink/specs/netdev.yaml. > > > > @Jakub: what do you think? > > I've added the ability to document enums recently, so you may need > to rebase. But it should work and render the documentation as kdoc > in the uAPI header (hopefully in a not-too-ugly way). > > Example of YAML: > https://github.com/kuba-moo/ynl/blob/dpll/Documentation/netlink/specs/dpll.yaml#L27-L46 ack, it works properly I guess, I got the following kdoc in the uAPI: /** * enum netdev_xdp_act * @NETDEV_XDP_ACT_BASIC: XDP feautues set supported by all drivers * (XDP_ABORTED, XDP_DROP, XDP_PASS, XDP_TX) * @NETDEV_XDP_ACT_REDIRECT: The netdev supports XDP_REDIRECT * @NETDEV_XDP_ACT_NDO_XMIT: This feature informs if netdev implements * ndo_xdp_xmit callback. * @NETDEV_XDP_ACT_XSK_ZEROCOPY: This feature informs if netdev supports AF_XDP * in zero copy mode. * @NETDEV_XDP_ACT_HW_OFFLOAD: This feature informs if netdev supports XDP hw * oflloading. * @NETDEV_XDP_ACT_RX_SG: This feature informs if netdev implements non-linear * XDP buffer support in the driver napi callback. * @NETDEV_XDP_ACT_NDO_XMIT_SG: This feature informs if netdev implements * non-linear XDP buffer support in ndo_xdp_xmit callback. */ enum netdev_xdp_act { NETDEV_XDP_ACT_BASIC, NETDEV_XDP_ACT_REDIRECT, NETDEV_XDP_ACT_NDO_XMIT, NETDEV_XDP_ACT_XSK_ZEROCOPY, NETDEV_XDP_ACT_HW_OFFLOAD, NETDEV_XDP_ACT_RX_SG, NETDEV_XDP_ACT_NDO_XMIT_SG, }; Regards, Lorenzo > > I've also talked to the iproute2-py maintainer about generating > documentation directly from YAML to Sphinx/htmldocs, hopefully > that will happen, too. It would be good to have a few families > to work with before we start that work, tho.
Attachment:
signature.asc
Description: PGP signature