gluon-core: make wifi rates configurable by site.conf

and add documentation
This commit is contained in:
kb-light 2016-08-03 11:02:20 +02:00
parent 4d98fbb1bb
commit 6ff94aca35
4 changed files with 36 additions and 0 deletions

View File

@ -35,6 +35,14 @@
-- Wireless channel. -- Wireless channel.
channel = 1, channel = 1,
-- List of supported wifi rates (optional)
-- Example removes 802.11b compatibility for better performance
supported_rates = {6000, 9000, 12000, 18000, 24000, 36000, 48000, 54000},
-- List of basic wifi rates (optional, required if supported_rates is set)
-- Example removes 802.11b compatibility for better performance
basic_rate = {6000, 9000, 18000, 36000, 54000},
-- ESSID used for client network. -- ESSID used for client network.
ap = { ap = {
ssid = 'entenhausen.freifunk.net', ssid = 'entenhausen.freifunk.net',

View File

@ -98,6 +98,12 @@ wifi24 \: optional
This will only affect new installations. This will only affect new installations.
Upgrades will not changed the disabled state. Upgrades will not changed the disabled state.
Additionally it is possible to configure the ``supported_rates`` and ``basic_rate``
of each radio. Both are optional, by default hostapd/driver dictate the rates.
If ``supported_rates`` is set, ``basic_rate`` is required, because ``basic_rate``
has to be a subset of ``supported_rates``.
The example below disables 802.11b rates.
``ap`` requires a single parameter, a string, named ``ssid`` which sets the ``ap`` requires a single parameter, a string, named ``ssid`` which sets the
interface's ESSID. interface's ESSID.
@ -112,6 +118,8 @@ wifi24 \: optional
wifi24 = { wifi24 = {
channel = 11, channel = 11,
supported_rates = {6000, 9000, 12000, 18000, 24000, 36000, 48000, 54000},
basic_rate = {6000, 9000, 18000, 36000, 54000},
ap = { ap = {
ssid = 'entenhausen.freifunk.net', ssid = 'entenhausen.freifunk.net',
}, },

View File

@ -28,6 +28,14 @@ for _, config in ipairs({'wifi24', 'wifi5'}) do
need_string('regdom') -- regdom is only required when wifi24 or wifi5 is configured need_string('regdom') -- regdom is only required when wifi24 or wifi5 is configured
need_number(config .. '.channel') need_number(config .. '.channel')
local rates = {1000, 2000, 5500, 6000, 9000, 11000, 12000, 18000, 24000, 36000, 48000, 54000}
local supported_rates = need_array_of(config .. '.supported_rates', rates, false)
if supported_rates then
need_array_of(config .. '.basic_rate', supported_rates, true)
else
need_array_of(config .. '.basic_rate', rates, false)
end
end end
end end

View File

@ -27,6 +27,18 @@ local function configure_radio(radio, index, config)
uci:set('wireless', radio, 'channel', 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)
if config.supported_rates then
uci:set_list('wireless', radio, 'supported_rates', config.supported_rates)
else
uci:delete('wireless', radio, 'supported_rates')
end
if config.basic_rate then
uci:set_list('wireless', radio, 'basic_rate', config.basic_rate)
else
uci:delete('wireless', radio, 'basic_rate')
end
end end
end end