1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #!/usr/bin/lua
- local util = require 'gluon.util'
- local fs = require 'nixio.fs'
- local ifname = os.getenv('IFNAME')
- local cmd = arg[1]
- if cmd == 'setup' then
- local fixed_mtu = tonumber(os.getenv('FIXED_MTU')) or 0
- local transitive = tonumber(os.getenv('TRANSITIVE')) or 0
- local mtu = tonumber(arg[2])
- if fixed_mtu == 0 then
- local lower = fs.glob('/sys/class/net/' .. ifname .. '/lower_*/wireless')()
- if lower then
- lower = lower:match('/lower_([^/]+)/wireless$')
- util.exec('ip', 'link', 'set', 'dev', lower, 'mtu', tostring(mtu+4))
- end
- util.exec('ip', 'link', 'set', 'dev', ifname, 'mtu', tostring(mtu))
- end
- local file = assert(io.open('/sys/class/net/' .. ifname .. '/batman_adv/mesh_iface', 'w'))
- file:write('bat0')
- file:close()
- file = assert(io.open('/sys/class/net/' .. ifname .. '/batman_adv/no_rebroadcast', 'w'))
- file:write(tostring(transitive))
- file:close()
- elseif cmd == 'teardown' then
- local file = io.open('/sys/class/net/' .. ifname .. '/batman_adv/mesh_iface', 'w')
- if file then
- file:write('none')
- file:close()
- end
- end
|