Compare commits

...

5 Commits

Author SHA1 Message Date
Jakob Olsson
c21b3f77be map-agent: reload mapagent config after commiting 2021-09-21 15:54:29 +02:00
Jakob Olsson
4707d118e6 map-agent: find matching band creds for un-onboarded bsta 2021-09-21 12:06:39 +02:00
Janusz Dziedzic
dc290d48ad onboarding, start wps on all available sta ifaces
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu>
2021-09-20 12:56:43 +02:00
Jakob Olsson
671bfbbdb3 map-agent: hash update 2021-09-20 12:51:33 +02:00
Jakob Olsson
363e9bb980 map-agent: multiap - add backhaul priority sync for bstas 2021-09-20 12:40:17 +02:00
3 changed files with 146 additions and 5 deletions

View File

@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=map-agent
PKG_VERSION:=5.2.2
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=e9248b872711e7b6242974684478bdba0f14a7cb
PKG_SOURCE_VERSION:=621236484f923cbfbecb8608b86aa1e585f935fe
PKG_MAINTAINER:=Anjan Chanda <anjan.chanda@iopsys.eu>
PKG_LICENSE:=PROPRIETARY IOPSYS

View File

@@ -296,7 +296,119 @@ brcm_teardown_iface() {
}
brcm_bsta_to_wireless() {
config_load mapagent
mapagent_find_lowest_prio_onboarded() {
mapagent_process_bk() {
config_get priority $1 priority "2"
config_get onboarded $1 onboarded "0"
[ "$onboarded" = "0" ] && return
if [ -z "$sec" -o "$prio" = "-1" -o "$priority" -lt "$prio" ]; then
sec=$1
prio=$priority
fi
}
local sec=""
local prio="-1"
config_foreach mapagent_process_bk bk-iface
echo $sec
}
mapagent_enable_best() {
echo 1=$1 best=$best > /dev/console
if [ "$1" = "$best" ]; then
uci -q set mapagent.$1.enabled='1'
else
uci -q set mapagent.$1.enabled='0'
fi
}
mapagent_bsta_to_wireless() {
mapagent_apply_wl_bsta() {
apply_config() {
local section=$1
local bsta=$2
local ssid=$3
local key=$4
local encryption=$5
local enabled=$6
local disabled="0"
config_get ifname $section ifname
[ -z "$enabled" -o "$enabled" = "0" ] && disabled="1"
[ "$bsta" == "$ifname" ] || return
uci set wireless.${section}.ssid=$ssid
uci set wireless.${section}.key=$key
uci set wireless.${section}.encryption=$encryption
uci set wireless.${section}.disabled=$disabled
echo 1
}
config_load wireless
config_foreach apply_config wifi-iface $@
uci commit wireless
}
mapagent_find_other_creds() {
echo "trying to find other creds for $2" > /dev/console
config_get band $1 band
config_get onboarded $1 onboarded "0"
[ "$3" != "$band" -o "$onboarded" = "0" ] && return
config_get ssid $1 ssid
config_get key $1 key
config_get encryption $1 encryption
config_get enabled $1 enabled "0"
echo "$(mapagent_apply_wl_bsta $2 $ssid $key $encryption $4)"
}
config_get band $1 band
config_get ifname $1 ifname
config_get onboarded $1 onboarded "0"
config_get enabled $1 enabled "0"
if [ "$onboarded" = "0" ]; then
config_foreach mapagent_find_other_creds bk-iface $ifname $band $enabled
else
config_get ssid $1 ssid
config_get key $1 key
config_get encryption $1 encryption
echo "$(mapagent_apply_wl_bsta $ifname $ssid $key $encryption $enabled)"
fi
}
best=$(mapagent_find_lowest_prio_onboarded)
[ -z "$best" ] && return
band=$1
sec=""
prio=""
config_foreach mapagent_enable_best bk-iface $best
uci commit mapagent
config_load mapagent
diff=$(config_foreach mapagent_bsta_to_wireless bk-iface)
[ "$diff" != "" ] && {
ubus call uci commit '{"config":"wireless"}'
}
}
func=$1
shift
@@ -310,6 +422,7 @@ case "$func" in
set_network) brcm_set_network $@;;
write_bsta_config) write_bsta_config $@;;
teardown_iface) brcm_teardown_iface $@;;
bsta_to_wireless) brcm_bsta_to_wireless $@;;
--help|help) usage;;
*) usage; exit 1;;
esac

View File

@@ -60,17 +60,45 @@ supp_status() {
echo "UNCONFIGURED"
}
supp_configured() {
wpasupp=$1
for wpa in $wpasupp
do
logger -t button "WPS $wpa check if configured"
status=$(supp_status $wpa)
if [ "$status" = "CONFIGURED" ]; then
logger -t button "WPS $wpa CONFIGURED"
echo "CONFIGURED"
return
fi
done
echo "UNCONFIGURED"
}
supp_wps() {
wpasupp=$1
for wpa in $wpasupp
do
logger -t button "WPS $wpa start"
ubus -t 1 call $wpa wps_start
done
}
wps_button() {
logger -t button "WPS button is pressed"
wpasupp="$(ubus list wpa_supplicant.* 2>/dev/null | head -1)"
wpasupp="$(ubus list wpa_supplicant.* 2>/dev/null)"
logger -t button "WPS checking: $wpasupp"
if [ -n "$wpasupp" ]; then
status=$(supp_status $wpasupp)
status=$(supp_configured "$wpasupp")
logger -t button "status $status"
if [ "$status" = "CONFIGURED" ]; then
start_ap_wps
else
logger -t button "WPS start $wpasupp"
ubus -t 1 call $wpasupp wps_start
supp_wps "$wpasupp"
fi
else
start_ap_wps