Browse Source

gluon-core: migrate custom batadv interfaces to gluon_mesh proto

Users may have defined additional mesh interfaces. Properly migrate these
to avoid subtly breaking the network config (and make them ready for new
mesh protocols).
Matthias Schiffer 7 years ago
parent
commit
4f39be09c9
1 changed files with 24 additions and 0 deletions
  1. 24 0
      package/gluon-core/luasrc/lib/gluon/upgrade/800-migrate-batadv

+ 24 - 0
package/gluon-core/luasrc/lib/gluon/upgrade/800-migrate-batadv

@@ -0,0 +1,24 @@
+#!/usr/bin/lua
+
+local uci = require('luci.model.uci').cursor()
+
+local function migrate_iface(iface)
+	if iface.proto ~= 'batadv' or iface.mesh ~= 'bat0' then
+		return
+	end
+
+	local s = iface['.name']
+
+	uci:set('network', s, 'proto', 'gluon_mesh')
+	uci:set('network', s, 'fixed_mtu', '1')
+
+	if iface.mesh_no_rebroadcast then
+		uci:set('network', s, 'transitive', iface.mesh_no_rebroadcast)
+	end
+
+	uci:delete('network', s, 'mesh')
+	uci:delete('network', s, 'mesh_no_rebroadcast')
+end
+
+uci:foreach('network', 'interface', migrate_iface)
+uci:save('network')