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

Tim Niemeyer tim at tn-x.org
Mi Jul 25 23:36:40 CEST 2018


Hi

Der Patch erfindet eine Lösung neu, die bereits von OpenWRT geliefert
wird. Insofern sollten wir das nicht so machen, sondern wie unten von
Fabian beschrieben.

Am Sonntag, den 24.06.2018, 11:38 +0200 schrieb Fabian Bläse:
> 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)
Das klingt nach einer sehr guten Lösung. Klingt aber auch nach einer
Menge umbauarbeiten. :(

> Dann kann man an die einzelnen Interfaces entweder disabled-Options 
Genau, oder ggfs andere Werte ergänzen.

> dran setzen oder das ganze Interface löschen.
Davon wäre ich jetzt nicht so begeistert. Es sollte schon irgendwas da
sein, dass garantiert, dass die Interfaces da sind.

> (Es sollte natürlich im configurehood beim setzen der Parameter
> entsprechend geprüft werden, ob das Interface existiert)
Wenn die nicht da sind, würde ich die pauschal neu anlegen. Ich kann ja
nicht erkennen, ob die nicht da sind, weil die aus sein sollen oder
weil die neu angelegt werden sollen.

Tim

> Gruß
> Fabian
> 
> > On 9. Mar 2018, at 23:43, Adrian Schmutzler <freifunk at adrianschmutz
> > ler.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.disablew5mes
> > h"
> > +			else
> > +				# 2.4 GHz
> > +				radio="$(wifiAddPhyCond "$phy" "2"
> > "$chan2ghz")"
> > +				mesh_type="$mesh_type2"
> > +				disableap="fff.wifi.disablew2ap"
> > +				disablemesh="fff.wifi.disablew2mes
> > h"
> > +			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
> 
> 
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 488 bytes
Beschreibung: This is a digitally signed message part
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20180725/1a3aa8d5/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev