From 2c615e1a647de809885ce50c62094bec0524981a Mon Sep 17 00:00:00 2001 From: Hiroki Sato Date: Fri, 8 Dec 2006 15:48:42 +0000 Subject: [PATCH] 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. --- etc/pccard_ether | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/etc/pccard_ether b/etc/pccard_ether index 4bf9b52fce55..b284f24aa2de 100755 --- a/etc/pccard_ether +++ b/etc/pccard_ether @@ -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()