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

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


Hallo,

ich würde mich da tatsächlich an das Hoodfile halten und das WiFi entsprechend deaktivieren. Wenn man ein kaputtes Hoodfile bekommt, dann ist das halt so. Kann ja möglicherweise auch einen guten Grund haben bei einer dezentralen Hood ein Band zu deaktivieren.

Fabian

> On 20. Oct 2017, at 08:18, Christian Dresel <fff at chrisi01.de> wrote:
> 
> Hi
> 
> On 20.10.2017 00:30, mail at adrianschmutzler.de wrote:
>> Wie wärs mit
>> 
>> [ -z "$chan2ghz" ] && chan2ghz="1"
> 
> weiß nicht ob das ne gute Idee ist? Wenn kein Channel drin steht ist die
> Hoodfile defekt. Ich würde eher versuchen weiterhin eine korrekte zu
> bekommen und den Router nicht auf irgendwas (was vermutlich eh nicht
> funktioniert) zu konfigurieren.
> 
> Das ganze brachte mich aber auf eine Idee:
> Eigentlich sollten die Router ihre angebotene Hoodfile dynamisch
> schreiben. Zumindest sollte in der Hoodfile der Channel stehen, auf den
> das Gerät auch eingestellt sind. Wenn ich nämlich bei mir die Channels
> aufteile (Kirchturm mit 4 Sektoren zum Beispiel) und jemand im
> Nordsektor mit Kanal 5 die Hoodfile mit Kanal 13 zieht, ist das
> irgendwie doof.
> 
> Also wäre es toll, wenn der Router der auf Kanal 5 ist, in die Hoodfile
> auch Kanal 5 schreibt.
> 
> Dadurch kann dann auch problemlos der Kanal nach Lust & Lauen geändert
> werden, Meshrouter machen diese Änderung mit ("Oh kein GW mehr? Machen
> wir mal STA und holen uns die aktuellste json wo der neue Kanal drinnen
> steht...")
> 
> Problem dabei, Meshrouter holen sich die File wärend des Betriebs vom
> Gateway und da steht wieder 13 (im oberen Beispiel) drinnen. Das müsste
> man auch irgendwie abfangen.
> 
> Ich fände das schon sehr cool aber vermutlich doch recht aufwendig.
> 
> mfg
> 
> Christian
> 
>> 
>> ?
>> 
>>> -----Original Message-----
>>> From: Fabian Bläse [mailto:fabian at blaese.de]
>>> Sent: Freitag, 20. Oktober 2017 00:20
>>> To: mail at adrianschmutzler.de; franken-dev at freifunk.net
>>> Subject: Re: [PATCH v6] fff-hoods: Use channel provided by gateway
>>> 
>>> 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/70ce75b4/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev