#!/bin/sh . /lib/functions.sh config_load wireless configure_radio() { local radio="$1" local channel; local htmode; local ssid; local mesh_ssid; local mesh_bssid; local mesh_mcast_rate config_get hwmode "$radio" 'hwmode' case "$hwmode" in 11g|11ng) channel='@wifi24.channel@' htmode='@wifi24.htmode@' ssid='@wifi24.ssid@' mesh_ssid='@wifi24.mesh_ssid@' mesh_bssid='@wifi24.mesh_bssid@' mesh_mcast_rate='@wifi24.mesh_mcast_rate@' ;; 11a|11na) channel='@wifi5.channel@' htmode='@wifi5.htmode@' ssid='@wifi5.ssid@' mesh_ssid='@wifi5.mesh_ssid@' mesh_bssid='@wifi5.mesh_bssid@' mesh_mcast_rate='@wifi5.mesh_mcast_rate@' ;; *) return esac uci_remove wireless "$radio" 'disabled' uci_set wireless "$radio" channel "$channel" uci_set wireless "$radio" htmode "$htmode" uci_set wireless "$radio" country '@regdom@' uci_add wireless 'wifi-iface' "client_${radio}" uci_set wireless "client_${radio}" device "$radio" uci_set wireless "client_${radio}" network 'client' uci_set wireless "client_${radio}" mode 'ap' uci_set wireless "client_${radio}" ssid "$ssid" uci_add network 'interface' "mesh_${radio}" uci_set network "mesh_${radio}" proto 'batadv' uci_set network "mesh_${radio}" mtu '1528' uci_set network "mesh_${radio}" mesh 'bat0' uci_add wireless 'wifi-iface' "mesh_${radio}" uci_set wireless "mesh_${radio}" device "$radio" uci_set wireless "mesh_${radio}" network "mesh_${radio}" uci_set wireless "mesh_${radio}" mode 'adhoc' uci_set wireless "mesh_${radio}" ssid "$mesh_ssid" uci_set wireless "mesh_${radio}" bssid "$mesh_bssid" uci_set wireless "mesh_${radio}" mcast_rate "$mesh_mcast_rate" } config_foreach configure_radio 'wifi-device' uci_commit wireless uci_commit network