From addb4ee7a24b8c5fc6528521c8e6365962f19472 Mon Sep 17 00:00:00 2001 From: Daniel Golle 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 --- .../gluon-mesh-batman-adv-core/check_site.lua | 1 + .../invariant/020-wireless | 23 +++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/gluon/gluon-mesh-batman-adv-core/check_site.lua b/gluon/gluon-mesh-batman-adv-core/check_site.lua index 98aa68f..8226d5d 100644 --- a/gluon/gluon-mesh-batman-adv-core/check_site.lua +++ b/gluon/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/gluon/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/020-wireless b/gluon/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/020-wireless index bb3125a..98ac4c6 100755 --- a/gluon/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/020-wireless +++ b/gluon/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,