Disable IPv6 configuration for interfaces in pccard_ether_start().

After a change of devd.conf, devd(8) handles NIC attach/detach event
by using /etc/pccard_ether with the interface name as the argument.
This model does not work properly with IPv6 configuration because the
implementation of IPv6 stateless auto-configuration in the FreeBSD
rc.d scripts depends on whether there are any explicit configurations
for interfaces or not.  It works this way: if no manual configuration,
it will perform auto-configuration, but otherwise no
auto-configuration will be performed.  So, this behavior can only be
determined by all of the interfaces on a system, not a single one.
For this reason, the network6_interface_setup() function called from
the pccard_ether_start() does not work with a single interface name.
And what is worse, this combination of devd.conf and
pccard_ether_start() caused a bad side-effect that when
ipv6_enable=YES, all of interfaces marked as DOWN would be UP
unconditionally (and router solicitation was sent) just after devd(8)
was invoked.  This should be fixed in a more sophisticated way.
This commit is contained in:
Hiroki Sato 2006-12-08 15:48:42 +00:00
parent 369cca8bf4
commit 2c615e1a64

View File

@ -88,14 +88,7 @@ pccard_ether_start()
fi
fi
# IPv6 setup
if ipv6if $ifn; then
# XXX: network6_interface_setup assumes you're calling
# it with ALL the IPv6 interfaces at once and thus isn't
# really appropraite for this job, but it's the best we've
# got for now.
network6_interface_setup $ifn
fi
# XXX: IPv6 setup should be done in some way.
}
pccard_ether_stop()