SmartAudio/package/luci/luci-mod-admin-full/luasrc/view/admin_status/routes.htm

163 lines
4.9 KiB
HTML

<%#
Copyright 2008-2009 Steven Barth <steven@midlink.org>
Copyright 2008-2015 Jo-Philipp Wich <jow@openwrt.org>
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%>
<div class="cbi-map" id="cbi-network">
<h2 name="content"><%:Routes%></h2>
<div class="cbi-map-descr"><%:The following rules are currently active on this system.%></div>
<fieldset class="cbi-section">
<legend>ARP</legend>
<div class="cbi-section-node">
<table class="cbi-section-table">
<tr class="cbi-section-table-titles">
<th class="cbi-section-table-cell"><%_<abbr title="Internet Protocol Version 4">IPv4</abbr>-Address%></th>
<th class="cbi-section-table-cell"><%_<abbr title="Media Access Control">MAC</abbr>-Address%></th>
<th class="cbi-section-table-cell"><%:Interface%></th>
</tr>
<%
for _, v in ipairs(ip.neighbors({ family = 4 })) do
if v.mac then
%>
<tr class="cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>">
<td class="cbi-value-field"><%=v.dest%></td>
<td class="cbi-value-field"><%=v.mac%></td>
<td class="cbi-value-field"><%=v.dev%></td>
</tr>
<%
style = not style
end
end
%>
</table>
</div>
</fieldset>
<br />
<fieldset class="cbi-section">
<legend><%_Active <abbr title="Internet Protocol Version 4">IPv4</abbr>-Routes%></legend>
<div class="cbi-section-node">
<table class="cbi-section-table">
<tr class="cbi-section-table-titles">
<th class="cbi-section-table-cell"><%:Network%></th>
<th class="cbi-section-table-cell"><%:Target%></th>
<th class="cbi-section-table-cell"><%_<abbr title="Internet Protocol Version 4">IPv4</abbr>-Gateway%></th>
<th class="cbi-section-table-cell"><%:Metric%></th>
<th class="cbi-section-table-cell"><%:Table%></th>
</tr>
<% for _, v in ipairs(ip.routes({ family = 4, type = 1 })) do %>
<tr class="cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>">
<td class="cbi-value-field"><%=luci.tools.webadmin.iface_get_network(v.dev) or v.dev%></td>
<td class="cbi-value-field"><%=v.dest%></td>
<td class="cbi-value-field"><%=v.gw%></td>
<td class="cbi-value-field"><%=v.metric or 0%></td>
<td class="cbi-value-field"><%=rtn[v.table] or v.table%></td>
</tr>
<% style = not style end %>
</table>
</div>
</fieldset>
<br />
<%
if nixio.fs.access("/proc/net/ipv6_route") then
style = true
%>
<fieldset class="cbi-section">
<legend><%_Active <abbr title="Internet Protocol Version 6">IPv6</abbr>-Routes%></legend>
<div class="cbi-section-node">
<table class="cbi-section-table">
<tr class="cbi-section-table-titles">
<th class="cbi-section-table-cell"><%:Network%></th>
<th class="cbi-section-table-cell"><%:Target%></th>
<th class="cbi-section-table-cell"><%:Source%></th>
<th class="cbi-section-table-cell"><%:Metric%></th>
<th class="cbi-section-table-cell"><%:Table%></th>
</tr>
<%
for _, v in ipairs(ip.routes({ family = 6, type = 1 })) do
if v.dest and not v.dest:is6linklocal() then
%>
<tr class="cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>">
<td class="cbi-value-field"><%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%></td>
<td class="cbi-value-field"><%=v.dest%></td>
<td class="cbi-value-field"><%=v.from%></td>
<td class="cbi-value-field"><%=v.metric or 0%></td>
<td class="cbi-value-field"><%=rtn[v.table] or v.table%></td>
</tr>
<%
style = not style
end
end
%>
</table>
</div>
</fieldset>
<br />
<fieldset class="cbi-section">
<legend><%:IPv6 Neighbours%></legend>
<div class="cbi-section-node">
<table class="cbi-section-table">
<tr class="cbi-section-table-titles">
<th class="cbi-section-table-cell"><%:IPv6-Address%></th>
<th class="cbi-section-table-cell"><%:MAC-Address%></th>
<th class="cbi-section-table-cell"><%:Interface%></th>
</tr>
<%
for _, v in ipairs(ip.neighbors({ family = 6 })) do
if v.dest and not v.dest:is6linklocal() and v.mac then
%>
<tr class="cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>">
<td class="cbi-value-field"><%=v.dest%></td>
<td class="cbi-value-field"><%=v.mac%></td>
<td class="cbi-value-field"><%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%></td>
</tr>
<%
style = not style
end
end
%>
</table>
</div>
</fieldset>
<br />
<% end %>
</div>
<%+footer%>