From patchwork Sun Oct 15 09:29:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [v6] fff-hoods: Use channel provided by gateway From: Adrian Schmutzler X-Patchwork-Id: 585 Message-Id: <1508059749-1481-1-git-send-email-freifunk@adrianschmutzler.de> To: franken-dev@freifunk.net Date: Sun, 15 Oct 2017 11:29:09 +0200 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 Changes in v6: - Rebase Signed-off-by: Adrian Schmutzler Signed-off-by: Fabian Bläse Tested-by: Fabian Bläse Tested-by: Adrian Schmutzler --- .../fff/fff-hoods/files/usr/sbin/configurehood | 19 ++++++++++++------- .../fff/fff-wireless/files/lib/functions/fff/wireless | 17 ++++++++--------- 2 files changed, 20 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 8ce9133..d64345f 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 7e418c2..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 @@ -60,7 +63,7 @@ wifiAddPhyCond() { 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 @@ -148,21 +151,17 @@ wifiAddAP() { } wifiAddSta() { - if [ $# -ne "3" ] + if [ $# -ne "4" ] then - echo "Usage: wifiAddSta " + echo "Usage: wifiAddSta " 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}'