aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/bpf/flow_dissector_load.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/testing/selftests/bpf/flow_dissector_load.h')
-rw-r--r--tools/testing/selftests/bpf/flow_dissector_load.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/tools/testing/selftests/bpf/flow_dissector_load.h b/tools/testing/selftests/bpf/flow_dissector_load.h
index 41dd6959feb0..eeb48b6fc827 100644
--- a/tools/testing/selftests/bpf/flow_dissector_load.h
+++ b/tools/testing/selftests/bpf/flow_dissector_load.h
@@ -9,10 +9,12 @@ static inline int bpf_flow_load(struct bpf_object **obj,
const char *path,
const char *section_name,
const char *map_name,
- int *prog_fd)
+ const char *keys_map_name,
+ int *prog_fd,
+ int *keys_fd)
{
struct bpf_program *prog, *main_prog;
- struct bpf_map *prog_array;
+ struct bpf_map *prog_array, *keys;
int prog_array_fd;
int ret, fd, i;
@@ -37,6 +39,16 @@ static inline int bpf_flow_load(struct bpf_object **obj,
if (prog_array_fd < 0)
return ret;
+ if (keys_map_name && keys_fd) {
+ keys = bpf_object__find_map_by_name(*obj, keys_map_name);
+ if (!keys)
+ return -1;
+
+ *keys_fd = bpf_map__fd(keys);
+ if (*keys_fd < 0)
+ return -1;
+ }
+
i = 0;
bpf_object__for_each_program(prog, *obj) {
fd = bpf_program__fd(prog);