Lines Matching defs:kattr

437 static int bpf_test_finish(const union bpf_attr *kattr,
442 void __user *data_out = u64_to_user_ptr(kattr->test.data_out);
449 if (kattr->test.data_size_out &&
450 copy_size > kattr->test.data_size_out) {
451 copy_size = kattr->test.data_size_out;
646 static void *bpf_test_init(const union bpf_attr *kattr, u32 user_size,
649 void __user *data_in = u64_to_user_ptr(kattr->test.data_in);
672 const union bpf_attr *kattr,
680 if (kattr->test.flags || kattr->test.cpu || kattr->test.batch_size)
737 const union bpf_attr *kattr,
740 void __user *ctx_in = u64_to_user_ptr(kattr->test.ctx_in);
741 __u32 ctx_size_in = kattr->test.ctx_size_in;
743 int cpu = kattr->test.cpu, err = 0;
747 if (kattr->test.data_in || kattr->test.data_out ||
748 kattr->test.ctx_out || kattr->test.duration ||
749 kattr->test.repeat || kattr->test.batch_size)
756 if ((kattr->test.flags & BPF_F_TEST_RUN_ON_CPU) == 0 && cpu != 0)
770 if ((kattr->test.flags & BPF_F_TEST_RUN_ON_CPU) == 0 ||
794 static void *bpf_ctx_init(const union bpf_attr *kattr, u32 max_size)
796 void __user *data_in = u64_to_user_ptr(kattr->test.ctx_in);
797 void __user *data_out = u64_to_user_ptr(kattr->test.ctx_out);
798 u32 size = kattr->test.ctx_size_in;
825 static int bpf_ctx_finish(const union bpf_attr *kattr,
829 void __user *data_out = u64_to_user_ptr(kattr->test.ctx_out);
836 if (copy_size > kattr->test.ctx_size_out) {
837 copy_size = kattr->test.ctx_size_out;
964 int bpf_prog_test_run_skb(struct bpf_prog *prog, const union bpf_attr *kattr,
970 u32 size = kattr->test.data_size_in;
971 u32 repeat = kattr->test.repeat;
980 if (kattr->test.flags || kattr->test.cpu || kattr->test.batch_size)
983 data = bpf_test_init(kattr, kattr->test.data_size_in,
989 ctx = bpf_ctx_init(kattr, sizeof(struct __sk_buff));
1086 ret = bpf_test_finish(kattr, uattr, skb->data, NULL, size, retval,
1089 ret = bpf_ctx_finish(kattr, uattr, ctx,
1158 int bpf_prog_test_run_xdp(struct bpf_prog *prog, const union bpf_attr *kattr,
1161 bool do_live = (kattr->test.flags & BPF_F_TEST_XDP_LIVE_FRAMES);
1163 u32 batch_size = kattr->test.batch_size;
1165 u32 size = kattr->test.data_size_in;
1167 u32 repeat = kattr->test.repeat;
1179 if (kattr->test.flags & ~BPF_F_TEST_XDP_LIVE_FRAMES)
1196 ctx = bpf_ctx_init(kattr, sizeof(struct xdp_md));
1205 (do_live && (kattr->test.data_out || kattr->test.ctx_out)))
1219 data = bpf_test_init(kattr, size, max_data_sz, headroom, tailroom);
1235 if (unlikely(kattr->test.data_size_in > size)) {
1236 void __user *data_in = u64_to_user_ptr(kattr->test.data_in);
1238 while (size < kattr->test.data_size_in) {
1256 data_len = min_t(u32, kattr->test.data_size_in - size,
1287 ret = bpf_test_finish(kattr, uattr, xdp.data_meta, sinfo, size,
1290 ret = bpf_ctx_finish(kattr, uattr, ctx,
1321 const union bpf_attr *kattr,
1325 u32 size = kattr->test.data_size_in;
1327 u32 repeat = kattr->test.repeat;
1336 if (kattr->test.flags || kattr->test.cpu || kattr->test.batch_size)
1342 data = bpf_test_init(kattr, kattr->test.data_size_in, size, 0, 0);
1351 user_ctx = bpf_ctx_init(kattr, sizeof(struct bpf_flow_keys));
1377 ret = bpf_test_finish(kattr, uattr, &flow_keys, NULL,
1380 ret = bpf_ctx_finish(kattr, uattr, user_ctx,
1389 int bpf_prog_test_run_sk_lookup(struct bpf_prog *prog, const union bpf_attr *kattr,
1395 u32 repeat = kattr->test.repeat;
1400 if (kattr->test.flags || kattr->test.cpu || kattr->test.batch_size)
1403 if (kattr->test.data_in || kattr->test.data_size_in || kattr->test.data_out ||
1404 kattr->test.data_size_out)
1410 user_ctx = bpf_ctx_init(kattr, sizeof(*user_ctx));
1479 ret = bpf_test_finish(kattr, uattr, NULL, NULL, 0, retval, duration);
1481 ret = bpf_ctx_finish(kattr, uattr, user_ctx, sizeof(*user_ctx));
1490 const union bpf_attr *kattr,
1493 void __user *ctx_in = u64_to_user_ptr(kattr->test.ctx_in);
1494 __u32 ctx_size_in = kattr->test.ctx_size_in;
1500 if (kattr->test.data_in || kattr->test.data_out ||
1501 kattr->test.ctx_out || kattr->test.duration ||
1502 kattr->test.repeat || kattr->test.flags ||
1503 kattr->test.batch_size)
1588 const union bpf_attr *kattr,
1597 u32 size = kattr->test.data_size_in;
1598 u32 repeat = kattr->test.repeat;
1607 if (kattr->test.flags || kattr->test.cpu || kattr->test.batch_size)
1613 data = bpf_test_init(kattr, kattr->test.data_size_in, size,
1622 user_ctx = bpf_ctx_init(kattr, sizeof(struct nf_hook_state));
1679 ret = bpf_test_finish(kattr, uattr, NULL, NULL, 0, retval, duration);