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

Submitted by Robert Langhammer on Jan. 27, 2020, 1:25 p.m.

Details

Message ID 20200127132512.16359-4-rlanghammer@web.de
State RFC
Headers show

Commit Message

Robert Langhammer Jan. 27, 2020, 1:25 p.m.
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@web.de>
---
 .../fff-wireless/files/etc/gateway.d/28-wifi  | 36 +++++++++++++++++--
 1 file changed, 33 insertions(+), 3 deletions(-)

--
2.20.1

Patch hide | download patch | download mbox

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.@client[0].essid)
+	mesh_id=$(uci -q get gateway.@client[0].mesh_id)
 	chan2ghz=$(uci -q get gateway.@client[0].chan2ghz)
 	chan5ghz=$(uci -q get gateway.@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

Comments

Christian Dresel Jan. 30, 2020, 12:31 a.m.
Hier bin ich mir gerade noch ziemlich unsicher. Ich glaube aber nicht das es hier gut aufgehoben ist. Eine neue uci default wo einfach "nur" das Mesh System konfiguriert wird wäre wohl besser. Vllt braucht es ein package mesh(-l3?)? Da wir hier aber schon ein spezielles Mesh (in dem Fall 11s ohne hwmp) konfigurieren ist das eigentlich auch nicht richtig. Vielleicht braucht es eine Art Meta package mesh-l3 wo dann drunter packages liegen wie 11s-l3 wds-l3 usw. Wie gesagt ich bin mir hier noch total unsicher und muss nochmals drüber nachdenken, seh es Mal nur als Denkanstoß. Wichtig wäre mir das es möglichst flexibel ist und man später einfach auch andere "Mesh"Systeme dazu bauen könnte. Man muss auch aufpassen das man Mesh (z.b. 11s oder wds) und Routingprotokoll (z.b. Batman-adv oder hwmp) nicht vermischt.

Am 27. Januar 2020 14:25:10 MEZ schrieb Robert Langhammer <rlanghammer@web.de>:
>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@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.@client[0].essid)
>+	mesh_id=$(uci -q get gateway.@client[0].mesh_id)
> 	chan2ghz=$(uci -q get gateway.@client[0].chan2ghz)
> 	chan5ghz=$(uci -q get gateway.@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
Robert Langhammer Jan. 31, 2020, 11:22 p.m.
Hi,

das ganze stützt sich hier auf die node Konfiguration, die immer noch
drunter liegt. Dadurch ist diese mini Lösung möglich. Ich wollte keine
fancy-ich-kann-alles Lösung basteln, da ich persönlich dann lieber ein
normales OpenWrt drauf werfe. Dann kann man alles machen.

Viele Grüße
Robert

Am 30.01.20 um 01:31 schrieb Christian Dresel:
> Hier bin ich mir gerade noch ziemlich unsicher. Ich glaube aber nicht
> das es hier gut aufgehoben ist. Eine neue uci default wo einfach "nur"
> das Mesh System konfiguriert wird wäre wohl besser. Vllt braucht es
> ein package mesh(-l3?)? Da wir hier aber schon ein spezielles Mesh (in
> dem Fall 11s ohne hwmp) konfigurieren ist das eigentlich auch nicht
> richtig. Vielleicht braucht es eine Art Meta package mesh-l3 wo dann
> drunter packages liegen wie 11s-l3 wds-l3 usw. Wie gesagt ich bin mir
> hier noch total unsicher und muss nochmals drüber nachdenken, seh es
> Mal nur als Denkanstoß. Wichtig wäre mir das es möglichst flexibel ist
> und man später einfach auch andere "Mesh"Systeme dazu bauen könnte.
> Man muss auch aufpassen das man Mesh (z.b. 11s oder wds) und
> Routingprotokoll (z.b. Batman-adv oder hwmp) nicht vermischt.
>
> Am 27. Januar 2020 14:25:10 MEZ schrieb Robert Langhammer
> <rlanghammer@web.de>:
>
>     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@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.@client[0].essid)
>     +	mesh_id=$(uci -q get gateway.@client[0].mesh_id)
>      	chan2ghz=$(uci -q get gateway.@client[0].chan2ghz)
>      	chan5ghz=$(uci -q get gateway.@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
>
>
> -- 
> Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.
Christian Dresel Feb. 6, 2020, 10:10 a.m.
hi Robert

diese fancy-ich-kann-alles-Lösung haben wir allerdings durch die
configuregateway schon für viele andere Konfigurationen. Da jetzt nur
was halbes (sry) dranzupfuschen ist dann irgendwie mäh.

Also entweder:
1) Wir machen es gleich nach der fancy-ich-kann-alles-Lösung so wie
configuregateway aktuell funktioniert
oder
2) Wir einigen uns darauf das nicht haben zu wollen weil $Aufwand,
lassen es drausen und wer es will kann "lieber normales OpenWRT drauf
werfen"

Irgendwas dazwischen finde ich nicht sehr schön.

Gruß

Christian

On 01.02.20 00:22, Robert Langhammer wrote:
> Hi,
> 
> das ganze stützt sich hier auf die node Konfiguration, die immer noch
> drunter liegt. Dadurch ist diese mini Lösung möglich. Ich wollte keine
> fancy-ich-kann-alles Lösung basteln, da ich persönlich dann lieber ein
> normales OpenWrt drauf werfe. Dann kann man alles machen.
> 
> Viele Grüße
> Robert
> 
> Am 30.01.20 um 01:31 schrieb Christian Dresel:
>> Hier bin ich mir gerade noch ziemlich unsicher. Ich glaube aber nicht
>> das es hier gut aufgehoben ist. Eine neue uci default wo einfach "nur"
>> das Mesh System konfiguriert wird wäre wohl besser. Vllt braucht es
>> ein package mesh(-l3?)? Da wir hier aber schon ein spezielles Mesh (in
>> dem Fall 11s ohne hwmp) konfigurieren ist das eigentlich auch nicht
>> richtig. Vielleicht braucht es eine Art Meta package mesh-l3 wo dann
>> drunter packages liegen wie 11s-l3 wds-l3 usw. Wie gesagt ich bin mir
>> hier noch total unsicher und muss nochmals drüber nachdenken, seh es
>> Mal nur als Denkanstoß. Wichtig wäre mir das es möglichst flexibel ist
>> und man später einfach auch andere "Mesh"Systeme dazu bauen könnte.
>> Man muss auch aufpassen das man Mesh (z.b. 11s oder wds) und
>> Routingprotokoll (z.b. Batman-adv oder hwmp) nicht vermischt.
>>
>> Am 27. Januar 2020 14:25:10 MEZ schrieb Robert Langhammer
>> <rlanghammer@web.de>:
>>
>>     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@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.@client[0].essid)
>>     +	mesh_id=$(uci -q get gateway.@client[0].mesh_id)
>>      	chan2ghz=$(uci -q get gateway.@client[0].chan2ghz)
>>      	chan5ghz=$(uci -q get gateway.@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
>>
>>
>> -- 
>> Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.