xdp-project / xdp-tools

Utilities and example programs for use with XDP
Other
661 stars 146 forks source link

OpenWrt Support #74

Open PolynomialDivision opened 4 years ago

PolynomialDivision commented 4 years ago

I try to cross-compile your tool for OpenWrt. Since u use reallocarray and similar functions you enable #define _GNU_SOURCE. I would assume that everyhing is correct, but it still fails to compile.

params.c: In function 'handle_multistring':
params.c:58:8: error: implicit declaration of function 'reallocarray'; did you mean 'realloc'? [-Werror=implicit-function-declaration]
  ptr = reallocarray(opt_set->strings, sizeof(*opt_set->strings),
        ^~~~~~~~~~~~
        realloc
params.c:58:6: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
  ptr = reallocarray(opt_set->strings, sizeof(*opt_set->strings),
PolynomialDivision commented 4 years ago

Maybe I know why this happens, OpenWrt uses another stripped libc.

tohojo commented 4 years ago

Hmm, openwrt uses musl by default, so presumably that's why? No great objection to replacing reallocarray with something else, so feel free to fix that and open a PR :)

PolynomialDivision commented 4 years ago

I first try to compile it with glibc. ;)

PolynomialDivision commented 4 years ago

https://github.com/xdp-project/xdp-tools/pull/75

PolynomialDivision commented 4 years ago

Now I have the same issues in libbpf... ^^

/home/nick/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/lib/gcc/arm-openwrt-linux-muslgnueabi/8.4.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: ../lib/libbpf/src/libbpf.a(libbpf.o): in function `bpf_program__relocate':
libbpf.c:(.text+0x2110): undefined reference to `reallocarray'
/home/nick/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/lib/gcc/arm-openwrt-linux-muslgnueabi/8.4.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: ../lib/libbpf/src/libbpf.a(libbpf.o): in function `bpf_core_reloc_field':
libbpf.c:(.text+0x4964): undefined reference to `reallocarray'
/home/nick/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/lib/gcc/arm-openwrt-linux-muslgnueabi/8.4.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: ../lib/libbpf/src/libbpf.a(libbpf.o): in function `__bpf_object__open':
libbpf.c:(.text+0x7084): undefined reference to `reallocarray'
/home/nick/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/lib/gcc/arm-openwrt-linux-muslgnueabi/8.4.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: libbpf.c:(.text+0x7200): undefined reference to `reallocarray'
/home/nick/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/lib/gcc/arm-openwrt-linux-muslgnueabi/8.4.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: libbpf.c:(.text+0x73f8): undefined reference to `reallocarray'
tohojo commented 4 years ago

Now I have the same issues in libbpf... ^^

/home/nick/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/lib/gcc/arm-openwrt-linux-muslgnueabi/8.4.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: ../lib/libbpf/src/libbpf.a(libbpf.o): in function `bpf_program__relocate':
libbpf.c:(.text+0x2110): undefined reference to `reallocarray'
/home/nick/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/lib/gcc/arm-openwrt-linux-muslgnueabi/8.4.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: ../lib/libbpf/src/libbpf.a(libbpf.o): in function `bpf_core_reloc_field':
libbpf.c:(.text+0x4964): undefined reference to `reallocarray'
/home/nick/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/lib/gcc/arm-openwrt-linux-muslgnueabi/8.4.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: ../lib/libbpf/src/libbpf.a(libbpf.o): in function `__bpf_object__open':
libbpf.c:(.text+0x7084): undefined reference to `reallocarray'
/home/nick/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/lib/gcc/arm-openwrt-linux-muslgnueabi/8.4.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: libbpf.c:(.text+0x7200): undefined reference to `reallocarray'
/home/nick/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/lib/gcc/arm-openwrt-linux-muslgnueabi/8.4.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: libbpf.c:(.text+0x73f8): undefined reference to `reallocarray'

Well you could create a separate package for libbpf and add a patch there? We probably want to package libbpf separately for openwrt anyway so we can use it for, say, iproute2, so this could be a start for that?

PolynomialDivision commented 4 years ago

There is already a libbpf package.

libbpf support: system v0.0.9

But if I want to use it, I get the following error. :/

touch /home/nick/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/xdp-tools-2020.11.24/.configured_68b329da9893e34099c7d8ad5cb9c940
xdp-dispatcher.c:5:10: fatal error: 'bpf/bpf_helpers.h' file not found
#include <bpf/bpf_helpers.h>
         ^~~~~~~~~~~~~~~~~~~
1 error generated.
tohojo commented 4 years ago

Hmm, maybe something is wrong with that package? Does the libbpf package install bpf_helpers.h ?

tohojo commented 4 years ago

Ah, wait, or maybe you just need to set BPF_CFLAGS properly for cross-compilation?

PolynomialDivision commented 4 years ago

Yes it installs it under: /home/nick/openwrt/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/usr/include/bpf

PolynomialDivision commented 4 years ago

Just adding echo "CFLAGS += -I/home/nick/openwrt/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/usr/include" >$CONFIG is fixing for now... But now I have other issues.

PolynomialDivision commented 4 years ago

Now I'm stucked with a linker issues:

/home/nick/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/lib/gcc/arm-openwrt-linux-muslgnueabi/8.4.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: libxdp.c:(.text+0x2594): undefined reference to `bpf_map_lookup_elem'

echo "LDFLAGS += -L/home/nick/openwrt/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/usr/lib" >$CONFIG does not help.

PolynomialDivision commented 4 years ago

The lib contains the needed symbols.

strings libbpf.a  | grep bpf_map_lookup_elem
bpf_map_lookup_elem_flags
bpf_map_lookup_elem
bpf_map_lookup_elem_flags
bpf_map_lookup_elem
tohojo commented 4 years ago

Polynomdivision notifications@github.com writes:

Now I'm stucked with a linker issues:

/home/nick/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/lib/gcc/arm-openwrt-linux-muslgnueabi/8.4.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ld: libxdp.c:(.text+0x2594): undefined reference to `bpf_map_lookup_elem'

`echo "LDFLAGS += -L/home/nick/openwrt/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/usr/lib"

$CONFIG`

Have a look at how we set all the variables (before configure) in the RPM .spec file:

https://github.com/xdp-project/xdp-tools/blob/master/packaging/rpm/xdp-tools.spec

Make sure you do all of that; does OpenWrt have LLVM as part of the environment?

PolynomialDivision commented 4 years ago

Make sure you do all of that;

Okay, I will try.

OpenWrt have LLVM as part of the environment?

I don't think so. I aways cross-compiled bpf things with clang.

Thanks again for all your help! :)

PolynomialDivision commented 4 years ago

Just for clarification. Actually, I think I only the the xdp-loader to work. I already cross-compiled the tutorial xdp-loader somehow but using it resulted in failures. Then I can go for the other bpf-stuff. ;)

tohojo commented 4 years ago

Polynomdivision notifications@github.com writes:

Just for clarification. Actually, I think I only the the xdp-loader to work. I already cross-compiled the tutorial xdp-loader somehow but using it resulted in failures.

Then I can go for the other bpf-stuff. ;)

Sure, but you still need a working libbpf for that...

PolynomialDivision commented 3 years ago

Finally, I have the time to go further. Now it compiles until:

xdp-dump
    CC       xdpdump
