xref: /linux/tools/testing/selftests/bpf/progs/lwt_misc.c (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1*e8ae16d6SFeng Yang // SPDX-License-Identifier: GPL-2.0
2*e8ae16d6SFeng Yang 
3*e8ae16d6SFeng Yang #include "vmlinux.h"
4*e8ae16d6SFeng Yang #include <bpf/bpf_helpers.h>
5*e8ae16d6SFeng Yang #include "bpf_misc.h"
6*e8ae16d6SFeng Yang 
7*e8ae16d6SFeng Yang SEC("lwt_xmit")
8*e8ae16d6SFeng Yang __success __retval(0)
9*e8ae16d6SFeng Yang int test_missing_dst(struct __sk_buff *skb)
10*e8ae16d6SFeng Yang {
11*e8ae16d6SFeng Yang 	struct iphdr iph;
12*e8ae16d6SFeng Yang 
13*e8ae16d6SFeng Yang 	__builtin_memset(&iph, 0, sizeof(struct iphdr));
14*e8ae16d6SFeng Yang 	iph.ihl = 5;
15*e8ae16d6SFeng Yang 	iph.version = 4;
16*e8ae16d6SFeng Yang 
17*e8ae16d6SFeng Yang 	bpf_lwt_push_encap(skb, BPF_LWT_ENCAP_IP, &iph, sizeof(struct iphdr));
18*e8ae16d6SFeng Yang 
19*e8ae16d6SFeng Yang 	return 0;
20*e8ae16d6SFeng Yang }
21*e8ae16d6SFeng Yang 
22*e8ae16d6SFeng Yang char _license[] SEC("license") = "GPL";
23