]> Git Repo - J-linux.git/blob - tools/testing/selftests/bpf/progs/sockmap_parse_prog.c
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / tools / testing / selftests / bpf / progs / sockmap_parse_prog.c
1 #include <linux/bpf.h>
2 #include <bpf/bpf_helpers.h>
3 #include <bpf/bpf_endian.h>
4
5 SEC("sk_skb1")
6 int bpf_prog1(struct __sk_buff *skb)
7 {
8         void *data_end = (void *)(long) skb->data_end;
9         void *data = (void *)(long) skb->data;
10         __u8 *d = data;
11         int err;
12
13         if (data + 10 > data_end) {
14                 err = bpf_skb_pull_data(skb, 10);
15                 if (err)
16                         return SK_DROP;
17
18                 data_end = (void *)(long)skb->data_end;
19                 data = (void *)(long)skb->data;
20                 if (data + 10 > data_end)
21                         return SK_DROP;
22         }
23
24         /* This write/read is a bit pointless but tests the verifier and
25          * strparser handler for read/write pkt data and access into sk
26          * fields.
27          */
28         d = data;
29         d[7] = 1;
30         return skb->len;
31 }
32
33 char _license[] SEC("license") = "GPL";
This page took 0.028036 seconds and 4 git commands to generate.