2016-06-10 23:58:09 +02:00
|
|
|
# Copyright 2016 Tim Niemeyer
|
|
|
|
# License GPLv3
|
|
|
|
|
|
|
|
wifiDelAll() {
|
|
|
|
if [ $# -ne "0" ]
|
|
|
|
then
|
|
|
|
echo "Usage: wifiDelAll"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
> /etc/config/wireless
|
|
|
|
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2017-11-02 14:31:15 +01:00
|
|
|
wifiDelIface() {
|
|
|
|
if [ $# -ne "0" ]
|
|
|
|
then
|
|
|
|
echo "Usage: wifiDelIface"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
grep 'config wifi-iface' /etc/config/wireless | sed -n -e "s/.*'\([^']*\)'.*/\1/p" | while read -r line ; do
|
|
|
|
uci -q delete "wireless.$line"
|
|
|
|
done
|
|
|
|
uci -q commit wireless
|
|
|
|
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2016-06-10 23:58:09 +02:00
|
|
|
wifiAddPhy() {
|
|
|
|
if [ $# -ne "2" ]
|
|
|
|
then
|
|
|
|
echo "Usage: wifiAddPhy <phy> <channel>"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
local phy=$1
|
|
|
|
local channel=$2
|
2017-08-19 14:34:42 +02:00
|
|
|
local radio="radio$(echo "$phy" | tr -d -C "0-9")"
|
2016-06-10 23:58:09 +02:00
|
|
|
local hwmode="11g"
|
2017-10-26 08:57:12 +02:00
|
|
|
if [ "$channel" = "auto5" ] ; then
|
|
|
|
hwmode="11a"
|
|
|
|
channel="auto"
|
|
|
|
elif ( ! [ "$channel" = "auto" ] ) && [ "$channel" -gt "14" ]; then
|
2016-06-10 23:58:09 +02:00
|
|
|
hwmode="11a"
|
|
|
|
fi
|
|
|
|
|
|
|
|
uci batch <<-__EOF__
|
|
|
|
set wireless.${radio}='wifi-device'
|
|
|
|
set wireless.${radio}.type='mac80211'
|
|
|
|
set wireless.${radio}.channel='${channel}'
|
|
|
|
set wireless.${radio}.phy='${phy}'
|
|
|
|
set wireless.${radio}.hwmode='${hwmode}'
|
|
|
|
set wireless.${radio}.htmode='HT20'
|
|
|
|
set wireless.${radio}.country='DE'
|
|
|
|
__EOF__
|
2017-08-19 14:34:41 +02:00
|
|
|
if [ "$hwmode" = "11g" ]; then
|
|
|
|
uci batch <<-__EOF__
|
2018-11-26 22:49:53 +01:00
|
|
|
set wireless.${radio}.legacy_rates='0'
|
2017-08-19 14:34:41 +02:00
|
|
|
__EOF__
|
|
|
|
fi
|
|
|
|
uci commit wireless
|
2016-06-10 23:58:09 +02:00
|
|
|
|
|
|
|
echo "${radio}"
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2017-10-05 15:37:44 +02:00
|
|
|
wifiAddPhyCond() {
|
|
|
|
if [ $# -ne "3" ]
|
|
|
|
then
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
local phy=$1
|
|
|
|
local freq=$2
|
|
|
|
local channel=$3
|
|
|
|
local radio=""
|
2017-10-26 08:57:12 +02:00
|
|
|
|
2017-10-05 15:37:44 +02:00
|
|
|
if iw phy "$phy" info | grep -q -m1 "${freq}... MHz"; then
|
|
|
|
radio="$(wifiAddPhy "$phy" "$channel")"
|
|
|
|
if [ -z "$radio" ]; then
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$radio"
|
|
|
|
return 0 # also returns success if outermost if is false
|
|
|
|
}
|
|
|
|
|
2016-06-10 23:58:09 +02:00
|
|
|
wifiAddAdHocMesh() {
|
|
|
|
if [ $# -ne "3" ]
|
|
|
|
then
|
|
|
|
echo "Usage: wifiAddAdHocMesh <radio> <essid> <bssid>"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
local radio=$1
|
|
|
|
local essid=$2
|
|
|
|
local bssid=$3
|
|
|
|
|
|
|
|
local channel=$(uci get "wireless.${radio}.channel")
|
2019-06-16 16:23:23 +02:00
|
|
|
local iface="w2mesh"
|
2016-06-10 23:58:09 +02:00
|
|
|
if [ "$channel" -gt "14" ]; then
|
2019-06-16 16:23:23 +02:00
|
|
|
iface="w5mesh"
|
2016-06-10 23:58:09 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
uci batch <<-__EOF__
|
|
|
|
set wireless.${iface}='wifi-iface'
|
|
|
|
set wireless.${iface}.device='${radio}'
|
|
|
|
set wireless.${iface}.network='${iface}'
|
|
|
|
set wireless.${iface}.ifname='${iface}'
|
|
|
|
set wireless.${iface}.mode='adhoc'
|
|
|
|
set wireless.${iface}.bssid='${bssid}'
|
|
|
|
set wireless.${iface}.ssid='${essid}'
|
|
|
|
set wireless.${iface}.mcast_rate='6000'
|
|
|
|
set wireless.${iface}.encryption='none'
|
|
|
|
commit wireless
|
|
|
|
|
|
|
|
set network.${iface}='interface'
|
|
|
|
set network.${iface}.mtu='1528'
|
|
|
|
set network.${iface}.proto='batadv'
|
|
|
|
set network.${iface}.mesh='bat0'
|
|
|
|
commit network
|
|
|
|
__EOF__
|
|
|
|
|
|
|
|
echo "${iface}"
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
wifiAddAP() {
|
2017-10-05 15:37:42 +02:00
|
|
|
if [ $# -ne "5" ]
|
2016-06-10 23:58:09 +02:00
|
|
|
then
|
2017-10-05 15:37:42 +02:00
|
|
|
echo "Usage: wifiAddAP <radio> <essid> <network> <iface> <hidden>"
|
2016-06-10 23:58:09 +02:00
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
local radio=$1
|
|
|
|
local essid=$2
|
2017-10-05 15:37:42 +02:00
|
|
|
local network=$3
|
|
|
|
local inface=$4
|
|
|
|
local hidden=$5
|
2016-06-10 23:58:09 +02:00
|
|
|
|
|
|
|
local channel=$(uci get "wireless.${radio}.channel")
|
2017-10-05 15:37:42 +02:00
|
|
|
local iface="w2${inface}"
|
2016-06-10 23:58:09 +02:00
|
|
|
if [ "$channel" -gt "14" ]; then
|
2017-10-05 15:37:42 +02:00
|
|
|
iface="w5${inface}"
|
2016-06-10 23:58:09 +02:00
|
|
|
fi
|
|
|
|
uci batch <<-__EOF__
|
|
|
|
set wireless.${iface}='wifi-iface'
|
|
|
|
set wireless.${iface}.device='${radio}'
|
2017-10-05 15:37:42 +02:00
|
|
|
set wireless.${iface}.network='${network}'
|
2016-06-10 23:58:09 +02:00
|
|
|
set wireless.${iface}.ifname='${iface}'
|
|
|
|
set wireless.${iface}.mode='ap'
|
|
|
|
set wireless.${iface}.ssid='${essid}'
|
|
|
|
set wireless.${iface}.encryption='none'
|
2017-10-05 15:37:42 +02:00
|
|
|
set wireless.${iface}.hidden='${hidden}'
|
2016-06-10 23:58:09 +02:00
|
|
|
|
|
|
|
commit wireless
|
|
|
|
__EOF__
|
|
|
|
|
|
|
|
echo "${iface}"
|
2017-10-05 15:37:44 +02:00
|
|
|
return 0
|
2016-06-10 23:58:09 +02:00
|
|
|
}
|
|
|
|
|
2017-10-05 15:37:42 +02:00
|
|
|
wifiAddSta() {
|
2017-10-26 08:57:12 +02:00
|
|
|
if [ $# -ne "4" ]
|
2017-10-05 15:37:42 +02:00
|
|
|
then
|
2017-10-26 08:57:12 +02:00
|
|
|
echo "Usage: wifiAddSta <radio> <essid> <network> <iface>"
|
2017-10-05 15:37:42 +02:00
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
local radio=$1
|
|
|
|
local essid=$2
|
|
|
|
local network=$3
|
2017-10-26 08:57:12 +02:00
|
|
|
local iface=$4
|
2017-10-05 15:37:42 +02:00
|
|
|
|
|
|
|
uci batch <<-__EOF__
|
|
|
|
set wireless.${iface}='wifi-iface'
|
|
|
|
set wireless.${iface}.device='${radio}'
|
|
|
|
set wireless.${iface}.network='${network}'
|
|
|
|
set wireless.${iface}.ifname='${iface}'
|
|
|
|
set wireless.${iface}.mode='sta'
|
|
|
|
set wireless.${iface}.ssid='${essid}'
|
|
|
|
|
|
|
|
commit wireless
|
|
|
|
__EOF__
|
|
|
|
|
|
|
|
echo "${iface}"
|
2017-10-05 15:37:44 +02:00
|
|
|
return 0
|
2017-10-05 15:37:42 +02:00
|
|
|
}
|
|
|
|
|
2017-10-15 11:27:58 +02:00
|
|
|
wifiAddMesh() {
|
|
|
|
if [ $# -ne "2" ]
|
|
|
|
then
|
|
|
|
echo "Usage: wifiAddMesh <radio> <mesh-id>"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
local radio=$1
|
|
|
|
local mesh_id=$2
|
|
|
|
|
|
|
|
local channel=$(uci get "wireless.${radio}.channel")
|
|
|
|
local iface="w2mesh"
|
|
|
|
if [ "$channel" -gt "14" ]; then
|
|
|
|
iface="w5mesh"
|
|
|
|
fi
|
|
|
|
uci batch <<-__EOF__
|
|
|
|
set wireless.${iface}='wifi-iface'
|
|
|
|
set wireless.${iface}.device='${radio}'
|
|
|
|
set wireless.${iface}.network='${iface}'
|
|
|
|
set wireless.${iface}.ifname='${iface}'
|
|
|
|
set wireless.${iface}.mode='mesh'
|
|
|
|
set wireless.${iface}.mesh_id='${mesh_id}'
|
|
|
|
set wireless.${iface}.encryption='none'
|
|
|
|
set wireless.${iface}.mesh_fwding=0
|
|
|
|
commit wireless
|
|
|
|
|
|
|
|
set network.${iface}='interface'
|
2019-05-23 14:47:46 +02:00
|
|
|
set network.${iface}.mtu='1560'
|
2017-10-15 11:27:58 +02:00
|
|
|
set network.${iface}.proto='batadv'
|
|
|
|
set network.${iface}.mesh='bat0'
|
|
|
|
commit network
|
|
|
|
__EOF__
|
|
|
|
|
|
|
|
echo "${iface}"
|
|
|
|
return 0
|
|
|
|
}
|
2016-06-10 23:58:09 +02:00
|
|
|
# vim: set noexpandtab:tabstop=4
|