diff --git a/docs/user/site.rst b/docs/user/site.rst index 689dd51d..68705ce4 100644 --- a/docs/user/site.rst +++ b/docs/user/site.rst @@ -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. :: diff --git a/package/gluon-mesh-batman-adv-core/check_site.lua b/package/gluon-mesh-batman-adv-core/check_site.lua index baed26cb..e76ca9e9 100644 --- a/package/gluon-mesh-batman-adv-core/check_site.lua +++ b/package/gluon-mesh-batman-adv-core/check_site.lua @@ -13,3 +13,4 @@ for _, config in ipairs({'wifi24', 'wifi5'}) do end need_boolean('mesh_on_wan', false) +need_boolean('mesh_on_lan', false) diff --git a/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/310-gluon-mesh-batman-adv-core-mesh b/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/310-gluon-mesh-batman-adv-core-mesh index c9638c4b..a51b20e2 100755 --- a/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/310-gluon-mesh-batman-adv-core-mesh +++ b/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/310-gluon-mesh-batman-adv-core-mesh @@ -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' diff --git a/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/340-gluon-mesh-batman-adv-core-mesh-on-lan b/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/340-gluon-mesh-batman-adv-core-mesh-on-lan new file mode 100755 index 00000000..f9cbde03 --- /dev/null +++ b/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/340-gluon-mesh-batman-adv-core-mesh-on-lan @@ -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')