luci-app-mwan3: fix unify luci code styling
[project/luci.git] / applications / luci-app-mwan3 / luasrc / model / cbi / mwan / interfaceconfig.lua
1 dsp = require "luci.dispatcher"
2 arg[1] = arg[1] or ""
3
4
5 m5 = Map("mwan3", translatef("MWAN Interface Configuration - %s", arg[1]))
6         m5.redirect = dsp.build_url("admin", "network", "mwan", "interface")
7
8 mwan_interface = m5:section(NamedSection, arg[1], "interface", "")
9 mwan_interface.addremove = false
10 mwan_interface.dynamic = false
11
12 enabled = mwan_interface:option(ListValue, "enabled", translate("Enabled"))
13 enabled.default = "1"
14 enabled:value("1", translate("Yes"))
15 enabled:value("0", translate("No"))
16
17 initial_state = mwan_interface:option(ListValue, "initial_state", translate("Initial state"),
18         translate("Expect interface state on up event"))
19 initial_state.default = "online"
20 initial_state:value("online", translate("Online"))
21 initial_state:value("offline", translate("Offline"))
22
23 family = mwan_interface:option(ListValue, "family", translate("Internet Protocol"))
24 family.default = "ipv4"
25 family:value("ipv4", translate("IPv4"))
26 family:value("ipv6", translate("IPv6"))
27
28 track_ip = mwan_interface:option(DynamicList, "track_ip", translate("Tracking hostname or IP address"),
29         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"))
30 track_ip.datatype = "host"
31
32 track_method = mwan_interface:option(ListValue, "track_method", translate("Tracking method"))
33 track_method.default = "ping"
34 track_method:value("ping")
35 track_method:value("arping")
36 track_method:value("httping")
37
38 reliability = mwan_interface:option(Value, "reliability", translate("Tracking reliability"),
39         translate("Acceptable values: 1-100. This many Tracking IP addresses must respond for the link to be deemed up"))
40 reliability.datatype = "range(1, 100)"
41 reliability.default = "1"
42
43 count = mwan_interface:option(ListValue, "count", translate("Ping count"))
44 count.default = "1"
45 count:value("1")
46 count:value("2")
47 count:value("3")
48 count:value("4")
49 count:value("5")
50
51 size = mwan_interface:option(Value, "size", translate("Ping size"))
52 size.default = "56"
53 size:value("8")
54 size:value("24")
55 size:value("56")
56 size:value("120")
57 size:value("248")
58 size:value("504")
59 size:value("1016")
60 size:value("1472")
61 size:value("2040")
62 size.datatype = "range(1, 65507)"
63 size.rmempty = false
64 size.optional = false
65
66 timeout = mwan_interface:option(ListValue, "timeout", translate("Ping timeout"))
67 timeout.default = "2"
68 timeout:value("1", translatef("%d second", 1))
69 timeout:value("2", translatef("%d seconds", 2))
70 timeout:value("3", translatef("%d seconds", 3))
71 timeout:value("4", translatef("%d seconds", 4))
72 timeout:value("5", translatef("%d seconds", 5))
73 timeout:value("6", translatef("%d seconds", 6))
74 timeout:value("7", translatef("%d seconds", 7))
75 timeout:value("8", translatef("%d seconds", 8))
76 timeout:value("9", translatef("%d seconds", 9))
77 timeout:value("10", translatef("%d seconds", 10))
78
79 interval = mwan_interface:option(ListValue, "interval", translate("Ping interval"))
80 interval.default = "5"
81 interval:value("1", translatef("%d second", 1))
82 interval:value("3", translatef("%d seconds", 3))
83 interval:value("5", translatef("%d seconds", 5))
84 interval:value("10", translatef("%d seconds", 10))
85 interval:value("20", translatef("%d seconds", 20))
86 interval:value("30", translatef("%d seconds", 30))
87 interval:value("60", translatef("%d minute", 1))
88 interval:value("300", translatef("%d minutes", 5))
89 interval:value("600", translatef("%d minutes", 10))
90 interval:value("900", translatef("%d minutes", 15))
91 interval:value("1800", translatef("%d minutes", 30))
92 interval:value("3600", translatef("%d hour", 1))
93
94 failure = mwan_interface:option(Value, "failure_interval", translate("Failure interval"),
95         translate("Ping interval during failure detection"))
96 failure.default = "5"
97 failure:value("1", translatef("%d second", 1))
98 failure:value("3", translatef("%d seconds", 3))
99 failure:value("5", translatef("%d seconds", 5))
100 failure:value("10", translatef("%d seconds", 10))
101 failure:value("20", translatef("%d seconds", 20))
102 failure:value("30", translatef("%d seconds", 30))
103 failure:value("60", translatef("%d minute", 1))
104 failure:value("300", translatef("%d minutes", 5))
105 failure:value("600", translatef("%d minutes", 10))
106 failure:value("900", translatef("%d minutes", 15))
107 failure:value("1800", translatef("%d minutes", 30))
108 failure:value("3600", translatef("%d hour", 1))
109
110 keep_failure = mwan_interface:option(Flag, "keep_failure_interval", translate("Keep failure interval"),
111         translate("Keep ping failure interval during failure state"))
112 keep_failure.default = keep_failure.disabled
113
114 recovery = mwan_interface:option(Value, "recovery_interval", translate("Recovery interval"),
115         translate("Ping interval during failure recovering"))
116 recovery.default = "5"
117 recovery:value("1", translatef("%d second", 1))
118 recovery:value("3", translatef("%d seconds", 3))
119 recovery:value("5", translatef("%d seconds", 5))
120 recovery:value("10", translatef("%d seconds", 10))
121 recovery:value("20", translatef("%d seconds", 20))
122 recovery:value("30", translatef("%d seconds", 30))
123 recovery:value("60", translatef("%d minute", 1))
124 recovery:value("300", translatef("%d minutes", 5))
125 recovery:value("600", translatef("%d minutes", 10))
126 recovery:value("900", translatef("%d minutes", 15))
127 recovery:value("1800", translatef("%d minutes", 30))
128 recovery:value("3600", translatef("%d hour", 1))
129
130 down = mwan_interface:option(ListValue, "down", translate("Interface down"),
131         translate("Interface will be deemed down after this many failed ping tests"))
132 down.default = "3"
133 down:value("1")
134 down:value("2")
135 down:value("3")
136 down:value("4")
137 down:value("5")
138 down:value("6")
139 down:value("7")
140 down:value("8")
141 down:value("9")
142 down:value("10")
143
144 up = mwan_interface:option(ListValue, "up", translate("Interface up"),
145         translate("Downed interface will be deemed up after this many successful ping tests"))
146 up.default = "3"
147 up:value("1")
148 up:value("2")
149 up:value("3")
150 up:value("4")
151 up:value("5")
152 up:value("6")
153 up:value("7")
154 up:value("8")
155 up:value("9")
156 up:value("10")
157
158 flush = mwan_interface:option(ListValue, "flush_conntrack", translate("Flush conntrack table"),
159         translate("Flush global firewall conntrack table on interface events"))
160 flush.default = "never"
161 flush:value("ifup", translate("ifup"))
162 flush:value("ifdown", translate("ifdown"))
163 flush:value("never", translate("never"))
164 flush:value("always", translate("always"))
165
166 metric = mwan_interface:option(DummyValue, "metric", translate("Metric"),
167         translate("This displays the metric assigned to this interface in /etc/config/network"))
168 metric.rawhtml = true
169 function metric.cfgvalue(self, s)
170         local uci = uci.cursor(nil, "/var/state")
171         local metric = uci:get("network", arg[1], "metric")
172         if metric then
173                 return metric
174         else
175                 return "—"
176         end
177 end
178
179 return m5