Browse Source

gluon-mesh-batman-adv: enable routing algorithm configuration through site.conf

[Matthias Schiffer: move to proto_gluon_bat0_setup() and default to BATMAN_IV]
Steffen Förster 6 years ago
parent
commit
826ac88493

+ 2 - 1
package/gluon-mesh-batman-adv/check_site.lua

@@ -1,3 +1,4 @@
 if need_table('mesh', nil, false) and  need_table('mesh.batman_adv', nil, false) then
-  need_number('mesh.batman_adv.gw_sel_class', false)
+	need_number('mesh.batman_adv.gw_sel_class', false)
+	need_one_of('mesh.batman_adv.routing_algo', {'BATMAN_IV', 'BATMAN_V'}, false)
 end

+ 4 - 0
package/gluon-mesh-batman-adv/files/lib/netifd/proto/gluon_bat0.sh

@@ -41,6 +41,10 @@ proto_gluon_bat0_setup() {
 	ip link add primary0 type dummy
 	echo 1 > /proc/sys/net/ipv6/conf/primary0/disable_ipv6
 	ip link set primary0 address "$primary0_mac" mtu 1532 up
+
+	local routing_algo="$(uci -q get batman-adv.bat0.routing_algo || echo 'BATMAN_IV')"
+	(echo "$routing_algo" >/sys/module/batman_adv/parameters/routing_algo) 2>/dev/null
+
 	echo bat0 > /sys/class/net/primary0/batman_adv/mesh_iface
 
 	proto_init_update primary0 1

+ 6 - 0
package/gluon-mesh-batman-adv/luasrc/lib/gluon/upgrade/310-gluon-mesh-batman-adv-mesh

@@ -12,12 +12,18 @@ if site.mesh and site.mesh.batman_adv then
 	gw_sel_class = site.mesh.batman_adv.gw_sel_class
 end
 
+local routing_algo
+if site.mesh and site.mesh.batman_adv then
+	routing_algo = site.mesh.batman_adv.routing_algo
+end
+
 uci:delete('batman-adv', 'bat0')
 uci:section('batman-adv', 'mesh', 'bat0', {
 	orig_interval = 5000,
 	gw_mode = 'client',
 	gw_sel_class = gw_sel_class,
 	hop_penalty = 15,
+	routing_algo = routing_algo,
 	multicast_mode = false,
 })
 uci:save('batman-adv')