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