aboutsummaryrefslogtreecommitdiffstats
path: root/tools/lib/bpf/bpf.c
diff options
context:
space:
mode:
authorMartin KaFai Lau <kafai@fb.com>2017-03-22 13:00:35 -0400
committerDavid S. Miller <davem@davemloft.net>2017-03-22 18:45:45 -0400
commitfb30d4b71214aa1811e997f8f753b14b46d5b912 (patch)
treea546eefbd355792aa544c0f220b38bab4493b1aa /tools/lib/bpf/bpf.c
parentbcc6b1b7ebf857a9fe56202e2be3361131588c15 (diff)
bpf: Add tests for map-in-map
Test cases for array of maps and hash of maps. Signed-off-by: Martin KaFai Lau <kafai@fb.com> Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/lib/bpf/bpf.c')
-rw-r--r--tools/lib/bpf/bpf.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/tools/lib/bpf/bpf.c b/tools/lib/bpf/bpf.c
index 207c2eeddab0..9b58d20e8c93 100644
--- a/tools/lib/bpf/bpf.c
+++ b/tools/lib/bpf/bpf.c
@@ -69,6 +69,23 @@ int bpf_create_map(enum bpf_map_type map_type, int key_size,
69 return sys_bpf(BPF_MAP_CREATE, &attr, sizeof(attr)); 69 return sys_bpf(BPF_MAP_CREATE, &attr, sizeof(attr));
70} 70}
71 71
72int bpf_create_map_in_map(enum bpf_map_type map_type, int key_size,
73 int inner_map_fd, int max_entries, __u32 map_flags)
74{
75 union bpf_attr attr;
76
77 memset(&attr, '\0', sizeof(attr));
78
79 attr.map_type = map_type;
80 attr.key_size = key_size;
81 attr.value_size = 4;
82 attr.inner_map_fd = inner_map_fd;
83 attr.max_entries = max_entries;
84 attr.map_flags = map_flags;
85
86 return sys_bpf(BPF_MAP_CREATE, &attr, sizeof(attr));
87}
88
72int bpf_load_program(enum bpf_prog_type type, const struct bpf_insn *insns, 89int bpf_load_program(enum bpf_prog_type type, const struct bpf_insn *insns,
73 size_t insns_cnt, const char *license, 90 size_t insns_cnt, const char *license,
74 __u32 kern_version, char *log_buf, size_t log_buf_sz) 91 __u32 kern_version, char *log_buf, size_t log_buf_sz)