diff --git a/package/gluon-mesh-batman-adv/check_site.lua b/package/gluon-mesh-batman-adv/check_site.lua index 384b3224..6b642927 100644 --- a/package/gluon-mesh-batman-adv/check_site.lua +++ b/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_one_of('mesh.batman_adv.routing_algo', {'BATMAN_IV', 'BATMAN_V'}, false) end diff --git a/package/gluon-mesh-batman-adv/files/lib/netifd/proto/gluon_bat0.sh b/package/gluon-mesh-batman-adv/files/lib/netifd/proto/gluon_bat0.sh index 781d91c3..6e9034b6 100755 --- a/package/gluon-mesh-batman-adv/files/lib/netifd/proto/gluon_bat0.sh +++ b/package/gluon-mesh-batman-adv/files/lib/netifd/proto/gluon_bat0.sh @@ -14,6 +14,12 @@ proto_gluon_bat0_renew() { local config="$1" lock /var/lock/gluon_bat0.lock + + local routing_algo="$(uci get batman-adv.bat0.routing_algo)" + + echo "The algo is set to $routing_algo" + + echo $routing_algo > /sys/module/batman_adv/parameters/routing_algo local ifdump="$(ubus call network.interface dump)" diff --git a/package/gluon-mesh-batman-adv/luasrc/lib/gluon/upgrade/310-gluon-mesh-batman-adv-mesh b/package/gluon-mesh-batman-adv/luasrc/lib/gluon/upgrade/310-gluon-mesh-batman-adv-mesh index 8153f075..b119531a 100755 --- a/package/gluon-mesh-batman-adv/luasrc/lib/gluon/upgrade/310-gluon-mesh-batman-adv-mesh +++ b/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')