gluon-mesh-batman-adv-core: make mesh_lan config a bridge
There are a few devices which have more than one LAN interface (for example some revision of the TL-WR941ND, which uses a DSA-based switch, so each switch port has its own netdev.) On these devices we need a bridge for mesh-on-lan (as the alternative of adding them to batman-adv individually would need too many MAC addresses.)
This commit is contained in:
parent
c73a12e0ea
commit
937fe715c7
@ -7,7 +7,21 @@ local sysconfig = require 'gluon.sysconfig'
|
|||||||
local uci = require('luci.model.uci').cursor()
|
local uci = require('luci.model.uci').cursor()
|
||||||
local lutil = require 'luci.util'
|
local lutil = require 'luci.util'
|
||||||
|
|
||||||
if sysconfig.lan_ifname and not uci:get('network', 'mesh_lan') then
|
if not sysconfig.lan_ifname then
|
||||||
|
os.exit(0)
|
||||||
|
end
|
||||||
|
|
||||||
|
uci:section('network', 'interface', 'mesh_lan', {
|
||||||
|
ifname = sysconfig.lan_ifname,
|
||||||
|
type = 'bridge',
|
||||||
|
igmp_snooping = 0,
|
||||||
|
proto = 'batadv',
|
||||||
|
mesh = 'bat0',
|
||||||
|
mesh_no_rebroadcast = '1',
|
||||||
|
macaddr = util.generate_mac(6),
|
||||||
|
})
|
||||||
|
|
||||||
|
if uci:get('network', 'mesh_lan', 'auto') == nil then
|
||||||
local enable = site.mesh_on_lan
|
local enable = site.mesh_on_lan
|
||||||
|
|
||||||
if enable then
|
if enable then
|
||||||
@ -15,22 +29,15 @@ if sysconfig.lan_ifname and not uci:get('network', 'mesh_lan') then
|
|||||||
|
|
||||||
if interfaces then
|
if interfaces then
|
||||||
for _, lanif in ipairs(lutil.split(sysconfig.lan_ifname, ' ')) do
|
for _, lanif in ipairs(lutil.split(sysconfig.lan_ifname, ' ')) do
|
||||||
if lutil.contains(interfaces, lanif) then
|
if lutil.contains(interfaces, lanif) then
|
||||||
enable = false
|
enable = false
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
uci:section('network', 'interface', 'mesh_lan',
|
uci:set('network', 'mesh_lan', 'auto', enable and 1 or 0)
|
||||||
{ ifname = sysconfig.lan_ifname
|
|
||||||
, proto = 'batadv'
|
|
||||||
, mesh = 'bat0'
|
|
||||||
, mesh_no_rebroadcast = '1'
|
|
||||||
, macaddr = util.generate_mac(6)
|
|
||||||
, auto = enable and 1 or 0
|
|
||||||
})
|
|
||||||
|
|
||||||
uci:save('network')
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
uci:save('network')
|
||||||
|
Loading…
Reference in New Issue
Block a user