mesh-batman-adv: mesh_on_lan

This adds mesh_on_lan functionality.

A new optional site.conf option, mesh_on_lan, has been added. If set to
'true', all LAN ports will be used for meshing instead of being part of
the client bridge.
This commit is contained in:
Nils Schneider 2015-05-04 21:18:58 +02:00
parent 3f80b65856
commit 39d0c8f459
4 changed files with 29 additions and 1 deletions

View File

@ -119,6 +119,9 @@ fastd_mesh_vpn
mesh_on_wan : optional
Enables the mesh on the WAN port (``true`` or ``false``).
mesh_on_lan : optional
Enables the mesh on the LAN port (``true`` or ``false``).
autoupdater : package
Configuration for the autoupdater feature of Gluon.
::

View File

@ -13,3 +13,4 @@ for _, config in ipairs({'wifi24', 'wifi5'}) do
end
need_boolean('mesh_on_wan', false)
need_boolean('mesh_on_lan', false)

View File

@ -2,6 +2,7 @@
local sysconfig = require 'gluon.sysconfig'
local sysctl = require 'gluon.sysctl'
local site = require 'gluon.site_config'
local uci = require('luci.model.uci').cursor()
@ -20,7 +21,7 @@ uci:commit('batman-adv')
if not uci:get('network', 'client') then
local ifname
if sysconfig.lan_ifname then
if sysconfig.lan_ifname and not site.mesh_on_lan then
ifname = sysconfig.lan_ifname .. ' bat0'
else
ifname = 'bat0'

View File

@ -0,0 +1,23 @@
#!/usr/bin/lua
local site = require 'gluon.site_config'
local uci = require 'luci.model.uci'
local util = require 'gluon.util'
local sysconfig = require 'gluon.sysconfig'
local c = uci.cursor()
if sysconfig.lan_ifname then
if not c:get('network', 'mesh_lan') then
c:section('network', 'interface', 'mesh_lan',
{ ifname = sysconfig.lan_ifname
, proto = 'batadv'
, mesh = 'bat0'
, macaddr = util.generate_mac(1, 1)
, auto = site.mesh_on_lan and 1 or 0
})
end
end
c:save('network')
c:commit('network')