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>
This commit is contained in:
parent
9c10871d75
commit
e560791028
@ -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";
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user