Hi Allen, On Sat, Oct 10, 2009 at 4:55 PM, Allen Parker <parker@xxxxxxxxxxx> wrote: > > On Oct 10, 2009, at 7:38 AM, Julius Volz wrote: > >> Hi Allen, >> >> On Sat, Oct 10, 2009 at 4:03 PM, Allen Parker <parker@xxxxxxxxxxx> wrote: >>> >>> Unless there's a very good reason to exclude CONFIG_IPV6=m from >>> CONFIG_IPVS_IPV6, you probably shouldn't do it. This patch fixes the >>> "hidden" IPVS_IPV6 when IPV6=m. >>> >>> diff -Nur linux-2.6.30.4/net/netfilter/ipvs/Kconfig >>> linux-2.6.30.4-fixed/net/netfilter/ipvs/Kconfig >>> --- linux-2.6.30.4/net/netfilter/ipvs/Kconfig 2009-10-10 >>> 13:59:50.000000000 +0000 >>> +++ linux-2.6.30.4-fixed/net/netfilter/ipvs/Kconfig 2009-10-10 >>> 13:59:24.000000000 +0000 >>> @@ -26,7 +26,7 @@ >>> >>> config IP_VS_IPV6 >>> bool "IPv6 support for IPVS" >>> - depends on EXPERIMENTAL && (IPV6 = y|| IP_VS = IPV6) >>> + depends on EXPERIMENTAL && (IPV6 || IP_VS = IPV6) >>> ---help--- >>> Add IPv6 support to IPVS. This is incomplete and might be >>> dangerous. >> >> The problem is that IP_VS_IPV6 doesn't support modularity, so it has >> to depend on IPV6 being statically compiled in as well. >> >> An alternative to the current configuration is to automatically select >> IPV6=y in the background when selecting IP_VS_IPV6 (and always showing >> IP_VS_IPV6). I remember a thread on lkml about that a long while ago, >> but don't know the current Kconfig policies regarding this. >> >> Julius > > I realize that compile != run, but could you possibly point me in the > direction of _why_ IPVS_IPV6 won't work when built in a modular fashion? My > personal preference for things like ipvs is that they're built as a module, > so that if I do or don't need them, I don't have to compile+reboot a > production machine in order to support new projects. Additionally, if a > module's misbehaving, it's generally pretty easy to rmmod and insmod, > without actually having to take the machine down. Of course modularity is a nice feature to have, but making IPv6 support for IPVS modular would be a lot of work. The IPv6 code is very intertwined with IPv4/common code in IPVS (in execution paths as well as data structures). When compiling statically, you can simply #ifdef the IPv6 parts away. But if you wanted to support modularity, you'd need to extract all IPv6 parts and put them in a module, which would require _a lot_ of refactoring. So I don't think it is likely to happen in the near future... Hope that this explanation helps though :) Julius -- To unsubscribe from this list: send the line "unsubscribe lvs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html