Doug Barton dougb at FreeBSD.org
Mon Apr 5 09:01:36 UTC 2010

I think it's clear at this point that you and I have some pretty serious
disagreements about how this thing should look. I think that's
unfortunate, since you have a lot of good ideas, I just think some of
them are wrong. :) Seriously though, I hope we can find a way to come to

I'm going to repeat myself one more time here, and in response to your
other post, and then step back and let others express their opinions.
I'd really like to come to an agreement on how to proceed in the next
couple days.

On 04/04/10 22:49, Hiroki Sato wrote:
> Doug Barton <dougb at FreeBSD.org> wrote
>   in <4BB95564.1070604 at FreeBSD.org>:
> do> On 04/04/10 02:41, Hiroki Sato wrote:
> do> > "Kevin Oberman" <oberman at es.net> wrote
> do> >   in <20100404053352.E6F751CC13 at ptavv.es.net>:
> do> >
> do> > ob> The use of FACILITY_enable in rc.conf predates /etc/rc.d scripts and I
> do> > ob> see no reason not to use them to enable or disable functionality whether
> do> > ob> it involves a script in rc.d or not. The idea is to have a clear,
> do> > ob> obvious way to enable or disable functionality. I see nothing in Hiroki's
> do> > ob> proposal that is nearly as clear and to the point as 'ipv6_enable'.
> do> >
> do> >  Another reason I lean to not using xxx_enable is that an rc.d knob
> do> >  cannot control enabling/disabling the IPv6 functionality actually.
> do> >  It was true even when we were using the network_ipv6 script.
> do>
> do> But that's equally true of how you're using ipv6_prefer. :)  You've
> do> basically just moved the overloading of 2 of the 3 previous functions of
> do> ipv6_enable to ipv6_prefer. I am suggesting that we split all 3
> do> functions into different knobs.
>  No, the current ipv6_prefer=NO has nothing to do with disabling IPv6.
>  It is just related to source address selection and a seatbelt for
>  IPv4-only people.  I do not think I just moved the old functions.
>  Let me explain how these changes happened.  As I explained earlier, I
>  added $ipv6_prefer to *enable IPv6 by default*.  IPv6 needs some
>  configuration even if you do not use IPv4 when the kernel supports
>  it, and skipping all of IPv6 configuration in the old
>  rc.d/network_ipv6 script caused another problems.  So, I thought it
>  was possible to enable IPv6 by default and initialize the
>  functionality with reasonable default parameters.  This parameters
>  included "disable ACCEPT_RTADV by default", which is one of the
>  topics we are discussing now.

I think most of what you've got here is right, and I've tried to
preserve it in my changes. My understanding is that lo0 needs to be
configured if INET6 is in the kernel, but none of the other interfaces
need to be.

>  The old rc.d/network_ipv6 had a lot more for IPv6 configuration in
>  the $ipv6_enable conditional clause and ipv6_enable=NO meant to
>  disable them, too.  This is a big difference.  The new ipv6_enable in
>  your patch is not the same in this regard.

The end result is the same though. If ipv6_enable=no then when
ifconfig_up() calls ipv6if() it'll come back negative, and that
interface won't be configured for IPv6 at all. Specifically, the "inet6
ifdisabled" ifconfig arg will be given.

>  Well, I can understand and agree that people want a handy knob to
>  disable IPv6.  I think it is more constructive for this discussion to
>  be more specific what should be disabled, then.  I am still not sure
>  what you and other people mean by "disable IPv6".

My definition is "not configuring IPv6 on any interface other than lo0."

>  My opinion is "ipv6_enable=NO" should mean disabling IPv6
>  functionality completely.

If we had a method of "turning off" IPv6 at the kernel level even though
INET6 is in the kernel then I would agree with you. Since we don't have
that, "inet6 ifdisabled" is the next best option.

>  I do not want to call a knob just to
>  ignore ifconfig_IF_ipv6 lines as "ipv6_enable"

That's not what I'm proposing, have you actually looked at my patch?

>  as well as do not want
>  to disable IPv6 functionality completely by default. 

I don't know exactly what you mean by this. I _think_ you mean that IPv6
functionality should remain available, but that the interfaces should
not be configured unless there is a specific configuration given via
ifconfig_IF_ipv6. Is that right? If so, I agree with you, and my patch
accomplishes this. The difference being that in v2 of the patch RA has
to be enabled in ifconfig_IF_ipv6, OR it will be enabled if there is
IPv4 DHCP configuration for the interface.



	... and that's just a little bit of history repeating.
			-- Propellerheads

	Improve the effectiveness of your Internet presence with
	a domain name makeover!    http://SupersetSolutions.com/

More information about the freebsd-current mailing list