X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=modules%2Fadmin-full%2Fluasrc%2Fmodel%2Fcbi%2Fadmin_network%2Froutes.lua;h=469748c87a9dafdda55ff6584c703ad56ff6b91d;hp=aa32324e69ec2e4883aabd05bc9a00743c5c3124;hb=017d24c7241ba2393498b3ceb637cb0883c9e114;hpb=91ba7c42f5b45614c9f4c803d09399f08a8e27b1
diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua b/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua
index aa32324e6..469748c87 100644
--- a/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua
+++ b/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua
@@ -11,56 +11,76 @@ You may obtain a copy of the License at
$Id$
]]--
+
require("luci.tools.webadmin")
-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"))
-end
+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"
-s = m:section(TypedSection, "route", translate("a_n_routes_static"))
+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-IP or Network"))
+t.datatype = "ip4addr"
+t.rmempty = false
+
+n = s:option(Value, "netmask", translate("IPv4-Netmask"), translate("if target is a network"))
+n.placeholder = "255.255.255.255"
+n.datatype = "ip4addr"
+n.rmempty = true
+
+g = s:option(Value, "gateway", translate("IPv4-Gateway"))
+g.datatype = "ip4addr"
+g.rmempty = true
+
+metric = s:option(Value, "metric", translate("Metric"))
+metric.placeholder = 0
+metric.datatype = "range(0,255)"
+metric.rmempty = true
+
+mtu = s:option(Value, "mtu", translate("MTU"))
+mtu.placeholder = 1500
+mtu.datatype = "range(64,9000)"
+mtu.rmempty = true
-s:option(Value, "target", translate("target"), translate("a_n_r_target1"))
+if routes6 then
+ s = m:section(TypedSection, "route6", translate("Static IPv6 Routes"))
+ s.addremove = true
+ s.anonymous = true
-s:option(Value, "netmask", translate("netmask"), translate("a_n_r_netmask1")).rmemepty = true
+ s.template = "cbi/tblsection"
+
+ iface = s:option(ListValue, "interface", translate("Interface"))
+ luci.tools.webadmin.cbi_add_networks(iface)
+
+ t = s:option(Value, "target", translate("Target"), translate("IPv6-Address or Network (CIDR)"))
+ t.datatype = "ip6addr"
+ t.rmempty = false
+
+ g = s:option(Value, "gateway", translate("IPv6-Gateway"))
+ g.datatype = "ip6addr"
+ g.rmempty = true
+
+ metric = s:option(Value, "metric", translate("Metric"))
+ metric.placeholder = 0
+ metric.datatype = "range(0,65535)" -- XXX: not sure
+ metric.rmempty = true
+
+ mtu = s:option(Value, "mtu", translate("MTU"))
+ mtu.placeholder = 1500
+ mtu.datatype = "range(64,9000)"
+ mtu.rmempty = true
+end
-s:option(Value, "gateway", translate("gateway"))
-return m
\ No newline at end of file
+return m