<%# 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
<%_IPv4-Address%>
<%_MAC-Address%>
<%:Interface%>
<% for _, v in ipairs(ip.neighbors({ family = 4 })) do if v.mac then %>
<%=v.dest%>
<%=v.mac%>
<%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%>
<% style = not style end end %>

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

<% if nixio.fs.access("/proc/net/ipv6_route") then style = true %>
<%_Active IPv6-Routes%>
<%:Network%>
<%:Target%>
<%: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%>
<%:IPv6-Address%>
<%:MAC-Address%>
<%:Interface%>
<% for _, v in ipairs(ip.neighbors({ family = 6 })) do if v.dest and not v.dest:is6linklocal() and v.mac then %>
<%=v.dest%>
<%=v.mac%>
<%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%>
<% style = not style end end %>

<% end %>
<%+footer%>