config_mesh_interface 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/lua
  2. local util = require 'gluon.util'
  3. local fs = require 'nixio.fs'
  4. local ifname = os.getenv('IFNAME')
  5. local cmd = arg[1]
  6. if cmd == 'setup' then
  7. local fixed_mtu = tonumber(os.getenv('FIXED_MTU')) or 0
  8. local transitive = tonumber(os.getenv('TRANSITIVE')) or 0
  9. local mtu = tonumber(arg[2])
  10. if fixed_mtu == 0 then
  11. local lower = fs.glob('/sys/class/net/' .. ifname .. '/lower_*/wireless')()
  12. if lower then
  13. lower = lower:match('/lower_([^/]+)/wireless$')
  14. util.exec('ip', 'link', 'set', 'dev', lower, 'mtu', tostring(mtu+4))
  15. end
  16. util.exec('ip', 'link', 'set', 'dev', ifname, 'mtu', tostring(mtu))
  17. end
  18. local file = assert(io.open('/sys/class/net/' .. ifname .. '/batman_adv/mesh_iface', 'w'))
  19. file:write('bat0')
  20. file:close()
  21. file = assert(io.open('/sys/class/net/' .. ifname .. '/batman_adv/no_rebroadcast', 'w'))
  22. file:write(tostring(transitive))
  23. file:close()
  24. elseif cmd == 'teardown' then
  25. local file = io.open('/sys/class/net/' .. ifname .. '/batman_adv/mesh_iface', 'w')
  26. if file then
  27. file:write('none')
  28. file:close()
  29. end
  30. end