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

Submitted by Adrian Schmutzler on Oct. 19, 2017, 10:36 p.m.

Details

Message ID 1508452583-49391-1-git-send-email-freifunk@adrianschmutzler.de
State Superseded
Headers show

Commit Message

Adrian Schmutzler Oct. 19, 2017, 10:36 p.m.
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
- Remove obsolete channel variables at beginning of script

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Fabian Bläse <fabian@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(-)

Patch hide | download patch | download mbox

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.@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/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}'

Comments

Tim Niemeyer Oct. 25, 2017, 2:47 p.m.
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@adrianschmutzler.de>
> Signed-off-by: Fabian Bläse <fabian@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.@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/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
>
Adrian Schmutzler Oct. 25, 2017, 3:57 p.m.
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.

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.

Grüße

Adrian

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of Tim Niemeyer
> Sent: Mittwoch, 25. Oktober 2017 16:47
> To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
> dev@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@adrianschmutzler.de>
> > Signed-off-by: Fabian Bläse <fabian@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.@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/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
> >
Tim Niemeyer Oct. 25, 2017, 7:44 p.m.
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@freifunk.net] On Behalf
> > Of Tim Niemeyer
> > Sent: Mittwoch, 25. Oktober 2017 16:47
> > To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
> > dev@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@adrianschmutzler.de>
> > > Signed-off-by: Fabian Bläse <fabian@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.@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/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
> > >
> 
>
Adrian Schmutzler Oct. 25, 2017, 9:59 p.m.
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@tn-x.org]
> Sent: Mittwoch, 25. Oktober 2017 21:44
> To: Adrian Schmutzler <mail@adrianschmutzler.de>
> Cc: franken-dev@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@freifunk.net] On
> > > Behalf Of Tim Niemeyer
> > > Sent: Mittwoch, 25. Oktober 2017 16:47
> > > To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
> > > dev@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@adrianschmutzler.de>
> > > > Signed-off-by: Fabian Bläse <fabian@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.@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
> > > >
> >
> >