forked from dh1df/ESPTREE-Testbed
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMD_route.lua
41 lines (36 loc) · 958 Bytes
/
CMD_route.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
local cmds_route={}
local subcmds_route={}
function cmds_route.route(ctx,subcmd,...)
return shell.cmd2(ctx,{subcmds_route},subcmd,...)
end
function subcmds_route.show(ctx,dest,via,dev)
local iface={}
for k,v in pairs(net) do
if (k:sub(1,3) == 'IF_') then
iface[v]=k:sub(4)
end
end
for i=0,net.route.getlen()-1 do
local route=net.route.get(i)
if (route and route.dest) then
ctx.stdout:print(route.dest,route.prefixlen,route.nexthop,iface[route.iface])
end
end
return 0
end
function route_add_del(ctx,func,dest,prefixlen,nexthop,dev)
local iface=net['IF_'..dev]
if (not iface) then
return -1
end
local route={dest=dest,prefixlen=prefixlen,nexthop=nexthop,iface=iface}
func(route)
return 0
end
function subcmds_route.add(ctx,...)
return route_add_del(ctx,net.route.add,...)
end
function subcmds_route.delete(ctx,...)
return route_add_del(ctx,net.route.delete,...)
end
return cmds_route