function interfaceWarnings() -- display warning messages at the top of the page
local warns, lineBreak = "", ""
if errorReliability == 1 then
- warns = "<font color=\"ff0000\"><strong>WARNING: this interface has a higher reliability requirement than there are tracking IP addresses!</strong></font>"
+ warns = "<font color=\"ff0000\"><strong>" .. translate("WARNING: this interface has a higher reliability requirement than there are tracking IP addresses!") .. "</strong></font>"
lineBreak = "<br /><br />"
end
if errorRoute == 1 then
- warns = warns .. lineBreak .. "<font color=\"ff0000\"><strong>WARNING: this interface has no default route in the main routing table!</strong></font>"
+ warns = warns .. lineBreak .. "<font color=\"ff0000\"><strong>" .. translate("WARNING: this interface has no default route in the main routing table!") .. "</strong></font>"
lineBreak = "<br /><br />"
end
if errorNetConfig == 1 then
- warns = warns .. lineBreak .. "<font color=\"ff0000\"><strong>WARNING: this interface is configured incorrectly or not at all in /etc/config/network!</strong></font>"
+ warns = warns .. lineBreak .. "<font color=\"ff0000\"><strong>" .. translate("WARNING: this interface is configured incorrectly or not at all in /etc/config/network!") .. "</strong></font>"
lineBreak = "<br /><br />"
end
if errorNoMetric == 1 then
- warns = warns .. lineBreak .. "<font color=\"ff0000\"><strong>WARNING: this interface has no metric configured in /etc/config/network!</strong></font>"
+ warns = warns .. lineBreak .. "<font color=\"ff0000\"><strong>" .. translate("WARNING: this interface has no metric configured in /etc/config/network!") .. "</strong></font>"
elseif errorDuplicateMetric == 1 then
- warns = warns .. lineBreak .. "<font color=\"ff0000\"><strong>WARNING: this and other interfaces have duplicate metrics configured in /etc/config/network!</strong></font>"
+ warns = warns .. lineBreak .. "<font color=\"ff0000\"><strong>" .. translate("WARNING: this and other interfaces have duplicate metrics configured in /etc/config/network!") .. "</strong></font>"
end
return warns
end
interfaceCheck()
-m5 = Map("mwan3", translate("MWAN Interface Configuration - " .. arg[1]),
- translate(interfaceWarnings()))
+m5 = Map("mwan3", translatef("MWAN Interface Configuration - %s", arg[1]),
+ interfaceWarnings())
m5.redirect = dsp.build_url("admin", "network", "mwan", "configuration", "interface")
enabled:value("1", translate("Yes"))
enabled:value("0", translate("No"))
-track_ip = mwan_interface:option(DynamicList, "track_ip", translate("Tracking IP"),
- translate("This IP address will be pinged to dermine if the link is up or down. Leave blank to assume interface is always online"))
- track_ip.datatype = "ipaddr"
+initial_state = mwan_interface:option(ListValue, "initial_state", translate("Initial state"),
+ translate("Expect interface state on up event"))
+ initial_state.default = "online"
+ initial_state:value("online", translate("Online"))
+ initial_state:value("offline", translate("Offline"))
+
+family = mwan_interface:option(ListValue, "family", translate("Internet Protocol"))
+ family.default = "ipv4"
+ family:value("ipv4", translate("IPv4"))
+ family:value("ipv6", translate("IPv6"))
+
+track_ip = mwan_interface:option(DynamicList, "track_ip", translate("Tracking hostname or IP address"),
+ translate("This hostname or IP address will be pinged to determine if the link is up or down. Leave blank to assume interface is always online"))
+ track_ip.datatype = "host"
reliability = mwan_interface:option(Value, "reliability", translate("Tracking reliability"),
translate("Acceptable values: 1-100. This many Tracking IP addresses must respond for the link to be deemed up"))
count:value("4")
count:value("5")
+size = mwan_interface:option(Value, "size", translate("Ping size"))
+ size.default = "56"
+ size:value("8")
+ size:value("24")
+ size:value("56")
+ size:value("120")
+ size:value("248")
+ size:value("504")
+ size:value("1016")
+ size:value("1472")
+ size:value("2040")
+ size.datatype = "range(1, 65507)"
+ size.rmempty = false
+ size.optional = false
+
timeout = mwan_interface:option(ListValue, "timeout", translate("Ping timeout"))
timeout.default = "2"
- timeout:value("1", translate("1 second"))
- timeout:value("2", translate("2 seconds"))
- timeout:value("3", translate("3 seconds"))
- timeout:value("4", translate("4 seconds"))
- timeout:value("5", translate("5 seconds"))
- timeout:value("6", translate("6 seconds"))
- timeout:value("7", translate("7 seconds"))
- timeout:value("8", translate("8 seconds"))
- timeout:value("9", translate("9 seconds"))
- timeout:value("10", translate("10 seconds"))
+ timeout:value("1", translatef("%d second", 1))
+ timeout:value("2", translatef("%d seconds", 2))
+ timeout:value("3", translatef("%d seconds", 3))
+ timeout:value("4", translatef("%d seconds", 4))
+ timeout:value("5", translatef("%d seconds", 5))
+ timeout:value("6", translatef("%d seconds", 6))
+ timeout:value("7", translatef("%d seconds", 7))
+ timeout:value("8", translatef("%d seconds", 8))
+ timeout:value("9", translatef("%d seconds", 9))
+ timeout:value("10", translatef("%d seconds", 10))
interval = mwan_interface:option(ListValue, "interval", translate("Ping interval"))
interval.default = "5"
- interval:value("1", translate("1 second"))
- interval:value("3", translate("3 seconds"))
- interval:value("5", translate("5 seconds"))
- interval:value("10", translate("10 seconds"))
- interval:value("20", translate("20 seconds"))
- interval:value("30", translate("30 seconds"))
- interval:value("60", translate("1 minute"))
- interval:value("300", translate("5 minutes"))
- interval:value("600", translate("10 minutes"))
- interval:value("900", translate("15 minutes"))
- interval:value("1800", translate("30 minutes"))
- interval:value("3600", translate("1 hour"))
+ interval:value("1", translatef("%d second", 1))
+ interval:value("3", translatef("%d seconds", 3))
+ interval:value("5", translatef("%d seconds", 5))
+ interval:value("10", translatef("%d seconds", 10))
+ interval:value("20", translatef("%d seconds", 20))
+ interval:value("30", translatef("%d seconds", 30))
+ interval:value("60", translatef("%d minute", 1))
+ interval:value("300", translatef("%d minutes", 5))
+ interval:value("600", translatef("%d minutes", 10))
+ interval:value("900", translatef("%d minutes", 15))
+ interval:value("1800", translatef("%d minutes", 30))
+ interval:value("3600", translatef("%d hour", 1))
+
+failure = mwan_interface:option(Value, "failure_interval", translate("Failure interval"),
+ translate("Ping interval during failure detection"))
+ failure.default = "5"
+ failure:value("1", translatef("%d second", 1))
+ failure:value("3", translatef("%d seconds", 3))
+ failure:value("5", translatef("%d seconds", 5))
+ failure:value("10", translatef("%d seconds", 10))
+ failure:value("20", translatef("%d seconds", 20))
+ failure:value("30", translatef("%d seconds", 30))
+ failure:value("60", translatef("%d minute", 1))
+ failure:value("300", translatef("%d minutes", 5))
+ failure:value("600", translatef("%d minutes", 10))
+ failure:value("900", translatef("%d minutes", 15))
+ failure:value("1800", translatef("%d minutes", 30))
+ failure:value("3600", translatef("%d hour", 1))
+
+keep_failure = mwan_interface:option(Flag, "keep_failure_interval", translate("Keep failure interval"),
+ translate("Keep ping failure interval during failure state"))
+ keep_failure.default = keep_failure.disabled
+
+recovery = mwan_interface:option(Value, "recovery_interval", translate("Recovery interval"),
+ translate("Ping interval during failure recovering"))
+ recovery.default = "5"
+ recovery:value("1", translatef("%d second", 1))
+ recovery:value("3", translatef("%d seconds", 3))
+ recovery:value("5", translatef("%d seconds", 5))
+ recovery:value("10", translatef("%d seconds", 10))
+ recovery:value("20", translatef("%d seconds", 20))
+ recovery:value("30", translatef("%d seconds", 30))
+ recovery:value("60", translatef("%d minute", 1))
+ recovery:value("300", translatef("%d minutes", 5))
+ recovery:value("600", translatef("%d minutes", 10))
+ recovery:value("900", translatef("%d minutes", 15))
+ recovery:value("1800", translatef("%d minutes", 30))
+ recovery:value("3600", translatef("%d hour", 1))
down = mwan_interface:option(ListValue, "down", translate("Interface down"),
translate("Interface will be deemed down after this many failed ping tests"))
up:value("9")
up:value("10")
+flush = mwan_interface:option(ListValue, "flush_conntrack", translate("Flush conntrack table"),
+ translate("Flush global firewall conntrack table on interface events"))
+ flush.default = "never"
+ flush:value("ifup", translate("ifup"))
+ flush:value("ifdown", translate("ifdown"))
+ flush:value("never", translate("never"))
+ flush:value("always", translate("always"))
+
metric = mwan_interface:option(DummyValue, "metric", translate("Metric"),
translate("This displays the metric assigned to this interface in /etc/config/network"))
metric.rawhtml = true