All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pablo Neira Ayuso <pablo@netfilter.org>
To: "Toke Høiland-Jørgensen" <toke@redhat.com>
Cc: Kumar Kartikeya Dwivedi <memxor@gmail.com>,
	bpf@vger.kernel.org, Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Andrii Nakryiko <andrii@kernel.org>,
	Martin KaFai Lau <kafai@fb.com>, Song Liu <songliubraving@fb.com>,
	Yonghong Song <yhs@fb.com>,
	John Fastabend <john.fastabend@gmail.com>,
	Maxim Mikityanskiy <maximmi@nvidia.com>,
	Florian Westphal <fw@strlen.de>,
	Jesper Dangaard Brouer <brouer@redhat.com>,
	netdev@vger.kernel.org, netfilter-devel@vger.kernel.org
Subject: Re: [PATCH bpf-next v3 7/9] net/netfilter: Add unstable CT lookup helpers for XDP and TC-BPF
Date: Thu, 16 Dec 2021 00:49:59 +0100	[thread overview]
Message-ID: <Ybp/J5KXn0hLT4DZ@salvia> (raw)
In-Reply-To: <87tufcyz72.fsf@toke.dk>

On Mon, Dec 13, 2021 at 10:25:37PM +0100, Toke Høiland-Jørgensen wrote:
> Pablo Neira Ayuso <pablo@netfilter.org> writes:
> 
> > On Sat, Dec 11, 2021 at 07:35:58PM +0100, Toke Høiland-Jørgensen wrote:
> >> Pablo Neira Ayuso <pablo@netfilter.org> writes:
> >> 
> >> > On Fri, Dec 10, 2021 at 09:01:29PM +0530, Kumar Kartikeya Dwivedi wrote:
> >> >> On Fri, Dec 10, 2021 at 08:39:14PM IST, Pablo Neira Ayuso wrote:
> >> >> > On Fri, Dec 10, 2021 at 06:32:28PM +0530, Kumar Kartikeya Dwivedi wrote:
> >> >> > [...]
> >> >> > >  net/netfilter/nf_conntrack_core.c | 252 ++++++++++++++++++++++++++++++
> >> >> > >  7 files changed, 497 insertions(+), 1 deletion(-)
> >> >> > >
> >> >> > [...]
> >> >> > > diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
> >> >> > > index 770a63103c7a..85042cb6f82e 100644
> >> >> > > --- a/net/netfilter/nf_conntrack_core.c
> >> >> > > +++ b/net/netfilter/nf_conntrack_core.c
> >> >> >
> >> >> > Please, keep this new code away from net/netfilter/nf_conntrack_core.c
> >> >> 
> >> >> Ok. Can it be a new file under net/netfilter, or should it live elsewhere?
> >> >
> >> > IPVS and OVS use conntrack for already quite a bit of time and they
> >> > keep their code in their respective folders.
> >> 
> >> Those are users, though.
> >
> > OK, I see this as a yet user of the conntrack infrastructure.
> 
> The users are the BPF programs; this series adds the exports. I.e., the
> code defines an API that BPF programs can hook into, and implements the
> validation and lifetime enforcement that is necessary for the particular
> data structures being exposed. This is very much something that the
> module doing the exports should be concerned with, so from that
> perspective it makes sense to keep it in the nf_conntrack kmod.

Thanks for explaining.

> >> This is adding a different set of exported functions, like a BPF
> >> version of EXPORT_SYMBOL(). We don't put those outside the module
> >> where the code lives either...
> >
> > OVS and IPVS uses Kconfig to enable the conntrack module as a
> > dependency. Then, add module that is loaded when conntrack is used.
> 
> BPF can't do that, though: all the core BPF code is always built into
> the kernel, so we can't have any dependencies on module code. Until now,
> this has meant that hooking into modules has been out of scope for BPF
> entirely. With kfuncs and the module BTF support this is now possible,
> but it's a bit "weird" (i.e., different) compared to what we're used to
> with kernel modules.

OK.

> This series represents the first instance of actually implementing BPF
> hooks into a module, BTW, so opinions on how to do it best are
> absolutely welcome. But I have a hard time seeing how this could be done
> without introducing *any* new code into the conntrack module...

OK, move on then and let's take the time to revisit.

Thanks.

  reply	other threads:[~2021-12-15 23:50 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-10 13:02 [PATCH bpf-next v3 0/9] Introduce unstable CT lookup helpers Kumar Kartikeya Dwivedi
2021-12-10 13:02 ` [PATCH bpf-next v3 1/9] bpf: Refactor bpf_check_mod_kfunc_call Kumar Kartikeya Dwivedi
2021-12-10 13:02 ` [PATCH bpf-next v3 2/9] bpf: Remove DEFINE_KFUNC_BTF_ID_SET Kumar Kartikeya Dwivedi
2021-12-10 13:02 ` [PATCH bpf-next v3 3/9] bpf: Extend kfunc with PTR_TO_CTX, PTR_TO_MEM argument support Kumar Kartikeya Dwivedi
2021-12-10 13:02 ` [PATCH bpf-next v3 4/9] bpf: Introduce mem, size argument pair support for kfunc Kumar Kartikeya Dwivedi
2021-12-10 13:02 ` [PATCH bpf-next v3 5/9] bpf: Add reference tracking support to kfunc Kumar Kartikeya Dwivedi
2021-12-10 13:02 ` [PATCH bpf-next v3 6/9] bpf: Track provenance for pointers formed from referenced PTR_TO_BTF_ID Kumar Kartikeya Dwivedi
2021-12-10 13:02 ` [PATCH bpf-next v3 7/9] net/netfilter: Add unstable CT lookup helpers for XDP and TC-BPF Kumar Kartikeya Dwivedi
2021-12-10 14:28   ` kernel test robot
2021-12-10 14:28     ` kernel test robot
2021-12-10 15:09   ` Pablo Neira Ayuso
2021-12-10 15:31     ` Kumar Kartikeya Dwivedi
2021-12-10 23:03       ` Pablo Neira Ayuso
2021-12-11 18:35         ` Toke Høiland-Jørgensen
2021-12-11 19:16           ` Pablo Neira Ayuso
2021-12-13 21:25             ` Toke Høiland-Jørgensen
2021-12-15 23:49               ` Pablo Neira Ayuso [this message]
2021-12-10 13:02 ` [PATCH bpf-next v3 8/9] selftests/bpf: Extend kfunc selftests Kumar Kartikeya Dwivedi
2021-12-10 13:02 ` [PATCH bpf-next v3 9/9] selftests/bpf: Add test for unstable CT lookup API Kumar Kartikeya Dwivedi
2021-12-14 14:13   ` Maxim Mikityanskiy
2021-12-14 14:34     ` Kumar Kartikeya Dwivedi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Ybp/J5KXn0hLT4DZ@salvia \
    --to=pablo@netfilter.org \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=brouer@redhat.com \
    --cc=daniel@iogearbox.net \
    --cc=fw@strlen.de \
    --cc=john.fastabend@gmail.com \
    --cc=kafai@fb.com \
    --cc=maximmi@nvidia.com \
    --cc=memxor@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=songliubraving@fb.com \
    --cc=toke@redhat.com \
    --cc=yhs@fb.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.