[PATCH 3/5] fff-wireless: add configuration of wXmesh and wXconfigap in layer3 variant

Robert Langhammer rlanghammer at web.de
Mo Jan 27 14:25:10 CET 2020


The wXap and wXmesh configuration is independent of each other.
The wXap is switched with the option ssid and wXmesh with the option mesh_id in /etc/config/gateway.
wXconfigap followes wXmesh.

Signed-off-by: Robert Langhammer <rlanghammer at web.de>
---
 .../fff-wireless/files/etc/gateway.d/28-wifi  | 36 +++++++++++++++++--
 1 file changed, 33 insertions(+), 3 deletions(-)

diff --git a/src/packages/fff/fff-wireless/files/etc/gateway.d/28-wifi b/src/packages/fff/fff-wireless/files/etc/gateway.d/28-wifi
index dd2a649..2ccd884 100644
--- a/src/packages/fff/fff-wireless/files/etc/gateway.d/28-wifi
+++ b/src/packages/fff/fff-wireless/files/etc/gateway.d/28-wifi
@@ -3,6 +3,7 @@
 configure() {
 	# get parameters
 	essid=$(uci -q get gateway. at client[0].essid)
+	mesh_id=$(uci -q get gateway. at client[0].mesh_id)
 	chan2ghz=$(uci -q get gateway. at client[0].chan2ghz)
 	chan5ghz=$(uci -q get gateway. at client[0].chan5ghz)

@@ -13,10 +14,36 @@ configure() {
 	for radio in $(wifiListRadio); do
 		freq="$(wifiGetFreq $radio)"
 		disabled=1
+		if [ -n "$mesh_id" ]; then
+			# set channel for 5ghz
+			if [ "$freq" = "5" ]; then
+				if [ -z "$chan5ghz" ]; then
+					echo "WARNING: No 5 GHz channel set! Disabling 5 GHz on $radio"
+				else
+					uci set wireless.${radio}.channel="$chan5ghz"
+					uci set wireless.w${freq}mesh.disabled="0"
+					uci set wireless.w${freq}configap.disabled="0"
+					disabled=0
+				fi
+			fi

-		# Delete wXmesh, wXconfigap
-		uci -q del wireless.w${freq}mesh
-		uci -q del wireless.w${freq}configap
+			# set channel for 2.4ghz
+			if [ "$freq" = "2" ]; then
+				if [ -z "$chan2ghz" ]; then
+					echo "WARNING: No 2.4 GHz channel set! Disabling 2.4 GHz on $radio"
+				else
+					uci set wireless.${radio}.channel="$chan2ghz"
+					uci set wireless.w${freq}mesh.disabled="0"
+					uci set wireless.w${freq}configap.disabled="0"
+					disabled=0
+				fi
+			fi
+			uci set wireless.w${freq}mesh.mesh_id="$mesh_id"
+		else
+			# disable wXmesh
+			uci set wireless.w${freq}mesh.disabled="1"
+			uci set wireless.w${freq}configap.disabled="1"
+		fi

 		if [ -n "$essid" ]; then
 			# set channel for 5ghz
@@ -41,6 +68,9 @@ configure() {

 			# set essid
 			uci set wireless.w${freq}ap.ssid="$essid"
+		else
+			# disable wXap
+			uci set wireless.w${freq}ap.disabled="1"
 		fi

 		# enable or disable ap interface appropriately. The radios 'disabled'-option is not touched
--
2.20.1



Mehr Informationen über die Mailingliste franken-dev