ebpf: Updated eBPF program and skeleton.

Updated section name, so libbpf should init/gues proper
program type without specifications during open/load.
Also, added map_flags with explicitly declared BPF_F_MMAPABLE.
Added check for BPF_F_MMAPABLE flag to meson script and
requirements to libbpf version.
Also changed fragmentation flag check - some TCP/UDP packets
may be considered fragmented if DF flag is set.

Signed-off-by: Andrew Melnychenko <andrew@daynix.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
Andrew Melnychenko
2024-02-05 18:54:35 +02:00
committed by Jason Wang
parent e88899fa90
commit 0cc14182ab
3 changed files with 687 additions and 673 deletions

View File

@ -2006,19 +2006,23 @@ elif get_option('vduse_blk_export').disabled()
endif
# libbpf
libbpf = dependency('libbpf', required: get_option('bpf'), method: 'pkg-config')
bpf_version = '1.1.0'
libbpf = dependency('libbpf', version: '>=' + bpf_version, required: get_option('bpf'), method: 'pkg-config')
if libbpf.found() and not cc.links('''
#include <bpf/libbpf.h>
#include <linux/bpf.h>
int main(void)
{
// check flag availability
int flag = BPF_F_MMAPABLE;
bpf_object__destroy_skeleton(NULL);
return 0;
}''', dependencies: libbpf)
libbpf = not_found
if get_option('bpf').enabled()
error('libbpf skeleton test failed')
error('libbpf skeleton/mmaping test failed')
else
warning('libbpf skeleton test failed, disabling')
warning('libbpf skeleton/mmaping test failed, disabling')
endif
endif