firmware/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
Adrian Schmutzler 8a1eb6d4c8 fff-wireless: Also use wXmesh label for wXibss
The two different names "wXmesh" and "wXibss" have no functional
purpose and are just for indication. Remove this distinction, so
mesh is just mesh.

This will make further adjustment easier and clearer.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Reviewed-by: Fabian Bläse <fabian@blaese.de>
2019-07-22 22:33:33 +02:00

230 lines
4.6 KiB
Plaintext

# Copyright 2016 Tim Niemeyer
# License GPLv3
wifiDelAll() {
if [ $# -ne "0" ]
then
echo "Usage: wifiDelAll"
return 1
fi
> /etc/config/wireless
return 0
}
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
}
wifiAddPhy() {
if [ $# -ne "2" ]
then
echo "Usage: wifiAddPhy <phy> <channel>"
return 1
fi
local phy=$1
local channel=$2
local radio="radio$(echo "$phy" | tr -d -C "0-9")"
local hwmode="11g"
if [ "$channel" = "auto5" ] ; then
hwmode="11a"
channel="auto"
elif ( ! [ "$channel" = "auto" ] ) && [ "$channel" -gt "14" ]; then
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__
if [ "$hwmode" = "11g" ]; then
uci batch <<-__EOF__
set wireless.${radio}.legacy_rates='0'
__EOF__
fi
uci commit wireless
echo "${radio}"
return 0
}
wifiAddPhyCond() {
if [ $# -ne "3" ]
then
return 1
fi
local phy=$1
local freq=$2
local channel=$3
local radio=""
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
}
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")
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='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() {
if [ $# -ne "5" ]
then
echo "Usage: wifiAddAP <radio> <essid> <network> <iface> <hidden>"
return 1
fi
local radio=$1
local essid=$2
local network=$3
local inface=$4
local hidden=$5
local channel=$(uci get "wireless.${radio}.channel")
local iface="w2${inface}"
if [ "$channel" -gt "14" ]; then
iface="w5${inface}"
fi
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='ap'
set wireless.${iface}.ssid='${essid}'
set wireless.${iface}.encryption='none'
set wireless.${iface}.hidden='${hidden}'
commit wireless
__EOF__
echo "${iface}"
return 0
}
wifiAddSta() {
if [ $# -ne "4" ]
then
echo "Usage: wifiAddSta <radio> <essid> <network> <iface>"
return 1
fi
local radio=$1
local essid=$2
local network=$3
local iface=$4
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}"
return 0
}
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'
set network.${iface}.mtu='1560'
set network.${iface}.proto='batadv'
set network.${iface}.mesh='bat0'
commit network
__EOF__
echo "${iface}"
return 0
}
# vim: set noexpandtab:tabstop=4