Merge pull request #278 from nmav/ocserv
[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
8 e = s:option(Flag, "enabled", translate("Enable"))
9 e.rmempty = false
10 e.default = "1"
11
12 function e.write(self, section, value)
13         if value == "0" then
14                 os.execute("/etc/init.d/multiwan stop")
15         else
16                 os.execute("/etc/init.d/multiwan enable")
17         end
18         Flag.write(self, section, value)
19 end
20
21 s = m:section(TypedSection, "mwanfw", translate("Multi-WAN Traffic Rules"),
22         translate("Configure rules for directing outbound traffic through specified WAN Uplinks."))
23 s.template = "cbi/tblsection"
24 s.anonymous = true
25 s.addremove = true
26
27 src = s:option(Value, "src", translate("Source Address"))
28 src.rmempty = true
29 src:value("", translate("all"))
30 luci.tools.webadmin.cbi_add_knownips(src)
31
32 dst = s:option(Value, "dst", translate("Destination Address"))
33 dst.rmempty = true
34 dst:value("", translate("all"))
35 luci.tools.webadmin.cbi_add_knownips(dst)
36
37 proto = s:option(Value, "proto", translate("Protocol"))
38 proto:value("", translate("all"))
39 proto:value("tcp", "TCP")
40 proto:value("udp", "UDP")
41 proto:value("icmp", "ICMP")
42 proto.rmempty = true
43
44 ports = s:option(Value, "ports", translate("Ports"))
45 ports.rmempty = true
46 ports:value("", translate("all", translate("all")))
47
48 wanrule = s:option(ListValue, "wanrule", translate("WAN Uplink"))
49 luci.tools.webadmin.cbi_add_networks(wanrule)
50 wanrule:value("fastbalancer", translate("Load Balancer(Performance)"))
51 wanrule:value("balancer", translate("Load Balancer(Compatibility)"))
52 wanrule.default = "fastbalancer"
53 wanrule.optional = false
54 wanrule.rmempty = false
55
56 s = m:section(NamedSection, "config", "", "")
57 s.addremove = false
58
59 default_route = s:option(ListValue, "default_route", translate("Default Route"))
60 luci.tools.webadmin.cbi_add_networks(default_route)
61 default_route:value("fastbalancer", translate("Load Balancer(Performance)"))
62 default_route:value("balancer", translate("Load Balancer(Compatibility)"))
63 default_route.default = "balancer"
64 default_route.optional = false
65 default_route.rmempty = false
66
67 return m