$Id$
]]--
+
require("luci.tools.webadmin")
-m = Map("network", translate("a_n_routes"), translate("a_n_routes1"))
+m = Map("network",
+ translate("Routes"),
+ translate("Routes specify over which interface and gateway a certain host or network " ..
+ "can be reached."))
local routes6 = luci.sys.net.routes6()
+local bit = require "bit"
-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].device)
- or routes[section].device
- end
-
- target = v:option(DummyValue, "target", translate("target"))
- function target.cfgvalue(self, section)
- return routes[section].dest:network():string()
- end
-
- netmask = v:option(DummyValue, "netmask", translate("netmask"))
- function netmask.cfgvalue(self, section)
- return routes[section].dest:mask():string()
- end
-
- gateway = v:option(DummyValue, "gateway", translate("gateway"))
- function gateway.cfgvalue(self, section)
- return routes[section].gateway:string()
- end
-
- metric = v:option(DummyValue, "metric", translate("metric"))
- function metric.cfgvalue(self, section)
- return routes[section].metric
- end
-
- if routes6 then
- 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].dest:string()
- end
-
- gateway = v:option(DummyValue, "gateway", translate("gateway6"))
- function gateway.cfgvalue(self, section)
- return routes6[section].source:string()
- end
-
- metric = v:option(DummyValue, "metric", translate("metric"))
- function metric.cfgvalue(self, section)
- return string.format( "%08X", routes6[section].metric )
- end
- end
-end
-
-
-s = m:section(TypedSection, "route", translate("a_n_routes_static4"))
+s = m:section(TypedSection, "route", translate("Static IPv4 Routes"))
s.addremove = true
s.anonymous = true
s.template = "cbi/tblsection"
-iface = s:option(ListValue, "interface", translate("interface"))
+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
+t = s:option(Value, "target", translate("Target"), translate("Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"))
+t.datatype = "ip4addr"
+t.rmempty = false
+
+n = s:option(Value, "netmask", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"), translate("if target is a network"))
+n.placeholder = "255.255.255.255"
+n.datatype = "ip4addr"
+n.rmempty = true
-s:option(Value, "target", translate("target"), translate("a_n_r_target1"))
+g = s:option(Value, "gateway", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"))
+g.datatype = "ip4addr"
+g.rmempty = true
-s:option(Value, "netmask", translate("netmask"), translate("a_n_r_netmask1")).rmemepty = true
+metric = s:option(Value, "metric", translate("Metric"))
+metric.placeholder = 0
+metric.datatype = "range(0,255)"
+metric.rmempty = true
-s:option(Value, "gateway", translate("gateway"))
+mtu = s:option(Value, "mtu", translate("MTU"))
+mtu.placeholder = 1500
+mtu.datatype = "range(64,9000)"
+mtu.rmempty = true
if routes6 then
- s = m:section(TypedSection, "route6", translate("a_n_routes_static6"))
+ s = m:section(TypedSection, "route6", translate("Static IPv6 Routes"))
s.addremove = true
s.anonymous = true
s.template = "cbi/tblsection"
- iface = s:option(ListValue, "interface", translate("interface"))
+ 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
+ t = s:option(Value, "target", translate("Target"), translate("<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network (CIDR)"))
+ t.datatype = "ip6addr"
+ t.rmempty = false
+
+ g = s:option(Value, "gateway", translate("<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"))
+ g.datatype = "ip6addr"
+ g.rmempty = true
- s:option(Value, "target", translate("target"), translate("a_n_r_target6"))
+ metric = s:option(Value, "metric", translate("Metric"))
+ metric.placeholder = 0
+ metric.datatype = "range(0,65535)" -- XXX: not sure
+ metric.rmempty = true
- s:option(Value, "gateway", translate("gateway6")).rmempty = true
+ mtu = s:option(Value, "mtu", translate("MTU"))
+ mtu.placeholder = 1500
+ mtu.datatype = "range(64,9000)"
+ mtu.rmempty = true
end