summaryrefslogtreecommitdiffstats
path: root/package/broadcom-wl/files/etc/hotplug.d/net/20-broadcom_wds
blob: 3ca4cd2dc68bf6e6c863ca09aacc3dd7eee7729e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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" = "$remote" ] && {
			include /lib/network
			scan_interfaces

			setup_interface "$iface" "$network"
		}
	}

	config_load wireless
}

case "$ACTION" in
	add|register)
		[ "${INTERFACE%%0.*}" = wds ] && setup_broadcom_wds "$INTERFACE"
	;;
esac