From c14b4c0b4be7ec265b54be6e881e9a7e11ac628a Mon Sep 17 00:00:00 2001
From: lemoer <git@irrelefant.net>
Date: Thu, 18 Mar 2021 23:12:55 +0100
Subject: [PATCH] gluon-core: add vxlan option to gluon_wired proto

Before this commit the decision whether a vxlan layer will be
introduced between the lower interface before the interface is
added to batman was inside the proto. Now the decision is moved
to the user of the proto.
---
 .../gluon-core/files/lib/netifd/proto/gluon_wired.sh   | 10 ++++++----
 .../luasrc/lib/gluon/upgrade/210-interface-wan         |  1 +
 .../luasrc/lib/gluon/upgrade/220-interface-lan         |  1 +
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/package/gluon-core/files/lib/netifd/proto/gluon_wired.sh b/package/gluon-core/files/lib/netifd/proto/gluon_wired.sh
index 708e9743e..5bc33d226 100755
--- a/package/gluon-core/files/lib/netifd/proto/gluon_wired.sh
+++ b/package/gluon-core/files/lib/netifd/proto/gluon_wired.sh
@@ -7,6 +7,7 @@ init_proto "$@"
 proto_gluon_wired_init_config() {
         proto_config_add_boolean transitive
         proto_config_add_int index
+        proto_config_add_boolean vxlan
 }
 
 xor2() {
@@ -28,15 +29,16 @@ proto_gluon_wired_setup() {
 
         local meshif="$config"
 
-        local vxlan="$(lua -e 'print(require("gluon.site").mesh.vxlan(true))')"
+        local transitive index vxlan
+        json_get_vars transitive index vxlan
 
-        local transitive index
-        json_get_vars transitive index
+        # default args
+        [ -z "$vxlan" ] && vxlan=1
 
         proto_init_update "$ifname" 1
         proto_send_update "$config"
 
-        if [ "$vxlan" = 'true' ]; then
+        if [ "$vxlan" -eq 1 ]; then
                 meshif="vx_$config"
 
                 json_init
diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/210-interface-wan b/package/gluon-core/luasrc/lib/gluon/upgrade/210-interface-wan
index 070b264dd..051b213ea 100755
--- a/package/gluon-core/luasrc/lib/gluon/upgrade/210-interface-wan
+++ b/package/gluon-core/luasrc/lib/gluon/upgrade/210-interface-wan
@@ -7,6 +7,7 @@ uci:section('network', 'interface', 'mesh_wan', {
 	ifname = 'br-wan',
 	proto  = 'gluon_wired',
 	index  = 0,
+	vxlan  = site.mesh.vxlan(true),
 })
 
 local enable = site.mesh_on_wan(false)
diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/220-interface-lan b/package/gluon-core/luasrc/lib/gluon/upgrade/220-interface-lan
index e80cbf9fd..19ccfb496 100755
--- a/package/gluon-core/luasrc/lib/gluon/upgrade/220-interface-lan
+++ b/package/gluon-core/luasrc/lib/gluon/upgrade/220-interface-lan
@@ -15,6 +15,7 @@ uci:section('network', 'interface', 'mesh_lan', {
 	igmp_snooping = false,
 	proto         = 'gluon_wired',
 	index         = 4,
+	vxlan         = site.mesh.vxlan(true),
 })
 
 if sysconfig.lan_ifname:match(' ') then
-- 
GitLab