In file included from xdpdump.c:35:
/home/nick/openwrt/staging_dir/toolchain-mips_24kc_gcc-8.4.0_musl/include/sys/sysinfo.h:10:8: error: redefinition of 'struct sysinfo'
 struct sysinfo {
        ^~~~~~~
In file included from /home/nick/openwrt/staging_dir/toolchain-mips_24kc_gcc-8.4.0_musl/include/linux/kernel.h:5,
                 from /home/nick/openwrt/staging_dir/toolchain-mips_24kc_gcc-8.4.0_musl/include/linux/ethtool.h:17,
                 from xdpdump.c:23:
/home/nick/openwrt/staging_dir/toolchain-mips_24kc_gcc-8.4.0_musl/include/linux/sysinfo.h:8:8: note: originally defined here
 struct sysinfo {
        ^~~~~~~
make[4]: *** [../lib/common.mk:104: xdpdump] Error 1
make[3]: *** [Makefile:28: xdp-dump] Error 2
make[3]: Leaving directory '/home/nick/openwrt/build_dir/target-mips_24kc_musl/xdp-tools-2020-12-07-83ab8aa1'
make[2]: *** [Makefile:44: /home/nick/openwrt/build_dir/target-mips_24kc_musl/xdp-tools-2020-12-07-83ab8aa1/.built] Error 2
make[2]: Leaving directory '/home/nick/openwrt/feeds/packages/net/xdp-tools'
time: package/feeds/packages/xdp-tools/compile#3.06#0.61#3.53
    ERROR: package/feeds/packages/xdp-tools failed to build.
make[1]: *** [package/Makefile:114: package/feeds/packages/xdp-tools/compile] Error 1
make[1]: Leaving directory '/home/nick/openwrt'
make: *** [/home/nick/openwrt/include/toplevel.mk:242: package/xdp-tools/compile] Error 2
PolynomialDivision commented 3 years ago

BTW: You always can see the current status here: https://github.com/PolynomialDivision/packages/tree/add-xdp-tools/net/xdp-tools

PolynomialDivision commented 3 years ago

Finally, I have the time to go further. Now it compiles until:

xdp-dump
    CC       xdpdump
In file included from xdpdump.c:35:
/home/nick/openwrt/staging_dir/toolchain-mips_24kc_gcc-8.4.0_musl/include/sys/sysinfo.h:10:8: error: redefinition of 'struct sysinfo'
 struct sysinfo {
        ^~~~~~~
In file included from /home/nick/openwrt/staging_dir/toolchain-mips_24kc_gcc-8.4.0_musl/include/linux/kernel.h:5,
                 from /home/nick/openwrt/staging_dir/toolchain-mips_24kc_gcc-8.4.0_musl/include/linux/ethtool.h:17,
                 from xdpdump.c:23:
/home/nick/openwrt/staging_dir/toolchain-mips_24kc_gcc-8.4.0_musl/include/linux/sysinfo.h:8:8: note: originally defined here
 struct sysinfo {
        ^~~~~~~
make[4]: *** [../lib/common.mk:104: xdpdump] Error 1
make[3]: *** [Makefile:28: xdp-dump] Error 2
make[3]: Leaving directory '/home/nick/openwrt/build_dir/target-mips_24kc_musl/xdp-tools-2020-12-07-83ab8aa1'
make[2]: *** [Makefile:44: /home/nick/openwrt/build_dir/target-mips_24kc_musl/xdp-tools-2020-12-07-83ab8aa1/.built] Error 2
make[2]: Leaving directory '/home/nick/openwrt/feeds/packages/net/xdp-tools'
time: package/feeds/packages/xdp-tools/compile#3.06#0.61#3.53
    ERROR: package/feeds/packages/xdp-tools failed to build.
make[1]: *** [package/Makefile:114: package/feeds/packages/xdp-tools/compile] Error 1
make[1]: Leaving directory '/home/nick/openwrt'
make: *** [/home/nick/openwrt/include/toplevel.mk:242: package/xdp-tools/compile] Error 2

Fixed by: https://github.com/PolynomialDivision/packages/blob/add-xdp-tools/net/xdp-tools/patches/0002-fix-xdpdump-redefinition.patch

PolynomialDivision commented 3 years ago

Seems to compile now. :) But still some weird error

/home/nick/openwrt/staging_dir/toolchain-mips_24kc_gcc-8.4.0_musl/lib/gcc/mips-openwrt-linux-musl/8.4.0/../../../../mips-openwrt-linux-musl/bin/ld: skipping incompatible /usr/lib/libpcap.so when searching for -lpcap
PolynomialDivision commented 3 years ago

It installs. :)

But not sure how to use the loader?

root@OpenWrt:/tmp# xdp-loader load wlan0 remover.o

Usage: xdp-loader load [options] <ifname> <filenames>
Use --help (or -h) to see full option list.
PolynomialDivision commented 3 years ago

:/

root@OpenWrt:/tmp# xdp-loader status
Unable to get program lock: No such file or directory

Let see if I can fix that... ^^

PolynomialDivision commented 3 years ago

Fixed by https://github.com/PolynomialDivision/packages/blob/add-xdp-tools/net/xdp-tools/patches/0003-fix-pid.patch

PolynomialDivision commented 3 years ago

But still weird errors:

root@OpenWrt:/tmp# xdp-loader status
CURRENT XDP PROGRAM STATUS:

Interface        Prio  Program name     Mode     ID   Tag               Chain actions
-------------------------------------------------------------------------------------
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
lo               <no XDP program>
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
eth0             <no XDP program>
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
wlan1            <no XDP program>
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
wlan0            <no XDP program>
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
br-lan           <no XDP program>
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
eth0.1           <no XDP program>
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
eth0.2           <no XDP program>
PolynomialDivision commented 3 years ago

I can load a prog with iproute2:

root@OpenWrt:/tmp# ip link set dev wlan0 xdp obj srv6_remover.o sec srv6-remover

BTF debug data section '.BTF' rejected: Invalid argument (22)!
 - Length:       1599
Verifier analysis:
...

It recoginzes a bpf prog. :)

libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
wlan0                                   skb      2    89d8f372df241862 
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.

But actually, I would like to load one. xD

tohojo commented 3 years ago

Polynomdivision notifications@github.com writes:

libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.

This sounds like libbpf is having trouble parsing netlink messages. Endianness issue perhaps?

PolynomialDivision commented 3 years ago

Endianness issue perhaps?

Hmmmm. I will have a look. But the libbpf library is not compiled from me, or? It is installed from the package sources of the opkg repro. So why should the endianess be a problem?

Any idea why I can not use the loader? Why I always get the helptext?

PolynomialDivision commented 3 years ago

This sounds like libbpf is having trouble parsing netlink messages.

Maybe it is build against the wrong libbpf version, since you checkout an own libbpf version in your makefiles?

I will have a look.

tohojo commented 3 years ago

Polynomdivision notifications@github.com writes:

Any idea why I can not use the loader? Why I always get the helptext?

My bet is on realloc() failing. I just pushed a commit that will print an error message when an option parsing fails, which should tell you what's up :)

tohojo commented 3 years ago

Polynomdivision notifications@github.com writes:

This sounds like libbpf is having trouble parsing netlink messages.

Maybe it is build against the wrong libbpf version, since you checkout an own libbpf version in your makefiles?

That should be obvious in the configure output (libbpf: system vs libbpf: submodule). It should work fine with the system (shipped) libbpf version, which it kinda does, except that libbpf itself is outputting those error messages...

PolynomialDivision commented 3 years ago

My bet is on realloc() failing. I just pushed a commit that will print an error message when an option parsing fails, which should tell you what's up :)

root@OpenWrt:/tmp# xdp-loader load wlan0 srv6_remover.o 
Couldn't parse option filenames: Out of memory.

Usage: xdp-loader load [options] <ifname> <filenames>
Use --help (or -h) to see full option list.
root@OpenWrt:/tmp# xdp-loader load wlan0 srv6_remover.o 
PolynomialDivision commented 3 years ago

I do not understand why I'm out of memory. o.O

PolynomialDivision commented 3 years ago
root@OpenWrt:/tmp# cat /proc/meminfo
MemTotal:         123384 kB
MemFree:           87368 kB
MemAvailable:      70240 kB
Buffers:            2592 kB
Cached:            11232 kB
SwapCached:            0 kB
Active:             9968 kB
Inactive:           5192 kB
Active(anon):       2320 kB
Inactive(anon):       20 kB
Active(file):       7648 kB
Inactive(file):     5172 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:          1344 kB
Mapped:             2916 kB
Shmem:              1004 kB
KReclaimable:       2072 kB
Slab:               8412 kB
SReclaimable:       2072 kB
SUnreclaim:         6340 kB
KernelStack:         336 kB
PageTables:          312 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:       61692 kB
Committed_AS:       6308 kB
VmallocTotal:    1048372 kB
VmallocUsed:        1256 kB
VmallocChunk:          0 kB
Percpu:               32 kB
tohojo commented 3 years ago

Polynomdivision notifications@github.com writes:

I do not understand why I'm out of memory. o.O

It does seem a bit odd. From the man page:

ERRORS calloc(), malloc(), realloc(), and reallocarray() can fail with the following error:

   ENOMEM Out of memory.  Possibly, the application hit the RLIMIT_AS or RLIMIT_DATA limit described in getrlimit(2).

Do you have a really small limit set? Try 'ulimit -a' and see if anything looks odd...

Another possibility is that realloc() is broken in musl or something...

PolynomialDivision commented 3 years ago
root@OpenWrt:/tmp# ulimit -a
core file size (blocks)         (-c) 0
data seg size (kb)              (-d) unlimited
scheduling priority             (-e) 0
file size (blocks)              (-f) unlimited
pending signals                 (-i) 954
max locked memory (kb)          (-l) 64
max memory size (kb)            (-m) unlimited
open files                      (-n) 1024
POSIX message queues (bytes)    (-q) 819200
real-time priority              (-r) 0
stack size (kb)                 (-s) 8192
cpu time (seconds)              (-t) unlimited
max user processes              (-u) 954
virtual memory (kb)             (-v) unlimited
file locks                      (-x) unlimited
PolynomialDivision commented 3 years ago

Another possibility is that realloc() is broken in musl or something...

Okay, I will try an own realloc impementation. ^^

PolynomialDivision commented 3 years ago

Maybe I did something wrong, but the opt_set->num_strings +1 has abitary huge values that are random, e.g. 2010776721 with a constant value of SIZE_MAX / sizeof(*opt_set->strings) 1073741823. At my local pc the num_strings + 1 is always 1, like I would expect.

PolynomialDivision commented 3 years ago

If I I init it with opt_set->num_strings with 0, I get to the following point

root@OpenWrt:/tmp# xdp-loader load wlan0 srv6_remover.o 
1, 1073741823
libxdp: Failed to load program xdp_router_func: Argument list too long
Couldn't attach XDP program on iface 'wlan0': Argument list too long(-7)
Segmentation fault
tohojo commented 3 years ago

Polynomdivision notifications@github.com writes:

Maybe I did something wrong, but the opt_set->num_strings +1 has abitary huge values that are random, e.g. 2010776721 with a constant value of SIZE_MAX / sizeof(*opt_set->strings) 1073741823. At my local pc the num_strings + 1 is always 1, like I would expect.

Hmm, I guess the struct initialisation is not properly zeroing the nested struct. Which version of GCC is your build system using?

tohojo commented 3 years ago

Polynomdivision notifications@github.com writes:

If I I init it with opt_set->num_strings with 0, I get to the following point


root@OpenWrt:/tmp# xdp-loader load wlan0 srv6_remover.o 
1, 1073741823
libxdp: Failed to load program xdp_router_func: Argument list too long
Couldn't attach XDP program on iface 'wlan0': Argument list too long(-7)
Segmentation fault

Could you try running with -vv and see if you get some more error output? I fear we may be in 'kernel too old' territory here, though; what kernel version are you running?

In any case it shouldn't segfault... If you can get a backtrace from gdb that would be awesome, otherwise I can try digging from the debug output...

PolynomialDivision commented 3 years ago

. Which version of GCC is your build system using?

gcc 8.4.0

I can try a newer version. ;)

PolynomialDivision commented 3 years ago

Could you try running with -vv and see if you get some more error output? I fear we may be in 'kernel too old' territory here, though; what kernel version are you running?

Linux 5.4.80

