From: Florian Westphal <fw@strlen.de>
To: Pablo Neira Ayuso <pablo@netfilter.org>
Cc: "Florian Westphal" <fw@strlen.de>,
"Arnd Bergmann" <arnd@arndb.de>,
"Jozsef Kadlecsik" <kadlec@blackhole.kfki.hu>,
"David S. Miller" <davem@davemloft.net>,
"Máté Eckl" <ecklm94@gmail.com>,
"Fernando Fernandez Mancera" <ffmancera@riseup.net>,
"Pablo M. Bermudo Garay" <pablombg@gmail.com>,
"Felix Fietkau" <nbd@nbd.name>,
netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
Networking <netdev@vger.kernel.org>,
"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] netfilter: conntrack: add weak IPV6 dependency
Date: Mon, 9 Jul 2018 22:27:25 +0200 [thread overview]
Message-ID: <20180709202725.d2fgn5p26whfrvfn@breakpoint.cc> (raw)
In-Reply-To: <20180709165050.uuglk24ctiezhnye@salvia>
Pablo Neira Ayuso <pablo@netfilter.org> wrote:
> On Fri, Jul 06, 2018 at 08:35:48PM +0200, Florian Westphal wrote:
> > Florian Westphal <fw@strlen.de> wrote:
> > > Arnd Bergmann <arnd@arndb.de> wrote:
> > > > and that resulted in a new build failure:
> > > >
> > > > net/netfilter/nf_conntrack_proto.o:(.rodata+0x788): undefined
> > > > reference to `nf_conntrack_l4proto_icmpv6'
> > > > net/ipv6/netfilter/nf_conntrack_reasm.o: In function `nf_ct_frag6_expire':
> > > > nf_conntrack_reasm.c:(.text+0x2320): undefined reference to
> > > > `ip6_expire_frag_queue'
> > > > net/ipv6/netfilter/nf_conntrack_reasm.o: In function `nf_ct_frag6_init':
> > > > nf_conntrack_reasm.c:(.text+0x2384): undefined reference to `ip6_frag_init'
> > > > nf_conntrack_reasm.c:(.text+0x2394): undefined reference to `ip6_frag_init'
> > > > nf_conntrack_reasm.c:(.text+0x2398): undefined reference to `ip6_rhash_params'
> > > > net/ipv6/netfilter/nf_conntrack_reasm.o: In function `nf_ct_frag6_expire':
> > > > nf_conntrack_reasm.c:(.text+0x10bc): undefined reference to
> > > > `ip6_expire_frag_queue'
> > > >
> > > > I don't think we can get CONFIG_NF_DEFRAG_IPV6=y to work with IPV6=m.
> > >
> > > Yes, not with current implementation, but I still don't think this
> > > is unavoidable.
> > >
> > > In case this is urgent I'm fine with the patch that adds the dependency,
> > > otherwise I'd like to try and disentangle nf_conntrack_reasm and ipv6.
> >
> > This links fine for me with IPV6=m:
> >
> > Pablo, do you think this is too ugly?
>
> Well, yes...
>
> > It requires some copypastry from ipv6 defrag into nfct ipv6 defrag
> > to avoid the link errors outlined above.
>
> This is a bit of a regression I think.
nf_defrag_ipv6 has always depended on ipv6.
Previously dependency chain is
nf_conntrack_ipv6 -> ipv6
+-----> nf_defrag_ipv6 > ipv6
+-----> nf_conntrack
new dependency chain is:
nf_conntrack --> nf_defrag_ipv6 --> ipv6
The alternate fix is the one from Arnd to disallow
NF_CONNTRACK=y
IPV6=m
> While I think a bit of demodularization is fine, if things like this
> start to kick in, it's probably good if we go make a step back...
If you want to revert, ok. It will prevent all l4 unification patches
plus any attempt to get rid of the nf_hook for defrag too however so I
do not like it.
> Let me know, thanks.
Yet another alternative would be to remove the
nf_conntrack -> nf_defrag_ipv6
dependency, e.g. by adding a new rcu-protected function pointer.
nf_conntrack, when ipv6 conntrack is requested, would check if its null,
and, if so, issue request_module() for ipv6 defrag before failing the
request.
However, I find it even more ugly than my patch.
prev parent reply other threads:[~2018-07-09 20:27 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-06 12:59 [PATCH] netfilter: conntrack: add weak IPV6 dependency Arnd Bergmann
2018-07-06 13:55 ` Florian Westphal
2018-07-06 14:50 ` Arnd Bergmann
2018-07-06 15:00 ` Florian Westphal
2018-07-06 15:14 ` Arnd Bergmann
2018-07-06 18:35 ` Florian Westphal
2018-07-09 16:50 ` Pablo Neira Ayuso
2018-07-09 20:27 ` Florian Westphal [this message]
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=20180709202725.d2fgn5p26whfrvfn@breakpoint.cc \
--to=fw@strlen.de \
--cc=arnd@arndb.de \
--cc=coreteam@netfilter.org \
--cc=davem@davemloft.net \
--cc=ecklm94@gmail.com \
--cc=ffmancera@riseup.net \
--cc=kadlec@blackhole.kfki.hu \
--cc=linux-kernel@vger.kernel.org \
--cc=nbd@nbd.name \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=pablo@netfilter.org \
--cc=pablombg@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox