[PATCH v5] fff-hoods: Use channel provided by gateway
Adrian Schmutzler
freifunk at adrianschmutzler.de
Sa Okt 14 17:48:59 CEST 2017
Only apply after keyXv2 patchset!
Diesen Patch als letzten applien!
Changes in v2:
- rebase due to conflict with 802.11s
Changes in v3:
- Fix wrong variable name introduced in v2
Changes in v4:
- Fixed comment
- Fixed channel comparison for wXsta
Changes in v5:
- Make radio in wifiAddPhyCond local
Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
Signed-off-by: Fabian Bläse <fabian at blaese.de>
---
.../fff/fff-hoods/files/usr/sbin/configurehood | 19 ++++++++++++-------
.../fff/fff-wireless/files/lib/functions/fff/wireless | 18 +++++++++---------
2 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
index 6ff7104..b48b260 100755
--- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
+++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
@@ -74,12 +74,17 @@ else
fi
#now we look for phy and add this
for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
- radio="$(wifiAddPhyCond "$phy" "2" "$chan2ghz")"
- radio5="$(wifiAddPhyCond "$phy" "5" "$chan5ghz")"
- [ -n "$radio5" ] && radio="$radio5"
+ radio="$(wifiAddPhyCond "$phy" "2" "auto")"
+ radio5="$(wifiAddPhyCond "$phy" "5" "auto5")"
+ if [ -n "$radio5" ] ; then
+ radio="$radio5"
+ staiface="w5sta"
+ else
+ staiface="w2sta"
+ fi
#and here we add the station
- if ! wifiAddSta "$radio" "config.franken.freifunk.net" "configSta"; then
+ if ! wifiAddSta "$radio" "config.franken.freifunk.net" "configSta" "$staiface" ; then
echo "Can't add Sta interface on $radio."
exit 1
else
@@ -124,11 +129,11 @@ if [ -s /tmp/keyxchangev2data ]; then
json_get_var mesh_essid mesh_essid
json_get_var essid essid
json_get_var ntpip ntp_ip
- # i think the next things we don't active this in the first version! we can do it later
- #json_get_var channel2 channel2
+ # Additional parameters may be activated in future versions
+ json_get_var chan2ghz channel2
#json_get_var mode2 mode2
json_get_var mesh_type2 mesh_type2
- #json_get_var channel5 channel5
+ json_get_var chan5ghz channel5
#json_get_var mode5 mode5
json_get_var mesh_type5 mesh_type5
#json_get_var protocol protocol
diff --git a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
index 4493b05..b1ff5a9 100644
--- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
+++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
@@ -25,7 +25,10 @@ wifiAddPhy() {
local channel=$2
local radio="radio$(echo "$phy" | tr -d -C "0-9")"
local hwmode="11g"
- if [ "$channel" -gt "14" ]; then
+ if [ "$channel" = "auto5" ] ; then
+ hwmode="11a"
+ channel="auto"
+ elif ( ! [ "$channel" = "auto" ] ) && [ "$channel" -gt "14" ]; then
hwmode="11a"
fi
@@ -59,7 +62,8 @@ wifiAddPhyCond() {
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
@@ -147,21 +151,17 @@ wifiAddAP() {
}
wifiAddSta() {
- if [ $# -ne "3" ]
+ if [ $# -ne "4" ]
then
- echo "Usage: wifiAddSta <radio> <essid> <network>"
+ echo "Usage: wifiAddSta <radio> <essid> <network> <iface>"
return 1
fi
local radio=$1
local essid=$2
local network=$3
+ local iface=$4
- local channel=$(uci get "wireless.${radio}.channel")
- local iface="w2sta"
- if [ "$channel" -gt "14" ]; then
- iface="w5sta"
- fi
uci batch <<-__EOF__
set wireless.${iface}='wifi-iface'
set wireless.${iface}.device='${radio}'
--
2.7.4
Mehr Informationen über die Mailingliste franken-dev