mac80211: change default ifname to <phy>-<type><index>
[openwrt/staging/hauke.git] / 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