modules/admin-core: extend network scheme to cover ipv6 routes and metric options

modules/admin-full: add route6 support
i18n/english: add required strings
This commit is contained in:
Jo-Philipp Wich 2008-11-26 23:38:30 +00:00
parent 3793244fcb
commit 128ba2828a
4 changed files with 111 additions and 13 deletions

View file

@ -168,7 +168,8 @@ dhcp_dnsmasq_dhcpboot = 'Network Boot Image'
a_n_switch = 'Switch'
a_n_conntrack = 'Active Connections'
a_n_conntrack_desc = 'This page gives an overview over currently active network connections.'
a_n_routes = 'Routes'
a_n_routes = 'IPv4 Routes'
a_n_routes6 = 'IPv6 Routes'
a_network1 = 'In this area you find all network-related settings.'
a_network2 = 'On most routers the network switch can be freely configured and splitted up into several <abbr title="Virtual Local Area Network">VLAN</abbr>s.'
a_network3 = 'Interfaces and <abbr title="Point-to-Point Protocol over Ethernet">PPPoE</abbr> / <abbr title="Point-to-Point Tunneling Protocol">PPTP</abbr>-Settings allow a custom organisation of the network and connections to other networks like the internet.'
@ -222,9 +223,12 @@ network_interface_service = 'Service type'
network_interface_maxwait = 'Setup wait time'
network_interface_maxwait_desc = 'Seconds to wait for the modem to become ready before attempting to connect'
a_n_r_routes1 = 'Routes specify over which interface and gateway a certain host or network can be reached.'
a_n_routes_static = 'Static Routes'
a_n_routes_static = 'Static IPv4 Routes'
a_n_routes_static6 = 'Static IPv6 Routes'
a_n_routes_kernel4 = 'Active <abbr title="Internet Protocol Version 4">IPv4</abbr>-Routes'
a_n_r_target1 = 'host-<abbr title="Internet Protocol Address">IP</abbr> or network'
a_n_routes_kernel6 = 'Active <abbr title="Internet Protocol Version 6">IPv6</abbr>-Routes'
a_n_r_target1 = 'Host-<abbr title="Internet Protocol Address">IP</abbr> or Network'
a_n_r_target6 = '<abbr title="Internet Protocol Version 6">IPv6</abbr>-Address or Network (CIDR)'
a_n_r_netmask1 = 'if target is a network'
m_n_inet = 'Internet Connection'
m_n_local = 'Local Network'

View file

@ -172,7 +172,8 @@
<i18n:msg xml:id="a_n_switch">Switch</i18n:msg>
<i18n:msg xml:id="a_n_conntrack">Active Connections</i18n:msg>
<i18n:msg xml:id="a_n_conntrack_desc">This page gives an overview over currently active network connections.</i18n:msg>
<i18n:msg xml:id="a_n_routes">Routes</i18n:msg>
<i18n:msg xml:id="a_n_routes">IPv4 Routes</i18n:msg>
<i18n:msg xml:id="a_n_routes6">IPv6 Routes</i18n:msg>
<i18n:msg xml:id="a_network1">In this area you find all network-related settings.</i18n:msg>
<i18n:msg xml:id="a_network2">On most routers the network switch can be freely configured and splitted up into several <abbr title="Virtual Local Area Network">VLAN</abbr>s.</i18n:msg>
<i18n:msg xml:id="a_network3">Interfaces and <abbr title="Point-to-Point Protocol over Ethernet">PPPoE</abbr> / <abbr title="Point-to-Point Tunneling Protocol">PPTP</abbr>-Settings allow a custom organisation of the network and connections to other networks like the internet.</i18n:msg>
@ -226,9 +227,12 @@
<i18n:msg xml:id="network_interface_maxwait">Setup wait time</i18n:msg>
<i18n:msg xml:id="network_interface_maxwait_desc">Seconds to wait for the modem to become ready before attempting to connect</i18n:msg>
<i18n:msg xml:id="a_n_r_routes1">Routes specify over which interface and gateway a certain host or network can be reached.</i18n:msg>
<i18n:msg xml:id="a_n_routes_static">Static Routes</i18n:msg>
<i18n:msg xml:id="a_n_routes_static">Static IPv4 Routes</i18n:msg>
<i18n:msg xml:id="a_n_routes_static6">Static IPv6 Routes</i18n:msg>
<i18n:msg xml:id="a_n_routes_kernel4">Active <abbr title="Internet Protocol Version 4">IPv4</abbr>-Routes</i18n:msg>
<i18n:msg xml:id="a_n_r_target1">host-<abbr title="Internet Protocol Address">IP</abbr> or network</i18n:msg>
<i18n:msg xml:id="a_n_routes_kernel6">Active <abbr title="Internet Protocol Version 6">IPv6</abbr>-Routes</i18n:msg>
<i18n:msg xml:id="a_n_r_target1">Host-<abbr title="Internet Protocol Address">IP</abbr> or Network</i18n:msg>
<i18n:msg xml:id="a_n_r_target6"><abbr title="Internet Protocol Version 6">IPv6</abbr>-Address or Network (CIDR)</i18n:msg>
<i18n:msg xml:id="a_n_r_netmask1">if target is a network</i18n:msg>
<i18n:msg xml:id="m_n_inet">Internet Connection</i18n:msg>
<i18n:msg xml:id="m_n_local">Local Network</i18n:msg>

