[PATCH v2] configurehood: Provide options to disable AP and Mesh for WiFi

mail at adrianschmutzler.de mail at adrianschmutzler.de
So Jun 24 23:13:28 CEST 2018


Hallo Fabian,

das klingt für mich zunächst so vernünftig.

Ich werde da aber nochmal in Ruhe drüber nachdenken, da das in meinen Augen keine so extrem hohe Priorität hat.

Grüße

Adrian

> -----Original Message-----
> From: Fabian Bläse [mailto:fabian at blaese.de]
> Sent: Sonntag, 24. Juni 2018 11:38
> To: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> Cc: franken-dev <franken-dev at freifunk.net>
> Subject: Re: [PATCH v2] configurehood: Provide options to disable AP and
> Mesh for WiFi
> 
> Moin,
> 
> ich glaube wir sollten das anders angehen. Mein Vorschlag:
> Das permanente Ändern der Wifi Konfiguration sollte weg. Dazu:
> - Nur die fürs Hoodfile interessanten Parameter (SSID, Kanal, ..) bei
> configurehood ändern.
> - w2sta generell nur im RAM machen (uci set ohne commit, danach revert)
> 
> Dann kann man an die einzelnen Interfaces entweder disabled-Options dran
> setzen oder das ganze Interface löschen.
> (Es sollte natürlich im configurehood beim setzen der Parameter
> entsprechend geprüft werden, ob das Interface existiert)
> 
> Gruß
> Fabian
> 
> > On 9. Mar 2018, at 23:43, Adrian Schmutzler
> <freifunk at adrianschmutzler.de> wrote:
> >
> > Each WiFi interface can be disabled individually.
> >
> > To apply the settings after having changed uci, one has to uci commit
> > fff rm /www/hood/keyxchangev2data configurehood
> >
> > Fixes #97.
> >
> > Fixes misconfiguration in case of mixed IBSS/802.11s.
> >
> > Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> >
> > ---
> >
> > Changes in v2:
> > - Use separate settings for 2.4 and 5 GHz (an no combined setting)
> > - Add default values to fff-config
> > - Add comments to fff-config setup script
> > - Fix double equal sign in affected area of configurehood
> > - Rewrite section to reduce ifs and logical operators
> > ---
> > .../files/etc/uci-defaults/98-configure-fff        |  9 +++++++
> > .../fff/fff-hoods/files/usr/sbin/configurehood     | 31 ++++++++++++++-----
> ---
> > 2 files changed, 29 insertions(+), 11 deletions(-)
> >
> > diff --git
> > a/src/packages/fff/fff-config/files/etc/uci-defaults/98-configure-fff
> > b/src/packages/fff/fff-config/files/etc/uci-defaults/98-configure-fff
> > index aa6ac42..8433b7f 100644
> > ---
> > a/src/packages/fff/fff-config/files/etc/uci-defaults/98-configure-fff
> > +++ b/src/packages/fff/fff-config/files/etc/uci-defaults/98-configure-
> > +++ fff
> > @@ -4,11 +4,19 @@
> >
> > touch /etc/config/fff
> >
> > +# default config values
> > if ! uci -q get fff.system > /dev/null ; then
> > 	uci -q set fff.system=fff
> > 	uci -q set "fff.system.hostname=FFF"
> > fi
> >
> > +uci -q set fff.wifi=fff
> > +uci -q get fff.wifi.disablew2ap > /dev/null || uci -q set
> "fff.wifi.disablew2ap=0"
> > +uci -q get fff.wifi.disablew5ap > /dev/null || uci -q set
> "fff.wifi.disablew5ap=0"
> > +uci -q get fff.wifi.disablew2mesh > /dev/null || uci -q set
> "fff.wifi.disablew2mesh=0"
> > +uci -q get fff.wifi.disablew5mesh > /dev/null || uci -q set
> "fff.wifi.disablew5mesh=0"
> > +
> > +# apply config to other uci entries
> > FFF_hostname=$(uci -q get "fff.system.hostname") test -n
> > "${FFF_hostname}" && uci -q set
> "system. at system[0].hostname=${FFF_hostname}"
> > test -n "${FFF_hostname}" && echo "${FFF_hostname}" >
> > /proc/sys/kernel/hostname @@ -24,6 +32,7 @@ uci -q set "simple-
> tc.example.limit_egress=${traffic_out}"
> >
> > uci -q commit
> >
> > +# run configuration scripts
> > poe_passthrough=$(uci -q get "fff.poe_passthrough.active") if [
> > "$poe_passthrough" = "1" ] && [ -s /usr/lib/fff-
> support/activate_poe_passthrough.sh ] ; then
> > 	/usr/lib/fff-support/activate_poe_passthrough.sh
> > diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > index fd4126e..ae92f96 100755
> > --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > @@ -260,26 +260,35 @@ if [ -s "$hoodfile" ]; then
> > 		fi
> >
> > 		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" "5" "$chan5ghz")"
> > +
> > +			if [ -n "$radio" ] ; then
> > +				# 5 GHz
> > +				mesh_type="$mesh_type5"
> > +				disableap="fff.wifi.disablew5ap"
> > +				disablemesh="fff.wifi.disablew5mesh"
> > +			else
> > +				# 2.4 GHz
> > +				radio="$(wifiAddPhyCond "$phy" "2"
> "$chan2ghz")"
> > +				mesh_type="$mesh_type2"
> > +				disableap="fff.wifi.disablew2ap"
> > +				disablemesh="fff.wifi.disablew2mesh"
> > +			fi
> >
> > -			if ! wifiAddAP "$radio" "$essid" "mesh" "ap" "0"; then
> > +			if [ "$(uci -q get "$disableap")" != "1" ] && ! wifiAddAP
> "$radio"
> > +"$essid" "mesh" "ap" "0"; then
> > 				echo "Can't add AP interface on $radio."
> > 				exit 1
> > 			fi
> >
> > -			# add 802.11s mesh if type == "802.11s"
> > -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "802.11s" ]
> ) || [ "$mesh_type2" == "802.11s" ]; then
> > -				if ! wifiAddMesh "$radio" "$mesh_id"; then
> > +			if [ "$(uci -q get "$disablemesh")" != "1" ] ; then
> > +				# add 802.11s mesh if type = "802.11s"
> > +				if [ "$mesh_type" = "802.11s" ] && !
> wifiAddMesh "$radio"
> > +"$mesh_id"; then
> > 					echo "Can't add Mesh interface on
> $radio."
> > 					exit 1
> > 				fi
> > -			fi
> >
> > -			# add IBSS mesh if type == "ibss"
> > -			if ( [ -n "$radio5" ] && [ "$mesh_type5" == "ibss" ] ) ||
> [ "$mesh_type2" == "ibss" ]; then
> > -				if ! wifiAddAdHocMesh "$radio"
> "$mesh_essid" "$mesh_bssid"; then
> > +				# add IBSS mesh if type = "ibss"
> > +				if [ "$mesh_type" = "ibss" ] && !
> wifiAddAdHocMesh "$radio"
> > +"$mesh_essid" "$mesh_bssid"; then
> > 					echo "Can't add AdHocMesh interface
> on $radio."
> > 					exit 1
> > 				fi
> > --
> > 2.7.4
> >
> > --
> > franken-dev mailing list
> > franken-dev at freifunk.net
> > http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net




Mehr Informationen über die Mailingliste franken-dev