root@OpenWrt:/tmp# xdp-loader load -vv wlan0 srv6_remover.o
1, 1073741823
Setting rlimit to minimum 1048576
Loading 1 files on interface 'wlan0'.
libbpf: loading srv6_remover.o
libbpf: section(1) .strtab, size 210, link 0, flags 0, type=3
libbpf: skip section(1) .strtab
libbpf: section(2) .text, size 0, link 0, flags 6, type=1
libbpf: skip section(2) .text
libbpf: section(3) srv6-remover, size 1512, link 0, flags 6, type=1
libbpf: found program srv6-remover
libbpf: section(4) maps, size 20, link 0, flags 3, type=1
libbpf: section(5) license, size 4, link 0, flags 3, type=1
libbpf: license of srv6_remover.o is GPL
libbpf: section(6) .debug_loc, size 372, link 0, flags 0, type=1
libbpf: skip section(6) .debug_loc
libbpf: section(7) .debug_abbrev, size 332, link 0, flags 0, type=1
libbpf: skip section(7) .debug_abbrev
libbpf: section(8) .debug_info, size 1007, link 0, flags 0, type=1
libbpf: skip section(8) .debug_info
libbpf: section(9) .rel.debug_info, size 1424, link 19, flags 0, type=9
libbpf: skip relo .rel.debug_info(9) for section(8)
libbpf: section(10) .debug_str, size 722, link 0, flags 30, type=1
libbpf: skip section(10) .debug_str
libbpf: section(11) .BTF, size 1599, link 0, flags 0, type=1
libbpf: section(12) .rel.BTF, size 32, link 19, flags 0, type=9
libbpf: skip relo .rel.BTF(12) for section(11)
libbpf: section(13) .BTF.ext, size 608, link 0, flags 0, type=1
libbpf: section(14) .rel.BTF.ext, size 560, link 19, flags 0, type=9
libbpf: skip relo .rel.BTF.ext(14) for section(13)
libbpf: section(15) .debug_frame, size 40, link 0, flags 0, type=1
libbpf: skip section(15) .debug_frame
libbpf: section(16) .rel.debug_frame, size 32, link 19, flags 0, type=9
libbpf: skip relo .rel.debug_frame(16) for section(15)
libbpf: section(17) .debug_line, size 431, link 0, flags 0, type=1
libbpf: skip section(17) .debug_line
libbpf: section(18) .rel.debug_line, size 16, link 19, flags 0, type=9
libbpf: skip relo .rel.debug_line(18) for section(17)
libbpf: section(19) .symtab, size 1920, link 1, flags 0, type=2
libbpf: looking for externs among 80 symbols...
libbpf: collected 0 externs total
libbpf: maps in srv6_remover.o: 1 maps in 20 bytes
libbpf: map 'xdp_stats_map' (legacy): at sec_idx 4, offset 0.
libbpf: map 79 is "xdp_stats_map"
libbpf: loading srv6_remover.o
libbpf: section(1) .strtab, size 210, link 0, flags 0, type=3
libbpf: skip section(1) .strtab
libbpf: section(2) .text, size 0, link 0, flags 6, type=1
libbpf: skip section(2) .text
libbpf: section(3) srv6-remover, size 1512, link 0, flags 6, type=1
libbpf: found program srv6-remover
libbpf: section(4) maps, size 20, link 0, flags 3, type=1
libbpf: section(5) license, size 4, link 0, flags 3, type=1
libbpf: license of srv6_remover.o is GPL
libbpf: section(6) .debug_loc, size 372, link 0, flags 0, type=1
libbpf: skip section(6) .debug_loc
libbpf: section(7) .debug_abbrev, size 332, link 0, flags 0, type=1
libbpf: skip section(7) .debug_abbrev
libbpf: section(8) .debug_info, size 1007, link 0, flags 0, type=1
libbpf: skip section(8) .debug_info
libbpf: section(9) .rel.debug_info, size 1424, link 19, flags 0, type=9
libbpf: skip relo .rel.debug_info(9) for section(8)
libbpf: section(10) .debug_str, size 722, link 0, flags 30, type=1
libbpf: skip section(10) .debug_str
libbpf: section(11) .BTF, size 1599, link 0, flags 0, type=1
libbpf: section(12) .rel.BTF, size 32, link 19, flags 0, type=9
libbpf: skip relo .rel.BTF(12) for section(11)
libbpf: section(13) .BTF.ext, size 608, link 0, flags 0, type=1
libbpf: section(14) .rel.BTF.ext, size 560, link 19, flags 0, type=9
libbpf: skip relo .rel.BTF.ext(14) for section(13)
libbpf: section(15) .debug_frame, size 40, link 0, flags 0, type=1
libbpf: skip section(15) .debug_frame
libbpf: section(16) .rel.debug_frame, size 32, link 19, flags 0, type=9
libbpf: skip relo .rel.debug_frame(16) for section(15)
libbpf: section(17) .debug_line, size 431, link 0, flags 0, type=1
libbpf: skip section(17) .debug_line
libbpf: section(18) .rel.debug_line, size 16, link 19, flags 0, type=9
libbpf: skip relo .rel.debug_line(18) for section(17)
libbpf: section(19) .symtab, size 1920, link 1, flags 0, type=2
libbpf: looking for externs among 80 symbols...
libbpf: collected 0 externs total
libbpf: maps in srv6_remover.o: 1 maps in 20 bytes
libbpf: map 'xdp_stats_map' (legacy): at sec_idx 4, offset 0.
libbpf: map 79 is "xdp_stats_map"
libbpf: map:xdp_stats_map container_name:____btf_map_xdp_stats_map cannot be found in BTF. Missing BPF_ANNOTATE_KV_PAIR?
libbpf: map 'xdp_stats_map': created successfully, fd=5
libxdp: Found func xdp_router_func matching xdp_router_func
libxdp: DATASEC '.xdp_run_config' not found.
XDP program 0: Run prio: 50. Chain call actions: XDP_PASS
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libbpf: Attribute of type 0x2a found multiple times in message, previous attribute is being ignored.
libxdp: Generating multi-prog dispatcher for 1 programs
libxdp: Looking for './xdp-dispatcher.o'
libxdp: Loading XDP program from './xdp-dispatcher.o' section 'xdp/dispatcher'
libbpf: loading ./xdp-dispatcher.o
libbpf: section(1) .strtab, size 405, link 0, flags 0, type=3
libbpf: skip section(1) .strtab
libbpf: section(2) .text, size 480, link 0, flags 6, type=1
libbpf: found program .text
libbpf: section(3) xdp/dispatcher, size 1064, link 0, flags 6, type=1
libbpf: found program xdp/dispatcher
libbpf: section(4) .relxdp/dispatcher, size 320, link 24, flags 0, type=9
libbpf: section(5) .rodata, size 84, link 0, flags 2, type=1
libbpf: section(6) license, size 4, link 0, flags 3, type=1
libbpf: license of ./xdp-dispatcher.o is GPL
libbpf: section(7) xdp_metadata, size 8, link 0, flags 3, type=1
libbpf: skip section(7) xdp_metadata
libbpf: section(8) .debug_loc, size 343, link 0, flags 0, type=1
libbpf: skip section(8) .debug_loc
libbpf: section(9) .rel.debug_loc, size 48, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_loc(9) for section(8)
libbpf: section(10) .debug_abbrev, size 312, link 0, flags 0, type=1
libbpf: skip section(10) .debug_abbrev
libbpf: section(11) .debug_info, size 1139, link 0, flags 0, type=1
libbpf: skip section(11) .debug_info
libbpf: section(12) .rel.debug_info, size 1520, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_info(12) for section(11)
libbpf: section(13) .debug_ranges, size 48, link 0, flags 0, type=1
libbpf: skip section(13) .debug_ranges
libbpf: section(14) .rel.debug_ranges, size 64, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_ranges(14) for section(13)
libbpf: section(15) .debug_str, size 472, link 0, flags 30, type=1
libbpf: skip section(15) .debug_str
libbpf: section(16) .BTF, size 2972, link 0, flags 0, type=1
libbpf: section(17) .rel.BTF, size 48, link 24, flags 0, type=9
libbpf: skip relo .rel.BTF(17) for section(16)
libbpf: section(18) .BTF.ext, size 1968, link 0, flags 0, type=1
libbpf: section(19) .rel.BTF.ext, size 1984, link 24, flags 0, type=9
libbpf: skip relo .rel.BTF.ext(19) for section(18)
libbpf: section(20) .debug_frame, size 280, link 0, flags 0, type=1
libbpf: skip section(20) .debug_frame
libbpf: section(21) .rel.debug_frame, size 352, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_frame(21) for section(20)
libbpf: section(22) .debug_line, size 612, link 0, flags 0, type=1
libbpf: skip section(22) .debug_line
libbpf: section(23) .rel.debug_line, size 32, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_line(23) for section(22)
libbpf: section(24) .symtab, size 1920, link 1, flags 0, type=2
libbpf: looking for externs among 80 symbols...
libbpf: collected 0 externs total
libbpf: map 'xdp_disp.rodata' (global data): at sec_idx 5, offset 0, flags 480.
libbpf: map 0 is "xdp_disp.rodata"
libbpf: collecting relocating info for: 'xdp/dispatcher'
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 1
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 1
libbpf: relo for shdr 2, symb 69, value 0, type 2, bind 1, name 390 ('prog0'), insn 6
libbpf: relo for shdr 2, symb 70, value 48, type 2, bind 1, name 375 ('prog1'), insn 17
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 18
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 18
libbpf: relo for shdr 2, symb 71, value 96, type 2, bind 1, name 299 ('prog2'), insn 30
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 31
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 31
libbpf: relo for shdr 2, symb 72, value 144, type 2, bind 1, name 293 ('prog3'), insn 43
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 44
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 44
libbpf: relo for shdr 2, symb 73, value 192, type 2, bind 1, name 287 ('prog4'), insn 56
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 57
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 57
libbpf: relo for shdr 2, symb 74, value 240, type 2, bind 1, name 281 ('prog5'), insn 69
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 70
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 70
libbpf: relo for shdr 2, symb 75, value 288, type 2, bind 1, name 275 ('prog6'), insn 82
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 83
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 83
libbpf: relo for shdr 2, symb 76, value 336, type 2, bind 1, name 269 ('prog7'), insn 95
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 96
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 96
libbpf: relo for shdr 2, symb 77, value 384, type 2, bind 1, name 263 ('prog8'), insn 108
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 109
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 109
libbpf: relo for shdr 2, symb 78, value 432, type 2, bind 1, name 257 ('prog9'), insn 121
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 122
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 122
libbpf: loading ./xdp-dispatcher.o
libbpf: section(1) .strtab, size 405, link 0, flags 0, type=3
libbpf: skip section(1) .strtab
libbpf: section(2) .text, size 480, link 0, flags 6, type=1
libbpf: found program .text
libbpf: section(3) xdp/dispatcher, size 1064, link 0, flags 6, type=1
libbpf: found program xdp/dispatcher
libbpf: section(4) .relxdp/dispatcher, size 320, link 24, flags 0, type=9
libbpf: section(5) .rodata, size 84, link 0, flags 2, type=1
libbpf: section(6) license, size 4, link 0, flags 3, type=1
libbpf: license of ./xdp-dispatcher.o is GPL
libbpf: section(7) xdp_metadata, size 8, link 0, flags 3, type=1
libbpf: skip section(7) xdp_metadata
libbpf: section(8) .debug_loc, size 343, link 0, flags 0, type=1
libbpf: skip section(8) .debug_loc
libbpf: section(9) .rel.debug_loc, size 48, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_loc(9) for section(8)
libbpf: section(10) .debug_abbrev, size 312, link 0, flags 0, type=1
libbpf: skip section(10) .debug_abbrev
libbpf: section(11) .debug_info, size 1139, link 0, flags 0, type=1
libbpf: skip section(11) .debug_info
libbpf: section(12) .rel.debug_info, size 1520, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_info(12) for section(11)
libbpf: section(13) .debug_ranges, size 48, link 0, flags 0, type=1
libbpf: skip section(13) .debug_ranges
libbpf: section(14) .rel.debug_ranges, size 64, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_ranges(14) for section(13)
libbpf: section(15) .debug_str, size 472, link 0, flags 30, type=1
libbpf: skip section(15) .debug_str
libbpf: section(16) .BTF, size 2972, link 0, flags 0, type=1
libbpf: section(17) .rel.BTF, size 48, link 24, flags 0, type=9
libbpf: skip relo .rel.BTF(17) for section(16)
libbpf: section(18) .BTF.ext, size 1968, link 0, flags 0, type=1
libbpf: section(19) .rel.BTF.ext, size 1984, link 24, flags 0, type=9
libbpf: skip relo .rel.BTF.ext(19) for section(18)
libbpf: section(20) .debug_frame, size 280, link 0, flags 0, type=1
libbpf: skip section(20) .debug_frame
libbpf: section(21) .rel.debug_frame, size 352, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_frame(21) for section(20)
libbpf: section(22) .debug_line, size 612, link 0, flags 0, type=1
libbpf: skip section(22) .debug_line
libbpf: section(23) .rel.debug_line, size 32, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_line(23) for section(22)
libbpf: section(24) .symtab, size 1920, link 1, flags 0, type=2
libbpf: looking for externs among 80 symbols...
libbpf: collected 0 externs total
libbpf: map 'xdp_disp.rodata' (global data): at sec_idx 5, offset 0, flags 480.
libbpf: map 0 is "xdp_disp.rodata"
libbpf: collecting relocating info for: 'xdp/dispatcher'
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 1
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 1
libbpf: relo for shdr 2, symb 69, value 0, type 2, bind 1, name 390 ('prog0'), insn 6
libbpf: relo for shdr 2, symb 70, value 48, type 2, bind 1, name 375 ('prog1'), insn 17
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 18
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 18
libbpf: relo for shdr 2, symb 71, value 96, type 2, bind 1, name 299 ('prog2'), insn 30
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 31
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 31
libbpf: relo for shdr 2, symb 72, value 144, type 2, bind 1, name 293 ('prog3'), insn 43
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 44
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 44
libbpf: relo for shdr 2, symb 73, value 192, type 2, bind 1, name 287 ('prog4'), insn 56
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 57
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 57
libbpf: relo for shdr 2, symb 74, value 240, type 2, bind 1, name 281 ('prog5'), insn 69
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 70
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 70
libbpf: relo for shdr 2, symb 75, value 288, type 2, bind 1, name 275 ('prog6'), insn 82
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 83
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 83
libbpf: relo for shdr 2, symb 76, value 336, type 2, bind 1, name 269 ('prog7'), insn 95
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 96
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 96
libbpf: relo for shdr 2, symb 77, value 384, type 2, bind 1, name 263 ('prog8'), insn 108
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 109
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 109
libbpf: relo for shdr 2, symb 78, value 432, type 2, bind 1, name 257 ('prog9'), insn 121
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 122
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 122
libbpf: map 'xdp_disp.rodata': created successfully, fd=5
libbpf: added 60 insn from .text to prog xdp/dispatcher
libxdp: DATASEC '.xdp_run_config' not found.
libxdp: Verified XDP dispatcher version 1 <= 1
libxdp: Loading multiprog dispatcher for 1 programs
libbpf: map 'xdp_disp.rodata': created successfully, fd=5
libbpf: added 60 insn from .text to prog xdp/dispatcher
libxdp: Loaded XDP program xdp_dispatcher, got fd 6
libxdp: Linking prog xdp_router_func as multiprog entry 0
libbpf: map 'xdp_stats_map': skipping creation (preset fd=7)
libbpf: load bpf program failed: Argument list too long
libbpf: failed to load program 'srv6-remover'
libbpf: failed to load object 'srv6_remover.o'
libxdp: Failed to load program xdp_router_func: Argument list too long
Couldn't attach XDP program on iface 'wlan0': Argument list too long(-7)
Segmentation fault
PolynomialDivision commented 3 years ago

