selftests/bpf: Add selftests for the invocation of bpf_lwt_xmit_push_encap

Calling bpf_lwt_xmit_push_encap will not cause a crash when dst is missing.

Signed-off-by: Feng Yang <yangfeng@kylinos.cn>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://patch.msgid.link/20260304094429.168521-3-yangfeng59949@163.com
This commit is contained in:
Feng Yang 2026-03-04 17:44:29 +08:00 committed by Martin KaFai Lau
parent 972787479e
commit e8ae16d65a
2 changed files with 31 additions and 0 deletions

View File

@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0
#include <test_progs.h>
#include "lwt_misc.skel.h"
void test_lwt_misc(void)
{
RUN_TESTS(lwt_misc);
}

View File

@ -0,0 +1,22 @@
// SPDX-License-Identifier: GPL-2.0
#include "vmlinux.h"
#include <bpf/bpf_helpers.h>
#include "bpf_misc.h"
SEC("lwt_xmit")
__success __retval(0)
int test_missing_dst(struct __sk_buff *skb)
{
struct iphdr iph;
__builtin_memset(&iph, 0, sizeof(struct iphdr));
iph.ihl = 5;
iph.version = 4;
bpf_lwt_push_encap(skb, BPF_LWT_ENCAP_IP, &iph, sizeof(struct iphdr));
return 0;
}
char _license[] SEC("license") = "GPL";