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