aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Ahern <dsahern@kernel.org>2022-02-06 18:00:32 -0700
committerDavid Ahern <dsahern@kernel.org>2022-03-07 08:52:08 -0700
commitd9977eafa719c029fba8c14de5b46dc1c851c68f (patch)
treefa551bc8fc6892f61d5f311602c96a4e6bf40fec
parentac4e0913beb117f9b1416ed18fef4283056cd659 (diff)
downloadiproute2-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.c24
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,