1b1b53d41SAndrey Ignatov // SPDX-License-Identifier: GPL-2.0
2b1b53d41SAndrey Ignatov // Copyright (c) 2020 Facebook
3b1b53d41SAndrey Ignatov
4b1b53d41SAndrey Ignatov #include <test_progs.h>
5b1b53d41SAndrey Ignatov #include <network_helpers.h>
6b1b53d41SAndrey Ignatov
7650c9dbdSAlexei Starovoitov #include "map_ptr_kern.lskel.h"
8b1b53d41SAndrey Ignatov
test_map_ptr(void)9b1b53d41SAndrey Ignatov void test_map_ptr(void)
10b1b53d41SAndrey Ignatov {
11650c9dbdSAlexei Starovoitov struct map_ptr_kern_lskel *skel;
12b1b53d41SAndrey Ignatov char buf[128];
13b1b53d41SAndrey Ignatov int err;
147a85e4dfSYauheni Kaliuta int page_size = getpagesize();
15*04fcb5f9SDelyan Kratunov LIBBPF_OPTS(bpf_test_run_opts, topts,
16*04fcb5f9SDelyan Kratunov .data_in = &pkt_v4,
17*04fcb5f9SDelyan Kratunov .data_size_in = sizeof(pkt_v4),
18*04fcb5f9SDelyan Kratunov .data_out = buf,
19*04fcb5f9SDelyan Kratunov .data_size_out = sizeof(buf),
20*04fcb5f9SDelyan Kratunov .repeat = 1,
21*04fcb5f9SDelyan Kratunov );
22b1b53d41SAndrey Ignatov
23650c9dbdSAlexei Starovoitov skel = map_ptr_kern_lskel__open();
247a85e4dfSYauheni Kaliuta if (!ASSERT_OK_PTR(skel, "skel_open"))
25b1b53d41SAndrey Ignatov return;
26b1b53d41SAndrey Ignatov
27650c9dbdSAlexei Starovoitov skel->maps.m_ringbuf.max_entries = page_size;
287a85e4dfSYauheni Kaliuta
29650c9dbdSAlexei Starovoitov err = map_ptr_kern_lskel__load(skel);
307a85e4dfSYauheni Kaliuta if (!ASSERT_OK(err, "skel_load"))
317a85e4dfSYauheni Kaliuta goto cleanup;
327a85e4dfSYauheni Kaliuta
337a85e4dfSYauheni Kaliuta skel->bss->page_size = page_size;
347a85e4dfSYauheni Kaliuta
35*04fcb5f9SDelyan Kratunov err = bpf_prog_test_run_opts(skel->progs.cg_skb.prog_fd, &topts);
36b1b53d41SAndrey Ignatov
37*04fcb5f9SDelyan Kratunov if (!ASSERT_OK(err, "test_run"))
38b1b53d41SAndrey Ignatov goto cleanup;
39b1b53d41SAndrey Ignatov
40*04fcb5f9SDelyan Kratunov if (!ASSERT_NEQ(topts.retval, 0, "test_run retval"))
41b1b53d41SAndrey Ignatov goto cleanup;
42b1b53d41SAndrey Ignatov
43b1b53d41SAndrey Ignatov cleanup:
44650c9dbdSAlexei Starovoitov map_ptr_kern_lskel__destroy(skel);
45b1b53d41SAndrey Ignatov }
46