310-gluon-mesh-batman-adv-mesh 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/lua
  2. local sysconfig = require 'gluon.sysconfig'
  3. local site = require 'gluon.site_config'
  4. local util = require 'gluon.util'
  5. local uci = require('simple-uci').cursor()
  6. local gw_sel_class
  7. if site.mesh and site.mesh.batman_adv then
  8. gw_sel_class = site.mesh.batman_adv.gw_sel_class
  9. end
  10. local routing_algo
  11. if site.mesh and site.mesh.batman_adv then
  12. routing_algo = site.mesh.batman_adv.routing_algo
  13. end
  14. uci:delete('batman-adv', 'bat0')
  15. uci:section('batman-adv', 'mesh', 'bat0', {
  16. orig_interval = 5000,
  17. gw_mode = 'client',
  18. gw_sel_class = gw_sel_class,
  19. hop_penalty = 15,
  20. routing_algo = routing_algo,
  21. multicast_mode = false,
  22. })
  23. uci:save('batman-adv')
  24. uci:delete('network', 'gluon_bat0')
  25. uci:section('network', 'interface', 'gluon_bat0', {
  26. proto = 'gluon_bat0',
  27. })
  28. uci:delete('network', 'bat0')
  29. uci:section('network', 'interface', 'bat0', {
  30. ifname = 'bat0',
  31. proto = 'none',
  32. auto = true,
  33. macaddr = sysconfig.primary_mac,
  34. multicast_router = 2,
  35. learning = true,
  36. })
  37. local interfaces = uci:get_list('network', 'client', 'ifname')
  38. util.add_to_set(interfaces, 'bat0')
  39. uci:set_list('network', 'client', 'ifname', interfaces)
  40. uci:save('network')