From 3e6b3b3d02749b8b971f298ca8d3c1a103e54c82 Mon Sep 17 00:00:00 2001 From: Janusz Dziedzic <janusz.dziedzic@iopsys.eu> Date: Mon, 14 Dec 2020 14:21:27 +0100 Subject: [PATCH] brcm63xx: wifi save back ifnames In case of autogenerated ifnames, save them back to UCI (config/wireless). Signed-off-by: Janusz Dziedzic <janusz.dziedzic@iopsys.eu> --- .../lib/netifd/wireless/mac80211.sh | 42 ++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/iopsys-brcm63xx-arm/base-files/lib/netifd/wireless/mac80211.sh b/iopsys-brcm63xx-arm/base-files/lib/netifd/wireless/mac80211.sh index 7c7120cfb..c3e00a9ba 100755 --- a/iopsys-brcm63xx-arm/base-files/lib/netifd/wireless/mac80211.sh +++ b/iopsys-brcm63xx-arm/base-files/lib/netifd/wireless/mac80211.sh @@ -615,6 +615,40 @@ mac80211_iw_interface_add() { return $rc } +get_uci_idx() { + local phy=$1 + local mode=$2 + local ssid=$3 + + local sections=$(seq 0 15) + + + phyidx=$(echo "$phy" | sed 's/\(phy\)\([0-9]*\)/\2/g') + device="wl${phyidx}" + + for section in $sections; do + d=$(uci get wireless.@wifi-iface[$section].device) + m=$(uci get wireless.@wifi-iface[$section].mode) + s=$(uci get wireless.@wifi-iface[$section].ssid) + + + [ -z "$d" ] && continue + [ -z "$m" ] && continue + + logger -t mac80211 "[$section] $device/$mode/$ssid vs $d/$m/$s" + [ -z "$s" ] && [ "$mode" == "ap" ] && continue + + [ "$device" != "$d" ] && continue + [ "$mode" != "$m" ] && continue + [ "$ssid" != "$s" ] && [ "$mode" == "ap" ] && continue + + echo "$section" + return + done + + echo "unknown" +} + mac80211_prepare_vif() { json_select config @@ -657,7 +691,13 @@ mac80211_prepare_vif() { ;; esac - logger -t mac80211 "$phy $mode generated ifname $ifname" + uci_idx=$(get_uci_idx $phy $mode $ssid) + logger -t mac80211 "$phy $mode generated ifname $ifname uci_idx $uci_idx" + + [ "$uci_idx" != "unknown" ] && { + uci -q set wireless.@wifi-iface[$uci_idx].ifname="$ifname" + uci commit wireless + } } case $mode in -- GitLab