xref: /linux/tools/testing/selftests/bpf/progs/test_tc_qevent.c (revision fab183d632628381b466a41479489541ac0e29a0)
1*f789afedSDaniel Borkmann // SPDX-License-Identifier: GPL-2.0
2*f789afedSDaniel Borkmann #include "vmlinux.h"
3*f789afedSDaniel Borkmann #include <bpf/bpf_helpers.h>
4*f789afedSDaniel Borkmann 
5*f789afedSDaniel Borkmann int redirect_ifindex = 1;
6*f789afedSDaniel Borkmann __u64 verdict_calls = 0;
7*f789afedSDaniel Borkmann __u64 helper_calls = 0;
8*f789afedSDaniel Borkmann 
9*f789afedSDaniel Borkmann SEC("tc")
qevent_redirect_verdict(struct __sk_buff * skb)10*f789afedSDaniel Borkmann int qevent_redirect_verdict(struct __sk_buff *skb)
11*f789afedSDaniel Borkmann {
12*f789afedSDaniel Borkmann 	__sync_fetch_and_add(&verdict_calls, 1);
13*f789afedSDaniel Borkmann 	return TCX_REDIRECT;
14*f789afedSDaniel Borkmann }
15*f789afedSDaniel Borkmann 
16*f789afedSDaniel Borkmann SEC("tc")
qevent_redirect_helper(struct __sk_buff * skb)17*f789afedSDaniel Borkmann int qevent_redirect_helper(struct __sk_buff *skb)
18*f789afedSDaniel Borkmann {
19*f789afedSDaniel Borkmann 	__sync_fetch_and_add(&helper_calls, 1);
20*f789afedSDaniel Borkmann 	return bpf_redirect(redirect_ifindex, 0);
21*f789afedSDaniel Borkmann }
22*f789afedSDaniel Borkmann 
23*f789afedSDaniel Borkmann char _license[] SEC("license") = "GPL";
24