summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/bpf/test_obj_id.c
diff options
context:
space:
mode:
authorMartin KaFai Lau <kafai@fb.com>2017-06-05 22:15:53 +0300
committerDavid S. Miller <davem@davemloft.net>2017-06-06 22:41:24 +0300
commit95b9afd3987f91c09151158279e165276a95c597 (patch)
treef71901b7ceeebc924ad0c68184f4cd4f96511c7c /tools/testing/selftests/bpf/test_obj_id.c
parent1e270976908686ec25fb91b8a34145be54137976 (diff)
downloadlinux-95b9afd3987f91c09151158279e165276a95c597.tar.xz
bpf: Test for bpf ID
Add test to exercise the bpf_prog/map id generation, bpf_(prog|map)_get_next_id(), bpf_(prog|map)_get_fd_by_id() and bpf_get_obj_info_by_fd(). Signed-off-by: Martin KaFai Lau <kafai@fb.com> Acked-by: Alexei Starovoitov <ast@fb.com> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/testing/selftests/bpf/test_obj_id.c')
-rw-r--r--tools/testing/selftests/bpf/test_obj_id.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/test_obj_id.c b/tools/testing/selftests/bpf/test_obj_id.c
new file mode 100644
index 000000000000..d8723aaf827a
--- /dev/null
+++ b/tools/testing/selftests/bpf/test_obj_id.c
@@ -0,0 +1,35 @@
+/* Copyright (c) 2017 Facebook
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ */
+#include <stddef.h>
+#include <linux/bpf.h>
+#include <linux/pkt_cls.h>
+#include "bpf_helpers.h"
+
+/* It is a dumb bpf program such that it must have no
+ * issue to be loaded since testing the verifier is
+ * not the focus here.
+ */
+
+int _version SEC("version") = 1;
+
+struct bpf_map_def SEC("maps") test_map_id = {
+ .type = BPF_MAP_TYPE_ARRAY,
+ .key_size = sizeof(__u32),
+ .value_size = sizeof(__u64),
+ .max_entries = 1,
+};
+
+SEC("test_prog_id")
+int test_prog_id(struct __sk_buff *skb)
+{
+ __u32 key = 0;
+ __u64 *value;
+
+ value = bpf_map_lookup_elem(&test_map_id, &key);
+
+ return TC_ACT_OK;
+}