From: Alexei Starovoitov <a...@plumgrid.com> Date: Thu, 30 Jul 2015 15:36:57 -0700
> Introduce helpers to let eBPF programs attached to TC manipulate tunnel > metadata: > bpf_skb_[gs]et_tunnel_key(skb, key, size, flags) > skb: pointer to skb > key: pointer to 'struct bpf_tunnel_key' > size: size of 'struct bpf_tunnel_key' > flags: room for future extensions > > First eBPF program that uses these helpers will allocate per_cpu > metadata_dst structures that will be used on TX. > On RX metadata_dst is allocated by tunnel driver. > > Typical usage for TX: > struct bpf_tunnel_key tkey; > ... populate tkey ... > bpf_skb_set_tunnel_key(skb, &tkey, sizeof(tkey), 0); > bpf_clone_redirect(skb, vxlan_dev_ifindex, 0); > > RX: > struct bpf_tunnel_key tkey = {}; > bpf_skb_get_tunnel_key(skb, &tkey, sizeof(tkey), 0); > ... lookup or redirect based on tkey ... > > 'struct bpf_tunnel_key' will be extended in the future by adding > elements to the end and the 'size' argument will indicate which fields > are populated, thereby keeping backwards compatibility. > The 'flags' argument may be used as well when the 'size' is not enough or > to indicate completely different layout of bpf_tunnel_key. > > Signed-off-by: Alexei Starovoitov <a...@plumgrid.com> Applied, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html