Thread (27 messages) 27 messages, 8 authors, 2022-09-07

Re: [PATCH nf-next] netfilter: nf_tables: add ebpf expression

From: Alexei Starovoitov <hidden>
Date: 2022-09-02 17:06:45
Also in: bpf, netfilter-devel

On Thu, Sep 1, 2022 at 3:14 AM Florian Westphal [off-list ref] wrote:
Daniel Borkmann [off-list ref] wrote:
quoted
On 8/31/22 7:26 PM, Alexei Starovoitov wrote:
quoted
On Wed, Aug 31, 2022 at 8:53 AM Florian Westphal [off-list ref] wrote:
As a minimum we shouldn't step on the same rakes.
xt_ebpf would be the same dead code as xt_bpf.
+1, and on top, the user experience will just be horrible. :(
Compared to what?
quoted
quoted
quoted
If you are open to BPF_PROG_TYPE_NETFILTER I can go that route
as well, raw bpf program attachment via NF_HOOK and the bpf dispatcher,
but it will take significantly longer to get there.

It involves reviving
https://lore.kernel.org/netfilter-devel/20211014121046.29329-1-fw@strlen.de/ (local)
I missed it earlier. What is the end goal ?
Optimize nft run-time with on the fly generation of bpf byte code ?
Or rather to provide a pendant to nft given existence of xt_bpf, and the
latter will be removed at some point? (If so, can't we just deprecate the
old xt_bpf?)
See my reply to Alexey, immediate goal was to get rid of the indirect
calls by providing a tailored/jitted equivalent of nf_hook_slow().

The next step could be to allow implementation of netfilter hooks
(i.e., kernel modules that call nf_register_net_hook()) in bpf
but AFAIU it requires addition of BPF_PROG_TYPE_NETFILTER etc.
We were adding new prog and maps types in the past.
Now new features are being added differently.
All of the networking either works with sk_buff-s or xdp frames.
We try hard not to add any new uapi helpers.
Everything is moving to kfuncs.
Other sub-systems should be able to use bpf without touching
the bpf core. See hid-bpf as an example.
It needs several verifier improvements, but doesn't need
new prog types, helpers, etc.
After that, yes, one could think about how to jit nft_do_chain() and
all the rest of the nft machinery.
Sounds like a ton of work. All that just to accelerate nft a bit?
I think there are more impactful projects to work on.
For example, accelerating classic iptables with bpf would immediately
help a bunch of users.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help