tools: Add definitions for devmap_hash map type
This adds selftest and bpftool updates for the devmap_hash map type. Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com> Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
e42346192c
commit
1375dc4a45
@ -46,7 +46,7 @@ MAP COMMANDS
|
|||||||
| *TYPE* := { **hash** | **array** | **prog_array** | **perf_event_array** | **percpu_hash**
|
| *TYPE* := { **hash** | **array** | **prog_array** | **perf_event_array** | **percpu_hash**
|
||||||
| | **percpu_array** | **stack_trace** | **cgroup_array** | **lru_hash**
|
| | **percpu_array** | **stack_trace** | **cgroup_array** | **lru_hash**
|
||||||
| | **lru_percpu_hash** | **lpm_trie** | **array_of_maps** | **hash_of_maps**
|
| | **lru_percpu_hash** | **lpm_trie** | **array_of_maps** | **hash_of_maps**
|
||||||
| | **devmap** | **sockmap** | **cpumap** | **xskmap** | **sockhash**
|
| | **devmap** | **devmap_hash** | **sockmap** | **cpumap** | **xskmap** | **sockhash**
|
||||||
| | **cgroup_storage** | **reuseport_sockarray** | **percpu_cgroup_storage**
|
| | **cgroup_storage** | **reuseport_sockarray** | **percpu_cgroup_storage**
|
||||||
| | **queue** | **stack** }
|
| | **queue** | **stack** }
|
||||||
|
|
||||||
|
@ -489,8 +489,8 @@ _bpftool()
|
|||||||
perf_event_array percpu_hash percpu_array \
|
perf_event_array percpu_hash percpu_array \
|
||||||
stack_trace cgroup_array lru_hash \
|
stack_trace cgroup_array lru_hash \
|
||||||
lru_percpu_hash lpm_trie array_of_maps \
|
lru_percpu_hash lpm_trie array_of_maps \
|
||||||
hash_of_maps devmap sockmap cpumap xskmap \
|
hash_of_maps devmap devmap_hash sockmap cpumap \
|
||||||
sockhash cgroup_storage reuseport_sockarray \
|
xskmap sockhash cgroup_storage reuseport_sockarray \
|
||||||
percpu_cgroup_storage queue stack' -- \
|
percpu_cgroup_storage queue stack' -- \
|
||||||
"$cur" ) )
|
"$cur" ) )
|
||||||
return 0
|
return 0
|
||||||
|
@ -37,6 +37,7 @@ const char * const map_type_name[] = {
|
|||||||
[BPF_MAP_TYPE_ARRAY_OF_MAPS] = "array_of_maps",
|
[BPF_MAP_TYPE_ARRAY_OF_MAPS] = "array_of_maps",
|
||||||
[BPF_MAP_TYPE_HASH_OF_MAPS] = "hash_of_maps",
|
[BPF_MAP_TYPE_HASH_OF_MAPS] = "hash_of_maps",
|
||||||
[BPF_MAP_TYPE_DEVMAP] = "devmap",
|
[BPF_MAP_TYPE_DEVMAP] = "devmap",
|
||||||
|
[BPF_MAP_TYPE_DEVMAP_HASH] = "devmap_hash",
|
||||||
[BPF_MAP_TYPE_SOCKMAP] = "sockmap",
|
[BPF_MAP_TYPE_SOCKMAP] = "sockmap",
|
||||||
[BPF_MAP_TYPE_CPUMAP] = "cpumap",
|
[BPF_MAP_TYPE_CPUMAP] = "cpumap",
|
||||||
[BPF_MAP_TYPE_XSKMAP] = "xskmap",
|
[BPF_MAP_TYPE_XSKMAP] = "xskmap",
|
||||||
@ -1271,7 +1272,7 @@ static int do_help(int argc, char **argv)
|
|||||||
" TYPE := { hash | array | prog_array | perf_event_array | percpu_hash |\n"
|
" TYPE := { hash | array | prog_array | perf_event_array | percpu_hash |\n"
|
||||||
" percpu_array | stack_trace | cgroup_array | lru_hash |\n"
|
" percpu_array | stack_trace | cgroup_array | lru_hash |\n"
|
||||||
" lru_percpu_hash | lpm_trie | array_of_maps | hash_of_maps |\n"
|
" lru_percpu_hash | lpm_trie | array_of_maps | hash_of_maps |\n"
|
||||||
" devmap | sockmap | cpumap | xskmap | sockhash |\n"
|
" devmap | devmap_hash | sockmap | cpumap | xskmap | sockhash |\n"
|
||||||
" cgroup_storage | reuseport_sockarray | percpu_cgroup_storage }\n"
|
" cgroup_storage | reuseport_sockarray | percpu_cgroup_storage }\n"
|
||||||
" " HELP_SPEC_OPTIONS "\n"
|
" " HELP_SPEC_OPTIONS "\n"
|
||||||
"",
|
"",
|
||||||
|
@ -508,6 +508,21 @@ static void test_devmap(unsigned int task, void *data)
|
|||||||
close(fd);
|
close(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_devmap_hash(unsigned int task, void *data)
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
__u32 key, value;
|
||||||
|
|
||||||
|
fd = bpf_create_map(BPF_MAP_TYPE_DEVMAP_HASH, sizeof(key), sizeof(value),
|
||||||
|
2, 0);
|
||||||
|
if (fd < 0) {
|
||||||
|
printf("Failed to create devmap_hash '%s'!\n", strerror(errno));
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
close(fd);
|
||||||
|
}
|
||||||
|
|
||||||
static void test_queuemap(unsigned int task, void *data)
|
static void test_queuemap(unsigned int task, void *data)
|
||||||
{
|
{
|
||||||
const int MAP_SIZE = 32;
|
const int MAP_SIZE = 32;
|
||||||
@ -1684,6 +1699,7 @@ static void run_all_tests(void)
|
|||||||
test_arraymap_percpu_many_keys();
|
test_arraymap_percpu_many_keys();
|
||||||
|
|
||||||
test_devmap(0, NULL);
|
test_devmap(0, NULL);
|
||||||
|
test_devmap_hash(0, NULL);
|
||||||
test_sockmap(0, NULL);
|
test_sockmap(0, NULL);
|
||||||
|
|
||||||
test_map_large();
|
test_map_large();
|
||||||
|
Loading…
Reference in New Issue
Block a user