2 LuCI - Lua Configuration Interface
4 Copyright 2008 Steven Barth <steven@midlink.org>
6 Licensed under the Apache License, Version 2.0 (the "License");
7 you may not use this file except in compliance with the License.
8 You may obtain a copy of the License at
10 http://www.apache.org/licenses/LICENSE-2.0
14 require("luci.tools.webadmin")
17 m = Map("wireless", translate("networks"), translate("a_w_networks1"))
19 s = m:section(NamedSection, arg[1], "wifi-device", translate("device") .. " " .. arg[1])
22 en = s:option(Flag, "disabled", translate("enable"))
26 function en.cfgvalue(self, section)
27 return Flag.cfgvalue(self, section) or "0"
30 t = s:option(DummyValue, "type", translate("type"))
32 mode = s:option(ListValue, "mode", translate("mode"))
33 mode:value("", "standard")
34 mode:value("11b", "802.11b")
35 mode:value("11g", "802.11g")
36 mode:value("11a", "802.11a")
37 mode:value("11bg", "802.11b+g")
40 s:option(Value, "channel", translate("a_w_channel"))
42 s:option(Value, "txantenna", translate("a_w_txantenna")).optional = true
44 s:option(Value, "rxantenna", translate("a_w_rxantenna")).optional = true
46 s:option(Value, "distance", translate("distance"),
47 translate("a_w_distance1")).optional = true
49 s:option(Value, "diversity", translate("a_w_diversity")):depends("type", "atheros")
51 country = s:option(Value, "country", translate("a_w_countrycode"))
52 country.optional = true
53 country:depends("type", "broadcom")
55 maxassoc = s:option(Value, "maxassoc", translate("a_w_connlimit"))
56 maxassoc:depends("type", "broadcom")
57 maxassoc.optional = true
61 s = m:section(TypedSection, "wifi-iface", translate("interfaces"))
64 s:depends("device", arg[1])
65 s.defaults.device = arg[1]
67 s:option(Value, "ssid", translate("a_w_netid")).maxlength = 32
69 network = s:option(ListValue, "network", translate("network"), translate("a_w_network1"))
71 luci.tools.webadmin.cbi_add_networks(network)
73 mode = s:option(ListValue, "mode", translate("mode"))
74 mode:value("ap", translate("a_w_ap"))
75 mode:value("adhoc", translate("a_w_adhoc"))
76 mode:value("ahdemo", translate("a_w_ahdemo"))
77 mode:value("sta", translate("a_w_client"))
78 mode:value("wds", translate("a_w_wds"))
79 mode:value("monitor", translate("a_w_monitor"))
81 s:option(Value, "bssid", "BSSID").optional = true
83 s:option(Value, "txpower", translate("a_w_txpwr"), "dbm").rmempty = true
85 s:option(Flag, "frameburst", translate("a_w_brcmburst")).optional = true
86 s:option(Flag, "bursting", translate("a_w_athburst")).optional = true
89 encr = s:option(ListValue, "encryption", translate("encryption"))
90 encr:value("none", "keine")
91 encr:value("wep", "WEP")
92 encr:value("PSK", "WPA-PSK")
93 encr:value("WPA", "WPA-EAP", {mode="ap"}, {mode="sta"})
94 encr:value("PSK2", "WPA2-PSK")
95 encr:value("WPA2", "WPA2-EAP", {mode="ap"}, {mode="sta"})
96 encr:depends("mode", "ap")
97 encr:depends("mode", "sta")
98 encr:depends("mode", "wds")
100 server = s:option(Value, "server", translate("a_w_radiussrv"))
101 server:depends({mode="ap", encryption="WPA"})
102 server:depends({mode="ap", encryption="WPA2"})
103 server.rmempty = true
105 port = s:option(Value, "port", translate("a_w_radiusport"))
106 port:depends({mode="ap", encryption="WPA"})
107 port:depends({mode="ap", encryption="WPA2"})
110 key = s:option(Value, "key", translate("key"))
111 key:depends("encryption", "wep")
112 key:depends("encryption", "PSK")
113 key:depends({mode="ap", encryption="WPA"})
114 key:depends("encryption", "PSK2")
115 key:depends({mode="ap", encryption="WPA2"})
118 nasid = s:option(Value, "nasid", translate("a_w_nasid"))
119 nasid:depends({mode="ap", encryption="WPA"})
120 nasid:depends({mode="ap", encryption="WPA2"})
123 eaptype = s:option(ListValue, "eap_type", translate("a_w_eaptype"))
125 eaptype:value("PEAP")
126 eaptype:depends({mode="sta", encryption="WPA"})
127 eaptype:depends({mode="sta", encryption="WPA2"})
129 cacert = s:option(Value, "ca_cert", translate("a_w_cacert"))
130 cacert:depends({mode="sta", encryption="WPA"})
131 cacert:depends({mode="sta", encryption="WPA2"})
133 privkey = s:option(Value, "priv_key", translate("a_w_tlsprivkey"))
134 privkey:depends({mode="sta", eap_type="TLS", encryption="WPA2"})
135 privkey:depends({mode="sta", eap_type="TLS", encryption="WPA"})
137 privkeypwd = s:option(Value, "priv_key_pwd", translate("a_w_tlsprivkeypwd"))
138 privkeypwd:depends({mode="sta", eap_type="TLS", encryption="WPA2"})
139 privkeypwd:depends({mode="sta", eap_type="TLS", encryption="WPA"})
142 auth = s:option(Value, "auth", translate("a_w_peapauth"))
143 auth:depends({mode="sta", eap_type="PEAP", encryption="WPA2"})
144 auth:depends({mode="sta", eap_type="PEAP", encryption="WPA"})
146 identity = s:option(Value, "identity", translate("a_w_peapidentity"))
147 identity:depends({mode="sta", eap_type="PEAP", encryption="WPA2"})
148 identity:depends({mode="sta", eap_type="PEAP", encryption="WPA"})
150 password = s:option(Value, "password", translate("a_w_peappassword"))
151 password:depends({mode="sta", eap_type="PEAP", encryption="WPA2"})
152 password:depends({mode="sta", eap_type="PEAP", encryption="WPA"})
157 s:option(Flag, "isolate", translate("a_w_apisolation"), translate("a_w_apisolation1")).optional = true
159 s:option(Flag, "hidden", translate("a_w_hideessid")).optional = true