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/575259286...
$ 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