I will try to compile with gcc 10. But this always takes some time. ;)

tohojo commented 3 years ago

Polynomdivision notifications@github.com writes:

I will try to compile with gcc 10. But this always takes some time. ;)

Well, we need to fix this for old GCC anyway, I'll try to reproduce...

PolynomialDivision commented 3 years ago

Well, we need to fix this for old GCC anyway, I'll try to reproduce...

Did not change anything (so tried with gcc 10 now).

PolynomialDivision commented 3 years ago

I hope the 5.10 kernel will be soon available for OpenWrt. ;)

I will try compiling for x86 architecture OpenWrt. Let's see if this will help.

PolynomialDivision commented 3 years ago
root@OpenWrt:~# ./xdp-loader load eth0 srv6_remover.o  
Couldn't open file 'ELF': No such file or directory
Segmentation fault
root@OpenWrt:~# ./xdp-loader status
CURRENT XDP PROGRAM STATUS:

Interface        Prio  Program name     Mode     ID   Tag               Chain actions
-------------------------------------------------------------------------------------
lo               <no XDP program>
eth0             <no XDP program>
eth1             <no XDP program>
eth2             <no XDP program>
br-lan           <no XDP program>

On x86_64 it looks much better. ;) But somehow it uses my host libs. I have to check that again. ^^

PolynomialDivision commented 3 years ago
root@OpenWrt:~# ./xdp-loader load -vv eth0 srv6_remover.o 
Setting rlimit to minimum 1048576
Loading 4277729 files on interface 'eth0'.
libbpf: loading ELF
libbpf: failed to open ELF: No such file or directory
libxdp: Couldn't load the eBPF program (libbpf said 'no such file').
Maybe the program was compiled with a too old version of LLVM (need v9.0+)?
Couldn't open file 'ELF': No such file or directory
Segmentation fault
PolynomialDivision commented 3 years ago

I'm now maintaining here a package feed: https://github.com/PolynomialDivision/openwrt-xdp-tools Interesting is that

libbpf: Error in bpf_object__probe_loading():Operation not permitted(1). Couldn't load trivial BPF program. Make sure your kernel supports BPF (CONFIG_BPF_SYSCALL=y) and/or that RLIMIT_MEMLOCK is set to big enough value.

I will have a look again at my BPF kernel config...

