diff options
author | Alexei Starovoitov <ast@plumgrid.com> | 2015-06-02 16:03:14 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-06-03 20:16:58 -0700 |
commit | 3896d655f4d491c67d669a15f275a39f713410f8 (patch) | |
tree | 2443f64281b9acf673b4b8fc02bc5e7aeeacae5f /include/uapi | |
parent | 613d8c188ffc6f24b7a64dbce74a1b78017c0238 (diff) | |
download | op-kernel-dev-3896d655f4d491c67d669a15f275a39f713410f8.zip op-kernel-dev-3896d655f4d491c67d669a15f275a39f713410f8.tar.gz |
bpf: introduce bpf_clone_redirect() helper
Allow eBPF programs attached to classifier/actions to call
bpf_clone_redirect(skb, ifindex, flags) helper which will
mirror or redirect the packet by dynamic ifindex selection
from within the program to a target device either at ingress
or at egress. Can be used for various scenarios, for example,
to load balance skbs into veths, split parts of the traffic
to local taps, etc.
Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/uapi')
-rw-r--r-- | include/uapi/linux/bpf.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index 72f3080..42aa19a 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -220,6 +220,16 @@ enum bpf_func_id { * Return: 0 on success */ BPF_FUNC_tail_call, + + /** + * bpf_clone_redirect(skb, ifindex, flags) - redirect to another netdev + * @skb: pointer to skb + * @ifindex: ifindex of the net device + * @flags: bit 0 - if set, redirect to ingress instead of egress + * other bits - reserved + * Return: 0 on success + */ + BPF_FUNC_clone_redirect, __BPF_FUNC_MAX_ID, }; |