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

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