From 5cd6295265592e1a941ce20a029803aee8365b2f Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Tue, 30 Aug 2016 00:19:14 +0200
Subject: [PATCH] gluon-core: add gluon_mesh netifd proto

This new protocol will allow configuring mesh interfaces independently of
the used mesh protocol.
---
 .../files/lib/gluon/core/mesh/setup.d/.keep   |  0
 .../lib/gluon/core/mesh/teardown.d/.keep      |  0
 .../files/lib/netifd/proto/gluon_mesh.sh      | 39 +++++++++++++++++++
 3 files changed, 39 insertions(+)
 create mode 100644 package/gluon-core/files/lib/gluon/core/mesh/setup.d/.keep
 create mode 100644 package/gluon-core/files/lib/gluon/core/mesh/teardown.d/.keep
 create mode 100755 package/gluon-core/files/lib/netifd/proto/gluon_mesh.sh

diff --git a/package/gluon-core/files/lib/gluon/core/mesh/setup.d/.keep b/package/gluon-core/files/lib/gluon/core/mesh/setup.d/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/package/gluon-core/files/lib/gluon/core/mesh/teardown.d/.keep b/package/gluon-core/files/lib/gluon/core/mesh/teardown.d/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/package/gluon-core/files/lib/netifd/proto/gluon_mesh.sh b/package/gluon-core/files/lib/netifd/proto/gluon_mesh.sh
new file mode 100755
index 000000000..aaa24c843
--- /dev/null
+++ b/package/gluon-core/files/lib/netifd/proto/gluon_mesh.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+. /lib/functions.sh
+. ../netifd-proto.sh
+init_proto "$@"
+
+proto_gluon_mesh_init_config() {
+	proto_config_add_boolean fixed_mtu
+	proto_config_add_boolean transitive
+}
+
+proto_gluon_mesh_setup() {
+	export CONFIG="$1"
+	export IFNAME="$2"
+
+	local fixed_mtu transitive
+	json_get_vars fixed_mtu transitive
+
+	export FIXED_MTU="$fixed_mtu"
+	export TRANSITIVE="$transitive"
+
+	for script in /lib/gluon/core/mesh/setup.d/*; do
+	        [ ! -x "$script" ] || "$script"
+	done
+
+        proto_init_update "$IFNAME" 1
+        proto_send_update "$CONFIG"
+}
+
+proto_gluon_mesh_teardown() {
+	export CONFIG="$1"
+	export IFNAME="$2"
+
+	for script in /lib/gluon/core/mesh/teardown.d/*; do
+	        [ ! -x "$script" ] || "$script"
+	done
+}
+
+add_protocol gluon_mesh
-- 
GitLab