Re: [PATCH bpf-next v3 7/9] net/netfilter: Add unstable CT lookup helpers for XDP and TC-BPF

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Kumar,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on bpf-next/master]

url:    https://github.com/0day-ci/linux/commits/Kumar-Kartikeya-Dwivedi/Introduce-unstable-CT-lookup-helpers/20211210-210439
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
config: arc-randconfig-r043-20211210 (https://download.01.org/0day-ci/archive/20211210/202112102230.6cj0WCoX-lkp@xxxxxxxxx/config)
compiler: arc-elf-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/683d78cc594f7867b8dae78b357ab82a5ee69484
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Kumar-Kartikeya-Dwivedi/Introduce-unstable-CT-lookup-helpers/20211210-210439
        git checkout 683d78cc594f7867b8dae78b357ab82a5ee69484
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash net/netfilter/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> net/netfilter/nf_conntrack_core.c:2566:17: warning: no previous prototype for 'bpf_xdp_ct_lookup' [-Wmissing-prototypes]
    2566 | struct nf_conn *bpf_xdp_ct_lookup(struct xdp_md *xdp_ctx,
         |                 ^~~~~~~~~~~~~~~~~
>> net/netfilter/nf_conntrack_core.c:2610:17: warning: no previous prototype for 'bpf_skb_ct_lookup' [-Wmissing-prototypes]
    2610 | struct nf_conn *bpf_skb_ct_lookup(struct __sk_buff *skb_ctx,
         |                 ^~~~~~~~~~~~~~~~~
>> net/netfilter/nf_conntrack_core.c:2648:6: warning: no previous prototype for 'bpf_ct_release' [-Wmissing-prototypes]
    2648 | void bpf_ct_release(struct nf_conn *nfct)
         |      ^~~~~~~~~~~~~~


vim +/bpf_xdp_ct_lookup +2566 net/netfilter/nf_conntrack_core.c

  2549	
  2550	/* bpf_xdp_ct_lookup - Lookup CT entry for the given tuple, and acquire a
  2551	 *		       reference to it
  2552	 *
  2553	 * Parameters:
  2554	 * @xdp_ctx	- Pointer to ctx (xdp_md) in XDP program
  2555	 *		    Cannot be NULL
  2556	 * @bpf_tuple	- Pointer to memory representing the tuple to look up
  2557	 *		    Cannot be NULL
  2558	 * @len__tuple	- Length of the tuple structure
  2559	 *		    Must be one of sizeof(bpf_tuple->ipv4) or
  2560	 *		    sizeof(bpf_tuple->ipv6)
  2561	 * @opts	- Additional options for lookup (documented above)
  2562	 *		    Cannot be NULL
  2563	 * @len__opts	- Length of the bpf_ct_opts structure
  2564	 *		    Must be NF_BPF_CT_OPTS_SZ (12)
  2565	 */
> 2566	struct nf_conn *bpf_xdp_ct_lookup(struct xdp_md *xdp_ctx,
  2567					  struct bpf_sock_tuple *bpf_tuple,
  2568					  u32 len__tuple, struct bpf_ct_opts *opts,
  2569					  u32 len__opts)
  2570	{
  2571		struct xdp_buff *ctx = (struct xdp_buff *)xdp_ctx;
  2572		struct net *caller_net;
  2573		struct nf_conn *nfct;
  2574	
  2575		BUILD_BUG_ON(sizeof(struct bpf_ct_opts) != NF_BPF_CT_OPTS_SZ);
  2576	
  2577		if (!opts)
  2578			return NULL;
  2579		if (!bpf_tuple || opts->reserved[0] || opts->reserved[1] ||
  2580		    opts->reserved[2] || len__opts != NF_BPF_CT_OPTS_SZ) {
  2581			opts->error = -EINVAL;
  2582			return NULL;
  2583		}
  2584		caller_net = dev_net(ctx->rxq->dev);
  2585		nfct = __bpf_nf_ct_lookup(caller_net, bpf_tuple, len__tuple, opts->l4proto,
  2586					  opts->netns_id);
  2587		if (IS_ERR(nfct)) {
  2588			opts->error = PTR_ERR(nfct);
  2589			return NULL;
  2590		}
  2591		return nfct;
  2592	}
  2593	
  2594	/* bpf_skb_ct_lookup - Lookup CT entry for the given tuple, and acquire a
  2595	 *		       reference to it
  2596	 *
  2597	 * Parameters:
  2598	 * @skb_ctx	- Pointer to ctx (__sk_buff) in TC program
  2599	 *		    Cannot be NULL
  2600	 * @bpf_tuple	- Pointer to memory representing the tuple to look up
  2601	 *		    Cannot be NULL
  2602	 * @len__tuple	- Length of the tuple structure
  2603	 *		    Must be one of sizeof(bpf_tuple->ipv4) or
  2604	 *		    sizeof(bpf_tuple->ipv6)
  2605	 * @opts	- Additional options for lookup (documented above)
  2606	 *		    Cannot be NULL
  2607	 * @len__opts	- Length of the bpf_ct_opts structure
  2608	 *		    Must be NF_BPF_CT_OPTS_SZ (12)
  2609	 */
> 2610	struct nf_conn *bpf_skb_ct_lookup(struct __sk_buff *skb_ctx,
  2611					  struct bpf_sock_tuple *bpf_tuple,
  2612					  u32 len__tuple, struct bpf_ct_opts *opts,
  2613					  u32 len__opts)
  2614	{
  2615		struct sk_buff *skb = (struct sk_buff *)skb_ctx;
  2616		struct net *caller_net;
  2617		struct nf_conn *nfct;
  2618	
  2619		BUILD_BUG_ON(sizeof(struct bpf_ct_opts) != NF_BPF_CT_OPTS_SZ);
  2620	
  2621		if (!opts)
  2622			return NULL;
  2623		if (!bpf_tuple || opts->reserved[0] || opts->reserved[1] ||
  2624		    opts->reserved[2] || len__opts != NF_BPF_CT_OPTS_SZ) {
  2625			opts->error = -EINVAL;
  2626			return NULL;
  2627		}
  2628		caller_net = skb->dev ? dev_net(skb->dev) : sock_net(skb->sk);
  2629		nfct = __bpf_nf_ct_lookup(caller_net, bpf_tuple, len__tuple, opts->l4proto,
  2630					  opts->netns_id);
  2631		if (IS_ERR(nfct)) {
  2632			opts->error = PTR_ERR(nfct);
  2633			return NULL;
  2634		}
  2635		return nfct;
  2636	}
  2637	
  2638	/* bpf_ct_release - Release acquired nf_conn object
  2639	 *
  2640	 * This must be invoked for referenced PTR_TO_BTF_ID, and the verifier rejects
  2641	 * the program if any references remain in the program in all of the explored
  2642	 * states.
  2643	 *
  2644	 * Parameters:
  2645	 * @nf_conn	 - Pointer to referenced nf_conn object, obtained using
  2646	 *		   bpf_xdp_ct_lookup or bpf_skb_ct_lookup.
  2647	 */
> 2648	void bpf_ct_release(struct nf_conn *nfct)
  2649	{
  2650		if (!nfct)
  2651			return;
  2652		nf_ct_put(nfct);
  2653	}
  2654	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux