Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Apr 2007 18:14:23 -0500
From:      Brooks Davis <brooks@freebsd.org>
To:        Mike Makonnen <mtm@freebsd.org>
Cc:        freebsd-net@freebsd.org, freebsd-rc@freebsd.org
Subject:   Re: Merging rc.d/network_ipv6 into rc.d/netif
Message-ID:  <20070403231423.GA52441@lor.one-eyed-alien.net>
In-Reply-To: <20070329182906.GB38703@rogue.navcom.lan>
References:  <20070329182906.GB38703@rogue.navcom.lan>

next in thread | previous in thread | raw e-mail | index | archive | help

--tThc/1wpZn/ma/RB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

I keep forgetting to do a review so a few comments now and hopefully a
fuller review later.

On Thu, Mar 29, 2007 at 09:29:06PM +0300, Mike Makonnen wrote:
> Hello folks,
>=20
> Ever since rc.d was brought into the tree we all agreed IPv6 needed
> to be integrated better. Well, I've finally gotten arround to it... sever=
al
> years later :-P
>=20
> The patch is at: http://people.freebsd.org/~mtm/src-etc.ipv6.diff
>=20
> What it does
> ------------
>  - rc.d/network_ipv6 is no longer necessary and can be removed
>  - IPv6 configuration is done on each interface in rc.d/netif along with =
IPv4
>  - IPv6 routing and options processing is done in rc.d/routing along with=
 IPv4
>  - You can now do things like:
> 	# Start/Stop IPv6 on all interfaces
> 	/etc/rc.d/netif (start|stop) ip6
> 	# Start/Stop IPv6 only on interface rl0
> 	/etc/rc.d/netif (start|stop) rl0 ip6
> 	# Do IPv6 options processing
> 	/etc/rc.d/routing options ip6

I think I'd prefer (start|stop)(4|6).  I not sure what the value of the
separation is, but don't care much.

> Overview of the changes in src/etc
> -----------------------------------
>  - In order to differentiate between v4 and v6 configuration directives s=
ome
>    knobs in rc.conf(5)have been renamed with an ipv4_ prefix:
> 	network_interfaces

I fell fairly strongly that ipv6_network_interfaces and
network_interfaces are a mistake and that we should remove them
rather than propagating them.  The way I'd prefer to see interfaces
that are exceptional with regard to address families specified with
(|NO)IPV(4|6) variables in ifconfig_<interface> or simply by not
having ipv(4|6)_ifconfig_interface variables (that it's a little more
complicated than that with ipv4_addrs_<interface> around, but I think
the concept holds).

> 	ifconfig_DEFAULT
> 	ifconfig_<interface>

ipv4 versions of these make sense, but at least ifconfig_<interface>
should continue to exist.  For example both setting the mac address and
starting WPA via the WPA keyword should not work in any address specific
version because that would be a layering violation.

> 	ifconfig_<interface>_aliasX
> 	defaultrouter
> 	gateway_enable
> 	static_routes
> 	etc...
>=20
>  - Modify all scripts that reference old knobs (without ipv4_ prefix) to
>    reference the new version of the knobs
>=20
>  - Compatibility shims in rc.subr(8) so that old uses of knobs without an
>    ipv4_ prefix work as expected. As part of this change split the
>    code for this processing into its own function: old2new_knobs()
>=20
>  - Modify some routines in etc/network.subr to take an additional argument
>    to specify v4 or v6 configuration:
> 	_ifconfig_get_args
> 	ifconfig_getargs
> 	autoif
> 	wpaif
>=20
>  - Move some invocations of route(8) and v6 options processing into
>    rc.d/routing
>=20
>=20
> I'm using the patches on my main work machine without any
> problems, so I think it's ready for a wider review. Please
> try it out and send me any comments, bug-reports, etc.
>=20
> I would
> especially like feedback from folks more familiar with IPv6. One
> gotcha I've noticed is that if you boot with ipv6_enable turned
> off, then try to start IPv6 on an interface later on, it doesn't
> work because none of the interfaces (except lo0) has a link-local
> address (see rc.d/auto_linklocal). How can we fix this? Also, I
> would appreciate feedback on how stopping IPv6 on an interface
> should be handled. In rc.d/network_ipv6 it was handled at all.
> Currently, it goes through and deletes all
> IPv6 addresses on the interface.

I'd say if ipv6_enable=3DNO, attempting to configure IPv6 on an interface
should fail.  If they turn it on, I'm not sure what the best approach
is.  Not worrying about it may well be most appropriate.

-- Brooks

--tThc/1wpZn/ma/RB
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (FreeBSD)

iD8DBQFGEt/OXY6L6fI4GtQRAsjOAKDkHlrhguJvenZU5V2hzuYHGvZYIgCgshZi
Zzs6i2QgOVzjkbl7Nksd8CA=
=TwZj
-----END PGP SIGNATURE-----

--tThc/1wpZn/ma/RB--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070403231423.GA52441>