Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

libbpf: Deprecate xdp_cpumap, xdp_devmap and classifier sec definitions

Deprecate xdp_cpumap, xdp_devmap and classifier sec definitions.
Introduce xdp/devmap and xdp/cpumap definitions according to the
standard for SEC("") in libbpf:
- prog_type.prog_flags/attach_place

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/5c7bd9426b3ce6a31d9a4b1f97eb299e1467fc52.1643727185.git.lorenzo@kernel.org

authored by

Lorenzo Bianconi and committed by
Andrii Nakryiko
4a4d4cee 5ee32ea2

+11 -3
+11 -3
tools/lib/bpf/libbpf.c
··· 237 237 SEC_SLOPPY_PFX = 16, 238 238 /* BPF program support non-linear XDP buffer */ 239 239 SEC_XDP_FRAGS = 32, 240 + /* deprecated sec definitions not supposed to be used */ 241 + SEC_DEPRECATED = 64, 240 242 }; 241 243 242 244 struct bpf_sec_def { ··· 6577 6575 if (prog->type == BPF_PROG_TYPE_XDP && (def & SEC_XDP_FRAGS)) 6578 6576 opts->prog_flags |= BPF_F_XDP_HAS_FRAGS; 6579 6577 6578 + if (def & SEC_DEPRECATED) 6579 + pr_warn("SEC(\"%s\") is deprecated, please see https://github.com/libbpf/libbpf/wiki/Libbpf-1.0-migration-guide#bpf-program-sec-annotation-deprecations for details\n", 6580 + prog->sec_name); 6581 + 6580 6582 if ((prog->type == BPF_PROG_TYPE_TRACING || 6581 6583 prog->type == BPF_PROG_TYPE_LSM || 6582 6584 prog->type == BPF_PROG_TYPE_EXT) && !prog->attach_btf_id) { ··· 8602 8596 SEC_DEF("kretprobe/", KPROBE, 0, SEC_NONE, attach_kprobe), 8603 8597 SEC_DEF("uretprobe/", KPROBE, 0, SEC_NONE), 8604 8598 SEC_DEF("tc", SCHED_CLS, 0, SEC_NONE), 8605 - SEC_DEF("classifier", SCHED_CLS, 0, SEC_NONE | SEC_SLOPPY_PFX), 8599 + SEC_DEF("classifier", SCHED_CLS, 0, SEC_NONE | SEC_SLOPPY_PFX | SEC_DEPRECATED), 8606 8600 SEC_DEF("action", SCHED_ACT, 0, SEC_NONE | SEC_SLOPPY_PFX), 8607 8601 SEC_DEF("tracepoint/", TRACEPOINT, 0, SEC_NONE, attach_tp), 8608 8602 SEC_DEF("tp/", TRACEPOINT, 0, SEC_NONE, attach_tp), ··· 8624 8618 SEC_DEF("iter.s/", TRACING, BPF_TRACE_ITER, SEC_ATTACH_BTF | SEC_SLEEPABLE, attach_iter), 8625 8619 SEC_DEF("syscall", SYSCALL, 0, SEC_SLEEPABLE), 8626 8620 SEC_DEF("xdp.frags/devmap", XDP, BPF_XDP_DEVMAP, SEC_XDP_FRAGS), 8627 - SEC_DEF("xdp_devmap/", XDP, BPF_XDP_DEVMAP, SEC_ATTACHABLE), 8621 + SEC_DEF("xdp/devmap", XDP, BPF_XDP_DEVMAP, SEC_ATTACHABLE), 8622 + SEC_DEF("xdp_devmap/", XDP, BPF_XDP_DEVMAP, SEC_ATTACHABLE | SEC_DEPRECATED), 8628 8623 SEC_DEF("xdp.frags/cpumap", XDP, BPF_XDP_CPUMAP, SEC_XDP_FRAGS), 8629 - SEC_DEF("xdp_cpumap/", XDP, BPF_XDP_CPUMAP, SEC_ATTACHABLE), 8624 + SEC_DEF("xdp/cpumap", XDP, BPF_XDP_CPUMAP, SEC_ATTACHABLE), 8625 + SEC_DEF("xdp_cpumap/", XDP, BPF_XDP_CPUMAP, SEC_ATTACHABLE | SEC_DEPRECATED), 8630 8626 SEC_DEF("xdp.frags", XDP, BPF_XDP, SEC_XDP_FRAGS), 8631 8627 SEC_DEF("xdp", XDP, BPF_XDP, SEC_ATTACHABLE_OPT | SEC_SLOPPY_PFX), 8632 8628 SEC_DEF("perf_event", PERF_EVENT, 0, SEC_NONE | SEC_SLOPPY_PFX),