diff --git a/package/gluon-mesh-batman-adv-14/Makefile b/package/gluon-mesh-batman-adv-14/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..be65cafab349773e4caf7ff502885d1acfb4ec17
--- /dev/null
+++ b/package/gluon-mesh-batman-adv-14/Makefile
@@ -0,0 +1,32 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=gluon-mesh-batman-adv-14
+PKG_VERSION:=1
+
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
+
+include $(GLUONDIR)/include/package.mk
+
+define Package/gluon-mesh-batman-adv-14
+  SECTION:=gluon
+  CATEGORY:=Gluon
+  TITLE:=Support for batman-adv meshing (compat level 14)
+  DEPENDS:=+gluon-mesh-batman-adv-core +kmod-batman-adv-legacy
+  PROVIDES:=gluon-mesh-batman-adv
+endef
+
+define Build/Prepare
+	mkdir -p $(PKG_BUILD_DIR)
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+endef
+
+define Package/gluon-mesh-batman-adv-14/install
+	$(CP) ./files/* $(1)/
+endef
+
+$(eval $(call BuildPackage,gluon-mesh-batman-adv-14))
diff --git a/package/gluon-mesh-batman-adv-14/files/lib/gluon/announce/nodeinfo.d/software/batman-adv/compat b/package/gluon-mesh-batman-adv-14/files/lib/gluon/announce/nodeinfo.d/software/batman-adv/compat
new file mode 100644
index 0000000000000000000000000000000000000000..841372371492c21b94f0b3693af57dd3a2e05b0f
--- /dev/null
+++ b/package/gluon-mesh-batman-adv-14/files/lib/gluon/announce/nodeinfo.d/software/batman-adv/compat
@@ -0,0 +1 @@
+return 14
diff --git a/package/gluon-mesh-batman-adv-core/Makefile b/package/gluon-mesh-batman-adv-core/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..93191348ea3b64aa5f544da6e12ceaba2f2fa9d7
--- /dev/null
+++ b/package/gluon-mesh-batman-adv-core/Makefile
@@ -0,0 +1,37 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=gluon-mesh-batman-adv-core
+PKG_VERSION:=1
+
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
+
+include $(GLUONDIR)/include/package.mk
+
+define Package/gluon-mesh-batman-adv-core
+  SECTION:=gluon
+  CATEGORY:=Gluon
+  TITLE:=Support for batman-adv meshing (core)
+  DEPENDS:=+gluon-core +firewall +kmod-ipt-nathelper
+endef
+
+define Build/Prepare
+	mkdir -p $(PKG_BUILD_DIR)
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+endef
+
+define Package/gluon-mesh-batman-adv-core/install
+	$(CP) ./files/* $(1)/
+endef
+
+define Package/gluon-mesh-batman-adv-core/postinst
+#!/bin/sh
+$(call GluonCheckSite,check_site.lua)
+endef
+
+
+$(eval $(call BuildPackage,gluon-mesh-batman-adv-core))
diff --git a/package/gluon-mesh-batman-adv/check_site.lua b/package/gluon-mesh-batman-adv-core/check_site.lua
similarity index 100%
rename from package/gluon-mesh-batman-adv/check_site.lua
rename to package/gluon-mesh-batman-adv-core/check_site.lua
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/announce/nodeinfo.d/network/addresses b/package/gluon-mesh-batman-adv-core/files/lib/gluon/announce/nodeinfo.d/network/addresses
similarity index 100%
rename from package/gluon-mesh-batman-adv/files/lib/gluon/announce/nodeinfo.d/network/addresses
rename to package/gluon-mesh-batman-adv-core/files/lib/gluon/announce/nodeinfo.d/network/addresses
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/announce/nodeinfo.d/network/mesh_interfaces b/package/gluon-mesh-batman-adv-core/files/lib/gluon/announce/nodeinfo.d/network/mesh_interfaces
similarity index 100%
rename from package/gluon-mesh-batman-adv/files/lib/gluon/announce/nodeinfo.d/network/mesh_interfaces
rename to package/gluon-mesh-batman-adv-core/files/lib/gluon/announce/nodeinfo.d/network/mesh_interfaces
diff --git a/package/gluon-mesh-batman-adv-core/files/lib/gluon/announce/nodeinfo.d/software/batman-adv/version b/package/gluon-mesh-batman-adv-core/files/lib/gluon/announce/nodeinfo.d/software/batman-adv/version
new file mode 100644
index 0000000000000000000000000000000000000000..abb317e9dc1efa75ba982b013a1e3ff2f7254093
--- /dev/null
+++ b/package/gluon-mesh-batman-adv-core/files/lib/gluon/announce/nodeinfo.d/software/batman-adv/version
@@ -0,0 +1 @@
+return util.trim(fs.readfile('/sys/module/batman_adv/version'))
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/announce/statistics.d/gateway b/package/gluon-mesh-batman-adv-core/files/lib/gluon/announce/statistics.d/gateway
similarity index 100%
rename from package/gluon-mesh-batman-adv/files/lib/gluon/announce/statistics.d/gateway
rename to package/gluon-mesh-batman-adv-core/files/lib/gluon/announce/statistics.d/gateway
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/announce/statistics.d/traffic b/package/gluon-mesh-batman-adv-core/files/lib/gluon/announce/statistics.d/traffic
similarity index 100%
rename from package/gluon-mesh-batman-adv/files/lib/gluon/announce/statistics.d/traffic
rename to package/gluon-mesh-batman-adv-core/files/lib/gluon/announce/statistics.d/traffic
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/010-wan b/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/010-wan
similarity index 100%
rename from package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/010-wan
rename to package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/010-wan
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/011-mesh b/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/011-mesh
similarity index 82%
rename from package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/011-mesh
rename to package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/011-mesh
index f615f45e5714ce836d6413241ebe01a5683cea56..e8628f8cd41a86d1de4cb24f557e4a09f5b7a76d 100755
--- a/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/011-mesh
+++ b/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/011-mesh
@@ -16,6 +16,25 @@ uci:save('batman-adv')
 uci:commit('batman-adv')
 
 
+if not uci:get('network', 'client') then
+  local ifname
+
+  if sysconfig.lan_ifname then
+    ifname = sysconfig.lan_ifname .. ' bat0'
+  else
+    ifname = 'bat0'
+  end
+
+  uci:section('network', 'interface', 'client',
+	      {
+		ifname = ifname,
+		type = 'bridge',
+		proto = 'dhcpv6',
+		reqprefix = 'no',
+	      }
+  )
+end
+
 uci:set('network', 'client', 'macaddr', sysconfig.primary_mac)
 uci:set('network', 'client', 'peerdns', 1)
 
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/020-wireless b/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/020-wireless
similarity index 100%
rename from package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/020-wireless
rename to package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/020-wireless
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/030-mesh-on-wan b/package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/030-mesh-on-wan
similarity index 100%
rename from package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/030-mesh-on-wan
rename to package/gluon-mesh-batman-adv-core/files/lib/gluon/upgrade/mesh-batman-adv-core/invariant/030-mesh-on-wan
diff --git a/package/gluon-mesh-batman-adv/Makefile b/package/gluon-mesh-batman-adv/Makefile
deleted file mode 100644
index 5daf5e524bbb72cec863be8a0abcd086e1ded8c9..0000000000000000000000000000000000000000
--- a/package/gluon-mesh-batman-adv/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=gluon-mesh-batman-adv
-PKG_VERSION:=3
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(GLUONDIR)/include/package.mk
-
-define Package/gluon-mesh-batman-adv
-  SECTION:=gluon
-  CATEGORY:=Gluon
-  TITLE:=Support for batman-adv meshing
-  DEPENDS:=+gluon-core +kmod-batman-adv-legacy +firewall +kmod-ipt-nathelper
-endef
-
-define Package/gluon-mesh-batman-adv/description
-	Gluon community wifi mesh firmware framework: batman-adv support
-endef
-
-define Build/Prepare
-	mkdir -p $(PKG_BUILD_DIR)
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/gluon-mesh-batman-adv/install
-	$(CP) ./files/* $(1)/
-endef
-
-define Package/gluon-mesh-batman-adv/postinst
-#!/bin/sh
-$(call GluonCheckSite,check_site.lua)
-endef
-
-
-$(eval $(call BuildPackage,gluon-mesh-batman-adv))
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/announce/nodeinfo.d/software/batman-adv b/package/gluon-mesh-batman-adv/files/lib/gluon/announce/nodeinfo.d/software/batman-adv
deleted file mode 100644
index 2c8390d6122148818b761369e24bd0e0f5549653..0000000000000000000000000000000000000000
--- a/package/gluon-mesh-batman-adv/files/lib/gluon/announce/nodeinfo.d/software/batman-adv
+++ /dev/null
@@ -1,3 +0,0 @@
-local version = util.trim(fs.readfile('/sys/module/batman_adv/version'))
-
-return { version = version }
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/initial/010-mesh b/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/initial/010-mesh
deleted file mode 100755
index 5b27509953219713dd34b275163b71792fc44a95..0000000000000000000000000000000000000000
--- a/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/initial/010-mesh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/lua
-
-local sysconfig = require 'gluon.sysconfig'
-local uci = require('luci.model.uci').cursor()
-
-
-local ifname
-
-if sysconfig.lan_ifname then
-   ifname = sysconfig.lan_ifname .. ' bat0'
-else
-   ifname = 'bat0'
-end
-
-
-uci:section('network', 'interface', 'client',
-	    {
-	       ifname = ifname,
-	       type = 'bridge',
-	       proto = 'dhcpv6',
-	       reqprefix = 'no',
-	    }
-)
-
-uci:save('network')
-uci:commit('network')