From 3de151c286baa25967d4f43c9ca851ba21b0cc1a Mon Sep 17 00:00:00 2001 From: Daniel Golle <daniel@makrotopia.org> Date: Sun, 18 Jan 2015 07:35:48 +0100 Subject: [PATCH] mesh-batman-adv-core: allow sites to set VLAN for mesh Signed-off-by: Daniel Golle <daniel@makrotopia.org> --- .../gluon-mesh-batman-adv-core/check_site.lua | 1 + .../invariant/020-wireless | 23 +++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/package/gluon-mesh-batman-adv-core/check_site.lua b/package/gluon-mesh-batman-adv-core/check_site.lua index 98aa68fdd..8226d5dd6 100644 --- a/package/gluon-mesh-batman-adv-core/check_site.lua +++ b/package/gluon-mesh-batman-adv-core/check_site.lua @@ -7,6 +7,7 @@ for _, config in ipairs({'wifi24', 'wifi5'}) do need_string(config .. '.mesh_ssid') need_string_match(config .. '.mesh_bssid', '^%x[02468aAcCeE]:%x%x:%x%x:%x%x:%x%x:%x%x$') need_number(config .. '.mesh_mcast_rate') + need_number(config .. '.mesh_vlan', false) end need_boolean('mesh_on_wan', false) diff --git a/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/020-wireless b/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/020-wireless index bb3125a86..98ac4c64d 100755 --- a/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/020-wireless +++ b/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/020-wireless @@ -27,13 +27,32 @@ local function configure_radio(radio, index, config) local mesh = 'mesh_' .. radio uci:delete('network', mesh) - uci:section('network', 'interface', 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, -- GitLab