[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190617192700.2313445-12-andriin@fb.com>
Date: Mon, 17 Jun 2019 12:27:00 -0700
From: Andrii Nakryiko <andriin@...com>
To: <andrii.nakryiko@...il.com>, <ast@...com>, <daniel@...earbox.net>,
<netdev@...r.kernel.org>, <bpf@...r.kernel.org>,
<kernel-team@...com>
CC: Andrii Nakryiko <andriin@...com>
Subject: [PATCH v2 bpf-next 11/11] selftests/bpf: convert remaining selftests to BTF-defined maps
Convert all the rest of selftests that use BPF maps. These are either
maps with integer key/value or special types of maps that don't event
allow BTF type information for key/value.
Signed-off-by: Andrii Nakryiko <andriin@...com>
---
.../selftests/bpf/progs/get_cgroup_id_kern.c | 18 +++--
.../selftests/bpf/progs/sample_map_ret0.c | 18 +++--
.../bpf/progs/sockmap_verdict_prog.c | 36 +++++++---
.../selftests/bpf/progs/test_map_in_map.c | 20 ++++--
.../testing/selftests/bpf/progs/test_obj_id.c | 9 ++-
.../bpf/progs/test_skb_cgroup_id_kern.c | 9 ++-
.../testing/selftests/bpf/progs/test_tc_edt.c | 9 ++-
.../bpf/progs/test_tcp_check_syncookie_kern.c | 9 ++-
.../selftests/bpf/test_queue_stack_map.h | 20 ++++--
.../testing/selftests/bpf/test_sockmap_kern.h | 72 +++++++++++++------
10 files changed, 154 insertions(+), 66 deletions(-)
diff --git a/tools/testing/selftests/bpf/progs/get_cgroup_id_kern.c b/tools/testing/selftests/bpf/progs/get_cgroup_id_kern.c
index 014dba10b8a5..87b202381088 100644
--- a/tools/testing/selftests/bpf/progs/get_cgroup_id_kern.c
+++ b/tools/testing/selftests/bpf/progs/get_cgroup_id_kern.c
@@ -4,17 +4,23 @@
#include <linux/bpf.h>
#include "bpf_helpers.h"
-struct bpf_map_def SEC("maps") cg_ids = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 *key;
+ __u64 *value;
+} cg_ids SEC(".maps") = {
.type = BPF_MAP_TYPE_ARRAY,
- .key_size = sizeof(__u32),
- .value_size = sizeof(__u64),
.max_entries = 1,
};
-struct bpf_map_def SEC("maps") pidmap = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 *key;
+ __u32 *value;
+} pidmap SEC(".maps") = {
.type = BPF_MAP_TYPE_ARRAY,
- .key_size = sizeof(__u32),
- .value_size = sizeof(__u32),
.max_entries = 1,
};
diff --git a/tools/testing/selftests/bpf/progs/sample_map_ret0.c b/tools/testing/selftests/bpf/progs/sample_map_ret0.c
index 0756303676ac..0f4d47cecd4d 100644
--- a/tools/testing/selftests/bpf/progs/sample_map_ret0.c
+++ b/tools/testing/selftests/bpf/progs/sample_map_ret0.c
@@ -2,17 +2,23 @@
#include <linux/bpf.h>
#include "bpf_helpers.h"
-struct bpf_map_def SEC("maps") htab = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 *key;
+ long *value;
+} htab SEC(".maps") = {
.type = BPF_MAP_TYPE_HASH,
- .key_size = sizeof(__u32),
- .value_size = sizeof(long),
.max_entries = 2,
};
-struct bpf_map_def SEC("maps") array = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 *key;
+ long *value;
+} array SEC(".maps") = {
.type = BPF_MAP_TYPE_ARRAY,
- .key_size = sizeof(__u32),
- .value_size = sizeof(long),
.max_entries = 2,
};
diff --git a/tools/testing/selftests/bpf/progs/sockmap_verdict_prog.c b/tools/testing/selftests/bpf/progs/sockmap_verdict_prog.c
index d85c874ef25e..983c4f6e4fad 100644
--- a/tools/testing/selftests/bpf/progs/sockmap_verdict_prog.c
+++ b/tools/testing/selftests/bpf/progs/sockmap_verdict_prog.c
@@ -4,31 +4,49 @@
int _version SEC("version") = 1;
-struct bpf_map_def SEC("maps") sock_map_rx = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 key_size;
+ __u32 value_size;
+} sock_map_rx SEC(".maps") = {
.type = BPF_MAP_TYPE_SOCKMAP,
+ .max_entries = 20,
.key_size = sizeof(int),
.value_size = sizeof(int),
- .max_entries = 20,
};
-struct bpf_map_def SEC("maps") sock_map_tx = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 key_size;
+ __u32 value_size;
+} sock_map_tx SEC(".maps") = {
.type = BPF_MAP_TYPE_SOCKMAP,
+ .max_entries = 20,
.key_size = sizeof(int),
.value_size = sizeof(int),
- .max_entries = 20,
};
-struct bpf_map_def SEC("maps") sock_map_msg = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 key_size;
+ __u32 value_size;
+} sock_map_msg SEC(".maps") = {
.type = BPF_MAP_TYPE_SOCKMAP,
+ .max_entries = 20,
.key_size = sizeof(int),
.value_size = sizeof(int),
- .max_entries = 20,
};
-struct bpf_map_def SEC("maps") sock_map_break = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ int *key;
+ int *value;
+} sock_map_break SEC(".maps") = {
.type = BPF_MAP_TYPE_ARRAY,
- .key_size = sizeof(int),
- .value_size = sizeof(int),
.max_entries = 20,
};
diff --git a/tools/testing/selftests/bpf/progs/test_map_in_map.c b/tools/testing/selftests/bpf/progs/test_map_in_map.c
index 2985f262846e..7404bee7c26e 100644
--- a/tools/testing/selftests/bpf/progs/test_map_in_map.c
+++ b/tools/testing/selftests/bpf/progs/test_map_in_map.c
@@ -5,22 +5,30 @@
#include <linux/types.h>
#include "bpf_helpers.h"
-struct bpf_map_def SEC("maps") mim_array = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 key_size;
+ __u32 value_size;
+} mim_array SEC(".maps") = {
.type = BPF_MAP_TYPE_ARRAY_OF_MAPS,
+ .max_entries = 1,
.key_size = sizeof(int),
/* must be sizeof(__u32) for map in map */
.value_size = sizeof(__u32),
- .max_entries = 1,
- .map_flags = 0,
};
-struct bpf_map_def SEC("maps") mim_hash = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 key_size;
+ __u32 value_size;
+} mim_hash SEC(".maps") = {
.type = BPF_MAP_TYPE_HASH_OF_MAPS,
+ .max_entries = 1,
.key_size = sizeof(int),
/* must be sizeof(__u32) for map in map */
.value_size = sizeof(__u32),
- .max_entries = 1,
- .map_flags = 0,
};
SEC("xdp_mimtest")
diff --git a/tools/testing/selftests/bpf/progs/test_obj_id.c b/tools/testing/selftests/bpf/progs/test_obj_id.c
index 880d2963b472..2b1c2efdeed4 100644
--- a/tools/testing/selftests/bpf/progs/test_obj_id.c
+++ b/tools/testing/selftests/bpf/progs/test_obj_id.c
@@ -16,10 +16,13 @@
int _version SEC("version") = 1;
-struct bpf_map_def SEC("maps") test_map_id = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 *key;
+ __u64 *value;
+} test_map_id SEC(".maps") = {
.type = BPF_MAP_TYPE_ARRAY,
- .key_size = sizeof(__u32),
- .value_size = sizeof(__u64),
.max_entries = 1,
};
diff --git a/tools/testing/selftests/bpf/progs/test_skb_cgroup_id_kern.c b/tools/testing/selftests/bpf/progs/test_skb_cgroup_id_kern.c
index 68cf9829f5a7..af296b876156 100644
--- a/tools/testing/selftests/bpf/progs/test_skb_cgroup_id_kern.c
+++ b/tools/testing/selftests/bpf/progs/test_skb_cgroup_id_kern.c
@@ -10,10 +10,13 @@
#define NUM_CGROUP_LEVELS 4
-struct bpf_map_def SEC("maps") cgroup_ids = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 *key;
+ __u64 *value;
+} cgroup_ids SEC(".maps") = {
.type = BPF_MAP_TYPE_ARRAY,
- .key_size = sizeof(__u32),
- .value_size = sizeof(__u64),
.max_entries = NUM_CGROUP_LEVELS,
};
diff --git a/tools/testing/selftests/bpf/progs/test_tc_edt.c b/tools/testing/selftests/bpf/progs/test_tc_edt.c
index 3af64c470d64..c2781dd78617 100644
--- a/tools/testing/selftests/bpf/progs/test_tc_edt.c
+++ b/tools/testing/selftests/bpf/progs/test_tc_edt.c
@@ -16,10 +16,13 @@
#define THROTTLE_RATE_BPS (5 * 1000 * 1000)
/* flow_key => last_tstamp timestamp used */
-struct bpf_map_def SEC("maps") flow_map = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ uint32_t *key;
+ uint64_t *value;
+} flow_map SEC(".maps") = {
.type = BPF_MAP_TYPE_HASH,
- .key_size = sizeof(uint32_t),
- .value_size = sizeof(uint64_t),
.max_entries = 1,
};
diff --git a/tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c b/tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c
index 1ab095bcacd8..0f1725e25c44 100644
--- a/tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c
+++ b/tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c
@@ -16,10 +16,13 @@
#include "bpf_helpers.h"
#include "bpf_endian.h"
-struct bpf_map_def SEC("maps") results = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 *key;
+ __u64 *value;
+} results SEC(".maps") = {
.type = BPF_MAP_TYPE_ARRAY,
- .key_size = sizeof(__u32),
- .value_size = sizeof(__u64),
.max_entries = 1,
};
diff --git a/tools/testing/selftests/bpf/test_queue_stack_map.h b/tools/testing/selftests/bpf/test_queue_stack_map.h
index 295b9b3bc5c7..f284137a36c4 100644
--- a/tools/testing/selftests/bpf/test_queue_stack_map.h
+++ b/tools/testing/selftests/bpf/test_queue_stack_map.h
@@ -10,20 +10,28 @@
int _version SEC("version") = 1;
-struct bpf_map_def __attribute__ ((section("maps"), used)) map_in = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 key_size;
+ __u32 value_size;
+} map_in SEC(".maps") = {
.type = MAP_TYPE,
+ .max_entries = 32,
.key_size = 0,
.value_size = sizeof(__u32),
- .max_entries = 32,
- .map_flags = 0,
};
-struct bpf_map_def __attribute__ ((section("maps"), used)) map_out = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 key_size;
+ __u32 value_size;
+} map_out SEC(".maps") = {
.type = MAP_TYPE,
+ .max_entries = 32,
.key_size = 0,
.value_size = sizeof(__u32),
- .max_entries = 32,
- .map_flags = 0,
};
SEC("test")
diff --git a/tools/testing/selftests/bpf/test_sockmap_kern.h b/tools/testing/selftests/bpf/test_sockmap_kern.h
index 4e7d3da21357..70b9236cedb0 100644
--- a/tools/testing/selftests/bpf/test_sockmap_kern.h
+++ b/tools/testing/selftests/bpf/test_sockmap_kern.h
@@ -28,59 +28,89 @@
* are established and verdicts are decided.
*/
-struct bpf_map_def SEC("maps") sock_map = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 key_size;
+ __u32 value_size;
+} sock_map SEC(".maps") = {
.type = TEST_MAP_TYPE,
+ .max_entries = 20,
.key_size = sizeof(int),
.value_size = sizeof(int),
- .max_entries = 20,
};
-struct bpf_map_def SEC("maps") sock_map_txmsg = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 key_size;
+ __u32 value_size;
+} sock_map_txmsg SEC(".maps") = {
.type = TEST_MAP_TYPE,
+ .max_entries = 20,
.key_size = sizeof(int),
.value_size = sizeof(int),
- .max_entries = 20,
};
-struct bpf_map_def SEC("maps") sock_map_redir = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ __u32 key_size;
+ __u32 value_size;
+} sock_map_redir SEC(".maps") = {
.type = TEST_MAP_TYPE,
+ .max_entries = 20,
.key_size = sizeof(int),
.value_size = sizeof(int),
- .max_entries = 20,
};
-struct bpf_map_def SEC("maps") sock_apply_bytes = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ int *key;
+ int *value;
+} sock_apply_bytes SEC(".maps") = {
.type = BPF_MAP_TYPE_ARRAY,
- .key_size = sizeof(int),
- .value_size = sizeof(int),
.max_entries = 1
};
-struct bpf_map_def SEC("maps") sock_cork_bytes = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ int *key;
+ int *value;
+} sock_cork_bytes SEC(".maps") = {
.type = BPF_MAP_TYPE_ARRAY,
- .key_size = sizeof(int),
- .value_size = sizeof(int),
.max_entries = 1
};
-struct bpf_map_def SEC("maps") sock_bytes = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ int *key;
+ int *value;
+} sock_bytes SEC(".maps") = {
.type = BPF_MAP_TYPE_ARRAY,
- .key_size = sizeof(int),
- .value_size = sizeof(int),
.max_entries = 6
};
-struct bpf_map_def SEC("maps") sock_redir_flags = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ int *key;
+ int *value;
+} sock_redir_flags SEC(".maps") = {
.type = BPF_MAP_TYPE_ARRAY,
- .key_size = sizeof(int),
- .value_size = sizeof(int),
.max_entries = 1
};
-struct bpf_map_def SEC("maps") sock_skb_opts = {
+struct {
+ __u32 type;
+ __u32 max_entries;
+ int *key;
+ int *value;
+} sock_skb_opts SEC(".maps") = {
.type = BPF_MAP_TYPE_ARRAY,
- .key_size = sizeof(int),
- .value_size = sizeof(int),
.max_entries = 1
};
--
2.17.1
Powered by blists - more mailing lists