openwrtv4/package/kernel/broadcom-wl/files/etc/hotplug.d/net/20-broadcom_wds
Hauke Mehrtens cac4ccca2f broadcom-wl: change interface names
'netifd' treats all devices with a "." in their name as vlan devices.
Modify the name of virtual/WDS interfaces created by broadcom-wl to use
a "-" instead of a ".", so they will be treated as simple devices
by 'netifd'.

Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>

SVN-Revision: 38748
2013-11-11 21:57:26 +00:00

61 lines
1.3 KiB
Text

include /lib/wifi
setup_broadcom_wds() {
local iface="$1"
local remote="$(wlc ifname "$iface" wdsmac)"
[ -z "$remote" ] && return
config_cb() {
[ -z "$CONFIG_SECTION" ] && return
config_get type "$CONFIG_SECTION" TYPE
[ "$type" = "wifi-iface" ] || return
config_get network "$CONFIG_SECTION" network
[ -z "$network" ] && return
config_get addr "$CONFIG_SECTION" bssid
addr=$(echo "$addr" | tr 'A-F' 'a-f')
[ "$addr" = "$remote" ] && {
local cfg="$CONFIG_SECTION"
include /lib/network
scan_interfaces
for network in $network; do
setup_interface "$iface" "$network"
done
config_get encryption "$cfg" encryption
config_get key "$cfg" key
config_get ssid "$cfg" ssid
[ "$encryption" != "none" ] && {
sleep 5
case "$encryption" in
psk|PSK)
nas4not "$network" "$iface" up auto tkip psk "$key" "$ssid"
;;
psk2|PSK2)
nas4not "$network" "$iface" up auto aes psk "$key" "$ssid"
;;
psk+psk2|psk2+psk|PSK+PSK2|PSK2+PSK)
nas4not "$network" "$iface" up auto aes+tkip psk "$key" "$ssid"
;;
*)
nas4not lan "$iface" up auto aes "$encryption" "$key" "$ssid"
;;
esac
}
}
}
config_load wireless
}
case "$ACTION" in
add|register)
[ "${INTERFACE%%0-*}" = wds ] && setup_broadcom_wds "$INTERFACE"
;;
esac