All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH bpf-next] selftests/bpf: Fix error undeclared identifier 'NF_NAT_MANIP_SRC'
@ 2022-11-11  3:26 Rong Tao
  2022-11-11 17:25 ` sdf
  0 siblings, 1 reply; 8+ messages in thread
From: Rong Tao @ 2022-11-11  3:26 UTC (permalink / raw)
  To: ast
  Cc: Rong Tao, kernel test robot, Daniel Borkmann, Andrii Nakryiko,
	Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend,
	KP Singh, Stanislav Fomichev, Hao Luo, Jiri Olsa, Mykola Lysenko,
	Shuah Khan, Kumar Kartikeya Dwivedi, Lorenzo Bianconi, Daniel Xu,
	open list:BPF [GENERAL] (Safe Dynamic Programs and Tools),
	open list:KERNEL SELFTEST FRAMEWORK, open list

From: Rong Tao <rongtao@cestc.cn>

commit 472caa69183f("netfilter: nat: un-export nf_nat_used_tuple")
introduce NF_NAT_MANIP_SRC/DST enum in include/net/netfilter/nf_nat.h,
and commit b06b45e82b59("selftests/bpf: add tests for bpf_ct_set_nat_info
kfunc") use NF_NAT_MANIP_SRC/DST in test_bpf_nf.c. We copy enum
nf_nat_manip_type to test_bpf_nf.c fix this error.

How to reproduce the error:

    $ make -C tools/testing/selftests/bpf/
    ...
      CLNG-BPF [test_maps] test_bpf_nf.bpf.o
      error: use of undeclared identifier 'NF_NAT_MANIP_SRC'
            bpf_ct_set_nat_info(ct, &saddr, sport, NF_NAT_MANIP_SRC);
                                                           ^
      error: use of undeclared identifier 'NF_NAT_MANIP_DST'
            bpf_ct_set_nat_info(ct, &daddr, dport, NF_NAT_MANIP_DST);
                                                           ^
    2 errors generated.

Link: https://lore.kernel.org/lkml/202210280447.STsT1gvq-lkp@intel.com/
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Rong Tao <rongtao@cestc.cn>
---
 tools/testing/selftests/bpf/progs/test_bpf_nf.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tools/testing/selftests/bpf/progs/test_bpf_nf.c b/tools/testing/selftests/bpf/progs/test_bpf_nf.c
index 227e85e85dda..307ca166ff34 100644
--- a/tools/testing/selftests/bpf/progs/test_bpf_nf.c
+++ b/tools/testing/selftests/bpf/progs/test_bpf_nf.c
@@ -3,6 +3,11 @@
 #include <bpf/bpf_helpers.h>
 #include <bpf/bpf_endian.h>
 
+enum nf_nat_manip_type {
+	NF_NAT_MANIP_SRC,
+	NF_NAT_MANIP_DST
+};
+
 #define EAFNOSUPPORT 97
 #define EPROTO 71
 #define ENONET 64
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH bpf-next] selftests/bpf: Fix error undeclared identifier 'NF_NAT_MANIP_SRC'
  2022-11-11  3:26 [PATCH bpf-next] selftests/bpf: Fix error undeclared identifier 'NF_NAT_MANIP_SRC' Rong Tao
@ 2022-11-11 17:25 ` sdf
  2022-11-11 17:54   ` Lorenzo Bianconi
  0 siblings, 1 reply; 8+ messages in thread
From: sdf @ 2022-11-11 17:25 UTC (permalink / raw)
  To: Rong Tao
  Cc: ast, Rong Tao, kernel test robot, Daniel Borkmann,
	Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song,
	John Fastabend, KP Singh, Hao Luo, Jiri Olsa, Mykola Lysenko,
	Shuah Khan, Kumar Kartikeya Dwivedi, Lorenzo Bianconi, Daniel Xu,
	open list:BPF [GENERAL] (Safe Dynamic Programs and Tools),
	open list:KERNEL SELFTEST FRAMEWORK, open list

On 11/11, Rong Tao wrote:
> From: Rong Tao <rongtao@cestc.cn>

> commit 472caa69183f("netfilter: nat: un-export nf_nat_used_tuple")
> introduce NF_NAT_MANIP_SRC/DST enum in include/net/netfilter/nf_nat.h,
> and commit b06b45e82b59("selftests/bpf: add tests for bpf_ct_set_nat_info
> kfunc") use NF_NAT_MANIP_SRC/DST in test_bpf_nf.c. We copy enum
> nf_nat_manip_type to test_bpf_nf.c fix this error.

> How to reproduce the error:

>      $ make -C tools/testing/selftests/bpf/
>      ...
>        CLNG-BPF [test_maps] test_bpf_nf.bpf.o
>        error: use of undeclared identifier 'NF_NAT_MANIP_SRC'
>              bpf_ct_set_nat_info(ct, &saddr, sport, NF_NAT_MANIP_SRC);
>                                                             ^
>        error: use of undeclared identifier 'NF_NAT_MANIP_DST'
>              bpf_ct_set_nat_info(ct, &daddr, dport, NF_NAT_MANIP_DST);
>                                                             ^
>      2 errors generated.

$ grep  
NF_NAT_MANIP_SRC ./tools/testing/selftests/bpf/tools/include/vmlinux.h
         NF_NAT_MANIP_SRC = 0,

Doesn't look like your kernel config compiles netfilter nat modules?

> Link: https://lore.kernel.org/lkml/202210280447.STsT1gvq-lkp@intel.com/
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Rong Tao <rongtao@cestc.cn>
> ---
>   tools/testing/selftests/bpf/progs/test_bpf_nf.c | 5 +++++
>   1 file changed, 5 insertions(+)

> diff --git a/tools/testing/selftests/bpf/progs/test_bpf_nf.c  
> b/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> index 227e85e85dda..307ca166ff34 100644
> --- a/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> +++ b/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> @@ -3,6 +3,11 @@
>   #include <bpf/bpf_helpers.h>
>   #include <bpf/bpf_endian.h>

> +enum nf_nat_manip_type {
> +	NF_NAT_MANIP_SRC,
> +	NF_NAT_MANIP_DST
> +};
> +
>   #define EAFNOSUPPORT 97
>   #define EPROTO 71
>   #define ENONET 64
> --
> 2.31.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH bpf-next] selftests/bpf: Fix error undeclared identifier 'NF_NAT_MANIP_SRC'
  2022-11-11 17:25 ` sdf
