310-gluon-mesh-batman-adv-mesh 1.2 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_mode, gw_sel_class, routing_algo
  7. gw_mode = uci:get('batman-adv', 'bat0', 'gw_mode') or 'client'
  8. if site.mesh and site.mesh.batman_adv then
  9. gw_sel_class = site.mesh.batman_adv.gw_sel_class
  10. routing_algo = site.mesh.batman_adv.routing_algo
  11. end
  12. uci:delete('batman-adv', 'bat0')
  13. uci:section('batman-adv', 'mesh', 'bat0', {
  14. orig_interval = 5000,
  15. gw_mode = gw_mode,
  16. gw_sel_class = gw_sel_class,
  17. hop_penalty = 15,
  18. routing_algo = routing_algo,
  19. multicast_mode = false,
  20. })
  21. uci:save('batman-adv')
  22. uci:delete('network', 'gluon_bat0')
  23. uci:section('network', 'interface', 'gluon_bat0', {
  24. proto = 'gluon_bat0',
  25. })
  26. uci:delete('network', 'bat0')
  27. uci:section('network', 'interface', 'bat0', {
  28. ifname = 'bat0',
  29. proto = 'none',
  30. auto = true,
  31. macaddr = sysconfig.primary_mac,
  32. multicast_router = 2,
  33. learning = true,
  34. })
  35. local interfaces = uci:get_list('network', 'client', 'ifname')
  36. util.add_to_set(interfaces, 'bat0')
  37. uci:set_list('network', 'client', 'ifname', interfaces)
  38. uci:save('network')