tools: bpftool: add map create command
Add a way of creating maps from user space. The command takes as parameters most of the attributes of the map creation system call command. After map is created its pinned to bpffs. This makes it possible to easily and dynamically (without rebuilding programs) test various corner cases related to map creation. Map type names are taken from bpftool's array used for printing. In general these days we try to make use of libbpf type names, but there are no map type names in libbpf as of today. As with most features I add the motivation is testing (offloads) :) Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:

committed by
Alexei Starovoitov

parent
2f1d774f7d
commit
0b592b5a01
@@ -618,3 +618,24 @@ void print_dev_json(__u32 ifindex, __u64 ns_dev, __u64 ns_inode)
|
||||
jsonw_string_field(json_wtr, "ifname", name);
|
||||
jsonw_end_object(json_wtr);
|
||||
}
|
||||
|
||||
int parse_u32_arg(int *argc, char ***argv, __u32 *val, const char *what)
|
||||
{
|
||||
char *endptr;
|
||||
|
||||
NEXT_ARGP();
|
||||
|
||||
if (*val) {
|
||||
p_err("%s already specified", what);
|
||||
return -1;
|
||||
}
|
||||
|
||||
*val = strtoul(**argv, &endptr, 0);
|
||||
if (*endptr) {
|
||||
p_err("can't parse %s as %s", **argv, what);
|
||||
return -1;
|
||||
}
|
||||
NEXT_ARGP();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user