xref: /linux/tools/testing/selftests/bpf/progs/test_skb_ctx.c (revision 64b14a184e83eb62ea0615e31a409956049d40e7)
1 // SPDX-License-Identifier: GPL-2.0
2 
3 #include <linux/bpf.h>
4 #include <bpf/bpf_helpers.h>
5 
6 char _license[] SEC("license") = "GPL";
7 
8 SEC("tc")
9 int process(struct __sk_buff *skb)
10 {
11 	#pragma clang loop unroll(full)
12 	for (int i = 0; i < 5; i++) {
13 		if (skb->cb[i] != i + 1)
14 			return 1;
15 		skb->cb[i]++;
16 	}
17 	skb->priority++;
18 	skb->tstamp++;
19 	skb->mark++;
20 
21 	if (skb->wire_len != 100)
22 		return 1;
23 	if (skb->gso_segs != 8)
24 		return 1;
25 	if (skb->gso_size != 10)
26 		return 1;
27 	if (skb->ingress_ifindex != 11)
28 		return 1;
29 	if (skb->ifindex != 1)
30 		return 1;
31 	if (skb->hwtstamp != 11)
32 		return 1;
33 
34 	return 0;
35 }
36