diff options
Diffstat (limited to 'samples/bpf/test_map_in_map_user.c')
| -rw-r--r-- | samples/bpf/test_map_in_map_user.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/samples/bpf/test_map_in_map_user.c b/samples/bpf/test_map_in_map_user.c index f62fdc2bd428..1aca18539d8d 100644 --- a/samples/bpf/test_map_in_map_user.c +++ b/samples/bpf/test_map_in_map_user.c | |||
| @@ -32,6 +32,20 @@ static const char * const test_names[] = { | |||
| 32 | 32 | ||
| 33 | #define NR_TESTS (sizeof(test_names) / sizeof(*test_names)) | 33 | #define NR_TESTS (sizeof(test_names) / sizeof(*test_names)) |
| 34 | 34 | ||
| 35 | static void check_map_id(int inner_map_fd, int map_in_map_fd, uint32_t key) | ||
| 36 | { | ||
| 37 | struct bpf_map_info info = {}; | ||
| 38 | uint32_t info_len = sizeof(info); | ||
| 39 | int ret, id; | ||
| 40 | |||
| 41 | ret = bpf_obj_get_info_by_fd(inner_map_fd, &info, &info_len); | ||
| 42 | assert(!ret); | ||
| 43 | |||
| 44 | ret = bpf_map_lookup_elem(map_in_map_fd, &key, &id); | ||
| 45 | assert(!ret); | ||
| 46 | assert(id == info.id); | ||
| 47 | } | ||
| 48 | |||
| 35 | static void populate_map(uint32_t port_key, int magic_result) | 49 | static void populate_map(uint32_t port_key, int magic_result) |
| 36 | { | 50 | { |
| 37 | int ret; | 51 | int ret; |
| @@ -45,12 +59,15 @@ static void populate_map(uint32_t port_key, int magic_result) | |||
| 45 | 59 | ||
| 46 | ret = bpf_map_update_elem(A_OF_PORT_A, &port_key, &PORT_A, BPF_ANY); | 60 | ret = bpf_map_update_elem(A_OF_PORT_A, &port_key, &PORT_A, BPF_ANY); |
| 47 | assert(!ret); | 61 | assert(!ret); |
| 62 | check_map_id(PORT_A, A_OF_PORT_A, port_key); | ||
| 48 | 63 | ||
| 49 | ret = bpf_map_update_elem(H_OF_PORT_A, &port_key, &PORT_A, BPF_NOEXIST); | 64 | ret = bpf_map_update_elem(H_OF_PORT_A, &port_key, &PORT_A, BPF_NOEXIST); |
| 50 | assert(!ret); | 65 | assert(!ret); |
| 66 | check_map_id(PORT_A, H_OF_PORT_A, port_key); | ||
| 51 | 67 | ||
| 52 | ret = bpf_map_update_elem(H_OF_PORT_H, &port_key, &PORT_H, BPF_NOEXIST); | 68 | ret = bpf_map_update_elem(H_OF_PORT_H, &port_key, &PORT_H, BPF_NOEXIST); |
| 53 | assert(!ret); | 69 | assert(!ret); |
| 70 | check_map_id(PORT_H, H_OF_PORT_H, port_key); | ||
| 54 | } | 71 | } |
| 55 | 72 | ||
| 56 | static void test_map_in_map(void) | 73 | static void test_map_in_map(void) |
