[PATCH v6] fff-hoods: Use channel provided by gateway

Fabian Bläse fabian at blaese.de
Fr Okt 20 00:20:24 CEST 2017


Was wollen wir tun, wenn im json kein Channel drin steht? Aktuell dürfte das recht unschöne Fehlermeldungen geben.

Fabian

> On 19. Oct 2017, at 22:47, <mail at adrianschmutzler.de> <mail at adrianschmutzler.de> wrote:
> 
> Tested-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> 
>> -----Original Message-----
>> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf
>> Of Fabian Bläse
>> Sent: Donnerstag, 19. Oktober 2017 22:39
>> To: Adrian Schmutzler <freifunk at adrianschmutzler.de>
>> Cc: franken-dev at freifunk.net
>> Subject: Re: [PATCH v6] fff-hoods: Use channel provided by gateway
>> 
>> Tested-by: Fabian Bläse <fabian at blaese.de>
>> 
>>> On 15. Oct 2017, at 11:29, Adrian Schmutzler
>> <freifunk at adrianschmutzler.de> wrote:
>>> 
>>> 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 <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 | 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 <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
>>> 
> 
> 
> --
> franken-dev mailing list
> franken-dev at freifunk.net
> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: Message signed with OpenPGP
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20171020/f17c85c3/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev