aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAlexei Starovoitov <ast@plumgrid.com>2015-06-02 16:03:14 -0700
committerDavid S. Miller <davem@davemloft.net>2015-06-03 20:16:58 -0700
commit3896d655f4d491c67d669a15f275a39f713410f8 (patch)
tree2443f64281b9acf673b4b8fc02bc5e7aeeacae5f /include
parentnet/mlx4_core: fix typo in mlx4_set_vf_mac (diff)
downloadlinux-dev-3896d655f4d491c67d669a15f275a39f713410f8.tar.xz
linux-dev-3896d655f4d491c67d669a15f275a39f713410f8.zip
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')
-rw-r--r--include/uapi/linux/bpf.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index 72f3080afa1e..42aa19abab86 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,
};