diff options
author | Daniel Borkmann | 2019-07-05 22:52:26 +0200 |
---|---|---|
committer | Daniel Borkmann | 2019-07-05 22:52:27 +0200 |
commit | e232cb6ff75bbfdae86e01ada24ead7528dbebe4 (patch) | |
tree | dcb5097948742ffc5be049ae008120ec7a18c522 /tools/testing/selftests/bpf/progs/test_xdp.c | |
parent | Merge branch 'bpf-libbpf-link-trace' (diff) | |
parent | selftests/bpf: convert legacy BPF maps to BTF-defined ones (diff) | |
download | kernel-qcow2-linux-e232cb6ff75bbfdae86e01ada24ead7528dbebe4.tar.gz kernel-qcow2-linux-e232cb6ff75bbfdae86e01ada24ead7528dbebe4.tar.xz kernel-qcow2-linux-e232cb6ff75bbfdae86e01ada24ead7528dbebe4.zip |
Merge branch 'bpf-libbpf-int-btf-map'
Andrii Nakryiko says:
====================
This patch set implements an update to how BTF-defined maps are specified. The
change is in how integer attributes, e.g., type, max_entries, map_flags, are
specified: now they are captured as part of map definition struct's BTF type
information (using array dimension), eliminating the need for compile-time
data initialization and keeping all the metadata in one place.
All existing selftests that were using BTF-defined maps are updated, along
with some other selftests, that were switched to new syntax.
v4->v5:
- revert sample_map_ret0.c, which is loaded with iproute2 (kernel test robot);
v3->v4:
- add acks;
- fix int -> uint type in commit message;
v2->v3:
- rename __int into __uint (Yonghong);
v1->v2:
- split bpf_helpers.h change from libbpf change (Song).
====================
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'tools/testing/selftests/bpf/progs/test_xdp.c')
-rw-r--r-- | tools/testing/selftests/bpf/progs/test_xdp.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/tools/testing/selftests/bpf/progs/test_xdp.c b/tools/testing/selftests/bpf/progs/test_xdp.c index ec3d2c1c8cf9..0941c655b07b 100644 --- a/tools/testing/selftests/bpf/progs/test_xdp.c +++ b/tools/testing/selftests/bpf/progs/test_xdp.c @@ -23,24 +23,18 @@ int _version SEC("version") = 1; struct { - __u32 type; - __u32 max_entries; - __u32 *key; - __u64 *value; -} rxcnt SEC(".maps") = { - .type = BPF_MAP_TYPE_PERCPU_ARRAY, - .max_entries = 256, -}; + __uint(type, BPF_MAP_TYPE_PERCPU_ARRAY); + __uint(max_entries, 256); + __type(key, __u32); + __type(value, __u64); +} rxcnt SEC(".maps"); struct { - __u32 type; - __u32 max_entries; - struct vip *key; - struct iptnl_info *value; -} vip2tnl SEC(".maps") = { - .type = BPF_MAP_TYPE_HASH, - .max_entries = MAX_IPTNL_ENTRIES, -}; + __uint(type, BPF_MAP_TYPE_HASH); + __uint(max_entries, MAX_IPTNL_ENTRIES); + __type(key, struct vip); + __type(value, struct iptnl_info); +} vip2tnl SEC(".maps"); static __always_inline void count_tx(__u32 protocol) { |