root@OpenWrt:/tmp# xdp-filter load eth0 
libxdp: Failed to load program xdpfilt_alw_all: Argument list too long
Couldn't attach XDP program on iface 'eth0': Argument list too long(-7)
root@OpenWrt:/tmp# xdp-filter load -vv eth0 
Setting rlimit to minimum 1048576
Looking for eBPF program with features tcp,udp,ipv6,ipv4,ethernet,allow
Found prog 'xdpfilt_alw_all.o' matching feature set to be loaded on interface 'eth0'.
libxdp: Looking for './xdpfilt_alw_all.o'
libxdp: Loading XDP program from './xdpfilt_alw_all.o' section 'xdp_filter'
libbpf: loading ./xdpfilt_alw_all.o
libbpf: section(1) .strtab, size 663, link 0, flags 0, type=3
libbpf: skip section(1) .strtab
libbpf: section(2) .text, size 0, link 0, flags 6, type=1
libbpf: skip section(2) .text
libbpf: section(3) xdp_filter, size 3424, link 0, flags 6, type=1
libbpf: found program xdp_filter
libbpf: section(4) .relxdp_filter, size 176, link 23, flags 0, type=9
libbpf: section(5) license, size 4, link 0, flags 3, type=1
libbpf: license of ./xdpfilt_alw_all.o is GPL
libbpf: section(6) features, size 4, link 0, flags 3, type=1
libbpf: skip section(6) features
libbpf: section(7) .maps, size 200, link 0, flags 3, type=1
libbpf: section(8) .xdp_run_config, size 16, link 0, flags 3, type=1
libbpf: skip section(8) .xdp_run_config
libbpf: section(9) .debug_loc, size 3092, link 0, flags 0, type=1
libbpf: skip section(9) .debug_loc
libbpf: section(10) .debug_abbrev, size 537, link 0, flags 0, type=1
libbpf: skip section(10) .debug_abbrev
libbpf: section(11) .debug_info, size 3894, link 0, flags 0, type=1
libbpf: skip section(11) .debug_info
libbpf: section(12) .rel.debug_info, size 5280, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_info(12) for section(11)
libbpf: section(13) .debug_ranges, size 1408, link 0, flags 0, type=1
libbpf: skip section(13) .debug_ranges
libbpf: section(14) .debug_str, size 1669, link 0, flags 30, type=1
libbpf: skip section(14) .debug_str
libbpf: section(15) .BTF, size 4180, link 0, flags 0, type=1
libbpf: section(16) .rel.BTF, size 128, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF(16) for section(15)
libbpf: section(17) .BTF.ext, size 2976, link 0, flags 0, type=1
libbpf: section(18) .rel.BTF.ext, size 2928, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF.ext(18) for section(17)
libbpf: section(19) .debug_frame, size 40, link 0, flags 0, type=1
libbpf: skip section(19) .debug_frame
libbpf: section(20) .rel.debug_frame, size 32, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_frame(20) for section(19)
libbpf: section(21) .debug_line, size 1509, link 0, flags 0, type=1
libbpf: skip section(21) .debug_line
libbpf: section(22) .rel.debug_line, size 16, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_line(22) for section(21)
libbpf: section(23) .symtab, size 5352, link 1, flags 0, type=2
libbpf: looking for externs among 223 symbols...
libbpf: collected 0 externs total
libbpf: map 'xdp_stats_map': at sec_idx 7, offset 0.
libbpf: map 'xdp_stats_map': found type = 6.
libbpf: map 'xdp_stats_map': found max_entries = 5.
libbpf: map 'xdp_stats_map': found key [8], sz = 4.
libbpf: map 'xdp_stats_map': found value [11], sz = 16.
libbpf: map 'xdp_stats_map': found pinning = 1.
libbpf: map 'filter_ports': at sec_idx 7, offset 40.
libbpf: map 'filter_ports': found type = 6.
libbpf: map 'filter_ports': found max_entries = 65536.
libbpf: map 'filter_ports': found key [8], sz = 4.
libbpf: map 'filter_ports': found value [12], sz = 8.
libbpf: map 'filter_ports': found pinning = 1.
libbpf: map 'filter_ipv4': at sec_idx 7, offset 80.
libbpf: map 'filter_ipv4': found type = 5.
libbpf: map 'filter_ipv4': found max_entries = 10000.
libbpf: map 'filter_ipv4': found key [8], sz = 4.
libbpf: map 'filter_ipv4': found value [12], sz = 8.
libbpf: map 'filter_ipv4': found pinning = 1.
libbpf: map 'filter_ipv6': at sec_idx 7, offset 120.
libbpf: map 'filter_ipv6': found type = 5.
libbpf: map 'filter_ipv6': found max_entries = 10000.
libbpf: map 'filter_ipv6': found key [28], sz = 16.
libbpf: map 'filter_ipv6': found value [12], sz = 8.
libbpf: map 'filter_ipv6': found pinning = 1.
libbpf: map 'filter_ethernet': at sec_idx 7, offset 160.
libbpf: map 'filter_ethernet': found type = 5.
libbpf: map 'filter_ethernet': found max_entries = 10000.
libbpf: map 'filter_ethernet': found key [42], sz = 6.
libbpf: map 'filter_ethernet': found value [12], sz = 8.
libbpf: map 'filter_ethernet': found pinning = 1.
libbpf: collecting relocating info for: 'xdp_filter'
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 73
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 73
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 99
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 99
libbpf: relo for shdr 7, symb 221, value 0, type 1, bind 1, name 119 ('xdp_stats_map'), insn 113
libbpf: found map 0 (xdp_stats_map, sec 7, off 0) for insn 113
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 153
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 153
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 165
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 165
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 319
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 319
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 339
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 339
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 365
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 365
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 377
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 377
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 401
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 401
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 414
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 414
libbpf: loading ./xdpfilt_alw_all.o
libbpf: section(1) .strtab, size 663, link 0, flags 0, type=3
libbpf: skip section(1) .strtab
libbpf: section(2) .text, size 0, link 0, flags 6, type=1
libbpf: skip section(2) .text
libbpf: section(3) xdp_filter, size 3424, link 0, flags 6, type=1
libbpf: found program xdp_filter
libbpf: section(4) .relxdp_filter, size 176, link 23, flags 0, type=9
libbpf: section(5) license, size 4, link 0, flags 3, type=1
libbpf: license of ./xdpfilt_alw_all.o is GPL
libbpf: section(6) features, size 4, link 0, flags 3, type=1
libbpf: skip section(6) features
libbpf: section(7) .maps, size 200, link 0, flags 3, type=1
libbpf: section(8) .xdp_run_config, size 16, link 0, flags 3, type=1
libbpf: skip section(8) .xdp_run_config
libbpf: section(9) .debug_loc, size 3092, link 0, flags 0, type=1
libbpf: skip section(9) .debug_loc
libbpf: section(10) .debug_abbrev, size 537, link 0, flags 0, type=1
libbpf: skip section(10) .debug_abbrev
libbpf: section(11) .debug_info, size 3894, link 0, flags 0, type=1
libbpf: skip section(11) .debug_info
libbpf: section(12) .rel.debug_info, size 5280, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_info(12) for section(11)
libbpf: section(13) .debug_ranges, size 1408, link 0, flags 0, type=1
libbpf: skip section(13) .debug_ranges
libbpf: section(14) .debug_str, size 1669, link 0, flags 30, type=1
libbpf: skip section(14) .debug_str
libbpf: section(15) .BTF, size 4180, link 0, flags 0, type=1
libbpf: section(16) .rel.BTF, size 128, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF(16) for section(15)
libbpf: section(17) .BTF.ext, size 2976, link 0, flags 0, type=1
libbpf: section(18) .rel.BTF.ext, size 2928, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF.ext(18) for section(17)
libbpf: section(19) .debug_frame, size 40, link 0, flags 0, type=1
libbpf: skip section(19) .debug_frame
libbpf: section(20) .rel.debug_frame, size 32, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_frame(20) for section(19)
libbpf: section(21) .debug_line, size 1509, link 0, flags 0, type=1
libbpf: skip section(21) .debug_line
libbpf: section(22) .rel.debug_line, size 16, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_line(22) for section(21)
libbpf: section(23) .symtab, size 5352, link 1, flags 0, type=2
libbpf: looking for externs among 223 symbols...
libbpf: collected 0 externs total
libbpf: map 'xdp_stats_map': at sec_idx 7, offset 0.
libbpf: map 'xdp_stats_map': found type = 6.
libbpf: map 'xdp_stats_map': found max_entries = 5.
libbpf: map 'xdp_stats_map': found key [8], sz = 4.
libbpf: map 'xdp_stats_map': found value [11], sz = 16.
libbpf: map 'xdp_stats_map': found pinning = 1.
libbpf: map 'filter_ports': at sec_idx 7, offset 40.
libbpf: map 'filter_ports': found type = 6.
libbpf: map 'filter_ports': found max_entries = 65536.
libbpf: map 'filter_ports': found key [8], sz = 4.
libbpf: map 'filter_ports': found value [12], sz = 8.
libbpf: map 'filter_ports': found pinning = 1.
libbpf: map 'filter_ipv4': at sec_idx 7, offset 80.
libbpf: map 'filter_ipv4': found type = 5.
libbpf: map 'filter_ipv4': found max_entries = 10000.
libbpf: map 'filter_ipv4': found key [8], sz = 4.
libbpf: map 'filter_ipv4': found value [12], sz = 8.
libbpf: map 'filter_ipv4': found pinning = 1.
libbpf: map 'filter_ipv6': at sec_idx 7, offset 120.
libbpf: map 'filter_ipv6': found type = 5.
libbpf: map 'filter_ipv6': found max_entries = 10000.
libbpf: map 'filter_ipv6': found key [28], sz = 16.
libbpf: map 'filter_ipv6': found value [12], sz = 8.
libbpf: map 'filter_ipv6': found pinning = 1.
libbpf: map 'filter_ethernet': at sec_idx 7, offset 160.
libbpf: map 'filter_ethernet': found type = 5.
libbpf: map 'filter_ethernet': found max_entries = 10000.
libbpf: map 'filter_ethernet': found key [42], sz = 6.
libbpf: map 'filter_ethernet': found value [12], sz = 8.
libbpf: map 'filter_ethernet': found pinning = 1.
libbpf: collecting relocating info for: 'xdp_filter'
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 73
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 73
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 99
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 99
libbpf: relo for shdr 7, symb 221, value 0, type 1, bind 1, name 119 ('xdp_stats_map'), insn 113
libbpf: found map 0 (xdp_stats_map, sec 7, off 0) for insn 113
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 153
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 153
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 165
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 165
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 319
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 319
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 339
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 339
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 365
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 365
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 377
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 377
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 401
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 401
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 414
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 414
libbpf: Error in bpf_object__probe_loading():Operation not permitted(1). Couldn't load trivial BPF program. Make sure your kernel supports BPF (CONFIG_BPF_SYSCALL=y) and/or that RLIMIT_MEMLOCK is set to big enough value.
libbpf: failed to load object './xdpfilt_alw_all.o'
Permission denied when loading eBPF object; raising rlimit and retrying
Doubling current rlimit of 1048576
libxdp: Looking for './xdpfilt_alw_all.o'
libxdp: Loading XDP program from './xdpfilt_alw_all.o' section 'xdp_filter'
libbpf: loading ./xdpfilt_alw_all.o
libbpf: section(1) .strtab, size 663, link 0, flags 0, type=3
libbpf: skip section(1) .strtab
libbpf: section(2) .text, size 0, link 0, flags 6, type=1
libbpf: skip section(2) .text
libbpf: section(3) xdp_filter, size 3424, link 0, flags 6, type=1
libbpf: found program xdp_filter
libbpf: section(4) .relxdp_filter, size 176, link 23, flags 0, type=9
libbpf: section(5) license, size 4, link 0, flags 3, type=1
libbpf: license of ./xdpfilt_alw_all.o is GPL
libbpf: section(6) features, size 4, link 0, flags 3, type=1
libbpf: skip section(6) features
libbpf: section(7) .maps, size 200, link 0, flags 3, type=1
libbpf: section(8) .xdp_run_config, size 16, link 0, flags 3, type=1
libbpf: skip section(8) .xdp_run_config
libbpf: section(9) .debug_loc, size 3092, link 0, flags 0, type=1
libbpf: skip section(9) .debug_loc
libbpf: section(10) .debug_abbrev, size 537, link 0, flags 0, type=1
libbpf: skip section(10) .debug_abbrev
libbpf: section(11) .debug_info, size 3894, link 0, flags 0, type=1
libbpf: skip section(11) .debug_info
libbpf: section(12) .rel.debug_info, size 5280, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_info(12) for section(11)
libbpf: section(13) .debug_ranges, size 1408, link 0, flags 0, type=1
libbpf: skip section(13) .debug_ranges
libbpf: section(14) .debug_str, size 1669, link 0, flags 30, type=1
libbpf: skip section(14) .debug_str
libbpf: section(15) .BTF, size 4180, link 0, flags 0, type=1
libbpf: section(16) .rel.BTF, size 128, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF(16) for section(15)
libbpf: section(17) .BTF.ext, size 2976, link 0, flags 0, type=1
libbpf: section(18) .rel.BTF.ext, size 2928, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF.ext(18) for section(17)
libbpf: section(19) .debug_frame, size 40, link 0, flags 0, type=1
libbpf: skip section(19) .debug_frame
libbpf: section(20) .rel.debug_frame, size 32, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_frame(20) for section(19)
libbpf: section(21) .debug_line, size 1509, link 0, flags 0, type=1
libbpf: skip section(21) .debug_line
libbpf: section(22) .rel.debug_line, size 16, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_line(22) for section(21)
libbpf: section(23) .symtab, size 5352, link 1, flags 0, type=2
libbpf: looking for externs among 223 symbols...
libbpf: collected 0 externs total
libbpf: map 'xdp_stats_map': at sec_idx 7, offset 0.
libbpf: map 'xdp_stats_map': found type = 6.
libbpf: map 'xdp_stats_map': found max_entries = 5.
libbpf: map 'xdp_stats_map': found key [8], sz = 4.
libbpf: map 'xdp_stats_map': found value [11], sz = 16.
libbpf: map 'xdp_stats_map': found pinning = 1.
libbpf: map 'filter_ports': at sec_idx 7, offset 40.
libbpf: map 'filter_ports': found type = 6.
libbpf: map 'filter_ports': found max_entries = 65536.
libbpf: map 'filter_ports': found key [8], sz = 4.
libbpf: map 'filter_ports': found value [12], sz = 8.
libbpf: map 'filter_ports': found pinning = 1.
libbpf: map 'filter_ipv4': at sec_idx 7, offset 80.
libbpf: map 'filter_ipv4': found type = 5.
libbpf: map 'filter_ipv4': found max_entries = 10000.
libbpf: map 'filter_ipv4': found key [8], sz = 4.
libbpf: map 'filter_ipv4': found value [12], sz = 8.
libbpf: map 'filter_ipv4': found pinning = 1.
libbpf: map 'filter_ipv6': at sec_idx 7, offset 120.
libbpf: map 'filter_ipv6': found type = 5.
libbpf: map 'filter_ipv6': found max_entries = 10000.
libbpf: map 'filter_ipv6': found key [28], sz = 16.
libbpf: map 'filter_ipv6': found value [12], sz = 8.
libbpf: map 'filter_ipv6': found pinning = 1.
libbpf: map 'filter_ethernet': at sec_idx 7, offset 160.
libbpf: map 'filter_ethernet': found type = 5.
libbpf: map 'filter_ethernet': found max_entries = 10000.
libbpf: map 'filter_ethernet': found key [42], sz = 6.
libbpf: map 'filter_ethernet': found value [12], sz = 8.
libbpf: map 'filter_ethernet': found pinning = 1.
libbpf: collecting relocating info for: 'xdp_filter'
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 73
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 73
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 99
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 99
libbpf: relo for shdr 7, symb 221, value 0, type 1, bind 1, name 119 ('xdp_stats_map'), insn 113
libbpf: found map 0 (xdp_stats_map, sec 7, off 0) for insn 113
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 153
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 153
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 165
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 165
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 319
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 319
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 339
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 339
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 365
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 365
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 377
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 377
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 401
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 401
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 414
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 414
libbpf: loading ./xdpfilt_alw_all.o
libbpf: section(1) .strtab, size 663, link 0, flags 0, type=3
libbpf: skip section(1) .strtab
libbpf: section(2) .text, size 0, link 0, flags 6, type=1
libbpf: skip section(2) .text
libbpf: section(3) xdp_filter, size 3424, link 0, flags 6, type=1
libbpf: found program xdp_filter
libbpf: section(4) .relxdp_filter, size 176, link 23, flags 0, type=9
libbpf: section(5) license, size 4, link 0, flags 3, type=1
libbpf: license of ./xdpfilt_alw_all.o is GPL
libbpf: section(6) features, size 4, link 0, flags 3, type=1
libbpf: skip section(6) features
libbpf: section(7) .maps, size 200, link 0, flags 3, type=1
libbpf: section(8) .xdp_run_config, size 16, link 0, flags 3, type=1
libbpf: skip section(8) .xdp_run_config
libbpf: section(9) .debug_loc, size 3092, link 0, flags 0, type=1
libbpf: skip section(9) .debug_loc
libbpf: section(10) .debug_abbrev, size 537, link 0, flags 0, type=1
libbpf: skip section(10) .debug_abbrev
libbpf: section(11) .debug_info, size 3894, link 0, flags 0, type=1
libbpf: skip section(11) .debug_info
libbpf: section(12) .rel.debug_info, size 5280, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_info(12) for section(11)
libbpf: section(13) .debug_ranges, size 1408, link 0, flags 0, type=1
libbpf: skip section(13) .debug_ranges
libbpf: section(14) .debug_str, size 1669, link 0, flags 30, type=1
libbpf: skip section(14) .debug_str
libbpf: section(15) .BTF, size 4180, link 0, flags 0, type=1
libbpf: section(16) .rel.BTF, size 128, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF(16) for section(15)
libbpf: section(17) .BTF.ext, size 2976, link 0, flags 0, type=1
libbpf: section(18) .rel.BTF.ext, size 2928, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF.ext(18) for section(17)
libbpf: section(19) .debug_frame, size 40, link 0, flags 0, type=1
libbpf: skip section(19) .debug_frame
libbpf: section(20) .rel.debug_frame, size 32, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_frame(20) for section(19)
libbpf: section(21) .debug_line, size 1509, link 0, flags 0, type=1
libbpf: skip section(21) .debug_line
libbpf: section(22) .rel.debug_line, size 16, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_line(22) for section(21)
libbpf: section(23) .symtab, size 5352, link 1, flags 0, type=2
libbpf: looking for externs among 223 symbols...
libbpf: collected 0 externs total
libbpf: map 'xdp_stats_map': at sec_idx 7, offset 0.
libbpf: map 'xdp_stats_map': found type = 6.
libbpf: map 'xdp_stats_map': found max_entries = 5.
libbpf: map 'xdp_stats_map': found key [8], sz = 4.
libbpf: map 'xdp_stats_map': found value [11], sz = 16.
libbpf: map 'xdp_stats_map': found pinning = 1.
libbpf: map 'filter_ports': at sec_idx 7, offset 40.
libbpf: map 'filter_ports': found type = 6.
libbpf: map 'filter_ports': found max_entries = 65536.
libbpf: map 'filter_ports': found key [8], sz = 4.
libbpf: map 'filter_ports': found value [12], sz = 8.
libbpf: map 'filter_ports': found pinning = 1.
libbpf: map 'filter_ipv4': at sec_idx 7, offset 80.
libbpf: map 'filter_ipv4': found type = 5.
libbpf: map 'filter_ipv4': found max_entries = 10000.
libbpf: map 'filter_ipv4': found key [8], sz = 4.
libbpf: map 'filter_ipv4': found value [12], sz = 8.
libbpf: map 'filter_ipv4': found pinning = 1.
libbpf: map 'filter_ipv6': at sec_idx 7, offset 120.
libbpf: map 'filter_ipv6': found type = 5.
libbpf: map 'filter_ipv6': found max_entries = 10000.
libbpf: map 'filter_ipv6': found key [28], sz = 16.
libbpf: map 'filter_ipv6': found value [12], sz = 8.
libbpf: map 'filter_ipv6': found pinning = 1.
libbpf: map 'filter_ethernet': at sec_idx 7, offset 160.
libbpf: map 'filter_ethernet': found type = 5.
libbpf: map 'filter_ethernet': found max_entries = 10000.
libbpf: map 'filter_ethernet': found key [42], sz = 6.
libbpf: map 'filter_ethernet': found value [12], sz = 8.
libbpf: map 'filter_ethernet': found pinning = 1.
libbpf: collecting relocating info for: 'xdp_filter'
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 73
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 73
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 99
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 99
libbpf: relo for shdr 7, symb 221, value 0, type 1, bind 1, name 119 ('xdp_stats_map'), insn 113
libbpf: found map 0 (xdp_stats_map, sec 7, off 0) for insn 113
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 153
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 153
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 165
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 165
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 319
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 319
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 339
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 339
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 365
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 365
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 377
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 377
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 401
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 401
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 414
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 414
libbpf: Error in bpf_object__probe_loading():Operation not permitted(1). Couldn't load trivial BPF program. Make sure your kernel supports BPF (CONFIG_BPF_SYSCALL=y) and/or that RLIMIT_MEMLOCK is set to big enough value.
libbpf: failed to load object './xdpfilt_alw_all.o'
Permission denied when loading eBPF object; raising rlimit and retrying
Doubling current rlimit of 2097152
libxdp: Looking for './xdpfilt_alw_all.o'
libxdp: Loading XDP program from './xdpfilt_alw_all.o' section 'xdp_filter'
libbpf: loading ./xdpfilt_alw_all.o
libbpf: section(1) .strtab, size 663, link 0, flags 0, type=3
libbpf: skip section(1) .strtab
libbpf: section(2) .text, size 0, link 0, flags 6, type=1
libbpf: skip section(2) .text
libbpf: section(3) xdp_filter, size 3424, link 0, flags 6, type=1
libbpf: found program xdp_filter
libbpf: section(4) .relxdp_filter, size 176, link 23, flags 0, type=9
libbpf: section(5) license, size 4, link 0, flags 3, type=1
libbpf: license of ./xdpfilt_alw_all.o is GPL
libbpf: section(6) features, size 4, link 0, flags 3, type=1
libbpf: skip section(6) features
libbpf: section(7) .maps, size 200, link 0, flags 3, type=1
libbpf: section(8) .xdp_run_config, size 16, link 0, flags 3, type=1
libbpf: skip section(8) .xdp_run_config
libbpf: section(9) .debug_loc, size 3092, link 0, flags 0, type=1
libbpf: skip section(9) .debug_loc
libbpf: section(10) .debug_abbrev, size 537, link 0, flags 0, type=1
libbpf: skip section(10) .debug_abbrev
libbpf: section(11) .debug_info, size 3894, link 0, flags 0, type=1
libbpf: skip section(11) .debug_info
libbpf: section(12) .rel.debug_info, size 5280, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_info(12) for section(11)
libbpf: section(13) .debug_ranges, size 1408, link 0, flags 0, type=1
libbpf: skip section(13) .debug_ranges
libbpf: section(14) .debug_str, size 1669, link 0, flags 30, type=1
libbpf: skip section(14) .debug_str
libbpf: section(15) .BTF, size 4180, link 0, flags 0, type=1
libbpf: section(16) .rel.BTF, size 128, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF(16) for section(15)
libbpf: section(17) .BTF.ext, size 2976, link 0, flags 0, type=1
libbpf: section(18) .rel.BTF.ext, size 2928, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF.ext(18) for section(17)
libbpf: section(19) .debug_frame, size 40, link 0, flags 0, type=1
libbpf: skip section(19) .debug_frame
libbpf: section(20) .rel.debug_frame, size 32, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_frame(20) for section(19)
libbpf: section(21) .debug_line, size 1509, link 0, flags 0, type=1
libbpf: skip section(21) .debug_line
libbpf: section(22) .rel.debug_line, size 16, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_line(22) for section(21)
libbpf: section(23) .symtab, size 5352, link 1, flags 0, type=2
libbpf: looking for externs among 223 symbols...
libbpf: collected 0 externs total
libbpf: map 'xdp_stats_map': at sec_idx 7, offset 0.
libbpf: map 'xdp_stats_map': found type = 6.
libbpf: map 'xdp_stats_map': found max_entries = 5.
libbpf: map 'xdp_stats_map': found key [8], sz = 4.
libbpf: map 'xdp_stats_map': found value [11], sz = 16.
libbpf: map 'xdp_stats_map': found pinning = 1.
libbpf: map 'filter_ports': at sec_idx 7, offset 40.
libbpf: map 'filter_ports': found type = 6.
libbpf: map 'filter_ports': found max_entries = 65536.
libbpf: map 'filter_ports': found key [8], sz = 4.
libbpf: map 'filter_ports': found value [12], sz = 8.
libbpf: map 'filter_ports': found pinning = 1.
libbpf: map 'filter_ipv4': at sec_idx 7, offset 80.
libbpf: map 'filter_ipv4': found type = 5.
libbpf: map 'filter_ipv4': found max_entries = 10000.
libbpf: map 'filter_ipv4': found key [8], sz = 4.
libbpf: map 'filter_ipv4': found value [12], sz = 8.
libbpf: map 'filter_ipv4': found pinning = 1.
libbpf: map 'filter_ipv6': at sec_idx 7, offset 120.
libbpf: map 'filter_ipv6': found type = 5.
libbpf: map 'filter_ipv6': found max_entries = 10000.
libbpf: map 'filter_ipv6': found key [28], sz = 16.
libbpf: map 'filter_ipv6': found value [12], sz = 8.
libbpf: map 'filter_ipv6': found pinning = 1.
libbpf: map 'filter_ethernet': at sec_idx 7, offset 160.
libbpf: map 'filter_ethernet': found type = 5.
libbpf: map 'filter_ethernet': found max_entries = 10000.
libbpf: map 'filter_ethernet': found key [42], sz = 6.
libbpf: map 'filter_ethernet': found value [12], sz = 8.
libbpf: map 'filter_ethernet': found pinning = 1.
libbpf: collecting relocating info for: 'xdp_filter'
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 73
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 73
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 99
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 99
libbpf: relo for shdr 7, symb 221, value 0, type 1, bind 1, name 119 ('xdp_stats_map'), insn 113
libbpf: found map 0 (xdp_stats_map, sec 7, off 0) for insn 113
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 153
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 153
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 165
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 165
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 319
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 319
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 339
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 339
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 365
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 365
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 377
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 377
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 401
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 401
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 414
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 414
libbpf: loading ./xdpfilt_alw_all.o
libbpf: section(1) .strtab, size 663, link 0, flags 0, type=3
libbpf: skip section(1) .strtab
libbpf: section(2) .text, size 0, link 0, flags 6, type=1
libbpf: skip section(2) .text
libbpf: section(3) xdp_filter, size 3424, link 0, flags 6, type=1
libbpf: found program xdp_filter
libbpf: section(4) .relxdp_filter, size 176, link 23, flags 0, type=9
libbpf: section(5) license, size 4, link 0, flags 3, type=1
libbpf: license of ./xdpfilt_alw_all.o is GPL
libbpf: section(6) features, size 4, link 0, flags 3, type=1
libbpf: skip section(6) features
libbpf: section(7) .maps, size 200, link 0, flags 3, type=1
libbpf: section(8) .xdp_run_config, size 16, link 0, flags 3, type=1
libbpf: skip section(8) .xdp_run_config
libbpf: section(9) .debug_loc, size 3092, link 0, flags 0, type=1
libbpf: skip section(9) .debug_loc
libbpf: section(10) .debug_abbrev, size 537, link 0, flags 0, type=1
libbpf: skip section(10) .debug_abbrev
libbpf: section(11) .debug_info, size 3894, link 0, flags 0, type=1
libbpf: skip section(11) .debug_info
libbpf: section(12) .rel.debug_info, size 5280, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_info(12) for section(11)
libbpf: section(13) .debug_ranges, size 1408, link 0, flags 0, type=1
libbpf: skip section(13) .debug_ranges
libbpf: section(14) .debug_str, size 1669, link 0, flags 30, type=1
libbpf: skip section(14) .debug_str
libbpf: section(15) .BTF, size 4180, link 0, flags 0, type=1
libbpf: section(16) .rel.BTF, size 128, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF(16) for section(15)
libbpf: section(17) .BTF.ext, size 2976, link 0, flags 0, type=1
libbpf: section(18) .rel.BTF.ext, size 2928, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF.ext(18) for section(17)
libbpf: section(19) .debug_frame, size 40, link 0, flags 0, type=1
libbpf: skip section(19) .debug_frame
libbpf: section(20) .rel.debug_frame, size 32, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_frame(20) for section(19)
libbpf: section(21) .debug_line, size 1509, link 0, flags 0, type=1
libbpf: skip section(21) .debug_line
libbpf: section(22) .rel.debug_line, size 16, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_line(22) for section(21)
libbpf: section(23) .symtab, size 5352, link 1, flags 0, type=2
libbpf: looking for externs among 223 symbols...
libbpf: collected 0 externs total
libbpf: map 'xdp_stats_map': at sec_idx 7, offset 0.
libbpf: map 'xdp_stats_map': found type = 6.
libbpf: map 'xdp_stats_map': found max_entries = 5.
libbpf: map 'xdp_stats_map': found key [8], sz = 4.
libbpf: map 'xdp_stats_map': found value [11], sz = 16.
libbpf: map 'xdp_stats_map': found pinning = 1.
libbpf: map 'filter_ports': at sec_idx 7, offset 40.
libbpf: map 'filter_ports': found type = 6.
libbpf: map 'filter_ports': found max_entries = 65536.
libbpf: map 'filter_ports': found key [8], sz = 4.
libbpf: map 'filter_ports': found value [12], sz = 8.
libbpf: map 'filter_ports': found pinning = 1.
libbpf: map 'filter_ipv4': at sec_idx 7, offset 80.
libbpf: map 'filter_ipv4': found type = 5.
libbpf: map 'filter_ipv4': found max_entries = 10000.
libbpf: map 'filter_ipv4': found key [8], sz = 4.
libbpf: map 'filter_ipv4': found value [12], sz = 8.
libbpf: map 'filter_ipv4': found pinning = 1.
libbpf: map 'filter_ipv6': at sec_idx 7, offset 120.
libbpf: map 'filter_ipv6': found type = 5.
libbpf: map 'filter_ipv6': found max_entries = 10000.
libbpf: map 'filter_ipv6': found key [28], sz = 16.
libbpf: map 'filter_ipv6': found value [12], sz = 8.
libbpf: map 'filter_ipv6': found pinning = 1.
libbpf: map 'filter_ethernet': at sec_idx 7, offset 160.
libbpf: map 'filter_ethernet': found type = 5.
libbpf: map 'filter_ethernet': found max_entries = 10000.
libbpf: map 'filter_ethernet': found key [42], sz = 6.
libbpf: map 'filter_ethernet': found value [12], sz = 8.
libbpf: map 'filter_ethernet': found pinning = 1.
libbpf: collecting relocating info for: 'xdp_filter'
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 73
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 73
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 99
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 99
libbpf: relo for shdr 7, symb 221, value 0, type 1, bind 1, name 119 ('xdp_stats_map'), insn 113
libbpf: found map 0 (xdp_stats_map, sec 7, off 0) for insn 113
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 153
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 153
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 165
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 165
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 319
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 319
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 339
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 339
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 365
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 365
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 377
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 377
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 401
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 401
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 414
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 414
libbpf: Error in bpf_object__probe_loading():Operation not permitted(1). Couldn't load trivial BPF program. Make sure your kernel supports BPF (CONFIG_BPF_SYSCALL=y) and/or that RLIMIT_MEMLOCK is set to big enough value.
libbpf: failed to load object './xdpfilt_alw_all.o'
Permission denied when loading eBPF object; raising rlimit and retrying
Doubling current rlimit of 4194304
libxdp: Looking for './xdpfilt_alw_all.o'
libxdp: Loading XDP program from './xdpfilt_alw_all.o' section 'xdp_filter'
libbpf: loading ./xdpfilt_alw_all.o
libbpf: section(1) .strtab, size 663, link 0, flags 0, type=3
libbpf: skip section(1) .strtab
libbpf: section(2) .text, size 0, link 0, flags 6, type=1
libbpf: skip section(2) .text
libbpf: section(3) xdp_filter, size 3424, link 0, flags 6, type=1
libbpf: found program xdp_filter
libbpf: section(4) .relxdp_filter, size 176, link 23, flags 0, type=9
libbpf: section(5) license, size 4, link 0, flags 3, type=1
libbpf: license of ./xdpfilt_alw_all.o is GPL
libbpf: section(6) features, size 4, link 0, flags 3, type=1
libbpf: skip section(6) features
libbpf: section(7) .maps, size 200, link 0, flags 3, type=1
libbpf: section(8) .xdp_run_config, size 16, link 0, flags 3, type=1
libbpf: skip section(8) .xdp_run_config
libbpf: section(9) .debug_loc, size 3092, link 0, flags 0, type=1
libbpf: skip section(9) .debug_loc
libbpf: section(10) .debug_abbrev, size 537, link 0, flags 0, type=1
libbpf: skip section(10) .debug_abbrev
libbpf: section(11) .debug_info, size 3894, link 0, flags 0, type=1
libbpf: skip section(11) .debug_info
libbpf: section(12) .rel.debug_info, size 5280, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_info(12) for section(11)
libbpf: section(13) .debug_ranges, size 1408, link 0, flags 0, type=1
libbpf: skip section(13) .debug_ranges
libbpf: section(14) .debug_str, size 1669, link 0, flags 30, type=1
libbpf: skip section(14) .debug_str
libbpf: section(15) .BTF, size 4180, link 0, flags 0, type=1
libbpf: section(16) .rel.BTF, size 128, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF(16) for section(15)
libbpf: section(17) .BTF.ext, size 2976, link 0, flags 0, type=1
libbpf: section(18) .rel.BTF.ext, size 2928, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF.ext(18) for section(17)
libbpf: section(19) .debug_frame, size 40, link 0, flags 0, type=1
libbpf: skip section(19) .debug_frame
libbpf: section(20) .rel.debug_frame, size 32, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_frame(20) for section(19)
libbpf: section(21) .debug_line, size 1509, link 0, flags 0, type=1
libbpf: skip section(21) .debug_line
libbpf: section(22) .rel.debug_line, size 16, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_line(22) for section(21)
libbpf: section(23) .symtab, size 5352, link 1, flags 0, type=2
libbpf: looking for externs among 223 symbols...
libbpf: collected 0 externs total
libbpf: map 'xdp_stats_map': at sec_idx 7, offset 0.
libbpf: map 'xdp_stats_map': found type = 6.
libbpf: map 'xdp_stats_map': found max_entries = 5.
libbpf: map 'xdp_stats_map': found key [8], sz = 4.
libbpf: map 'xdp_stats_map': found value [11], sz = 16.
libbpf: map 'xdp_stats_map': found pinning = 1.
libbpf: map 'filter_ports': at sec_idx 7, offset 40.
libbpf: map 'filter_ports': found type = 6.
libbpf: map 'filter_ports': found max_entries = 65536.
libbpf: map 'filter_ports': found key [8], sz = 4.
libbpf: map 'filter_ports': found value [12], sz = 8.
libbpf: map 'filter_ports': found pinning = 1.
libbpf: map 'filter_ipv4': at sec_idx 7, offset 80.
libbpf: map 'filter_ipv4': found type = 5.
libbpf: map 'filter_ipv4': found max_entries = 10000.
libbpf: map 'filter_ipv4': found key [8], sz = 4.
libbpf: map 'filter_ipv4': found value [12], sz = 8.
libbpf: map 'filter_ipv4': found pinning = 1.
libbpf: map 'filter_ipv6': at sec_idx 7, offset 120.
libbpf: map 'filter_ipv6': found type = 5.
libbpf: map 'filter_ipv6': found max_entries = 10000.
libbpf: map 'filter_ipv6': found key [28], sz = 16.
libbpf: map 'filter_ipv6': found value [12], sz = 8.
libbpf: map 'filter_ipv6': found pinning = 1.
libbpf: map 'filter_ethernet': at sec_idx 7, offset 160.
libbpf: map 'filter_ethernet': found type = 5.
libbpf: map 'filter_ethernet': found max_entries = 10000.
libbpf: map 'filter_ethernet': found key [42], sz = 6.
libbpf: map 'filter_ethernet': found value [12], sz = 8.
libbpf: map 'filter_ethernet': found pinning = 1.
libbpf: collecting relocating info for: 'xdp_filter'
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 73
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 73
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 99
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 99
libbpf: relo for shdr 7, symb 221, value 0, type 1, bind 1, name 119 ('xdp_stats_map'), insn 113
libbpf: found map 0 (xdp_stats_map, sec 7, off 0) for insn 113
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 153
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 153
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 165
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 165
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 319
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 319
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 339
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 339
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 365
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 365
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 377
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 377
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 401
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 401
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 414
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 414
libbpf: loading ./xdpfilt_alw_all.o
libbpf: section(1) .strtab, size 663, link 0, flags 0, type=3
libbpf: skip section(1) .strtab
libbpf: section(2) .text, size 0, link 0, flags 6, type=1
libbpf: skip section(2) .text
libbpf: section(3) xdp_filter, size 3424, link 0, flags 6, type=1
libbpf: found program xdp_filter
libbpf: section(4) .relxdp_filter, size 176, link 23, flags 0, type=9
libbpf: section(5) license, size 4, link 0, flags 3, type=1
libbpf: license of ./xdpfilt_alw_all.o is GPL
libbpf: section(6) features, size 4, link 0, flags 3, type=1
libbpf: skip section(6) features
libbpf: section(7) .maps, size 200, link 0, flags 3, type=1
libbpf: section(8) .xdp_run_config, size 16, link 0, flags 3, type=1
libbpf: skip section(8) .xdp_run_config
libbpf: section(9) .debug_loc, size 3092, link 0, flags 0, type=1
libbpf: skip section(9) .debug_loc
libbpf: section(10) .debug_abbrev, size 537, link 0, flags 0, type=1
libbpf: skip section(10) .debug_abbrev
libbpf: section(11) .debug_info, size 3894, link 0, flags 0, type=1
libbpf: skip section(11) .debug_info
libbpf: section(12) .rel.debug_info, size 5280, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_info(12) for section(11)
libbpf: section(13) .debug_ranges, size 1408, link 0, flags 0, type=1
libbpf: skip section(13) .debug_ranges
libbpf: section(14) .debug_str, size 1669, link 0, flags 30, type=1
libbpf: skip section(14) .debug_str
libbpf: section(15) .BTF, size 4180, link 0, flags 0, type=1
libbpf: section(16) .rel.BTF, size 128, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF(16) for section(15)
libbpf: section(17) .BTF.ext, size 2976, link 0, flags 0, type=1
libbpf: section(18) .rel.BTF.ext, size 2928, link 23, flags 0, type=9
libbpf: skip relo .rel.BTF.ext(18) for section(17)
libbpf: section(19) .debug_frame, size 40, link 0, flags 0, type=1
libbpf: skip section(19) .debug_frame
libbpf: section(20) .rel.debug_frame, size 32, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_frame(20) for section(19)
libbpf: section(21) .debug_line, size 1509, link 0, flags 0, type=1
libbpf: skip section(21) .debug_line
libbpf: section(22) .rel.debug_line, size 16, link 23, flags 0, type=9
libbpf: skip relo .rel.debug_line(22) for section(21)
libbpf: section(23) .symtab, size 5352, link 1, flags 0, type=2
libbpf: looking for externs among 223 symbols...
libbpf: collected 0 externs total
libbpf: map 'xdp_stats_map': at sec_idx 7, offset 0.
libbpf: map 'xdp_stats_map': found type = 6.
libbpf: map 'xdp_stats_map': found max_entries = 5.
libbpf: map 'xdp_stats_map': found key [8], sz = 4.
libbpf: map 'xdp_stats_map': found value [11], sz = 16.
libbpf: map 'xdp_stats_map': found pinning = 1.
libbpf: map 'filter_ports': at sec_idx 7, offset 40.
libbpf: map 'filter_ports': found type = 6.
libbpf: map 'filter_ports': found max_entries = 65536.
libbpf: map 'filter_ports': found key [8], sz = 4.
libbpf: map 'filter_ports': found value [12], sz = 8.
libbpf: map 'filter_ports': found pinning = 1.
libbpf: map 'filter_ipv4': at sec_idx 7, offset 80.
libbpf: map 'filter_ipv4': found type = 5.
libbpf: map 'filter_ipv4': found max_entries = 10000.
libbpf: map 'filter_ipv4': found key [8], sz = 4.
libbpf: map 'filter_ipv4': found value [12], sz = 8.
libbpf: map 'filter_ipv4': found pinning = 1.
libbpf: map 'filter_ipv6': at sec_idx 7, offset 120.
libbpf: map 'filter_ipv6': found type = 5.
libbpf: map 'filter_ipv6': found max_entries = 10000.
libbpf: map 'filter_ipv6': found key [28], sz = 16.
libbpf: map 'filter_ipv6': found value [12], sz = 8.
libbpf: map 'filter_ipv6': found pinning = 1.
libbpf: map 'filter_ethernet': at sec_idx 7, offset 160.
libbpf: map 'filter_ethernet': found type = 5.
libbpf: map 'filter_ethernet': found max_entries = 10000.
libbpf: map 'filter_ethernet': found key [42], sz = 6.
libbpf: map 'filter_ethernet': found value [12], sz = 8.
libbpf: map 'filter_ethernet': found pinning = 1.
libbpf: collecting relocating info for: 'xdp_filter'
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 73
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 73
libbpf: relo for shdr 7, symb 217, value 160, type 1, bind 1, name 34 ('filter_ethernet'), insn 99
libbpf: found map 4 (filter_ethernet, sec 7, off 160) for insn 99
libbpf: relo for shdr 7, symb 221, value 0, type 1, bind 1, name 119 ('xdp_stats_map'), insn 113
libbpf: found map 0 (xdp_stats_map, sec 7, off 0) for insn 113
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 153
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 153
libbpf: relo for shdr 7, symb 218, value 80, type 1, bind 1, name 514 ('filter_ipv4'), insn 165
libbpf: found map 2 (filter_ipv4, sec 7, off 80) for insn 165
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 319
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 319
libbpf: relo for shdr 7, symb 219, value 120, type 1, bind 1, name 431 ('filter_ipv6'), insn 339
libbpf: found map 3 (filter_ipv6, sec 7, off 120) for insn 339
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 365
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 365
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 377
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 377
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 401
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 401
libbpf: relo for shdr 7, symb 220, value 40, type 1, bind 1, name 50 ('filter_ports'), insn 414
libbpf: found map 1 (filter_ports, sec 7, off 40) for insn 414
libbpf: reused pinned map at '/sys/fs/bpf/xdp-filter/xdp_stats_map'
libbpf: map 'xdp_stats_map': skipping creation (preset fd=6)
libbpf: reused pinned map at '/sys/fs/bpf/xdp-filter/filter_ports'
libbpf: map 'filter_ports': skipping creation (preset fd=8)
libbpf: reused pinned map at '/sys/fs/bpf/xdp-filter/filter_ipv4'
libbpf: map 'filter_ipv4': skipping creation (preset fd=10)
libbpf: reused pinned map at '/sys/fs/bpf/xdp-filter/filter_ipv6'
libbpf: map 'filter_ipv6': skipping creation (preset fd=12)
libbpf: reused pinned map at '/sys/fs/bpf/xdp-filter/filter_ethernet'
libbpf: map 'filter_ethernet': skipping creation (preset fd=14)
libxdp: Found func xdpfilt_alw_all matching xdpfilt_alw_all
libxdp: Generating multi-prog dispatcher for 1 programs
libxdp: Looking for './xdp-dispatcher.o'
libxdp: Loading XDP program from './xdp-dispatcher.o' section 'xdp/dispatcher'
libbpf: loading ./xdp-dispatcher.o
libbpf: section(1) .strtab, size 405, link 0, flags 0, type=3
libbpf: skip section(1) .strtab
libbpf: section(2) .text, size 480, link 0, flags 6, type=1
libbpf: found program .text
libbpf: section(3) xdp/dispatcher, size 1064, link 0, flags 6, type=1
libbpf: found program xdp/dispatcher
libbpf: section(4) .relxdp/dispatcher, size 320, link 24, flags 0, type=9
libbpf: section(5) .rodata, size 84, link 0, flags 2, type=1
libbpf: section(6) license, size 4, link 0, flags 3, type=1
libbpf: license of ./xdp-dispatcher.o is GPL
libbpf: section(7) xdp_metadata, size 8, link 0, flags 3, type=1
libbpf: skip section(7) xdp_metadata
libbpf: section(8) .debug_loc, size 343, link 0, flags 0, type=1
libbpf: skip section(8) .debug_loc
libbpf: section(9) .rel.debug_loc, size 48, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_loc(9) for section(8)
libbpf: section(10) .debug_abbrev, size 312, link 0, flags 0, type=1
libbpf: skip section(10) .debug_abbrev
libbpf: section(11) .debug_info, size 1139, link 0, flags 0, type=1
libbpf: skip section(11) .debug_info
libbpf: section(12) .rel.debug_info, size 1520, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_info(12) for section(11)
libbpf: section(13) .debug_ranges, size 48, link 0, flags 0, type=1
libbpf: skip section(13) .debug_ranges
libbpf: section(14) .rel.debug_ranges, size 64, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_ranges(14) for section(13)
libbpf: section(15) .debug_str, size 521, link 0, flags 30, type=1
libbpf: skip section(15) .debug_str
libbpf: section(16) .BTF, size 3021, link 0, flags 0, type=1
libbpf: section(17) .rel.BTF, size 48, link 24, flags 0, type=9
libbpf: skip relo .rel.BTF(17) for section(16)
libbpf: section(18) .BTF.ext, size 1968, link 0, flags 0, type=1
libbpf: section(19) .rel.BTF.ext, size 1984, link 24, flags 0, type=9
libbpf: skip relo .rel.BTF.ext(19) for section(18)
libbpf: section(20) .debug_frame, size 280, link 0, flags 0, type=1
libbpf: skip section(20) .debug_frame
libbpf: section(21) .rel.debug_frame, size 352, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_frame(21) for section(20)
libbpf: section(22) .debug_line, size 612, link 0, flags 0, type=1
libbpf: skip section(22) .debug_line
libbpf: section(23) .rel.debug_line, size 32, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_line(23) for section(22)
libbpf: section(24) .symtab, size 1920, link 1, flags 0, type=2
libbpf: looking for externs among 80 symbols...
libbpf: collected 0 externs total
libbpf: map 'xdp_disp.rodata' (global data): at sec_idx 5, offset 0, flags 480.
libbpf: map 0 is "xdp_disp.rodata"
libbpf: collecting relocating info for: 'xdp/dispatcher'
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 1
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 1
libbpf: relo for shdr 2, symb 69, value 0, type 2, bind 1, name 390 ('prog0'), insn 6
libbpf: relo for shdr 2, symb 70, value 48, type 2, bind 1, name 375 ('prog1'), insn 17
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 18
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 18
libbpf: relo for shdr 2, symb 71, value 96, type 2, bind 1, name 299 ('prog2'), insn 30
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 31
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 31
libbpf: relo for shdr 2, symb 72, value 144, type 2, bind 1, name 293 ('prog3'), insn 43
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 44
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 44
libbpf: relo for shdr 2, symb 73, value 192, type 2, bind 1, name 287 ('prog4'), insn 56
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 57
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 57
libbpf: relo for shdr 2, symb 74, value 240, type 2, bind 1, name 281 ('prog5'), insn 69
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 70
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 70
libbpf: relo for shdr 2, symb 75, value 288, type 2, bind 1, name 275 ('prog6'), insn 82
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 83
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 83
libbpf: relo for shdr 2, symb 76, value 336, type 2, bind 1, name 269 ('prog7'), insn 95
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 96
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 96
libbpf: relo for shdr 2, symb 77, value 384, type 2, bind 1, name 263 ('prog8'), insn 108
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 109
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 109
libbpf: relo for shdr 2, symb 78, value 432, type 2, bind 1, name 257 ('prog9'), insn 121
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 122
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 122
libbpf: loading ./xdp-dispatcher.o
libbpf: section(1) .strtab, size 405, link 0, flags 0, type=3
libbpf: skip section(1) .strtab
libbpf: section(2) .text, size 480, link 0, flags 6, type=1
libbpf: found program .text
libbpf: section(3) xdp/dispatcher, size 1064, link 0, flags 6, type=1
libbpf: found program xdp/dispatcher
libbpf: section(4) .relxdp/dispatcher, size 320, link 24, flags 0, type=9
libbpf: section(5) .rodata, size 84, link 0, flags 2, type=1
libbpf: section(6) license, size 4, link 0, flags 3, type=1
libbpf: license of ./xdp-dispatcher.o is GPL
libbpf: section(7) xdp_metadata, size 8, link 0, flags 3, type=1
libbpf: skip section(7) xdp_metadata
libbpf: section(8) .debug_loc, size 343, link 0, flags 0, type=1
libbpf: skip section(8) .debug_loc
libbpf: section(9) .rel.debug_loc, size 48, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_loc(9) for section(8)
libbpf: section(10) .debug_abbrev, size 312, link 0, flags 0, type=1
libbpf: skip section(10) .debug_abbrev
libbpf: section(11) .debug_info, size 1139, link 0, flags 0, type=1
libbpf: skip section(11) .debug_info
libbpf: section(12) .rel.debug_info, size 1520, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_info(12) for section(11)
libbpf: section(13) .debug_ranges, size 48, link 0, flags 0, type=1
libbpf: skip section(13) .debug_ranges
libbpf: section(14) .rel.debug_ranges, size 64, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_ranges(14) for section(13)
libbpf: section(15) .debug_str, size 521, link 0, flags 30, type=1
libbpf: skip section(15) .debug_str
libbpf: section(16) .BTF, size 3021, link 0, flags 0, type=1
libbpf: section(17) .rel.BTF, size 48, link 24, flags 0, type=9
libbpf: skip relo .rel.BTF(17) for section(16)
libbpf: section(18) .BTF.ext, size 1968, link 0, flags 0, type=1
libbpf: section(19) .rel.BTF.ext, size 1984, link 24, flags 0, type=9
libbpf: skip relo .rel.BTF.ext(19) for section(18)
libbpf: section(20) .debug_frame, size 280, link 0, flags 0, type=1
libbpf: skip section(20) .debug_frame
libbpf: section(21) .rel.debug_frame, size 352, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_frame(21) for section(20)
libbpf: section(22) .debug_line, size 612, link 0, flags 0, type=1
libbpf: skip section(22) .debug_line
libbpf: section(23) .rel.debug_line, size 32, link 24, flags 0, type=9
libbpf: skip relo .rel.debug_line(23) for section(22)
libbpf: section(24) .symtab, size 1920, link 1, flags 0, type=2
libbpf: looking for externs among 80 symbols...
libbpf: collected 0 externs total
libbpf: map 'xdp_disp.rodata' (global data): at sec_idx 5, offset 0, flags 480.
libbpf: map 0 is "xdp_disp.rodata"
libbpf: collecting relocating info for: 'xdp/dispatcher'
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 1
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 1
libbpf: relo for shdr 2, symb 69, value 0, type 2, bind 1, name 390 ('prog0'), insn 6
libbpf: relo for shdr 2, symb 70, value 48, type 2, bind 1, name 375 ('prog1'), insn 17
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 18
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 18
libbpf: relo for shdr 2, symb 71, value 96, type 2, bind 1, name 299 ('prog2'), insn 30
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 31
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 31
libbpf: relo for shdr 2, symb 72, value 144, type 2, bind 1, name 293 ('prog3'), insn 43
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 44
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 44
libbpf: relo for shdr 2, symb 73, value 192, type 2, bind 1, name 287 ('prog4'), insn 56
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 57
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 57
libbpf: relo for shdr 2, symb 74, value 240, type 2, bind 1, name 281 ('prog5'), insn 69
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 70
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 70
libbpf: relo for shdr 2, symb 75, value 288, type 2, bind 1, name 275 ('prog6'), insn 82
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 83
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 83
libbpf: relo for shdr 2, symb 76, value 336, type 2, bind 1, name 269 ('prog7'), insn 95
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 96
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 96
libbpf: relo for shdr 2, symb 77, value 384, type 2, bind 1, name 263 ('prog8'), insn 108
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 109
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 109
libbpf: relo for shdr 2, symb 78, value 432, type 2, bind 1, name 257 ('prog9'), insn 121
libbpf: relo for shdr 5, symb 61, value 0, type 3, bind 0, name 0 (''), insn 122
libbpf: found data map 0 (xdp_disp.rodata, sec 5, off 0) for insn 122
libbpf: map 'xdp_disp.rodata': created successfully, fd=6
libbpf: added 60 insn from .text to prog xdp/dispatcher
libxdp: DATASEC '.xdp_run_config' not found.
libxdp: Verified XDP dispatcher version 1 <= 1
libxdp: Loading multiprog dispatcher for 1 programs
libbpf: map 'xdp_disp.rodata': created successfully, fd=6
libbpf: added 60 insn from .text to prog xdp/dispatcher
libxdp: Loaded XDP program xdp_dispatcher, got fd 8
libxdp: Linking prog xdpfilt_alw_all as multiprog entry 0
libbpf: reused pinned map at '/sys/fs/bpf/xdp-filter/xdp_stats_map'
libbpf: map 'xdp_stats_map': skipping creation (preset fd=14)
libbpf: reused pinned map at '/sys/fs/bpf/xdp-filter/filter_ports'
libbpf: map 'filter_ports': skipping creation (preset fd=16)
libbpf: reused pinned map at '/sys/fs/bpf/xdp-filter/filter_ipv4'
libbpf: map 'filter_ipv4': skipping creation (preset fd=21)
libbpf: reused pinned map at '/sys/fs/bpf/xdp-filter/filter_ipv6'
libbpf: map 'filter_ipv6': skipping creation (preset fd=22)
libbpf: reused pinned map at '/sys/fs/bpf/xdp-filter/filter_ethernet'
libbpf: map 'filter_ethernet': skipping creation (preset fd=23)
libbpf: load bpf program failed: Argument list too long
libbpf: failed to load program 'xdp_filter'
libbpf: failed to load object './xdpfilt_alw_all.o'
libxdp: Failed to load program xdpfilt_alw_all: Argument list too long
Couldn't attach XDP program on iface 'eth0': Argument list too long(-7)
root@OpenWrt:/tmp#