xref: /linux/tools/testing/selftests/bpf/prog_tests/pkt_access.c (revision a1c3be890440a1769ed6f822376a3e3ab0d42994)
1 // SPDX-License-Identifier: GPL-2.0
2 #include <test_progs.h>
3 #include <network_helpers.h>
4 
5 void test_pkt_access(void)
6 {
7 	const char *file = "./test_pkt_access.o";
8 	struct bpf_object *obj;
9 	__u32 duration, retval;
10 	int err, prog_fd;
11 
12 	err = bpf_prog_load(file, BPF_PROG_TYPE_SCHED_CLS, &obj, &prog_fd);
13 	if (CHECK_FAIL(err))
14 		return;
15 
16 	err = bpf_prog_test_run(prog_fd, 100000, &pkt_v4, sizeof(pkt_v4),
17 				NULL, NULL, &retval, &duration);
18 	CHECK(err || retval, "ipv4",
19 	      "err %d errno %d retval %d duration %d\n",
20 	      err, errno, retval, duration);
21 
22 	err = bpf_prog_test_run(prog_fd, 100000, &pkt_v6, sizeof(pkt_v6),
23 				NULL, NULL, &retval, &duration);
24 	CHECK(err || retval, "ipv6",
25 	      "err %d errno %d retval %d duration %d\n",
26 	      err, errno, retval, duration);
27 	bpf_object__close(obj);
28 }
29