Subject: Re: [PATCH bpf-next v5 07/17] bpf: XDP metadata RX kfuncs

From: David Vernet <[email-masked]>
Date: Tue, 27 Dec 2022 14:33:50 -0600

On Tue, Dec 20, 2022 at 02:20:33PM -0800, Stanislav Fomichev wrote:

Hey Stanislav,

[...]

> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
> index aad12a179e54..b41d18490595 100644
> --- a/include/linux/netdevice.h
> +++ b/include/linux/netdevice.h
> @@ -74,6 +74,7 @@ struct udp_tunnel_nic_info;
>  struct udp_tunnel_nic;
>  struct bpf_prog;
>  struct xdp_buff;
> +struct xdp_md;
>  
>  void synchronize_net(void);
>  void netdev_set_default_ethtool_ops(struct net_device *dev,
> @@ -1618,6 +1619,11 @@ struct net_device_ops {
>  						  bool cycles);
>  };
>  
> +struct xdp_metadata_ops {
> +	int	(*xmo_rx_timestamp)(const struct xdp_md *ctx, u64 *timestamp);
> +	int	(*xmo_rx_hash)(const struct xdp_md *ctx, u32 *hash);
> +};
> +
>  /**
>   * enum netdev_priv_flags - &struct net_device priv_flags
>   *
> @@ -2050,6 +2056,7 @@ struct net_device {
>  	unsigned int		flags;
>  	unsigned long long	priv_flags;
>  	const struct net_device_ops *netdev_ops;
> +	const struct xdp_metadata_ops *xdp_metadata_ops;

You need to document this field above the struct, or the docs build will
complain:

  SPHINX  htmldocs -->
  <redacted>
  make[2]: Nothing to be done for 'html'.
  Using sphinx_rtd_theme theme
  source directory: networking
  ./include/linux/netdevice.h:2371: warning: Function parameter or
  member 'xdp_metadata_ops' not described in 'net_device'

>  	int			ifindex;
>  	unsigned short		gflags;
>  	unsigned short		hard_header_len;

Thanks,
David