@ 2022-11-11 17:54   ` Lorenzo Bianconi
  2022-11-11 18:08     ` Stanislav Fomichev
  0 siblings, 1 reply; 8+ messages in thread
From: Lorenzo Bianconi @ 2022-11-11 17:54 UTC (permalink / raw)
  To: sdf
  Cc: Rong Tao, ast, Rong Tao, kernel test robot, Daniel Borkmann,
	Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song,
	John Fastabend, KP Singh, Hao Luo, Jiri Olsa, Mykola Lysenko,
	Shuah Khan, Kumar Kartikeya Dwivedi, Daniel Xu,
	open list:BPF [GENERAL] (Safe Dynamic Programs and Tools),
	open list:KERNEL SELFTEST FRAMEWORK, open list

[-- Attachment #1: Type: text/plain, Size: 2284 bytes --]

> On 11/11, Rong Tao wrote:
> > From: Rong Tao <rongtao@cestc.cn>
> 
> > commit 472caa69183f("netfilter: nat: un-export nf_nat_used_tuple")
> > introduce NF_NAT_MANIP_SRC/DST enum in include/net/netfilter/nf_nat.h,
> > and commit b06b45e82b59("selftests/bpf: add tests for bpf_ct_set_nat_info
> > kfunc") use NF_NAT_MANIP_SRC/DST in test_bpf_nf.c. We copy enum
> > nf_nat_manip_type to test_bpf_nf.c fix this error.
> 
> > How to reproduce the error:
> 
> >      $ make -C tools/testing/selftests/bpf/
> >      ...
> >        CLNG-BPF [test_maps] test_bpf_nf.bpf.o
> >        error: use of undeclared identifier 'NF_NAT_MANIP_SRC'
> >              bpf_ct_set_nat_info(ct, &saddr, sport, NF_NAT_MANIP_SRC);
> >                                                             ^
> >        error: use of undeclared identifier 'NF_NAT_MANIP_DST'
> >              bpf_ct_set_nat_info(ct, &daddr, dport, NF_NAT_MANIP_DST);
> >                                                             ^
> >      2 errors generated.
> 
> $ grep NF_NAT_MANIP_SRC
> ./tools/testing/selftests/bpf/tools/include/vmlinux.h
>         NF_NAT_MANIP_SRC = 0,
> 
> Doesn't look like your kernel config compiles netfilter nat modules?

yes, in bpf kself-test config (tools/testing/selftests/bpf/config) nf_nat
is compiled as built-in. This issue occurs just if it is compiled as module.

Regards,
Lorenzo

> 
> > Link: https://lore.kernel.org/lkml/202210280447.STsT1gvq-lkp@intel.com/
> > Reported-by: kernel test robot <lkp@intel.com>
> > Signed-off-by: Rong Tao <rongtao@cestc.cn>
> > ---
> >   tools/testing/selftests/bpf/progs/test_bpf_nf.c | 5 +++++
> >   1 file changed, 5 insertions(+)
> 
> > diff --git a/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > b/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > index 227e85e85dda..307ca166ff34 100644
> > --- a/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > +++ b/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > @@ -3,6 +3,11 @@
> >   #include <bpf/bpf_helpers.h>
> >   #include <bpf/bpf_endian.h>
> 
> > +enum nf_nat_manip_type {
> > +	NF_NAT_MANIP_SRC,
> > +	NF_NAT_MANIP_DST
> > +};
> > +
> >   #define EAFNOSUPPORT 97
> >   #define EPROTO 71
> >   #define ENONET 64
> > --
> > 2.31.1
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH bpf-next] selftests/bpf: Fix error undeclared identifier 'NF_NAT_MANIP_SRC'
  2022-11-11 17:54   ` Lorenzo Bianconi
@ 2022-11-11 18:08     ` Stanislav Fomichev
  2022-11-11 18:12       ` Lorenzo Bianconi
  0 siblings, 1 reply; 8+ messages in thread
From: Stanislav Fomichev @ 2022-11-11 18:08 UTC (permalink / raw)
  To: Lorenzo Bianconi
  Cc: Rong Tao, ast, Rong Tao, kernel test robot, Daniel Borkmann,
	Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song,
	John Fastabend, KP Singh, Hao Luo, Jiri Olsa, Mykola Lysenko,
	Shuah Khan, Kumar Kartikeya Dwivedi, Daniel Xu,
	open list:BPF [GENERAL] (Safe Dynamic Programs and Tools),
	open list:KERNEL SELFTEST FRAMEWORK, open list

On Fri, Nov 11, 2022 at 9:54 AM Lorenzo Bianconi <lorenzo@kernel.org> wrote:
>
> > On 11/11, Rong Tao wrote:
> > > From: Rong Tao <rongtao@cestc.cn>
> >
> > > commit 472caa69183f("netfilter: nat: un-export nf_nat_used_tuple")
> > > introduce NF_NAT_MANIP_SRC/DST enum in include/net/netfilter/nf_nat.h,
> > > and commit b06b45e82b59("selftests/bpf: add tests for bpf_ct_set_nat_info
> > > kfunc") use NF_NAT_MANIP_SRC/DST in test_bpf_nf.c. We copy enum
> > > nf_nat_manip_type to test_bpf_nf.c fix this error.
> >
> > > How to reproduce the error:
> >
> > >      $ make -C tools/testing/selftests/bpf/
> > >      ...
> > >        CLNG-BPF [test_maps] test_bpf_nf.bpf.o
> > >        error: use of undeclared identifier 'NF_NAT_MANIP_SRC'
> > >              bpf_ct_set_nat_info(ct, &saddr, sport, NF_NAT_MANIP_SRC);
> > >                                                             ^
> > >        error: use of undeclared identifier 'NF_NAT_MANIP_DST'
> > >              bpf_ct_set_nat_info(ct, &daddr, dport, NF_NAT_MANIP_DST);
> > >                                                             ^
> > >      2 errors generated.
> >
> > $ grep NF_NAT_MANIP_SRC
> > ./tools/testing/selftests/bpf/tools/include/vmlinux.h
> >         NF_NAT_MANIP_SRC = 0,
> >
> > Doesn't look like your kernel config compiles netfilter nat modules?
>
> yes, in bpf kself-test config (tools/testing/selftests/bpf/config) nf_nat
> is compiled as built-in. This issue occurs just if it is compiled as module.

Right, but if we unconditionally define this enum, I think you'll
break the case where it's compiled as a built-in?
Since at least in my vmlinux.h I have all the defines and this test
includes vmlinux.h...

> Regards,
> Lorenzo
>
> >
> > > Link: https://lore.kernel.org/lkml/202210280447.STsT1gvq-lkp@intel.com/
> > > Reported-by: kernel test robot <lkp@intel.com>
> > > Signed-off-by: Rong Tao <rongtao@cestc.cn>
> > > ---
> > >   tools/testing/selftests/bpf/progs/test_bpf_nf.c | 5 +++++
> > >   1 file changed, 5 insertions(+)
> >
> > > diff --git a/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > b/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > index 227e85e85dda..307ca166ff34 100644
> > > --- a/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > +++ b/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > @@ -3,6 +3,11 @@
> > >   #include <bpf/bpf_helpers.h>
> > >   #include <bpf/bpf_endian.h>
> >
> > > +enum nf_nat_manip_type {
> > > +   NF_NAT_MANIP_SRC,
> > > +   NF_NAT_MANIP_DST
> > > +};
> > > +
> > >   #define EAFNOSUPPORT 97
> > >   #define EPROTO 71
> > >   #define ENONET 64
> > > --
> > > 2.31.1
> >

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH bpf-next] selftests/bpf: Fix error undeclared identifier 'NF_NAT_MANIP_SRC'
  2022-11-11 18:08     ` Stanislav Fomichev
@ 2022-11-11 18:12       ` Lorenzo Bianconi
  2022-11-11 18:55         ` Stanislav Fomichev
  0 siblings, 1 reply; 8+ messages in thread
From: Lorenzo Bianconi @ 2022-11-11 18:12 UTC (permalink / raw)
  To: Stanislav Fomichev
  Cc: Rong Tao, ast, Rong Tao, kernel test robot, Daniel Borkmann,
	Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song,
	John Fastabend, KP Singh, Hao Luo, Jiri Olsa, Mykola Lysenko,
	Shuah Khan, Kumar Kartikeya Dwivedi, Daniel Xu,
	open list:BPF [GENERAL] (Safe Dynamic Programs and Tools),
	open list:KERNEL SELFTEST FRAMEWORK, open list

[-- Attachment #1: Type: text/plain, Size: 2855 bytes --]

> On Fri, Nov 11, 2022 at 9:54 AM Lorenzo Bianconi <lorenzo@kernel.org> wrote:
> >
> > > On 11/11, Rong Tao wrote:
> > > > From: Rong Tao <rongtao@cestc.cn>
> > >
> > > > commit 472caa69183f("netfilter: nat: un-export nf_nat_used_tuple")
> > > > introduce NF_NAT_MANIP_SRC/DST enum in include/net/netfilter/nf_nat.h,
> > > > and commit b06b45e82b59("selftests/bpf: add tests for bpf_ct_set_nat_info
> > > > kfunc") use NF_NAT_MANIP_SRC/DST in test_bpf_nf.c. We copy enum
> > > > nf_nat_manip_type to test_bpf_nf.c fix this error.
> > >
> > > > How to reproduce the error:
> > >
> > > >      $ make -C tools/testing/selftests/bpf/
> > > >      ...
> > > >        CLNG-BPF [test_maps] test_bpf_nf.bpf.o
> > > >        error: use of undeclared identifier 'NF_NAT_MANIP_SRC'
> > > >              bpf_ct_set_nat_info(ct, &saddr, sport, NF_NAT_MANIP_SRC);
> > > >                                                             ^
> > > >        error: use of undeclared identifier 'NF_NAT_MANIP_DST'
> > > >              bpf_ct_set_nat_info(ct, &daddr, dport, NF_NAT_MANIP_DST);
> > > >                                                             ^
> > > >      2 errors generated.
> > >
> > > $ grep NF_NAT_MANIP_SRC
> > > ./tools/testing/selftests/bpf/tools/include/vmlinux.h
> > >         NF_NAT_MANIP_SRC = 0,
> > >
> > > Doesn't look like your kernel config compiles netfilter nat modules?
> >
> > yes, in bpf kself-test config (tools/testing/selftests/bpf/config) nf_nat
> > is compiled as built-in. This issue occurs just if it is compiled as module.
> 
> Right, but if we unconditionally define this enum, I think you'll
> break the case where it's compiled as a built-in?
> Since at least in my vmlinux.h I have all the defines and this test
> includes vmlinux.h...

yes, it is correct.

> 
> > Regards,
> > Lorenzo
> >
> > >
> > > > Link: https://lore.kernel.org/lkml/202210280447.STsT1gvq-lkp@intel.com/
> > > > Reported-by: kernel test robot <lkp@intel.com>
> > > > Signed-off-by: Rong Tao <rongtao@cestc.cn>
> > > > ---
> > > >   tools/testing/selftests/bpf/progs/test_bpf_nf.c | 5 +++++
> > > >   1 file changed, 5 insertions(+)
> > >
> > > > diff --git a/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > > b/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > > index 227e85e85dda..307ca166ff34 100644
> > > > --- a/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > > +++ b/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > > @@ -3,6 +3,11 @@
> > > >   #include <bpf/bpf_helpers.h>
> > > >   #include <bpf/bpf_endian.h>
> > >
> > > > +enum nf_nat_manip_type {
> > > > +   NF_NAT_MANIP_SRC,
> > > > +   NF_NAT_MANIP_DST
> > > > +};
> > > > +
> > > >   #define EAFNOSUPPORT 97
> > > >   #define EPROTO 71
> > > >   #define ENONET 64
> > > > --
> > > > 2.31.1
> > >

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH bpf-next] selftests/bpf: Fix error undeclared identifier 'NF_NAT_MANIP_SRC'
  2022-11-11 18:12       ` Lorenzo Bianconi
@ 2022-11-11 18:55         ` Stanislav Fomichev
  2022-11-11 20:44           ` Andrii Nakryiko
  0 siblings, 1 reply; 8+ messages in thread
From: Stanislav Fomichev @ 2022-11-11 18:55 UTC (permalink / raw)
  To: Lorenzo Bianconi
  Cc: Rong Tao, ast, Rong Tao, kernel test robot, Daniel Borkmann,
	Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song,
	John Fastabend, KP Singh, Hao Luo, Jiri Olsa, Mykola Lysenko,
	Shuah Khan, Kumar Kartikeya Dwivedi, Daniel Xu,
	open list:BPF [GENERAL] (Safe Dynamic Programs and Tools),
	open list:KERNEL SELFTEST FRAMEWORK, open list

On Fri, Nov 11, 2022 at 10:12 AM Lorenzo Bianconi <lorenzo@kernel.org> wrote:
>
> > On Fri, Nov 11, 2022 at 9:54 AM Lorenzo Bianconi <lorenzo@kernel.org> wrote:
> > >
> > > > On 11/11, Rong Tao wrote:
> > > > > From: Rong Tao <rongtao@cestc.cn>
> > > >
> > > > > commit 472caa69183f("netfilter: nat: un-export nf_nat_used_tuple")
> > > > > introduce NF_NAT_MANIP_SRC/DST enum in include/net/netfilter/nf_nat.h,
> > > > > and commit b06b45e82b59("selftests/bpf: add tests for bpf_ct_set_nat_info
> > > > > kfunc") use NF_NAT_MANIP_SRC/DST in test_bpf_nf.c. We copy enum
> > > > > nf_nat_manip_type to test_bpf_nf.c fix this error.
> > > >
> > > > > How to reproduce the error:
> > > >
> > > > >      $ make -C tools/testing/selftests/bpf/
> > > > >      ...
> > > > >        CLNG-BPF [test_maps] test_bpf_nf.bpf.o
> > > > >        error: use of undeclared identifier 'NF_NAT_MANIP_SRC'
> > > > >              bpf_ct_set_nat_info(ct, &saddr, sport, NF_NAT_MANIP_SRC);
> > > > >                                                             ^
> > > > >        error: use of undeclared identifier 'NF_NAT_MANIP_DST'
> > > > >              bpf_ct_set_nat_info(ct, &daddr, dport, NF_NAT_MANIP_DST);
> > > > >                                                             ^
> > > > >      2 errors generated.
> > > >
> > > > $ grep NF_NAT_MANIP_SRC
> > > > ./tools/testing/selftests/bpf/tools/include/vmlinux.h
> > > >         NF_NAT_MANIP_SRC = 0,
> > > >
> > > > Doesn't look like your kernel config compiles netfilter nat modules?
> > >
> > > yes, in bpf kself-test config (tools/testing/selftests/bpf/config) nf_nat
> > > is compiled as built-in. This issue occurs just if it is compiled as module.
> >
> > Right, but if we unconditionally define this enum, I think you'll
> > break the case where it's compiled as a built-in?
> > Since at least in my vmlinux.h I have all the defines and this test
> > includes vmlinux.h...
>
> yes, it is correct.

And it will break the CI:

$ grep NETFILTER tools/testing/selftests/bpf/config
CONFIG_NETFILTER=y

So yeah, not sure what to do here. The selftests expect "sane" configs
(see that bpf/config above) which is not what the bot seems to be
doing...

> > > Regards,
> > > Lorenzo
> > >
> > > >
> > > > > Link: https://lore.kernel.org/lkml/202210280447.STsT1gvq-lkp@intel.com/
> > > > > Reported-by: kernel test robot <lkp@intel.com>
> > > > > Signed-off-by: Rong Tao <rongtao@cestc.cn>
> > > > > ---
> > > > >   tools/testing/selftests/bpf/progs/test_bpf_nf.c | 5 +++++
> > > > >   1 file changed, 5 insertions(+)
> > > >
> > > > > diff --git a/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > > > b/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > > > index 227e85e85dda..307ca166ff34 100644
> > > > > --- a/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > > > +++ b/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > > > @@ -3,6 +3,11 @@
> > > > >   #include <bpf/bpf_helpers.h>
> > > > >   #include <bpf/bpf_endian.h>
> > > >
> > > > > +enum nf_nat_manip_type {
> > > > > +   NF_NAT_MANIP_SRC,
> > > > > +   NF_NAT_MANIP_DST
> > > > > +};
> > > > > +
> > > > >   #define EAFNOSUPPORT 97
> > > > >   #define EPROTO 71
> > > > >   #define ENONET 64
> > > > > --
> > > > > 2.31.1
> > > >

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH bpf-next] selftests/bpf: Fix error undeclared identifier 'NF_NAT_MANIP_SRC'
  2022-11-11 18:55         ` Stanislav Fomichev
@ 2022-11-11 20:44           ` Andrii Nakryiko
  2022-11-17 14:15             ` Rong Tao
  0 siblings, 1 reply; 8+ messages in thread
From: Andrii Nakryiko @ 2022-11-11 20:44 UTC (permalink / raw)
  To: Stanislav Fomichev
  Cc: Lorenzo Bianconi, Rong Tao, ast, Rong Tao, kernel test robot,
	Daniel Borkmann, Andrii Nakryiko, Martin KaFai Lau, Song Liu,
	Yonghong Song, John Fastabend, KP Singh, Hao Luo, Jiri Olsa,
	Mykola Lysenko, Shuah Khan, Kumar Kartikeya Dwivedi, Daniel Xu,
	open list:BPF [GENERAL] (Safe Dynamic Programs and Tools),
	open list:KERNEL SELFTEST FRAMEWORK, open list

On Fri, Nov 11, 2022 at 10:55 AM Stanislav Fomichev <sdf@google.com> wrote:
>
> On Fri, Nov 11, 2022 at 10:12 AM Lorenzo Bianconi <lorenzo@kernel.org> wrote:
> >
> > > On Fri, Nov 11, 2022 at 9:54 AM Lorenzo Bianconi <lorenzo@kernel.org> wrote:
> > > >
> > > > > On 11/11, Rong Tao wrote:
> > > > > > From: Rong Tao <rongtao@cestc.cn>
> > > > >
> > > > > > commit 472caa69183f("netfilter: nat: un-export nf_nat_used_tuple")
> > > > > > introduce NF_NAT_MANIP_SRC/DST enum in include/net/netfilter/nf_nat.h,
> > > > > > and commit b06b45e82b59("selftests/bpf: add tests for bpf_ct_set_nat_info
> > > > > > kfunc") use NF_NAT_MANIP_SRC/DST in test_bpf_nf.c. We copy enum
> > > > > > nf_nat_manip_type to test_bpf_nf.c fix this error.
> > > > >
> > > > > > How to reproduce the error:
> > > > >
> > > > > >      $ make -C tools/testing/selftests/bpf/
> > > > > >      ...
> > > > > >        CLNG-BPF [test_maps] test_bpf_nf.bpf.o
> > > > > >        error: use of undeclared identifier 'NF_NAT_MANIP_SRC'
> > > > > >              bpf_ct_set_nat_info(ct, &saddr, sport, NF_NAT_MANIP_SRC);
> > > > > >                                                             ^
> > > > > >        error: use of undeclared identifier 'NF_NAT_MANIP_DST'
> > > > > >              bpf_ct_set_nat_info(ct, &daddr, dport, NF_NAT_MANIP_DST);
> > > > > >                                                             ^
> > > > > >      2 errors generated.
> > > > >
> > > > > $ grep NF_NAT_MANIP_SRC
> > > > > ./tools/testing/selftests/bpf/tools/include/vmlinux.h
> > > > >         NF_NAT_MANIP_SRC = 0,
> > > > >
> > > > > Doesn't look like your kernel config compiles netfilter nat modules?
> > > >
> > > > yes, in bpf kself-test config (tools/testing/selftests/bpf/config) nf_nat
> > > > is compiled as built-in. This issue occurs just if it is compiled as module.
> > >
> > > Right, but if we unconditionally define this enum, I think you'll
> > > break the case where it's compiled as a built-in?
> > > Since at least in my vmlinux.h I have all the defines and this test
> > > includes vmlinux.h...
> >
> > yes, it is correct.
>
> And it will break the CI:
>

It does break CI ([0]). We could use BPF CO-RE and ___suffix rule to
avoid this. But we can also say that selftests/bpf/config{,<arch>} has
to be used by bots that want to build BPF selftests.

  [0] https://github.com/kernel-patches/bpf/actions/runs/3446651033/jobs/5752592868

> $ grep NETFILTER tools/testing/selftests/bpf/config
> CONFIG_NETFILTER=y
>
> So yeah, not sure what to do here. The selftests expect "sane" configs
> (see that bpf/config above) which is not what the bot seems to be
> doing...
>
> > > > Regards,
> > > > Lorenzo
> > > >
> > > > >
> > > > > > Link: https://lore.kernel.org/lkml/202210280447.STsT1gvq-lkp@intel.com/
> > > > > > Reported-by: kernel test robot <lkp@intel.com>
> > > > > > Signed-off-by: Rong Tao <rongtao@cestc.cn>
> > > > > > ---
> > > > > >   tools/testing/selftests/bpf/progs/test_bpf_nf.c | 5 +++++
> > > > > >   1 file changed, 5 insertions(+)
> > > > >
> > > > > > diff --git a/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > > > > b/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > > > > index 227e85e85dda..307ca166ff34 100644
> > > > > > --- a/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > > > > +++ b/tools/testing/selftests/bpf/progs/test_bpf_nf.c
> > > > > > @@ -3,6 +3,11 @@
> > > > > >   #include <bpf/bpf_helpers.h>
> > > > > >   #include <bpf/bpf_endian.h>
> > > > >
> > > > > > +enum nf_nat_manip_type {
> > > > > > +   NF_NAT_MANIP_SRC,
> > > > > > +   NF_NAT_MANIP_DST
> > > > > > +};
> > > > > > +
> > > > > >   #define EAFNOSUPPORT 97
> > > > > >   #define EPROTO 71
> > > > > >   #define ENONET 64
> > > > > > --
> > > > > > 2.31.1
> > > > >

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Re: [PATCH bpf-next] selftests/bpf: Fix error undeclared identifier 'NF_NAT_MANIP_SRC'
  2022-11-11 20:44           ` Andrii Nakryiko
@ 2022-11-17 14:15             ` Rong Tao
  0 siblings, 0 replies; 8+ messages in thread
From: Rong Tao @ 2022-11-17 14:15 UTC (permalink / raw)
  To: andrii.nakryiko
  Cc: andrii, ast, bpf, daniel, dxu, haoluo, john.fastabend, jolsa,
	kpsingh, linux-kernel, linux-kselftest, lkp, lorenzo, martin.lau,
	memxor, mykolal, rongtao, rtoax, sdf, shuah, song, yhs

First of all, thank you all for your suggestions on this compilation
issue.

> It does break CI ([0]). We could use BPF CO-RE and ___suffix rule to
> avoid this. But we can also say that selftests/bpf/config{,<arch>} has
> to be used by bots that want to build BPF selftests.
>
>  [0] https://github.com/kernel-patches/bpf/actions/runs/3446651033/jobs/5752592868

I try to use bpf_core_enum_value_exists() and bpf_core_enum_value(), However, 
as far as my knowledge is concerned, I have to redefine a NF_NAT_MANIP_SRC 
enumeration, but this would conflict with the situation where there is no 
secondary compilation problem. How do I fix this with CO-RE, it seems that 
there is no similar CO-RE+ __suffix solution for enumerations in selftests. 
Can you give me some tips or help me?




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-11-17 14:16 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-11  3:26 [PATCH bpf-next] selftests/bpf: Fix error undeclared identifier 'NF_NAT_MANIP_SRC' Rong Tao
2022-11-11 17:25 ` sdf
2022-11-11 17:54   ` Lorenzo Bianconi
2022-11-11 18:08     ` Stanislav Fomichev
2022-11-11 18:12       ` Lorenzo Bianconi
2022-11-11 18:55         ` Stanislav Fomichev
2022-11-11 20:44           ` Andrii Nakryiko
2022-11-17 14:15             ` Rong Tao

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.