0001
0002
0003 #include <linux/bpf.h>
0004 #include <bpf/bpf_helpers.h>
0005
0006 char _license[] SEC("license") = "GPL";
0007
0008 SEC("tc")
0009 int process(struct __sk_buff *skb)
0010 {
0011 #pragma clang loop unroll(full)
0012 for (int i = 0; i < 5; i++) {
0013 if (skb->cb[i] != i + 1)
0014 return 1;
0015 skb->cb[i]++;
0016 }
0017 skb->priority++;
0018 skb->tstamp++;
0019 skb->mark++;
0020
0021 if (skb->wire_len != 100)
0022 return 1;
0023 if (skb->gso_segs != 8)
0024 return 1;
0025 if (skb->gso_size != 10)
0026 return 1;
0027 if (skb->ingress_ifindex != 11)
0028 return 1;
0029 if (skb->ifindex != 1)
0030 return 1;
0031 if (skb->hwtstamp != 11)
0032 return 1;
0033
0034 return 0;
0035 }