18c303960SAlexei Starovoitov // SPDX-License-Identifier: GPL-2.0
28c303960SAlexei Starovoitov // Copyright (c) 2019 Facebook
38c303960SAlexei Starovoitov #include <linux/bpf.h>
43e689141SToke Høiland-Jørgensen #include <bpf/bpf_helpers.h>
58c303960SAlexei Starovoitov 
68c303960SAlexei Starovoitov char _license[] SEC("license") = "GPL";
78c303960SAlexei Starovoitov 
88c303960SAlexei Starovoitov SEC("socket")
while_true(volatile struct __sk_buff * skb)98c303960SAlexei Starovoitov int while_true(volatile struct __sk_buff* skb)
108c303960SAlexei Starovoitov {
118c303960SAlexei Starovoitov 	int i = 0;
128c303960SAlexei Starovoitov 
138c303960SAlexei Starovoitov 	while (1) {
148c303960SAlexei Starovoitov 		if (skb->len)
158c303960SAlexei Starovoitov 			i += 3;
168c303960SAlexei Starovoitov 		else
178c303960SAlexei Starovoitov 			i += 7;
188c303960SAlexei Starovoitov 		if (i == 9)
198c303960SAlexei Starovoitov 			break;
208c303960SAlexei Starovoitov 		barrier();
218c303960SAlexei Starovoitov 		if (i == 10)
228c303960SAlexei Starovoitov 			break;
238c303960SAlexei Starovoitov 		barrier();
248c303960SAlexei Starovoitov 		if (i == 13)
258c303960SAlexei Starovoitov 			break;
268c303960SAlexei Starovoitov 		barrier();
278c303960SAlexei Starovoitov 		if (i == 14)
288c303960SAlexei Starovoitov 			break;
298c303960SAlexei Starovoitov 	}
308c303960SAlexei Starovoitov 	return i;
318c303960SAlexei Starovoitov }
32