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

mail at adrianschmutzler.de mail at adrianschmutzler.de
Mi Okt 25 23:59:33 CEST 2017


Hallo nochmal,

hatte gerade eine Idee für einen meshbaren Local-Override ohne großen Zusatzaufwand, werde morgen einen kleinen RFC dazu schreiben.

Grüße

Adrian

> -----Original Message-----
> From: Tim Niemeyer [mailto:tim at tn-x.org]
> Sent: Mittwoch, 25. Oktober 2017 21:44
> To: Adrian Schmutzler <mail at adrianschmutzler.de>
> Cc: franken-dev at freifunk.net
> Subject: Re: [PATCH v7] fff-hoods: Use channel provided by gateway
> 
> Hi
> 
> Am Mittwoch, den 25.10.2017, 17:57 +0200 schrieb Adrian Schmutzler:
> > Hallo,
> >
> > wie schon im Chat gesagt, wenn wir dann ein wlan-device deaktivieren,
> > müssen wir überlegen, was das für Konsequenzen hat und wie wir die
> > abfangen. Ich finde daher die untenstehende Lösung gut, da sie einfach
> > ist und eigtl. keine Nachteile hat.
> 
> Ist auch wahr.
> >
> > Da drauf kann dann gerne jemand in Ruhe einen Patch schreiben, der das
> > dann ordentlich löst, aber das wäre in meinen Augen einiges an Arbeit
> > und KEIN Kompatibilitätsbruch.
> 
> Da gibt es ja unterschiedliche Möglichkeiten das abzufangen.
> 
> Im IRC wurde aber auch diskutiert, ob es besser wäre die Channel-Config am
> Mesh-Device vorzugeben, da bei einer Installation ggf mehrere Kanäle für
> unterschiedliche Richtungen genutzt werden. Da bin ich mir grad unsicher, ob
> das Einfluss auf diesen Patch hat und/oder haben soll.
> 
> Tim
> 
> > Grüße
> >
> > Adrian
> >
> > > -----Original Message-----
> > > From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On
> > > Behalf Of Tim Niemeyer
> > > Sent: Mittwoch, 25. Oktober 2017 16:47
> > > To: Adrian Schmutzler <freifunk at adrianschmutzler.de>; franken-
> > > dev at freifunk.net
> > > Subject: Re: [PATCH v7] fff-hoods: Use channel provided by gateway
> > >
> > > Hi
> > >
> > > Am Freitag, den 20.10.2017, 00:36 +0200 schrieb Adrian Schmutzler:
> > > > 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
> > > >
> > > > Changes in v7:
> > > > - Check if channel set and default otherwise
> > > Das war noch nicht ausdiskutiert.. es gab Bestrebungen das wifi aus
> > > zu machen, wenn kein channel da ist. Ich würde mich auch der Meinung
> > > anschließen, kein wifi mit kaputtem json.
> > >
> > > Tim
> > >
> > > > - Remove obsolete channel variables at beginning of script
> > > >
> > > > 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     | 25 +++++++++++++-
> -----
> > > ---
> > > >  .../fff-wireless/files/lib/functions/fff/wireless  | 17
> > > > +++++++--------
> > > >  2 files changed, 23 insertions(+), 19 deletions(-)
> > > >
> > > > diff --git
> > > > a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > > > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > > > index 88f6f53..ac8cd54 100755
> > > > --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > > > +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > > > @@ -28,9 +28,6 @@ hasInternet() {
> > > >  	return 1
> > > >  }
> > > >
> > > > -chan2ghz="1"
> > > > -chan5ghz="36"
> > > > -
> > > >  # Hidden AP check
> > > >
> > > >  if [ -f /tmp/hiddenapflag ]; then @@ -78,12 +75,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
> > > > @@ -128,17 +130,20 @@ 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
> > > >
> > > >  		json_select ".." # back to root
> > > >
> > > > +		[ -n "$chan2ghz" ] || chan2ghz="1"
> > > > +		[ -n "$chan5ghz" ] || chan5ghz="36"
> > > > +
> > > >  		echo "Setting hood name: $hood"
> > > >  		uci set "system. at system[0].hood=$hood"
> > > >
> > > > 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/wirele
> > > > +++ ss
> > > > @@ -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
> > > >
> >
> >




Mehr Informationen über die Mailingliste franken-dev