* [HELP] netfilter Kconfig dependency nightmare [not found] ` <20050917012315.GA29841@mandriva.com> @ 2005-09-17 8:07 ` Harald Welte 2005-09-17 11:08 ` Roman Zippel 0 siblings, 1 reply; 6+ messages in thread From: Harald Welte @ 2005-09-17 8:07 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Linux Netdev List, Netfilter Development Mailinglist, Linux Kernel Mailinglist [-- Attachment #1: Type: text/plain, Size: 2529 bytes --] On Fri, Sep 16, 2005 at 10:23:15PM -0300, Arnaldo Carvalho de Melo wrote: > After applying this patch I still get a loop: > > [acme@toy net-2.6]$ make O=OUTPUT/oops/ oldconfig | grep Warning > Warning! Found recursive dependency: IP_NF_CONNTRACK_NETLINK NETFILTER_NETLINK IP_NF_CONNTRACK_NETLINK > Warning! Found recursive dependency: NETFILTER_NETLINK IP_NF_CONNTRACK_NETLINK NETFILTER_NETLINK NETFILTER_NETLINK_QUEUE > > This is using latest Dave tree, the one just before master.kernel.org > was switched off for moving to Oregon, is there any other patch I should > apply? This f!*#$%!#$%ing kconfig dependency is killing me. We have this incredible inter-dependency between various options, and with every new feature it's getting more complex. The main reason being to avoid some bits of dead code in case it's not really needed by some other module. I'm starting to wonder whether it's really worth saving those few bytes in some configurations at the expense of this complexity. Maybe some Kconfig freak can help out. This is the intended dependency rules: ip_conntrack == CONFIG_IP_NF_CONNTRACK nfnetlink == CONFIG_NETFILTER_NETLINK ip_conntrack_netlink == CONFIG_IP_NF_CONNTRACK_NETLINK If nfnetlink == N, ip_conntrack can be N or M or Y If nfnetlink == M, ip_conntrack can be N or M If nfnetlink == Y, ip_conntrack can be Y or M If ip_conntrack == N && nfnetlink == N, ip_conntrack_netlink must be N If ip_conntrack == N && nfnetlink == M, ip_conntrack_netlink must be N If ip_conntrack == N && nfnetlink == Y, ip_conntrack_netlink must be N If ip_conntrack == M && nfnetlink == N, ip_conntrack_netlink must be N If ip_conntrack == M && nfnetlink == M, ip_conntrack_netlink can N or M If ip_conntrack == M && nfnetlink == Y, ip_conntrack_netlink can N or M if ip_conntrack == Y && nfnetlink == N, ip_conntrack_netlink must be N if ip_conntrack == Y && nfnetlink == M, ip_conntrack_netlink can N or M if ip_conntrack == Y && nfnetlink == Y, ip_conntrack_netlink can N, M or Y NETfILTER_NETLINK_QUEUE and NETFILTER_NETLINK_LOG only depend on NETFILER_NETLINK and nothing else. Cheers, -- - Harald Welte <laforge@netfilter.org> http://netfilter.org/ ============================================================================ "Fragmentation is like classful addressing -- an interesting early architectural error that shows how much experimentation was going on while IP was being designed." -- Paul Vixie [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [HELP] netfilter Kconfig dependency nightmare 2005-09-17 8:07 ` [HELP] netfilter Kconfig dependency nightmare Harald Welte @ 2005-09-17 11:08 ` Roman Zippel 2005-09-17 11:29 ` Harald Welte 0 siblings, 1 reply; 6+ messages in thread From: Roman Zippel @ 2005-09-17 11:08 UTC (permalink / raw) To: Harald Welte Cc: Arnaldo Carvalho de Melo, Netfilter Development Mailinglist, Linux Netdev List, Linux Kernel Mailinglist Hi, On Sat, 17 Sep 2005, Harald Welte wrote: > ip_conntrack == CONFIG_IP_NF_CONNTRACK > nfnetlink == CONFIG_NETFILTER_NETLINK > ip_conntrack_netlink == CONFIG_IP_NF_CONNTRACK_NETLINK > > If nfnetlink == N, ip_conntrack can be N or M or Y > If nfnetlink == M, ip_conntrack can be N or M > If nfnetlink == Y, ip_conntrack can be Y or M Where is the requirement for the last one coming from? > If ip_conntrack == N && nfnetlink == N, ip_conntrack_netlink must be N > If ip_conntrack == N && nfnetlink == M, ip_conntrack_netlink must be N > If ip_conntrack == N && nfnetlink == Y, ip_conntrack_netlink must be N > > If ip_conntrack == M && nfnetlink == N, ip_conntrack_netlink must be N > If ip_conntrack == M && nfnetlink == M, ip_conntrack_netlink can N or M > If ip_conntrack == M && nfnetlink == Y, ip_conntrack_netlink can N or M > > if ip_conntrack == Y && nfnetlink == N, ip_conntrack_netlink must be N > if ip_conntrack == Y && nfnetlink == M, ip_conntrack_netlink can N or M > if ip_conntrack == Y && nfnetlink == Y, ip_conntrack_netlink can N, M or Y That looks like a normal ip_conntrack && nfnetlink. bye, Roman ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [HELP] netfilter Kconfig dependency nightmare 2005-09-17 11:08 ` Roman Zippel @ 2005-09-17 11:29 ` Harald Welte 2005-09-17 12:18 ` Roman Zippel 0 siblings, 1 reply; 6+ messages in thread From: Harald Welte @ 2005-09-17 11:29 UTC (permalink / raw) To: Roman Zippel Cc: Linux Netdev List, Netfilter Development Mailinglist, Linux Kernel Mailinglist, Arnaldo Carvalho de Melo [-- Attachment #1: Type: text/plain, Size: 1958 bytes --] On Sat, Sep 17, 2005 at 01:08:58PM +0200, Roman Zippel wrote: > Hi, Hi Roman, thanks for your reply. > On Sat, 17 Sep 2005, Harald Welte wrote: > > > ip_conntrack == CONFIG_IP_NF_CONNTRACK > > nfnetlink == CONFIG_NETFILTER_NETLINK > > ip_conntrack_netlink == CONFIG_IP_NF_CONNTRACK_NETLINK > > > > If nfnetlink == N, ip_conntrack can be N or M or Y > > If nfnetlink == M, ip_conntrack can be N or M > > If nfnetlink == Y, ip_conntrack can be Y or M > > Where is the requirement for the last one coming from? sorry. The last one should be N,M or Y. The fundamental underlying problem is: If CONFIG_IP_NF_CONNTRACK_NETLINK is selected (M or Y), then CONFIG_IP_NF_CONNTRACK conditionally adds some code that references symbols from nfnetlink.ko (CONFIG_NETFILTER_NETLINK) So basically, enabling CONFIG_IP_NF_CONNTRACK_NETLINK creates a dependency from CONFIG_IP_NF_CONNTRACK to CONFIG_NETFILTER_NETLINK. AFAIK, the syntax doesn't allow somthing like tristate IP_NF_CONNTRACK depends on NETFILTER_NETLINK if IP_NF_CONNTRACK_NETLINK!=n So, if ip_conntrack_netlink == M (or Y), and ip_conntrack == Y, then nfnetlink has to be set to Y (but cannot be a module). Is there something that resembles And no, I do not see any chance to solve the problem in the code, without either 1) adding yet another new module that only contains some 1kB of code and that requires additional EXPORT_SYMBOLS() on private data from ip_conntrack or 2) adding dead code to ip_conntrack.ko that isn't used in many common configurations :( -- - Harald Welte <laforge@netfilter.org> http://netfilter.org/ ============================================================================ "Fragmentation is like classful addressing -- an interesting early architectural error that shows how much experimentation was going on while IP was being designed." -- Paul Vixie [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [HELP] netfilter Kconfig dependency nightmare 2005-09-17 11:29 ` Harald Welte @ 2005-09-17 12:18 ` Roman Zippel 2005-09-17 15:29 ` Harald Welte 0 siblings, 1 reply; 6+ messages in thread From: Roman Zippel @ 2005-09-17 12:18 UTC (permalink / raw) To: Harald Welte Cc: Arnaldo Carvalho de Melo, Netfilter Development Mailinglist, Linux Netdev List, Linux Kernel Mailinglist Hi, On Sat, 17 Sep 2005, Harald Welte wrote: > If CONFIG_IP_NF_CONNTRACK_NETLINK is selected (M or Y), then > CONFIG_IP_NF_CONNTRACK conditionally adds some code that references > symbols from nfnetlink.ko (CONFIG_NETFILTER_NETLINK) > > So basically, enabling CONFIG_IP_NF_CONNTRACK_NETLINK creates a dependency > from CONFIG_IP_NF_CONNTRACK to CONFIG_NETFILTER_NETLINK. AFAIK, the syntax > doesn't allow somthing like > > tristate IP_NF_CONNTRACK > depends on NETFILTER_NETLINK if IP_NF_CONNTRACK_NETLINK!=n Since IP_NF_CONNTRACK_NETLINK is the one creating the dependency, something like this should work: config IP_NF_CONNTRACK_NETLINK depends on IP_NF_CONNTRACK && NETFILTER_NETLINK depends on IP_NF_CONNTRACK!=y || NETFILTER_NETLINK!=m IOW ct_nl depends on (ct && nl) unless (ct=y && nl=m). bye, Roman ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [HELP] netfilter Kconfig dependency nightmare 2005-09-17 12:18 ` Roman Zippel @ 2005-09-17 15:29 ` Harald Welte 2005-09-17 15:32 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 6+ messages in thread From: Harald Welte @ 2005-09-17 15:29 UTC (permalink / raw) To: Roman Zippel Cc: Linux Netdev List, Netfilter Development Mailinglist, Linux Kernel Mailinglist, Arnaldo Carvalho de Melo [-- Attachment #1: Type: text/plain, Size: 742 bytes --] On Sat, Sep 17, 2005 at 02:18:28PM +0200, Roman Zippel wrote: > Since IP_NF_CONNTRACK_NETLINK is the one creating the dependency, > something like this should work: yes, I agree. Looking at the behaviour of "menuconfig", I think your suggestion solves the problem. I didn't try to compile all the combinations, though. I'll submit a patch via DaveM soon. -- - Harald Welte <laforge@netfilter.org> http://netfilter.org/ ============================================================================ "Fragmentation is like classful addressing -- an interesting early architectural error that shows how much experimentation was going on while IP was being designed." -- Paul Vixie [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [HELP] netfilter Kconfig dependency nightmare 2005-09-17 15:29 ` Harald Welte @ 2005-09-17 15:32 ` Arnaldo Carvalho de Melo 0 siblings, 0 replies; 6+ messages in thread From: Arnaldo Carvalho de Melo @ 2005-09-17 15:32 UTC (permalink / raw) To: Harald Welte, Roman Zippel, Arnaldo Carvalho de Melo, Netfilter Development Mailinglist, Linux Netdev List, Linux Kernel Mailinglist On 9/17/05, Harald Welte <laforge@netfilter.org> wrote: > On Sat, Sep 17, 2005 at 02:18:28PM +0200, Roman Zippel wrote: > > Since IP_NF_CONNTRACK_NETLINK is the one creating the dependency, > > something like this should work: > > yes, I agree. Looking at the behaviour of "menuconfig", I think your > suggestion solves the problem. I didn't try to compile all the > combinations, though. > > I'll submit a patch via DaveM soon. OK, I'll test it as soon as it appears here :-) - Arnaldo ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2005-09-17 15:32 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20050916021451.3012196c.akpm@osdl.org>
[not found] ` <20050916191959.GN8413@sunbeam.de.gnumonks.org>
[not found] ` <39e6f6c705091617514457eded@mail.gmail.com>
[not found] ` <20050917012315.GA29841@mandriva.com>
2005-09-17 8:07 ` [HELP] netfilter Kconfig dependency nightmare Harald Welte
2005-09-17 11:08 ` Roman Zippel
2005-09-17 11:29 ` Harald Welte
2005-09-17 12:18 ` Roman Zippel
2005-09-17 15:29 ` Harald Welte
2005-09-17 15:32 ` Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).