<%# Copyright 2008-2009 Steven Barth Copyright 2008-2015 Jo-Philipp Wich Licensed to the public under the Apache License 2.0. -%> <%- 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%>

<%:The following rules are currently active on this system.%>
ARP
<% for _, v in ipairs(ip.neighbors({ family = 4 })) do if v.mac then %> <% style = not style end end %>
<%_IPv4-Address%> <%_MAC-Address%> <%:Interface%>
<%=v.dest%> <%=v.mac%> <%=v.dev%>

<%_Active IPv4-Routes%>
<% for _, v in ipairs(ip.routes({ family = 4, type = 1 })) do %> <% style = not style end %>
<%:Network%> <%:Target%> <%_IPv4-Gateway%> <%:Metric%> <%:Table%>
<%=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%>

<% if nixio.fs.access("/proc/net/ipv6_route") then style = true %>
<%_Active IPv6-Routes%>
<% for _, v in ipairs(ip.routes({ family = 6, type = 1 })) do if v.dest and not v.dest:is6linklocal() then %> <% style = not style end end %>
<%:Network%> <%:Target%> <%:Source%> <%:Metric%> <%:Table%>
<%=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%>

<%:IPv6 Neighbours%>
<% 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 end %>
<%:IPv6-Address%> <%:MAC-Address%> <%:Interface%>
<%=v.dest%> <%=v.mac%> <%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%>

<% end %>
<%+footer%>