On Fri, 30 Nov 2018 at 06:26, Hauke Mehrtens <ha...@hauke-m.de> wrote: > > On 11/28/18 6:53 AM, Yousong Zhou wrote: > > On Wed, 28 Nov 2018 at 07:21, Hauke Mehrtens <ha...@hauke-m.de> wrote: > >> > >> In kernel commit 0168e8b361 ("netfilter: nat: merge ipv4/ipv6 masquerade > >> code into main nat module") the CONFIG_NF_NAT_MASQUERADE_IPV4 and > >> CONFIG_NF_NAT_MASQUERADE_IPV6 kernel configuration option were changed > >> to bool and the code will not be compiled as a own module any more, but > >> it will be integrated into nf_nat_ipv4.ko or nf_nat_ipv6.ko to save some > >> memory. > >> > >> Activate these options as bool in the generic kernel 4.19 configuration > >> only, to always build them into the nf_nat_ipv*.ko modules. The kmod > >> file will still try to select them as module, but the generic > >> configuration will not be overwritten. > >> > >> Signed-off-by: Hauke Mehrtens <ha...@hauke-m.de> > >> --- > >> include/netfilter.mk | 4 ++-- > >> target/linux/generic/config-4.19 | 4 ++-- > >> 2 files changed, 4 insertions(+), 4 deletions(-) > >> > >> diff --git a/include/netfilter.mk b/include/netfilter.mk > >> index 2d232b5f5c..4b9cc20622 100644 > >> --- a/include/netfilter.mk > >> +++ b/include/netfilter.mk > >> @@ -187,10 +187,10 @@ $(eval $(call > >> nf_add,IPT_IPV6_EXTRA,CONFIG_IP6_NF_MATCH_RT, $(P_V6)ip6t_rt)) > >> $(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT,CONFIG_NF_NAT, > >> $(P_XT)nf_nat),)) > >> $(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT,CONFIG_NF_NAT_REDIRECT, > >> $(P_XT)nf_nat_redirect, ge 3.19.0),)) > >> $(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT,CONFIG_NF_NAT_IPV4, > >> $(P_V4)nf_nat_ipv4),)) > >> -$(eval $(if $(NF_KMOD),$(call > >> nf_add,NF_NAT,CONFIG_NF_NAT_MASQUERADE_IPV4, > >> $(P_V4)nf_nat_masquerade_ipv4),)) > >> +$(eval $(if $(NF_KMOD),$(call > >> nf_add,NF_NAT,CONFIG_NF_NAT_MASQUERADE_IPV4, > >> $(P_V4)nf_nat_masquerade_ipv4, lt 4.18),)) > >> > >> $(eval $(if $(NF_KMOD),$(call nf_add,NF_NAT6,CONFIG_NF_NAT_IPV6, > >> $(P_V6)nf_nat_ipv6),)) > >> -$(eval $(if $(NF_KMOD),$(call > >> nf_add,NF_NAT6,CONFIG_NF_NAT_MASQUERADE_IPV6, > >> $(P_V6)nf_nat_masquerade_ipv6),)) > >> +$(eval $(if $(NF_KMOD),$(call > >> nf_add,NF_NAT6,CONFIG_NF_NAT_MASQUERADE_IPV6, > >> $(P_V6)nf_nat_masquerade_ipv6, lt 4.18),)) > >> > >> $(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT,CONFIG_NETFILTER_XT_NAT, > >> $(P_XT)xt_nat),)) > >> $(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT,CONFIG_IP_NF_NAT, > >> $(P_V4)iptable_nat),)) > >> diff --git a/target/linux/generic/config-4.19 > >> b/target/linux/generic/config-4.19 > >> index c197f58464..5dec53c0f3 100644 > >> --- a/target/linux/generic/config-4.19 > >> +++ b/target/linux/generic/config-4.19 > >> @@ -3352,8 +3352,8 @@ CONFIG_NF_CONNTRACK_PROCFS=y > >> # CONFIG_NF_NAT_H323 is not set > >> # CONFIG_NF_NAT_IPV6 is not set > >> # CONFIG_NF_NAT_IRC is not set > >> -# CONFIG_NF_NAT_MASQUERADE_IPV4 is not set > >> -# CONFIG_NF_NAT_MASQUERADE_IPV6 is not set > >> +CONFIG_NF_NAT_MASQUERADE_IPV4=y > >> +CONFIG_NF_NAT_MASQUERADE_IPV6=y > > > > The ipv6 config option should be placed into config/Config-kernel.in, > > so that it can depend on the state of CONFIG_KERNEL_IPV6 option. > > Hi yousong, > > The IPV6 version is only available if CONFIG_IPV6 is selected otherwise > it is not possible to select it: > kernel 4.19: > https://elixir.bootlin.com/linux/v4.19.5/source/net/ipv6/netfilter/Kconfig#L121 > kernel 4.9: > https://elixir.bootlin.com/linux/v4.9.141/source/net/ipv6/netfilter/Kconfig#L97 > > This depends on the kernel version on kernel < 4.18 this should be build > as a module. > > Would it be better to add some KConfig options which depend on kernel > 4.19 near CONFIG_KERNEL_IPV6 ?
If this is a trend in the mainline to transform ipv6 options from tristate to bool, then annotating them each in the build system will become unwieldy sooner or later. Thinking it again, the main concern seems to be that we can still tweak out ipv6 from the build by disabling it with CONFIG_KERNEL_IPV6=n. If this is still achievable with IPV6 options in the kernel config presets, then I think it's fine to include them there. There are already several targets with IPV6 options explicitly enabled. It's a bit odd and inconsistent. ➜ ~/git-repo/openwrt/openwrt git:(master) find target/linux -name 'config-*' | xargs ag -s IPV6 | grep = target/linux/layerscape/armv8_64b/config-4.9:690:CONFIG_IPV6=y target/linux/layerscape/armv8_64b/config-4.9:691:CONFIG_IPV6_SIT=y target/linux/layerscape/armv8_32b/config-4.9:643:CONFIG_IPV6=y target/linux/layerscape/armv8_32b/config-4.9:644:CONFIG_IPV6_MULTIPLE_TABLES=y target/linux/layerscape/armv8_32b/config-4.9:645:CONFIG_IPV6_OPTIMISTIC_DAD=y target/linux/layerscape/armv8_32b/config-4.9:646:CONFIG_IPV6_ROUTER_PREF=y target/linux/layerscape/armv8_32b/config-4.9:647:CONFIG_IPV6_SIT=y target/linux/cns3xxx/config-4.14:192:CONFIG_IPV6=y target/linux/cns3xxx/config-4.14:193:CONFIG_IPV6_MROUTE=y target/linux/cns3xxx/config-4.14:194:CONFIG_IPV6_MULTIPLE_TABLES=y target/linux/cns3xxx/config-4.14:196:CONFIG_IPV6_SUBTREES=y target/linux/cns3xxx/config-4.14:259:CONFIG_NF_CONNTRACK_IPV6=m target/linux/cns3xxx/config-4.14:262:CONFIG_NF_DEFRAG_IPV6=m target/linux/cns3xxx/config-4.14:265:CONFIG_NF_LOG_IPV6=m target/linux/cns3xxx/config-4.14:272:CONFIG_NF_REJECT_IPV6=m target/linux/generic/config-4.14:2049:CONFIG_IPV6_NDISC_NODETYPE=y target/linux/generic/config-4.9:1915:CONFIG_IPV6_NDISC_NODETYPE=y target/linux/generic/config-3.18:1609:CONFIG_IPV6_NDISC_NODETYPE=y yousong _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel