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:
parent
369cca8bf4
commit
2c615e1a64
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user