gluon-core: add preserve wifi channels feature
This new feature introduces the new uci section 'gluon-core.wireless' with a preserve_channels option: * preserve_channels (boolean) By setting this option to 1 (true) wifi channels will be preserved during upgrades.
This commit is contained in:
parent
e0e96b7b28
commit
388d264ff0
@ -24,3 +24,11 @@ existing configuration will also be set for the new configuration.
|
|||||||
This allows upgrades to change from IBSS to 11s and vice-versa while retaining the
|
This allows upgrades to change from IBSS to 11s and vice-versa while retaining the
|
||||||
"wireless meshing is enabled/disabled" property configured by the user regardless
|
"wireless meshing is enabled/disabled" property configured by the user regardless
|
||||||
of the used mode.
|
of the used mode.
|
||||||
|
|
||||||
|
During upgrades the wifi channel of the 2.4GHz and 5GHz radio will be restored to the channel
|
||||||
|
configured in the site.conf. If you need to preserve a user defined wifi channel during upgrades
|
||||||
|
you can configure this via the uci section ``gluon-core.wireless``::
|
||||||
|
|
||||||
|
uci set gluon-core.@wireless[0].preserve_channels='1'
|
||||||
|
|
||||||
|
Keep in mind that nodes running wifi interfaces on custom channels can't mesh with default nodes anymore!
|
||||||
|
1
package/gluon-core/files/etc/config/gluon-core
Normal file
1
package/gluon-core/files/etc/config/gluon-core
Normal file
@ -0,0 +1 @@
|
|||||||
|
config wireless
|
@ -10,11 +10,21 @@ if not sysconfig.gluon_version then
|
|||||||
uci:delete_all('wireless', 'wifi-iface')
|
uci:delete_all('wireless', 'wifi-iface')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function get_channel(radio, config)
|
||||||
|
if uci:get_first('gluon-core', 'wireless', 'preserve_channels') then
|
||||||
|
return uci:get('wireless', radio, 'channel') or config.channel
|
||||||
|
else
|
||||||
|
return config.channel
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local function configure_radio(radio, index, config)
|
local function configure_radio(radio, index, config)
|
||||||
if config then
|
if config then
|
||||||
|
local channel = get_channel(radio, config)
|
||||||
|
|
||||||
uci:delete('wireless', radio, 'disabled')
|
uci:delete('wireless', radio, 'disabled')
|
||||||
|
|
||||||
uci:set('wireless', radio, 'channel', config.channel)
|
uci:set('wireless', radio, 'channel', channel)
|
||||||
uci:set('wireless', radio, 'htmode', 'HT20')
|
uci:set('wireless', radio, 'htmode', 'HT20')
|
||||||
uci:set('wireless', radio, 'country', site.regdom)
|
uci:set('wireless', radio, 'country', site.regdom)
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user