1 | // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause |
---|---|
2 | #include <linux/bpf.h> |
3 | #include <bpf/bpf_helpers.h> |
4 | #include <bpf/bpf_endian.h> |
5 | |
6 | char _license[] SEC("license") = "GPL"; |
7 | |
8 | int ifindex; |
9 | int ret; |
10 | |
11 | SEC("lwt_xmit") |
12 | int redirect_ingress(struct __sk_buff *skb) |
13 | { |
14 | ret = bpf_clone_redirect(skb, ifindex, BPF_F_INGRESS); |
15 | return 0; |
16 | } |
17 | |
18 | SEC("lwt_xmit") |
19 | int redirect_egress(struct __sk_buff *skb) |
20 | { |
21 | ret = bpf_clone_redirect(skb, ifindex, 0); |
22 | return 0; |
23 | } |
24 | |
25 | SEC("tc") |
26 | int tc_redirect_ingress(struct __sk_buff *skb) |
27 | { |
28 | ret = bpf_clone_redirect(skb, ifindex, BPF_F_INGRESS); |
29 | return 0; |
30 | } |
31 | |
32 | SEC("tc") |
33 | int tc_redirect_egress(struct __sk_buff *skb) |
34 | { |
35 | ret = bpf_clone_redirect(skb, ifindex, 0); |
36 | return 0; |
37 | } |
38 |