diff options
author | David Ahern <dsahern@kernel.org> | 2022-02-06 18:00:32 -0700 |
---|---|---|
committer | David Ahern <dsahern@kernel.org> | 2022-03-07 08:52:08 -0700 |
commit | d9977eafa719c029fba8c14de5b46dc1c851c68f (patch) | |
tree | fa551bc8fc6892f61d5f311602c96a4e6bf40fec | |
parent | ac4e0913beb117f9b1416ed18fef4283056cd659 (diff) | |
download | iproute2-d9977eafa719c029fba8c14de5b46dc1c851c68f.tar.gz |
bpf: Remove use of bpf_create_map_xattr
bpf_create_map_xattr is deprecated in v0.7 in favor of bpf_map_create.
bpf_map_create and its bpf_map_create_opts are not available across the
range of v0.1 and up versions of libbpf, so change create_map to use
the bpf syscall directly.
Signed-off-by: David Ahern <dsahern@kernel.org>
-rw-r--r-- | lib/bpf_libbpf.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/lib/bpf_libbpf.c b/lib/bpf_libbpf.c index 921716aec..f4f98caa1 100644 --- a/lib/bpf_libbpf.c +++ b/lib/bpf_libbpf.c @@ -54,18 +54,18 @@ static const char *get_bpf_program__section_name(const struct bpf_program *prog) static int create_map(const char *name, struct bpf_elf_map *map, __u32 ifindex, int inner_fd) { - struct bpf_create_map_attr map_attr = {}; - - map_attr.name = name; - map_attr.map_type = map->type; - map_attr.map_flags = map->flags; - map_attr.key_size = map->size_key; - map_attr.value_size = map->size_value; - map_attr.max_entries = map->max_elem; - map_attr.map_ifindex = ifindex; - map_attr.inner_map_fd = inner_fd; - - return bpf_create_map_xattr(&map_attr); + union bpf_attr attr = {}; + + attr.map_type = map->type; + strlcpy(attr.map_name, name, sizeof(attr.map_name)); + attr.map_flags = map->flags; + attr.key_size = map->size_key; + attr.value_size = map->size_value; + attr.max_entries = map->max_elem; + attr.map_ifindex = ifindex; + attr.inner_map_fd = inner_fd; + + return bpf(BPF_MAP_CREATE, &attr, sizeof(attr)); } static int create_map_in_map(struct bpf_object *obj, struct bpf_map *map, |