From 4f17f383ec51a5e49e17233a35d6e2798238652b Mon Sep 17 00:00:00 2001 From: liu zhifu Date: Mon, 29 Apr 2019 20:13:31 +0800 Subject: [PATCH] esp32: fix some STA certification issues Fix following WiFi STA certification issues: 1. Add support for STA HT2040 coexist management 2. Add support for WPA2 improvements 3. Disallow HT rate when unicast/mcast cipher is TKIP/WEP --- components/esp32/include/esp_wifi.h | 13 +++++++++++ components/esp32/include/esp_wifi_types.h | 28 +++++++++++++++++++++++ components/esp32/lib | 2 +- 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/components/esp32/include/esp_wifi.h b/components/esp32/include/esp_wifi.h index 3348f8f4e..e67f4606b 100644 --- a/components/esp32/include/esp_wifi.h +++ b/components/esp32/include/esp_wifi.h @@ -1102,6 +1102,19 @@ esp_err_t esp_wifi_set_ant(const wifi_ant_config_t *config); */ esp_err_t esp_wifi_get_ant(wifi_ant_config_t *config); +/** + * @brief A general API to set/get WiFi internal configuration, it's for debug only + * + * @param cmd : ioctl command type + * @param cfg : configuration for the command + * + * @return + * - ESP_OK: succeed + * - others: failed + */ +esp_err_t esp_wifi_internal_ioctl(int cmd, wifi_ioctl_config_t *cfg); + + #ifdef __cplusplus } #endif diff --git a/components/esp32/include/esp_wifi_types.h b/components/esp32/include/esp_wifi_types.h index a6c7b3968..f53637049 100644 --- a/components/esp32/include/esp_wifi_types.h +++ b/components/esp32/include/esp_wifi_types.h @@ -451,6 +451,34 @@ typedef struct { enabled_ant1: 4; /**< Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT1 */ } wifi_ant_config_t; +/** + * @brief WiFi ioctl command type + * + */ +typedef enum { + WIFI_IOCTL_SET_STA_HT2040_COEX = 1, /**< Set the configuration of STA's HT2040 coexist management */ + WIFI_IOCTL_GET_STA_HT2040_COEX, /**< Get the configuration of STA's HT2040 coexist management */ + WIFI_IOCTL_MAX, +} wifi_ioctl_cmd_t; + +/** + * @brief Configuration for STA's HT2040 coexist management + * + */ +typedef struct { + int enable; /**< Indicate whether STA's HT2040 coexist management is enabled or not */ +} wifi_ht2040_coex_t; + +/** + * @brief Configuration for WiFi ioctl + * + */ +typedef struct { + union { + wifi_ht2040_coex_t ht2040_coex; /**< Configuration of STA's HT2040 coexist management */ + } data; /**< Configuration of ioctl command */ +} wifi_ioctl_config_t; + #ifdef __cplusplus } #endif diff --git a/components/esp32/lib b/components/esp32/lib index 3e40f1af2..1c5f7ed26 160000 --- a/components/esp32/lib +++ b/components/esp32/lib @@ -1 +1 @@ -Subproject commit 3e40f1af216f8c44859887d60240d51b29e088f5 +Subproject commit 1c5f7ed2657b2d4673c105907a1457ffaa83accb