Files
linux-cix/include/uapi/linux
Florian Westphal 84601d6ee6 bpf: add bpf_link support for BPF_NETFILTER programs
Add bpf_link support skeleton.  To keep this reviewable, no bpf program
can be invoked yet, if a program is attached only a c-stub is called and
not the actual bpf program.

Defaults to 'y' if both netfilter and bpf syscall are enabled in kconfig.

Uapi example usage:
	union bpf_attr attr = { };

	attr.link_create.prog_fd = progfd;
	attr.link_create.attach_type = 0; /* unused */
	attr.link_create.netfilter.pf = PF_INET;
	attr.link_create.netfilter.hooknum = NF_INET_LOCAL_IN;
	attr.link_create.netfilter.priority = -128;

	err = bpf(BPF_LINK_CREATE, &attr, sizeof(attr));

... this would attach progfd to ipv4:input hook.

Such hook gets removed automatically if the calling program exits.

BPF_NETFILTER program invocation is added in followup change.

NF_HOOK_OP_BPF enum will eventually be read from nfnetlink_hook, it
allows to tell userspace which program is attached at the given hook
when user runs 'nft hook list' command rather than just the priority
and not-very-helpful 'this hook runs a bpf prog but I can't tell which
one'.

Will also be used to disallow registration of two bpf programs with
same priority in a followup patch.

v4: arm32 cmpxchg only supports 32bit operand
    s/prio/priority/
v3: restrict prog attachment to ip/ip6 for now, lets lift restrictions if
    more use cases pop up (arptables, ebtables, netdev ingress/egress etc).

Signed-off-by: Florian Westphal <fw@strlen.de>
Link: https://lore.kernel.org/r/20230421170300.24115-2-fw@strlen.de
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2023-04-21 11:34:14 -07:00
..
2022-09-15 09:08:09 +02:00
2022-08-11 10:31:19 -07:00
2023-02-10 17:54:45 -08:00
2023-01-20 09:33:22 +00:00
2022-08-23 14:54:54 -05:00
2023-01-18 17:12:37 -08:00
2023-03-16 21:20:32 -07:00
2022-08-10 13:49:50 +01:00
2023-02-16 13:50:50 +01:00
2022-09-20 09:13:38 +02:00
2022-10-19 09:01:44 +02:00
2022-12-01 20:06:06 -08:00
2023-03-16 21:20:32 -07:00
2022-09-07 16:46:03 +02:00
2022-09-20 09:13:38 +02:00
2023-01-04 14:44:13 -07:00
2023-01-26 10:52:18 +01:00
2022-11-17 11:04:23 -08:00
2022-09-27 17:29:09 -07:00
2023-02-20 19:26:56 -05:00
2022-12-05 10:30:47 +01:00