X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=modules%2Fluci-mod-admin-full%2Fluasrc%2Fmodel%2Fcbi%2Fadmin_network%2Fwifi.lua;h=e8d43a1ba5580882d1a4657d418d60feaddff273;hp=f431c26a0e4b9c66889a6324f41f302c97862333;hb=63255ec38b2f5849fec9e54d3f3e2aa7ef76bd72;hpb=04e45906dac2e0bced6747ede83899d70ba024d2 diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua index f431c26a0..e8d43a1ba 100644 --- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua +++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua @@ -347,15 +347,31 @@ s:tab("encryption", translate("Wireless Security")) s:tab("macfilter", translate("MAC-Filter")) s:tab("advanced", translate("Advanced Settings")) -ssid = s:taboption("general", Value, "ssid", translate("ESSID")) -ssid.datatype = "maxlength(32)" - mode = s:taboption("general", ListValue, "mode", translate("Mode")) mode.override_values = true mode:value("ap", translate("Access Point")) mode:value("sta", translate("Client")) mode:value("adhoc", translate("Ad-Hoc")) +meshid = s:taboption("general", Value, "mesh_id", translate("Mesh Id")) +meshid:depends({mode="mesh"}) + +meshfwd = s:taboption("advanced", Flag, "mesh_fwding", translate("internal forwarding of Mesh-peers")) +meshfwd.rmempty = false +meshfwd.default = "1" +meshfwd:depends({mode="mesh"}) + +ssid = s:taboption("general", Value, "ssid", translate("ESSID")) +ssid.datatype = "maxlength(32)" +ssid:depends({mode="ap"}) +ssid:depends({mode="sta"}) +ssid:depends({mode="adhoc"}) +ssid:depends({mode="ahdemo"}) +ssid:depends({mode="monitor"}) +ssid:depends({mode="ap-wds"}) +ssid:depends({mode="sta-wds"}) +ssid:depends({mode="wds"}) + bssid = s:taboption("general", Value, "bssid", translate("BSSID")) network = s:taboption("general", Value, "network", translate("Network"), @@ -793,9 +809,28 @@ if hwtype == "mac80211" or hwtype == "prism2" then mobility_domain.datatype = "and(hexstring,rangelength(4,4))" mobility_domain.rmempty = true + reassociation_deadline = s:taboption("encryption", Value, "reassociation_deadline", + translate("Reassociation Deadline"), + translate("time units (TUs / 1.024 ms) [1000-65535]")) + reassociation_deadline:depends({ieee80211r="1"}) + reassociation_deadline.placeholder = "1000" + reassociation_deadline.datatype = "range(1000,65535)" + reassociation_deadline.rmempty = true + + ft_protocol = s:taboption("encryption", ListValue, "ft_over_ds", translate("FT protocol")) + ft_protocol:depends({ieee80211r="1"}) + ft_protocol:value("1", translatef("FT over DS")) + ft_protocol:value("0", translatef("FT over the Air")) + ft_protocol.rmempty = true + + ft_psk_generate_local = s:taboption("encryption", Flag, "ft_psk_generate_local", + translate("Generate PMK locally"), + translate("When using a PSK, the PMK can be generated locally without inter AP communications")) + ft_psk_generate_local:depends({ieee80211r="1"}) + r0_key_lifetime = s:taboption("encryption", Value, "r0_key_lifetime", translate("R0 Key Lifetime"), translate("minutes")) - r0_key_lifetime:depends({ieee80211r="1"}) + r0_key_lifetime:depends({ieee80211r="1", ft_psk_generate_local=""}) r0_key_lifetime.placeholder = "10000" r0_key_lifetime.datatype = "uinteger" r0_key_lifetime.rmempty = true @@ -803,21 +838,13 @@ if hwtype == "mac80211" or hwtype == "prism2" then r1_key_holder = s:taboption("encryption", Value, "r1_key_holder", translate("R1 Key Holder"), translate("6-octet identifier as a hex string - no colons")) - r1_key_holder:depends({ieee80211r="1"}) + r1_key_holder:depends({ieee80211r="1", ft_psk_generate_local=""}) r1_key_holder.placeholder = "00004f577274" r1_key_holder.datatype = "and(hexstring,rangelength(12,12))" r1_key_holder.rmempty = true - reassociation_deadline = s:taboption("encryption", Value, "reassociation_deadline", - translate("Reassociation Deadline"), - translate("time units (TUs / 1.024 ms) [1000-65535]")) - reassociation_deadline:depends({ieee80211r="1"}) - reassociation_deadline.placeholder = "1000" - reassociation_deadline.datatype = "range(1000,65535)" - reassociation_deadline.rmempty = true - pmk_r1_push = s:taboption("encryption", Flag, "pmk_r1_push", translate("PMK R1 Push")) - pmk_r1_push:depends({ieee80211r="1"}) + pmk_r1_push:depends({ieee80211r="1", ft_psk_generate_local=""}) pmk_r1_push.placeholder = "0" pmk_r1_push.rmempty = true @@ -827,8 +854,7 @@ if hwtype == "mac80211" or hwtype == "prism2" then "
This list is used to map R0KH-ID (NAS Identifier) to a destination " .. "MAC address when requesting PMK-R1 key from the R0KH that the STA " .. "used during the Initial Mobility Domain Association.")) - - r0kh:depends({ieee80211r="1"}) + r0kh:depends({ieee80211r="1", ft_psk_generate_local=""}) r0kh.rmempty = true r1kh = s:taboption("encryption", DynamicList, "r1kh", translate("External R1 Key Holder List"), @@ -837,7 +863,7 @@ if hwtype == "mac80211" or hwtype == "prism2" then "
This list is used to map R1KH-ID to a destination MAC address " .. "when sending PMK-R1 key from the R0KH. This is also the " .. "list of authorized R1KHs in the MD that can request PMK-R1 keys.")) - r1kh:depends({ieee80211r="1"}) + r1kh:depends({ieee80211r="1", ft_psk_generate_local=""}) r1kh.rmempty = true -- End of 802.11r options @@ -1018,6 +1044,17 @@ if hwtype == "mac80211" then retry_timeout.placeholder = "201" retry_timeout.rmempty = true end + + local key_retries = s:taboption("encryption", Flag, "wpa_disable_eapol_key_retries", + translate("Enable key reinstallation (KRACK) countermeasures"), + translate("Complicates key reinstallation attacks on the client side by disabling retransmission of EAPOL-Key frames that are used to install keys. This workaround might cause interoperability issues and reduced robustness of key negotiation especially in environments with heavy traffic load.")) + + key_retries:depends({mode="ap", encryption="wpa2"}) + key_retries:depends({mode="ap", encryption="psk2"}) + key_retries:depends({mode="ap", encryption="psk-mixed"}) + key_retries:depends({mode="ap-wds", encryption="wpa2"}) + key_retries:depends({mode="ap-wds", encryption="psk2"}) + key_retries:depends({mode="ap-wds", encryption="psk-mixed"}) end if hwtype == "mac80211" or hwtype == "prism2" then