BPF_FLOW_DISSECTOR
case BPF_FLOW_DISSECTOR:
case BPF_FLOW_DISSECTOR:
case BPF_FLOW_DISSECTOR:
err = bpf_prog_query(fd, BPF_FLOW_DISSECTOR, 0,
if (*attach_type == BPF_FLOW_DISSECTOR) {
[BPF_FLOW_DISSECTOR] = true,
[BPF_FLOW_DISSECTOR] = "flow_dissector",
SEC_DEF("flow_dissector", FLOW_DISSECTOR, BPF_FLOW_DISSECTOR, SEC_ATTACHABLE_OPT),
ret = bpf_prog_attach(prog_fd, 0 /* Ignore */, BPF_FLOW_DISSECTOR, 0);
ret = bpf_prog_detach(0, BPF_FLOW_DISSECTOR);
err = bpf_prog_attach(prog_fd, 0, BPF_FLOW_DISSECTOR, 0);
err = bpf_prog_attach(prog_fd, 0, BPF_FLOW_DISSECTOR, 0);
bpf_prog_detach2(prog_fd, 0, BPF_FLOW_DISSECTOR);
bpf_prog_detach2(prog_fd, 0, BPF_FLOW_DISSECTOR);
err = bpf_prog_attach(prog_fd, 0, BPF_FLOW_DISSECTOR, 0);
err = bpf_prog_attach(prog_fd, 0, BPF_FLOW_DISSECTOR, 0);
bpf_prog_detach2(prog_fd, 0, BPF_FLOW_DISSECTOR);
bpf_prog_detach2(prog_fd, 0, BPF_FLOW_DISSECTOR);
err = bpf_prog_attach(prog_fd, 0, BPF_FLOW_DISSECTOR, 0);
err = bpf_prog_detach2(prog_fd, 0, BPF_FLOW_DISSECTOR);
err = bpf_prog_attach(main_prog_fd, 0, BPF_FLOW_DISSECTOR, 0);
bpf_prog_detach2(prog_fd, 0, BPF_FLOW_DISSECTOR);
err = bpf_prog_attach(prog2, 0, BPF_FLOW_DISSECTOR, 0);
err = bpf_prog_attach(prog2, 0, BPF_FLOW_DISSECTOR, 0);
err = bpf_prog_detach2(prog2, 0, BPF_FLOW_DISSECTOR);
link1 = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &opts);
link2 = bpf_link_create(prog2, netns, BPF_FLOW_DISSECTOR, &opts);
err = bpf_prog_attach(prog1, 0, BPF_FLOW_DISSECTOR, 0);
link = bpf_link_create(prog2, netns, BPF_FLOW_DISSECTOR, &opts);
err = bpf_prog_detach2(prog1, 0, BPF_FLOW_DISSECTOR);
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &opts);
err = bpf_prog_attach(prog2, 0, BPF_FLOW_DISSECTOR, 0);
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &opts);
err = bpf_prog_detach2(prog1, 0, BPF_FLOW_DISSECTOR);
err = bpf_prog_attach(prog1, 0, BPF_FLOW_DISSECTOR, 0);
err = bpf_prog_detach2(prog1, 0, BPF_FLOW_DISSECTOR);
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &opts);
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &create_opts);
err = bpf_prog_query(netns, BPF_FLOW_DISSECTOR, 0, NULL,
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &create_opts);
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &create_opts);
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &create_opts);
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &create_opts);
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &create_opts);
link = bpf_link_create(prog1, netns, BPF_FLOW_DISSECTOR, &create_opts);
CHECK_FAIL(info.netns.attach_type != BPF_FLOW_DISSECTOR);
CHECK_FAIL(info.netns.attach_type != BPF_FLOW_DISSECTOR);
CHECK_FAIL(info.netns.attach_type != BPF_FLOW_DISSECTOR);
err = bpf_prog_attach(prog1, 0, BPF_FLOW_DISSECTOR, 0);
{0, BPF_PROG_TYPE_FLOW_DISSECTOR, BPF_FLOW_DISSECTOR},
{0, BPF_FLOW_DISSECTOR},