* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).