svn commit: r287394 - head/etc
Gleb Smirnoff
glebius at FreeBSD.org
Wed Sep 2 12:46:44 UTC 2015
Author: glebius
Date: Wed Sep 2 12:46:42 2015
New Revision: 287394
URL: https://svnweb.freebsd.org/changeset/base/287394
Log:
Fix dynamic attach/detach of 802.11 devices after r287197:
o In pccard_ether add code to start children of a 802.11
device, that are configured in rc.conf.
o In devd.conf provide a regex matching all 802.11 devices,
and on match run pccard_ether to spawn children.
PR: 202784
Submitted by: <vidwer gmail.com>
In collaboration with: "Oleg V. Nauman" <oleg opentransfer.com>
Modified:
head/etc/devd.conf
head/etc/pccard_ether
Modified: head/etc/devd.conf
==============================================================================
--- head/etc/devd.conf Wed Sep 2 05:55:57 2015 (r287393)
+++ head/etc/devd.conf Wed Sep 2 12:46:42 2015 (r287394)
@@ -22,6 +22,9 @@ options {
"(aac|adv|adw|aha|ahb|ahc|ahd|aic|amd|amr|asr|bt|ciss|ct|dpt|\
esp|ida|iir|ips|isp|mlx|mly|mpt|ncr|ncv|nsp|stg|sym|trm|wds)\
[0-9]+";
+ set wifi-driver-regex
+ "(ath|bwi|bwn|ipw|iwi|iwn|malo|mwl|ral|rsu|rum|run|uath|upgt|\
+ ural|urtw|urtwn|wi|wpi|wtap|zyd)[0-9]+";
};
# Note that the attach/detach with the highest value wins, so that one can
@@ -57,17 +60,16 @@ notify 0 {
};
#
-# Like Ethernet devices, but separate because
-# they have a different media type. We may want
-# to exploit this later.
+# Like Ethernet devices, but separate because 802.11 require spawning
+# wlan(4) interface.
#
-detach 0 {
- media-type "802.11";
- action "/etc/pccard_ether $device-name stop";
-};
attach 0 {
- media-type "802.11";
- action "/etc/pccard_ether $device-name start";
+ device-name "$wifi-driver-regex";
+ action "/etc/pccard_ether $device-name startchildren";
+};
+detach 0 {
+ device-name "$wifi-driver-regex";
+ action "/etc/pccard_ether $device-name stopchildren";
};
notify 0 {
match "system" "IFNET";
Modified: head/etc/pccard_ether
==============================================================================
--- head/etc/pccard_ether Wed Sep 2 05:55:57 2015 (r287393)
+++ head/etc/pccard_ether Wed Sep 2 12:46:42 2015 (r287394)
@@ -17,6 +17,9 @@ stop_precmd="checkauto"
stop_cmd="pccard_ether_stop"
restart_precmd="checkauto"
restart_cmd="pccard_ether_restart"
+startchildren_cmd="pccard_ether_startchildren"
+stopchildren_cmd="pccard_ether_stopchildren"
+extra_commands="startchildren stopchildren"
setup_routes()
{
@@ -114,6 +117,20 @@ pccard_ether_restart()
pccard_ether_start
}
+pccard_ether_startchildren()
+{
+ for child in `get_if_var $ifn wlans_IF`; do
+ /etc/rc.d/netif quietstart $child
+ done
+}
+
+pccard_ether_stopchildren()
+{
+ for child in `get_if_var $ifn wlans_IF`; do
+ /etc/rc.d/netif quietstop $child
+ done
+}
+
ifn=$1
shift
if [ -z "$*" ]; then
More information about the svn-src-head
mailing list