From patchwork Mon Jan 27 13:25:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [3/5] fff-wireless: add configuration of wXmesh and wXconfigap in layer3 variant From: Robert Langhammer X-Patchwork-Id: 1271 Message-Id: <20200127132512.16359-4-rlanghammer@web.de> To: franken-dev@freifunk.net Date: Mon, 27 Jan 2020 14:25:10 +0100 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 --- .../fff-wireless/files/etc/gateway.d/28-wifi | 36 +++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) -- 2.20.1 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