13daf8e70SStanislav Fomichev // SPDX-License-Identifier: GPL-2.0 23daf8e70SStanislav Fomichev 33daf8e70SStanislav Fomichev #include <linux/bpf.h> 43e689141SToke Høiland-Jørgensen #include <bpf/bpf_helpers.h> 53daf8e70SStanislav Fomichev 63daf8e70SStanislav Fomichev char _license[] SEC("license") = "GPL"; 73daf8e70SStanislav Fomichev 8*3d1d6239SAndrii Nakryiko SEC("tc") process(struct __sk_buff * skb)93daf8e70SStanislav Fomichevint process(struct __sk_buff *skb) 103daf8e70SStanislav Fomichev { 113daf8e70SStanislav Fomichev #pragma clang loop unroll(full) 123daf8e70SStanislav Fomichev for (int i = 0; i < 5; i++) { 133daf8e70SStanislav Fomichev if (skb->cb[i] != i + 1) 143daf8e70SStanislav Fomichev return 1; 153daf8e70SStanislav Fomichev skb->cb[i]++; 163daf8e70SStanislav Fomichev } 173daf8e70SStanislav Fomichev skb->priority++; 1895fbda1eSStanislav Fomichev skb->tstamp++; 196de6c1f8SNikita V. Shirokov skb->mark++; 203daf8e70SStanislav Fomichev 21a06bf42fSStanislav Fomichev if (skb->wire_len != 100) 22a06bf42fSStanislav Fomichev return 1; 23a06bf42fSStanislav Fomichev if (skb->gso_segs != 8) 24a06bf42fSStanislav Fomichev return 1; 2562511ceaSWillem de Bruijn if (skb->gso_size != 10) 2662511ceaSWillem de Bruijn return 1; 27b238290bSNeil Spring if (skb->ingress_ifindex != 11) 28b238290bSNeil Spring return 1; 29b238290bSNeil Spring if (skb->ifindex != 1) 30b238290bSNeil Spring return 1; 313384c7c7SVadim Fedorenko if (skb->hwtstamp != 11) 323384c7c7SVadim Fedorenko return 1; 33a06bf42fSStanislav Fomichev 343daf8e70SStanislav Fomichev return 0; 353daf8e70SStanislav Fomichev } 36