View file

@ -386,6 +386,46 @@ config variable
option datatype 'ip4addr'
option required 'true'
config variable
option name 'metric'
option title 'Metric'
option section 'network.route6'
option datatype 'uint'
config section
option name 'route6'
option title 'Static IPv6 route definition'
option package 'network'
config variable
option name 'interface'
option title 'Interface'
option section 'network.route6'
option valueof 'network.interface'
option required 'true'
config variable
option name 'target'
option title 'Target IPv6 host or network (CIDR)'
option section 'network.route6'
option datatype 'ip6addr'
option required 'true'
config variable
option name 'gateway'
option title 'IPv6 gateway'
option section 'network.route6'
option datatype 'ip6addr'
option required 'true'
config variable
option name 'metric'
option title 'Metric'
option section 'network.route6'
option datatype 'uint'
config section

View file

@ -16,31 +16,62 @@ m = Map("network", translate("a_n_routes"), translate("a_n_routes1"))
if not arg or not arg[1] then
local routes = luci.sys.net.routes()
v = m:section(Table, routes, translate("a_n_routes_kernel4"))
net = v:option(DummyValue, "iface", translate("network"))
function net.cfgvalue(self, section)
return luci.tools.webadmin.iface_get_network(routes[section].Iface)
or routes[section].Iface
end
target = v:option(DummyValue, "target", translate("target"))
function target.cfgvalue(self, section)
return luci.ip.Hex(routes[section].Destination, 32):string()
end
netmask = v:option(DummyValue, "netmask", translate("netmask"))
function netmask.cfgvalue(self, section)
return luci.ip.Hex(routes[section].Mask, 32):string()
end
gateway = v:option(DummyValue, "gateway", translate("gateway"))
function gateway.cfgvalue(self, section)
return luci.ip.Hex(routes[section].Gateway, 32):string()
end
metric = v:option(DummyValue, "Metric", translate("metric"))
local routes6 = luci.sys.net.routes6()
v = m:section(Table, routes6, translate("a_n_routes_kernel6"))
net = v:option(DummyValue, "iface", translate("network"))
function net.cfgvalue(self, section)
return luci.tools.webadmin.iface_get_network(routes6[section].device)
or routes6[section].device
end
target = v:option(DummyValue, "target", translate("target"))
function target.cfgvalue(self, section)
return routes6[section].dst_ip .. "/" .. routes6[section].dst_prefix
end
--[[
netmask = v:option(DummyValue, "prefix", translate("prefix"))
function netmask.cfgvalue(self, section)
return luci.ip.Hex(routes6[section].Mask, 32):string()
end
]]
gateway = v:option(DummyValue, "gateway", translate("gateway6"))
function gateway.cfgvalue(self, section)
return routes6[section].src_ip .. "/" .. routes6[section].src_prefix
end
metric = v:option(DummyValue, "Metric", translate("metric"))
function metric.cfgvalue(self, section)
return string.format( "%08X", routes6[section].metric )
end
end
@ -63,4 +94,23 @@ s:option(Value, "netmask", translate("netmask"), translate("a_n_r_netmask1")).rm
s:option(Value, "gateway", translate("gateway"))
return m
s = m:section(TypedSection, "route6", translate("a_n_routes_static6"))
s.addremove = true
s.anonymous = true
s.template = "cbi/tblsection"
iface = s:option(ListValue, "interface", translate("interface"))
luci.tools.webadmin.cbi_add_networks(iface)
if not arg or not arg[1] then
net.titleref = iface.titleref
end
s:option(Value, "target", translate("target"), translate("a_n_r_target6"))
s:option(Value, "gateway", translate("gateway6")).rmempty = true
return m