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 cd9be570a0..469748c87a 100644
--- a/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua
+++ b/modules/admin-full/luasrc/model/cbi/admin_network/routes.lua
@@ -30,9 +30,28 @@ s.template = "cbi/tblsection"
iface = s:option(ListValue, "interface", translate("Interface"))
luci.tools.webadmin.cbi_add_networks(iface)
-s:option(Value, "target", translate("Target"), translate("Host-IP or Network"))
-s:option(Value, "netmask", translate("IPv4-Netmask"), translate("if target is a network")).rmemepty = true
-s:option(Value, "gateway", translate("IPv4-Gateway"))
+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
if routes6 then
s = m:section(TypedSection, "route6", translate("Static IPv6 Routes"))
@@ -44,8 +63,23 @@ if routes6 then
iface = s:option(ListValue, "interface", translate("Interface"))
luci.tools.webadmin.cbi_add_networks(iface)
- s:option(Value, "target", translate("Target"), translate("IPv6-Address or Network (CIDR)"))
- s:option(Value, "gateway", translate("IPv6-Gateway")).rmempty = true
+ 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