8fffa0e345
Convert almost all SEC("xdp_blah") uses to strict SEC("xdp") to comply with strict libbpf 1.0 logic of exact section name match for XDP program types. There is only one exception, which is only tested through iproute2 and defines multiple XDP programs within the same BPF object. Given iproute2 still works in non-strict libbpf mode and it doesn't have means to specify XDP programs by its name (not section name/title), leave that single file alone for now until iproute2 gains lookup by function/program name. Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Dave Marchevsky <davemarchevsky@fb.com> Link: https://lore.kernel.org/bpf/20210928161946.2512801-3-andrii@kernel.org
23 lines
580 B
C
23 lines
580 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
/* fails to load without expected_attach_type = BPF_XDP_DEVMAP
|
|
* because of access to egress_ifindex
|
|
*/
|
|
#include <linux/bpf.h>
|
|
#include <bpf/bpf_helpers.h>
|
|
|
|
SEC("xdp")
|
|
int xdpdm_devlog(struct xdp_md *ctx)
|
|
{
|
|
char fmt[] = "devmap redirect: dev %u -> dev %u len %u\n";
|
|
void *data_end = (void *)(long)ctx->data_end;
|
|
void *data = (void *)(long)ctx->data;
|
|
unsigned int len = data_end - data;
|
|
|
|
bpf_trace_printk(fmt, sizeof(fmt),
|
|
ctx->ingress_ifindex, ctx->egress_ifindex, len);
|
|
|
|
return XDP_PASS;
|
|
}
|
|
|
|
char _license[] SEC("license") = "GPL";
|