gluon-mesh-batman-adv-core, gluon-mesh-vpn-fastd, gluon-luci-portconfig: fill and maintain mesh interface list
This commit is contained in:
parent
b648860ff8
commit
5aa075e39e
@ -14,6 +14,7 @@ $Id$
|
|||||||
|
|
||||||
local uci = luci.model.uci.cursor()
|
local uci = luci.model.uci.cursor()
|
||||||
local lutil = require 'luci.util'
|
local lutil = require 'luci.util'
|
||||||
|
local network = require 'gluon.network'
|
||||||
local sysconfig = require 'gluon.sysconfig'
|
local sysconfig = require 'gluon.sysconfig'
|
||||||
|
|
||||||
local wan = uci:get_all("network", "wan")
|
local wan = uci:get_all("network", "wan")
|
||||||
@ -150,6 +151,8 @@ function f.handle(self, state, data)
|
|||||||
uci:commit('system')
|
uci:commit('system')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
network.update_mesh_on_wan()
|
||||||
|
|
||||||
if dns then
|
if dns then
|
||||||
if #data.dns > 0 then
|
if #data.dns > 0 then
|
||||||
uci:set("gluon-wan-dnsmasq", dns, "server", data.dns)
|
uci:set("gluon-wan-dnsmasq", dns, "server", data.dns)
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#!/usr/bin/lua
|
#!/usr/bin/lua
|
||||||
|
|
||||||
|
local mesh = require 'gluon.mesh'
|
||||||
local site = require 'gluon.site_config'
|
local site = require 'gluon.site_config'
|
||||||
local util = require 'gluon.util'
|
local util = require 'gluon.util'
|
||||||
|
|
||||||
@ -24,6 +25,7 @@ end
|
|||||||
|
|
||||||
local function configure_ibss(config, radio, index, suffix, disabled)
|
local function configure_ibss(config, radio, index, suffix, disabled)
|
||||||
local name = 'ibss_' .. radio
|
local name = 'ibss_' .. radio
|
||||||
|
local ifname = 'ibss' .. suffix
|
||||||
|
|
||||||
uci:delete('network', name)
|
uci:delete('network', name)
|
||||||
uci:delete('network', name .. '_vlan')
|
uci:delete('network', name .. '_vlan')
|
||||||
@ -52,6 +54,8 @@ local function configure_ibss(config, radio, index, suffix, disabled)
|
|||||||
mesh = 'bat0',
|
mesh = 'bat0',
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
mesh.register_interface(ifname .. '.' .. config.vlan)
|
||||||
else
|
else
|
||||||
uci:section('network', 'interface', name,
|
uci:section('network', 'interface', name,
|
||||||
{
|
{
|
||||||
@ -59,6 +63,8 @@ local function configure_ibss(config, radio, index, suffix, disabled)
|
|||||||
mesh = 'bat0',
|
mesh = 'bat0',
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
mesh.register_interface(ifname)
|
||||||
end
|
end
|
||||||
|
|
||||||
uci:section('wireless', 'wifi-iface', name,
|
uci:section('wireless', 'wifi-iface', name,
|
||||||
@ -70,7 +76,7 @@ local function configure_ibss(config, radio, index, suffix, disabled)
|
|||||||
bssid = config.bssid,
|
bssid = config.bssid,
|
||||||
macaddr = macaddr,
|
macaddr = macaddr,
|
||||||
mcast_rate = config.mcast_rate,
|
mcast_rate = config.mcast_rate,
|
||||||
ifname = suffix and 'ibss' .. suffix,
|
ifname = ifname,
|
||||||
disabled = disabled and 1 or 0,
|
disabled = disabled and 1 or 0,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@ -78,6 +84,7 @@ end
|
|||||||
|
|
||||||
local function configure_mesh(config, radio, index, suffix, disabled)
|
local function configure_mesh(config, radio, index, suffix, disabled)
|
||||||
local name = 'mesh_' .. radio
|
local name = 'mesh_' .. radio
|
||||||
|
local ifname = 'mesh' .. suffix
|
||||||
local macfilter = uci:get('wireless', name, 'macfilter')
|
local macfilter = uci:get('wireless', name, 'macfilter')
|
||||||
local maclist = uci:get('wireless', name, 'maclist')
|
local maclist = uci:get('wireless', name, 'maclist')
|
||||||
|
|
||||||
@ -93,6 +100,8 @@ local function configure_mesh(config, radio, index, suffix, disabled)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
mesh.register_interface(ifname)
|
||||||
|
|
||||||
uci:section('network', 'interface', name,
|
uci:section('network', 'interface', name,
|
||||||
{
|
{
|
||||||
proto = 'batadv',
|
proto = 'batadv',
|
||||||
@ -109,7 +118,7 @@ local function configure_mesh(config, radio, index, suffix, disabled)
|
|||||||
mesh_fwding = 0,
|
mesh_fwding = 0,
|
||||||
macaddr = macaddr,
|
macaddr = macaddr,
|
||||||
mcast_rate = config.mcast_rate,
|
mcast_rate = config.mcast_rate,
|
||||||
ifname = suffix and 'mesh' .. suffix,
|
ifname = ifname,
|
||||||
disabled = disabled and 1 or 0,
|
disabled = disabled and 1 or 0,
|
||||||
macfilter = macfilter,
|
macfilter = macfilter,
|
||||||
maclist = maclist,
|
maclist = maclist,
|
||||||
@ -119,6 +128,9 @@ end
|
|||||||
|
|
||||||
local function configure_radio(radio, index, config)
|
local function configure_radio(radio, index, config)
|
||||||
local suffix = radio:match('^radio(%d+)$')
|
local suffix = radio:match('^radio(%d+)$')
|
||||||
|
if not suffix then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
local ibss_disabled = is_disabled('ibss_' .. radio)
|
local ibss_disabled = is_disabled('ibss_' .. radio)
|
||||||
local mesh_disabled = is_disabled('mesh_' .. radio)
|
local mesh_disabled = is_disabled('mesh_' .. radio)
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#!/usr/bin/lua
|
#!/usr/bin/lua
|
||||||
|
|
||||||
|
local network = require 'gluon.network'
|
||||||
local site = require 'gluon.site_config'
|
local site = require 'gluon.site_config'
|
||||||
local uci = require 'luci.model.uci'
|
local uci = require 'luci.model.uci'
|
||||||
|
|
||||||
@ -16,3 +17,5 @@ if not c:get('network', 'mesh_wan') then
|
|||||||
end
|
end
|
||||||
|
|
||||||
c:save('network')
|
c:save('network')
|
||||||
|
|
||||||
|
network.update_mesh_on_wan()
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#!/usr/bin/lua
|
#!/usr/bin/lua
|
||||||
|
|
||||||
|
local mesh = require 'gluon.mesh'
|
||||||
local site = require 'gluon.site_config'
|
local site = require 'gluon.site_config'
|
||||||
local util = require 'gluon.util'
|
local util = require 'gluon.util'
|
||||||
local sysconfig = require 'gluon.sysconfig'
|
local sysconfig = require 'gluon.sysconfig'
|
||||||
@ -41,3 +42,9 @@ if uci:get('network', 'mesh_lan', 'auto') == nil then
|
|||||||
end
|
end
|
||||||
|
|
||||||
uci:save('network')
|
uci:save('network')
|
||||||
|
|
||||||
|
if uci:get_bool('network', 'mesh_lan', 'auto') then
|
||||||
|
mesh.register_interface('br-mesh_lan', {transitive = true})
|
||||||
|
else
|
||||||
|
mesh.unregister_interface('br-mesh_lan')
|
||||||
|
end
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
-- High-level network config functions
|
||||||
|
|
||||||
|
local mesh = require 'gluon.mesh'
|
||||||
|
local uci = require('luci.model.uci').cursor()
|
||||||
|
|
||||||
|
module 'gluon.network'
|
||||||
|
|
||||||
|
function update_mesh_on_wan()
|
||||||
|
if uci:get_bool('network', 'mesh_wan', 'auto') then
|
||||||
|
mesh.register_interface('br-wan', {transitive = true, fixed_mtu = true})
|
||||||
|
else
|
||||||
|
mesh.unregister_interface('br-wan')
|
||||||
|
end
|
||||||
|
end
|
@ -1,5 +1,6 @@
|
|||||||
#!/usr/bin/lua
|
#!/usr/bin/lua
|
||||||
|
|
||||||
|
local mesh = require 'gluon.mesh'
|
||||||
local site = require 'gluon.site_config'
|
local site = require 'gluon.site_config'
|
||||||
local users = require 'gluon.users'
|
local users = require 'gluon.users'
|
||||||
local util = require 'gluon.util'
|
local util = require 'gluon.util'
|
||||||
@ -64,6 +65,8 @@ uci:section('fastd', 'fastd', 'mesh_vpn',
|
|||||||
)
|
)
|
||||||
uci:delete('fastd', 'mesh_vpn', 'user')
|
uci:delete('fastd', 'mesh_vpn', 'user')
|
||||||
|
|
||||||
|
mesh.register_interface('mesh-vpn', {fixed_mtu = true, transitive = true})
|
||||||
|
|
||||||
|
|
||||||
local add_groups
|
local add_groups
|
||||||
|
|
||||||
@ -124,9 +127,8 @@ uci:save('fastd')
|
|||||||
uci:section('network', 'interface', 'mesh_vpn',
|
uci:section('network', 'interface', 'mesh_vpn',
|
||||||
{
|
{
|
||||||
ifname = 'mesh-vpn',
|
ifname = 'mesh-vpn',
|
||||||
proto = 'batadv',
|
proto = 'none',
|
||||||
mesh = 'bat0',
|
auto = 1,
|
||||||
mesh_no_rebroadcast = 1,
|
|
||||||
macaddr = util.get_mac(1),
|
macaddr = util.get_mac(1),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user