7556901591097560ac244a2319443c953b008e33
[project/luci.git] / applications / luci-multiwan / luasrc / model / cbi / multiwan / multiwanmini.lua
1 require("luci.tools.webadmin")
2
3 m = Map("multiwan", translate("Multi-WAN"),
4         translate("Multi-WAN allows for the use of multiple uplinks for load balancing and failover."))
5
6 s = m:section(NamedSection, "config", "multiwan", "")
7 e = s:option(Flag, "enabled", translate("Enable"))
8 e.rmempty = false
9
10 function e.write(self, section, value)
11         local cmd = (value == "1") and "enable" or "disable"
12         if value ~= "1" then
13                 os.execute("/etc/init.d/multiwan stop")
14         end
15         os.execute("/etc/init.d/multiwan " .. cmd)
16 end
17
18 function e.cfgvalue(self, section)
19         return (os.execute("/etc/init.d/multiwan enabled") == 0) and "1" or "0"
20 end
21
22 s = m:section(TypedSection, "mwanfw", translate("Multi-WAN Traffic Rules"),
23         translate("Configure rules for directing outbound traffic through specified WAN Uplinks."))
24 s.template = "cbi/tblsection"
25 s.anonymous = true
26 s.addremove = true
27
28 src = s:option(Value, "src", translate("Source Address"))
29 src.rmempty = true
30 src:value("", translate("all"))
31 luci.tools.webadmin.cbi_add_knownips(src)
32
33 dst = s:option(Value, "dst", translate("Destination Address"))
34 dst.rmempty = true
35 dst:value("", translate("all"))
36 luci.tools.webadmin.cbi_add_knownips(dst)
37
38 proto = s:option(ListValue, "proto", translate("Protocol"))
39 proto:value("", translate("all"))
40 proto:value("tcp", "TCP")
41 proto:value("udp", "UDP")
42 proto:value("icmp", "ICMP")
43 proto.rmempty = true
44
45 ports = s:option(Value, "ports", translate("Ports"))
46 ports.rmempty = true
47 ports:value("", translate("all", translate("all")))
48
49 wanrule = s:option(ListValue, "wanrule", translate("WAN Uplink"))
50 luci.tools.webadmin.cbi_add_networks(wanrule)
51 wanrule:value("fastbalancer", translate("Load Balancer(Performance)"))
52 wanrule:value("balancer", translate("Load Balancer(Compatibility)"))
53 wanrule.default = "fastbalancer"
54 wanrule.optional = false
55 wanrule.rmempty = false
56
57 s = m:section(NamedSection, "config", "", "")
58 s.addremove = false
59
60 default_route = s:option(ListValue, "default_route", translate("Default Route"))
61 luci.tools.webadmin.cbi_add_networks(default_route)
62 default_route:value("fastbalancer", translate("Load Balancer(Performance)"))
63 default_route:value("balancer", translate("Load Balancer(Compatibility)"))
64 default_route.default = "balancer"
65 default_route.optional = false
66 default_route.rmempty = false
67
68 return m