[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