mac80211: change default ifname to <phy>-<type><index>
authorFelix Fietkau <nbd@nbd.name>
Fri, 23 Sep 2022 12:12:32 +0000 (14:12 +0200)
committerFelix Fietkau <nbd@nbd.name>
Fri, 14 Oct 2022 11:12:36 +0000 (13:12 +0200)
This makes it clear, which phy a wlan device belongs to and also helps with
telling them apart by including the mode in the ifname.
Preparation for automatically renaming PHYs

Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh

index e6f326c2e632bca8830c9d16057e816fb48b5f57..e05a5b8feeaba3e6ca84f683333996a1a00edc72 100644 (file)
@@ -667,13 +667,28 @@ mac80211_iw_interface_add() {
        return $rc
 }
 
+mac80211_set_ifname() {
+       local phy="$1"
+       local prefix="$2"
+       eval "ifname=\"$phy-$prefix\${idx_$prefix:-0}\"; idx_$prefix=\$((\${idx_$prefix:-0 } + 1))"
+}
+
 mac80211_prepare_vif() {
        json_select config
 
        json_get_vars ifname mode ssid wds powersave macaddr enable wpa_psk_file vlan_file
 
-       [ -n "$ifname" ] || ifname="wlan${phy#phy}${if_idx:+-$if_idx}"
-       if_idx=$((${if_idx:-0} + 1))
+       [ -n "$ifname" ] || {
+               local prefix;
+
+               case "$mode" in
+               ap|sta|mesh) prefix=$mode;;
+               adhoc) prefix=ibss;;
+               monitor) prefix=mon;;
+               esac
+
+               mac80211_set_ifname "$phy" "$prefix"
+       }
 
        set_default wds 0
        set_default powersave 0