While testing some changes with vlans and the new vlan_<if> syntax in rc.conf 
I've noticed the following behavior:

        ifconfig foo0.100 destroy

Will actually try to kldload the 'foo' driver.  This can prove very non-
intuitive.  In general I think we shouldn't try to kldload anything when 
destroying an interface period.  What I've done locally is to pass '-n' to 
ifconfig when destroying an interface.

We should possibly fix some other bugs however.  For example, ifmaybeload() in 
ifconfig should probably stop at the first non-digit it finds (e.g. ".") 
rather than trimming from the first digit on.  Also, perhaps 'ifconfig <foo> 
destroy' should imply -n without requiring it to be explicit.

I also moved the ifconfig destroy of wlan and vlan devices up before running 
ifn_stop to prevent running 'ifconfig <foo> down' which would also reload the 
driver due to the first bug in ifconfig.

Index: network.subr
===================================================================
--- network.subr        (revision 207329)
+++ network.subr        (working copy)
@@ -915,7 +915,7 @@
        _list=
 
        for ifn in ${cloned_interfaces}; do
-               ifconfig ${ifn} destroy
+               ifconfig -n ${ifn} destroy
                if [ $? -eq 0 ]; then
                        _list="${_list}${_prefix}${ifn}"
                        [ -z "$_prefix" ] && _prefix=' '
@@ -1000,10 +1000,10 @@
                if ! ifexists $child; then
                        continue
                fi
+               ifconfig -n $child destroy && cfg=0
                if autoif $child; then
                        ifn_stop $child
                fi
-               ifconfig $child destroy && cfg=0
        done
 
        child_vlans=`get_if_var $ifn vlans_IF`
@@ -1014,10 +1014,10 @@
                if ! ifexists $child; then
                        continue
                fi
+               ifconfig -n $child destroy && cfg=0
                if autoif $child; then
                        ifn_stop $child
                fi
-               ifconfig $child destroy && cfg=0
        done
 
        return ${cfg}


-- 
John Baldwin
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to