1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #!/usr/bin/lua
- local site = require 'gluon.site_config'
- local util = require 'gluon.util'
- local uci = require('luci.model.uci').cursor()
- local function configure_radio(radio, index, config)
- uci:delete('wireless', radio, 'disabled')
- uci:set('wireless', radio, 'channel', config.channel)
- uci:set('wireless', radio, 'htmode', config.htmode)
- uci:set('wireless', radio, 'country', site.regdom)
- local client = 'client_' .. radio
- uci:delete('wireless', client)
- uci:section('wireless', 'wifi-iface', client,
- {
- device = radio,
- network = 'client',
- mode = 'ap',
- ssid = config.ssid,
- macaddr = util.generate_mac(2, index),
- }
- )
- local mesh = 'mesh_' .. radio
- uci:delete('network', mesh)
- uci:delete('network', mesh .. '_vlan')
- if config.mesh_vlan then
- uci:section('network', 'interface', mesh,
- {
- proto = 'none',
- mtu = '1532',
- }
- )
- uci:section('network', 'interface', mesh .. '_vlan',
- {
- ifname = '@' .. mesh .. '.' .. config.mesh_vlan,
- proto = 'batadv',
- mtu = '1528',
- mesh = 'bat0',
- }
- )
- else
- uci:section('network', 'interface', mesh,
- {
- proto = 'batadv',
- mtu = '1528',
- mesh = 'bat0',
- }
- )
- end
- uci:delete('wireless', mesh)
- uci:section('wireless', 'wifi-iface', mesh,
- {
- device = radio,
- network = mesh,
- mode = 'adhoc',
- ssid = config.mesh_ssid,
- bssid = config.mesh_bssid,
- macaddr = util.generate_mac(3, index),
- mcast_rate = config.mesh_mcast_rate,
- }
- )
- end
- local radios = {}
- uci:foreach('wireless', 'wifi-device',
- function(s)
- table.insert(radios, s['.name'])
- end
- )
- for index, radio in ipairs(radios) do
- local hwmode = uci:get('wireless', radio, 'hwmode')
- local config
- if hwmode == '11g' or hwmode == '11ng' then
- configure_radio(radio, index, site.wifi24)
- elseif hwmode == '11a' or hwmode == '11na' then
- configure_radio(radio, index, site.wifi5)
- end
- end
- uci:save('wireless')
- uci:save('network')
- uci:commit('wireless')
- uci:commit('network')
|