diff options
author | John Fastabend <john.fastabend@gmail.com> | 2017-07-17 09:28:56 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-07-17 09:48:06 -0700 |
commit | 546ac1ffb70d25b56c1126940e5ec639c4dd7413 (patch) | |
tree | ee72376133d162b6bacd60cc6c061458a76be88c /include/linux/bpf_types.h | |
parent | 5acaee0a8964c9bab7775ab8bedcd1f66a2a1011 (diff) | |
download | linux-546ac1ffb70d25b56c1126940e5ec639c4dd7413.tar.gz linux-546ac1ffb70d25b56c1126940e5ec639c4dd7413.tar.bz2 linux-546ac1ffb70d25b56c1126940e5ec639c4dd7413.zip |
bpf: add devmap, a map for storing net device references
Device map (devmap) is a BPF map, primarily useful for networking
applications, that uses a key to lookup a reference to a netdevice.
The map provides a clean way for BPF programs to build virtual port
to physical port maps. Additionally, it provides a scoping function
for the redirect action itself allowing multiple optimizations. Future
patches will leverage the map to provide batching at the XDP layer.
Another optimization/feature, that is not yet implemented, would be
to support multiple netdevices per key to support efficient multicast
and broadcast support.
Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/bpf_types.h')
-rw-r--r-- | include/linux/bpf_types.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/bpf_types.h b/include/linux/bpf_types.h index 3d137c33d664..b1e1035ca24b 100644 --- a/include/linux/bpf_types.h +++ b/include/linux/bpf_types.h @@ -35,3 +35,6 @@ BPF_MAP_TYPE(BPF_MAP_TYPE_STACK_TRACE, stack_map_ops) #endif BPF_MAP_TYPE(BPF_MAP_TYPE_ARRAY_OF_MAPS, array_of_maps_map_ops) BPF_MAP_TYPE(BPF_MAP_TYPE_HASH_OF_MAPS, htab_of_maps_map_ops) +#ifdef CONFIG_NET +BPF_MAP_TYPE(BPF_MAP_TYPE_DEVMAP, dev_map_ops) +#endif |