X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=modules%2Fluci-mod-admin-full%2Fluasrc%2Fview%2Fadmin_status%2Froutes.htm;h=5f2c07493950549f3faf638c1001136e4e62ac18;hb=b121f958621efd5d81451e2de3e7d35a828645bc;hp=ebdd64ad486d3cd96c1ddb5a5cc08b631de9ec29;hpb=7a3493b1f7d75a3945279115324cf2ff4da26b7b;p=project%2Fluci.git diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/routes.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/routes.htm index ebdd64ad4..5f2c07493 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_status/routes.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/routes.htm @@ -1,24 +1,42 @@ <%# Copyright 2008-2009 Steven Barth - Copyright 2008-2009 Jo-Philipp Wich + Copyright 2008-2015 Jo-Philipp Wich Licensed to the public under the Apache License 2.0. -%> <%- - require "luci.sys" require "luci.tools.webadmin" require "nixio.fs" + local ip = require "luci.ip" local style = true + local _, v + + local rtn = { + [255] = "local", + [254] = "main", + [253] = "default", + [0] = "unspec" + } + + if nixio.fs.access("/etc/iproute2/rt_tables") then + local ln + for ln in io.lines("/etc/iproute2/rt_tables") do + local i, n = ln:match("^(%d+)%s+(%S+)") + if i and n then + rtn[tonumber(i)] = n + end + end + end -%> <%+header%>
-

<%:Routes%>

+

<%:Routes%>

<%:The following rules are currently active on this system.%>
-
+
ARP
@@ -28,19 +46,26 @@ - <% luci.sys.net.arptable(function(e) %> + <% + for _, v in ipairs(ip.neighbors({ family = 4 })) do + if v.mac then + %> - - - + + + - <% style = not style; end) %> + <% + style = not style + end + end + %>
<%:Interface%>
<%=e["IP address"]%><%=e["HW address"]%><%=e["Device"]%><%=v.dest%><%=v.mac%><%=v.dev%>

-
+
<%_Active IPv4-Routes%>
@@ -50,25 +75,27 @@ <%:Target%> <%_IPv4-Gateway%> <%:Metric%> + <%:Table%> - <% luci.sys.net.routes(function(rt) %> + <% for _, v in ipairs(ip.routes({ family = 4, type = 1 })) do %> - <%=luci.tools.webadmin.iface_get_network(rt.device) or rt.device%> - <%=rt.dest:string()%> - <%=rt.gateway:string()%> - <%=rt.metric%> + <%=luci.tools.webadmin.iface_get_network(v.dev) or v.dev%> + <%=v.dest%> + <%=v.gw%> + <%=v.metric or 0%> + <%=rtn[v.table] or v.table%> - <% style = not style; end) %> + <% style = not style end %>

- <% if nixio.fs.access("/proc/net/ipv6_route") then - style = true - fe80 = luci.ip.IPv6("fe80::/10") + <% + if nixio.fs.access("/proc/net/ipv6_route") then + style = true %> -
+
<%_Active IPv6-Routes%>
@@ -76,17 +103,55 @@ <%:Network%> <%:Target%> - <%_IPv6-Gateway%> + <%:Source%> <%:Metric%> + <%:Table%> + + <% + for _, v in ipairs(ip.routes({ family = 6, type = 1 })) do + if v.dest and not v.dest:is6linklocal() then + %> + + <%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%> + <%=v.dest%> + <%=v.from%> + <%=v.metric or 0%> + <%=rtn[v.table] or v.table%> + + <% + style = not style + end + end + %> + +
+
+
+ +
+ <%:IPv6 Neighbours%> + +
+ + + + + - <% luci.sys.net.routes6(function(rt) if fe80:contains(rt.dest) then return end %> + <% + for _, v in ipairs(ip.neighbors({ family = 6 })) do + if v.dest and not v.dest:is6linklocal() and v.mac then + %> - - - - + + + - <% style = not style; end) %> + <% + style = not style + end + end + %>
<%:IPv6-Address%><%:MAC-Address%><%:Interface%>
<%=luci.tools.webadmin.iface_get_network(rt.device) or '(' .. rt.device .. ')'%><%=rt.dest:string()%><%=rt.source:string()%><%=rt.metric_raw:upper()%><%=v.dest%><%=v.mac%><%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%>