From 6cf4b3de83cc0fda45381b1768e4956b4cae2e13 Mon Sep 17 00:00:00 2001
From: Zhang Jun Hao <zhangjunhao@espressif.com>
Date: Thu, 27 Aug 2020 10:55:51 +0800
Subject: [PATCH 1/5] feat(wifi): add 11kv roaming support

---
 components/esp8266/include/esp_wifi.h         |   27 +
 components/esp8266/include/esp_wifi_types.h   |    9 +
 components/esp_event/event_send_compat.inc    |    6 +
 .../esp_event/include/esp_event_legacy.h      |    5 +
 components/wpa_supplicant/CMakeLists.txt      |   18 +-
 components/wpa_supplicant/Kconfig             |   18 +
 components/wpa_supplicant/component.mk        |   13 +-
 .../include/esp_supplicant/esp_rrm.h          |   54 +
 .../include/esp_supplicant/esp_wnm.h          |   58 +
 .../wpa_supplicant/include/utils/wpa_debug.h  |    3 +
 components/wpa_supplicant/port/include/os.h   |   17 +-
 .../port/include/supplicant_opt.h             |    8 +
 components/wpa_supplicant/port/os_xtensa.c    |    8 +
 components/wpa_supplicant/src/ap/wpa_auth.c   |    4 +-
 components/wpa_supplicant/src/common/bss.c    |  478 +++++++
 components/wpa_supplicant/src/common/bss.h    |   86 ++
 .../src/common/ieee802_11_common.c            |  198 +++
 .../src/common/ieee802_11_common.h            |   42 +
 .../src/common/ieee802_11_defs.h              |  504 +++++--
 components/wpa_supplicant/src/common/rrm.c    | 1162 +++++++++++++++++
 components/wpa_supplicant/src/common/rrm.h    |   30 +
 components/wpa_supplicant/src/common/scan.c   |   95 ++
 components/wpa_supplicant/src/common/scan.h   |   25 +
 .../wpa_supplicant/src/common/wnm_sta.c       |  966 ++++++++++++++
 .../wpa_supplicant/src/common/wnm_sta.h       |   70 +
 .../src/common/wpa_supplicant_i.h             |  110 ++
 .../wpa_supplicant/src/drivers/driver.h       |  187 +++
 components/wpa_supplicant/src/eap_peer/chap.h |   17 +
 .../src/esp_supplicant/esp_common.c           |  403 ++++++
 .../src/esp_supplicant/esp_common_i.h         |   80 ++
 .../src/esp_supplicant/esp_scan.c             |  270 ++++
 .../src/esp_supplicant/esp_scan_i.h           |   25 +
 .../src/esp_supplicant/esp_wifi_driver.h      |   14 +-
 .../src/esp_supplicant/esp_wpa_main.c         |   11 +
 .../wpa_supplicant/src/utils/bitfield.c       |   89 ++
 .../wpa_supplicant/src/utils/bitfield.h       |   21 +
 components/wpa_supplicant/src/utils/common.c  |   56 +
 components/wpa_supplicant/src/utils/common.h  |   11 +
 components/wpa_supplicant/src/utils/list.h    |    6 +-
 .../wpa_supplicant/src/utils/wpa_debug.c      |   10 +-
 40 files changed, 5089 insertions(+), 125 deletions(-)
 create mode 100755 components/wpa_supplicant/include/esp_supplicant/esp_rrm.h
 create mode 100755 components/wpa_supplicant/include/esp_supplicant/esp_wnm.h
 create mode 100755 components/wpa_supplicant/src/common/bss.c
 create mode 100755 components/wpa_supplicant/src/common/bss.h
 create mode 100755 components/wpa_supplicant/src/common/ieee802_11_common.c
 create mode 100755 components/wpa_supplicant/src/common/ieee802_11_common.h
 create mode 100755 components/wpa_supplicant/src/common/rrm.c
 create mode 100755 components/wpa_supplicant/src/common/rrm.h
 create mode 100755 components/wpa_supplicant/src/common/scan.c
 create mode 100755 components/wpa_supplicant/src/common/scan.h
 create mode 100755 components/wpa_supplicant/src/common/wnm_sta.c
 create mode 100755 components/wpa_supplicant/src/common/wnm_sta.h
 create mode 100755 components/wpa_supplicant/src/common/wpa_supplicant_i.h
 create mode 100755 components/wpa_supplicant/src/drivers/driver.h
 create mode 100755 components/wpa_supplicant/src/eap_peer/chap.h
 create mode 100755 components/wpa_supplicant/src/esp_supplicant/esp_common.c
 create mode 100755 components/wpa_supplicant/src/esp_supplicant/esp_common_i.h
 create mode 100755 components/wpa_supplicant/src/esp_supplicant/esp_scan.c
 create mode 100755 components/wpa_supplicant/src/esp_supplicant/esp_scan_i.h
 mode change 100644 => 100755 components/wpa_supplicant/src/esp_supplicant/esp_wifi_driver.h
 create mode 100755 components/wpa_supplicant/src/utils/bitfield.c
 create mode 100755 components/wpa_supplicant/src/utils/bitfield.h

diff --git a/components/esp8266/include/esp_wifi.h b/components/esp8266/include/esp_wifi.h
index 54592fd3..0aaaf49c 100644
--- a/components/esp8266/include/esp_wifi.h
+++ b/components/esp8266/include/esp_wifi.h
@@ -992,6 +992,33 @@ esp_err_t esp_wifi_80211_tx(wifi_interface_t ifx, const void *buffer, int len, b
  */
 wifi_state_t esp_wifi_get_state(void);
 
+/**
+ * @brief      Set RSSI threshold below which APP will get an event
+ *
+ * @attention  This API needs to be called every time after WIFI_EVENT_STA_BSS_RSSI_LOW event is received.
+ *
+ * @param      rssi threshold value in dbm between -100 to 0
+ *
+ * @return
+ *    - ESP_OK: succeed
+ *    - ESP_ERR_WIFI_NOT_INIT: WiFi is not initialized by esp_wifi_init
+ *    - ESP_ERR_WIFI_ARG: invalid argument
+ */
+esp_err_t esp_wifi_set_rssi_threshold(int32_t rssi);
+
+/**
+ * @brief      Get the TSF time
+ *             In Station mode or SoftAP+Station mode if station is not connected or station doesn't receive at least
+ *             one beacon after connected, will return 0
+ *
+ * @attention  Enabling power save may cause the return value inaccurate, except WiFi modem sleep
+ *
+ * @param      interface The interface whose tsf_time is to be retrieved.
+ *
+ * @return     0 or the TSF time
+ */
+int64_t esp_wifi_get_tsf_time(wifi_interface_t interface);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/components/esp8266/include/esp_wifi_types.h b/components/esp8266/include/esp_wifi_types.h
index 9b7c413e..69b44532 100755
--- a/components/esp8266/include/esp_wifi_types.h
+++ b/components/esp8266/include/esp_wifi_types.h
@@ -272,6 +272,9 @@ typedef struct {
     wifi_sort_method_t sort_method;    /**< sort the connect AP in the list by rssi or security mode */
     wifi_fast_scan_threshold_t  threshold;     /**< When scan_method is set to WIFI_FAST_SCAN, only APs which have an auth mode that is more secure than the selected auth mode and a signal stronger than the minimum RSSI will be used. */
     wifi_pmf_config_t pmf_cfg;    /**< Configuration for Protected Management Frame. Will be advertized in RSN Capabilities in RSN IE. */
+    uint32_t rm_enabled:1;        /**< Whether radio measurements are enabled for the connection */
+    uint32_t btm_enabled:1;       /**< Whether BTM is enabled for the connection */
+    uint32_t reserved:30;         /**< Reserved for future feature set */
 } wifi_sta_config_t;
 
 /** @brief Configuration data for ESP8266 AP or STA.
@@ -481,6 +484,7 @@ typedef enum {
     WIFI_EVENT_STA_CONNECTED,            /**< station connected to AP */
     WIFI_EVENT_STA_DISCONNECTED,         /**< station disconnected from AP */
     WIFI_EVENT_STA_AUTHMODE_CHANGE,      /**< the auth mode of AP connected by station changed */
+    WIFI_EVENT_STA_BSS_RSSI_LOW,         /**< AP's RSSI crossed configured threshold */
     WIFI_EVENT_STA_WPS_ER_SUCCESS,       /**< station wps succeeds in enrollee mode */
     WIFI_EVENT_STA_WPS_ER_FAILED,        /**< station wps fails in enrollee mode */
     WIFI_EVENT_STA_WPS_ER_TIMEOUT,       /**< station wps timeout in enrollee mode */
@@ -556,6 +560,11 @@ typedef struct {
     uint8_t reason;           /**< reason of disconnection */
 } wifi_event_sta_disconnected_t;
 
+/** Argument structure for WIFI_EVENT_STA_BSS_RSSI_LOW event */
+typedef struct {
+    int32_t rssi;                 /**< RSSI value of bss */
+} wifi_event_bss_rssi_low_t;
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/components/esp_event/event_send_compat.inc b/components/esp_event/event_send_compat.inc
index 4a954112..a920eee2 100644
--- a/components/esp_event/event_send_compat.inc
+++ b/components/esp_event/event_send_compat.inc
@@ -79,6 +79,7 @@ esp_err_t esp_event_send_to_default_loop(system_event_t *event)
         HANDLE_SYS_EVENT(WIFI, STA_WPS_ER_TIMEOUT);
         HANDLE_SYS_EVENT_ARG(WIFI, STA_WPS_ER_FAILED, sta_er_fail_reason);
         HANDLE_SYS_EVENT_ARG(WIFI, STA_WPS_ER_PIN, sta_er_pin);
+        HANDLE_SYS_EVENT_ARG(WIFI, STA_BSS_RSSI_LOW, bss_rssi_low);
 
         /* AP events */
         HANDLE_SYS_EVENT(WIFI, AP_START);
@@ -250,6 +251,11 @@ static void esp_system_event_debug(const system_event_t* event)
                        MAC2STR(ap_probereqrecved->mac));
             break;
         }
+        case SYSTEM_EVENT_STA_BSS_RSSI_LOW: {
+            const system_event_bss_rssi_low_t *bss_rssi_low = &event->event_info.bss_rssi_low;
+            ESP_LOGD(TAG, "SYSTEM_EVENT_STA_BSS_RSSI_LOW, rssi:%d", bss_rssi_low->rssi);
+            break;
+        }
 #if LWIP_IPV6
         case SYSTEM_EVENT_GOT_IP6: {
             const ip6_addr_t *addr = &event->event_info.got_ip6.ip6_info.ip;
diff --git a/components/esp_event/include/esp_event_legacy.h b/components/esp_event/include/esp_event_legacy.h
index 671696af..a54ad0e5 100644
--- a/components/esp_event/include/esp_event_legacy.h
+++ b/components/esp_event/include/esp_event_legacy.h
@@ -34,6 +34,7 @@ typedef enum {
     SYSTEM_EVENT_STA_CONNECTED,            /*!< station connected to AP */
     SYSTEM_EVENT_STA_DISCONNECTED,         /*!< station disconnected from AP */
     SYSTEM_EVENT_STA_AUTHMODE_CHANGE,      /*!< the auth mode of AP connected by station changed */
+    SYSTEM_EVENT_STA_BSS_RSSI_LOW,         /*!< Connected BSS rssi goes below threshold */
     SYSTEM_EVENT_STA_GOT_IP,               /*!< station got IP from connected AP */
     SYSTEM_EVENT_STA_LOST_IP,              /*!< station lost IP and the IP is reset to 0 */
     SYSTEM_EVENT_STA_WPS_ER_SUCCESS,       /*!< station wps succeeds in enrollee mode */
@@ -88,6 +89,9 @@ typedef wifi_event_ap_stadisconnected_t system_event_ap_stadisconnected_t;
 /** Argument structure of  event */
 typedef wifi_event_ap_probe_req_rx_t system_event_ap_probe_req_rx_t;
 
+/** Argument structure of  event */
+typedef wifi_event_bss_rssi_low_t system_event_bss_rssi_low_t;
+
 /** Argument structure of  event */
 typedef ip_event_ap_staipassigned_t system_event_ap_staipassigned_t;
 
@@ -109,6 +113,7 @@ typedef union {
     system_event_ap_staconnected_t             sta_connected;      /*!< a station connected to soft-AP */
     system_event_ap_stadisconnected_t          sta_disconnected;   /*!< a station disconnected to soft-AP */
     system_event_ap_probe_req_rx_t             ap_probereqrecved;  /*!< soft-AP receive probe request packet */
+    system_event_bss_rssi_low_t                bss_rssi_low;       /*!< Connected BSS rssi goes below threshold */
     system_event_ap_staipassigned_t            ap_staipassigned;   /**< soft-AP assign an IP to the station*/
     system_event_got_ip6_t                     got_ip6;            /*!< station or ap or ethernet ipv6 addr state change to preferred */
 } system_event_info_t;
diff --git a/components/wpa_supplicant/CMakeLists.txt b/components/wpa_supplicant/CMakeLists.txt
index c635717e..1b9651cb 100644
--- a/components/wpa_supplicant/CMakeLists.txt
+++ b/components/wpa_supplicant/CMakeLists.txt
@@ -6,6 +6,7 @@ set(srcs "port/os_xtensa.c"
     "src/common/sae.c"
     "src/common/wpa_common.c"
     "src/common/dpp.c"
+    "src/utils/bitfield.c"
     "src/crypto/aes-ctr.c"
     "src/crypto/aes-siv.c"
     "src/crypto/sha256-kdf.c"
@@ -106,7 +107,21 @@ else()
     )
 endif()
 
-idf_component_register(SRCS "${srcs}" "${tls_src}"
+if (CONFIG_WPA_11KV_SUPPORT)
+    set(roaming_src
+    "src/common/rrm.c"
+    "src/common/wnm_sta.c"
+    "src/common/bss.c"
+    "src/common/scan.c"
+    "src/common/ieee802_11_common.c"
+    "src/esp_supplicant/esp_common.c"
+    "src/esp_supplicant/esp_scan.c"
+    )
+else()
+    set(roaming_src "")
+endif()
+
+idf_component_register(SRCS "${srcs}" "${tls_src}" "${roaming_src}"
                     INCLUDE_DIRS include port/include include/esp_supplicant
                     PRIV_INCLUDE_DIRS src
                     PRIV_REQUIRES mbedtls freertos heap newlib)
@@ -132,4 +147,5 @@ target_compile_definitions(${COMPONENT_LIB} PRIVATE
     CONFIG_WPA3_SAE
     #CONFIG_SHA256
     CONFIG_DPP
+    CONFIG_WNM
     )
diff --git a/components/wpa_supplicant/Kconfig b/components/wpa_supplicant/Kconfig
index 0057d40c..e21d696d 100644
--- a/components/wpa_supplicant/Kconfig
+++ b/components/wpa_supplicant/Kconfig
@@ -50,4 +50,22 @@ config LTM_FAST
             button bit without setting virtual/phycial display/button bit which
             will cause M2 validation fail, bypassing WPS-Config method validation.
 
+    menuconfig WPA_11KV_SUPPORT
+        bool "Enable 802.11k, 802.11v APIs handling in supplicant"
+        default n
+        help
+            Select this option to enable 802.11k 802.11v APIs.
+            Only APIs which are helpful for network assisted roaming
+            are supported for now.
+            Enable this option with btm and rrm enabled in sta config
+            to make device ready for network assisted roaming.
+
+    if WPA_11KV_SUPPORT
+        config WPA_SCAN_CACHE
+            bool "Keep scan results in cache"
+            default n
+            help
+                Keep scan results in cache, if not enabled, those
+                will be flushed immediately.
+    endif
 endmenu
diff --git a/components/wpa_supplicant/component.mk b/components/wpa_supplicant/component.mk
index 73f48a52..e89325d9 100644
--- a/components/wpa_supplicant/component.mk
+++ b/components/wpa_supplicant/component.mk
@@ -5,7 +5,7 @@ COMPONENT_SRCDIRS := port src/ap src/common src/crypto src/eap_peer src/rsn_supp
 COMPONENT_ADD_INCLUDEDIRS := include port/include include/esp_supplicant
 
 ifeq ($(CONFIG_WPA_MBEDTLS_CRYPTO), y)
-    COMPONENT_OBJEXCLUDE := src/tls/asn1.o \
+    COMPONENT_OBJEXCLUDE += src/tls/asn1.o \
     src/tls/bignum.o \
     src/tls/pkcs1.o \
     src/tls/pkcs5.o \
@@ -25,5 +25,14 @@ ifeq ($(CONFIG_WPA_MBEDTLS_CRYPTO), y)
 else
     COMPONENT_OBJEXCLUDE := src/crypto/tls_mbedtls.o
 endif
+ifneq ($(CONFIG_WPA_11KV_SUPPORT), y)
+    COMPONENT_OBJEXCLUDE += src/common/rrm.o \
+    src/common/wnm_sta.o \
+    src/common/bss.o \
+    src/common/scan.o \
+    src/common/ieee802_11_common.o \
+    src/esp_supplicant/esp_common.o \
+    src/esp_supplicant/esp_scan.o
+endif
 
-CFLAGS += -DCONFIG_DPP -DCONFIG_WPA3_SAE -DCONFIG_IEEE80211W -DESP_SUPPLICANT -DIEEE8021X_EAPOL -DEAP_PEER_METHOD -DEAP_TLS -DEAP_TTLS -DEAP_PEAP -DEAP_MSCHAPv2 -DUSE_WPA2_TASK -DCONFIG_WPS2 -DCONFIG_WPS_PIN -DUSE_WPS_TASK -DESPRESSIF_USE -DESP8266_WORKAROUND -DCONFIG_ECC -D__ets__ -Wno-strict-aliasing
+CFLAGS += -DCONFIG_DPP -DCONFIG_WPA3_SAE -DCONFIG_IEEE80211W -DESP_SUPPLICANT -DIEEE8021X_EAPOL -DEAP_PEER_METHOD -DEAP_TLS -DEAP_TTLS -DEAP_PEAP -DEAP_MSCHAPv2 -DUSE_WPA2_TASK -DCONFIG_WPS2 -DCONFIG_WPS_PIN -DUSE_WPS_TASK -DESPRESSIF_USE -DESP8266_WORKAROUND -DCONFIG_ECC -DCONFIG_WNM -D__ets__ -Wno-strict-aliasing
diff --git a/components/wpa_supplicant/include/esp_supplicant/esp_rrm.h b/components/wpa_supplicant/include/esp_supplicant/esp_rrm.h
new file mode 100755
index 00000000..7e2ccb51
--- /dev/null
+++ b/components/wpa_supplicant/include/esp_supplicant/esp_rrm.h
@@ -0,0 +1,54 @@
+/**
+ * Copyright 2020 Espressif Systems (Shanghai) PTE LTD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _ESP_RRM_H
+#define _ESP_RRM_H
+
+#include <stdbool.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+  * @brief  Callback function type to get neighbor report
+  *
+  * @param  ctx: neighbor report context
+  * @param  report: neighbor report
+  * @param  report_len: neighbor report length
+  *
+  * @return
+  *    - void
+  */
+typedef void (*neighbor_rep_request_cb)(void *ctx, const uint8_t *report, size_t report_len);
+
+/**
+  * @brief  Send Radio measurement neighbor report request to connect AP
+  *
+  * @param  cb: callback function for neighbor report
+  * @param  cb_ctx: callback context
+  *
+  * @return
+  *    - 0: success else failure
+  */
+int esp_rrm_send_neighbor_rep_request(neighbor_rep_request_cb cb,
+				      void *cb_ctx);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+
diff --git a/components/wpa_supplicant/include/esp_supplicant/esp_wnm.h b/components/wpa_supplicant/include/esp_supplicant/esp_wnm.h
new file mode 100755
index 00000000..d3e5ccc4
--- /dev/null
+++ b/components/wpa_supplicant/include/esp_supplicant/esp_wnm.h
@@ -0,0 +1,58 @@
+/**
+ * Copyright 2020 Espressif Systems (Shanghai) PTE LTD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _ESP_WNM_H
+#define _ESP_WNM_H
+
+#include <stdbool.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+  * enum btm_query_reason: Reason code for sending btm query
+  */
+enum btm_query_reason {
+	REASON_UNSPECIFIED = 0,
+	REASON_FRAME_LOSS = 1,
+	REASON_DELAY = 2,
+	REASON_QOS_CAPACITY = 3,
+	REASON_FIRST_ASSOC = 4,
+	REASON_LOAD_BALALNCE = 5,
+	REASON_BETTER_AP = 6,
+	REASON_CURRENT_DEAUTH = 7,
+};
+
+/**
+  * @brief  Send bss transition query to connected AP
+  *
+  * @param  query_reason: reason for sending query
+  * @param  btm_candidates: btm candidates list if available
+  * @param  cand_list: whether candidate list to be included or not
+  *
+  * @return
+  *    - 0: success else failure
+  */
+int esp_wnm_send_bss_transition_mgmt_query(enum btm_query_reason query_reason,
+					   const char *btm_candidates,
+					   int cand_list);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+
diff --git a/components/wpa_supplicant/include/utils/wpa_debug.h b/components/wpa_supplicant/include/utils/wpa_debug.h
index e32c697f..918af2ab 100644
--- a/components/wpa_supplicant/include/utils/wpa_debug.h
+++ b/components/wpa_supplicant/include/utils/wpa_debug.h
@@ -17,6 +17,7 @@
 
 #include "wpabuf.h"
 #include "esp_log.h"
+#include "supplicant_opt.h"
 
 #ifdef ESPRESSIF_USE
 
@@ -60,6 +61,7 @@ void wpa_debug_print_timestamp(void);
  * Note: New line '\n' is added to the end of the text when printing to stdout.
  */
 #define wpa_printf(level,fmt, args...) ESP_LOG_LEVEL_LOCAL(level, TAG, fmt, ##args)
+#define wpa_dbg(ctx, level, fmt, args...) wpa_printf(level, fmt, ##args)
 
 void wpa_dump_mem(char* desc, uint8_t *addr, uint16_t len);
 static inline void wpa_hexdump_ascii(int level, const char *title, const u8 *buf, size_t len)
@@ -153,6 +155,7 @@ void wpa_hexdump_ascii_key(int level, const char *title, const u8 *buf,
 #define wpa_hexdump_buf_key(...) do {} while(0)
 #define wpa_hexdump_ascii(...) do {} while(0)
 #define wpa_hexdump_ascii_key(...) do {} while(0)
+#define wpa_dbg(...) do {} while(0)
 #endif
 
 #define wpa_auth_logger
diff --git a/components/wpa_supplicant/port/include/os.h b/components/wpa_supplicant/port/include/os.h
index a7c8eadc..33d85873 100644
--- a/components/wpa_supplicant/port/include/os.h
+++ b/components/wpa_supplicant/port/include/os.h
@@ -40,6 +40,8 @@ struct os_time {
 	suseconds_t usec;
 };
 
+#define os_reltime os_time
+
 struct os_tm {
     int sec; /* 0..59 or 60 for leap seconds */
     int min; /* 0..59 */
@@ -55,7 +57,7 @@ struct os_tm {
  * Returns: 0 on success, -1 on failure
  */
 int os_get_time(struct os_time *t);
-
+#define os_get_reltime os_get_time
 
 /* Helper macros for handling struct os_time */
 
@@ -63,6 +65,7 @@ int os_get_time(struct os_time *t);
 	((a)->sec < (b)->sec || \
 	 ((a)->sec == (b)->sec && (a)->usec < (b)->usec))
 
+#define os_reltime_before os_time_before
 #define os_time_sub(a, b, res) do { \
 	(res)->sec = (a)->sec - (b)->sec; \
 	(res)->usec = (a)->usec - (b)->usec; \
@@ -71,6 +74,7 @@ int os_get_time(struct os_time *t);
 		(res)->usec += 1000000; \
 	} \
 } while (0)
+#define os_reltime_sub os_time_sub
 
 /**
  * os_mktime - Convert broken-down time into seconds since 1970-01-01
@@ -213,6 +217,10 @@ char * os_readfile(const char *name, size_t *len);
 #ifndef os_zalloc
 #define os_zalloc(s) calloc(1, (s))
 #endif
+#ifndef os_calloc
+#define os_calloc(p, s) calloc((p), (s))
+#endif
+
 #ifndef os_free
 #define os_free(p) free((p))
 #endif
@@ -299,4 +307,11 @@ static inline int os_snprintf_error(size_t size, int res)
 {
         return res < 0 || (unsigned int) res >= size;
 }
+
+static inline void * os_realloc_array(void *ptr, size_t nmemb, size_t size)
+{
+	if (size && nmemb > (~(size_t) 0) / size)
+		return NULL;
+	return os_realloc(ptr, nmemb * size);
+}
 #endif /* OS_H */
diff --git a/components/wpa_supplicant/port/include/supplicant_opt.h b/components/wpa_supplicant/port/include/supplicant_opt.h
index a3d4c666..b70ffd4c 100644
--- a/components/wpa_supplicant/port/include/supplicant_opt.h
+++ b/components/wpa_supplicant/port/include/supplicant_opt.h
@@ -28,4 +28,12 @@
 #define DEBUG_PRINT
 #endif
 
+#if CONFIG_WPA_11KV_SUPPORT
+#define ROAMING_SUPPORT 1
+#endif
+
+#if CONFIG_WPA_SCAN_CACHE
+#define SCAN_CACHE_SUPPORTED
+#endif
+
 #endif /* _SUPPLICANT_OPT_H */
diff --git a/components/wpa_supplicant/port/os_xtensa.c b/components/wpa_supplicant/port/os_xtensa.c
index 9a4ed9d9..94f5c0f6 100644
--- a/components/wpa_supplicant/port/os_xtensa.c
+++ b/components/wpa_supplicant/port/os_xtensa.c
@@ -25,6 +25,7 @@
 #include "os.h"
 #include <stdlib.h>
 #include <time.h>
+#include <unistd.h>
 #include <sys/time.h>
 #include "esp_system.h"
 #include "utils/common.h"
@@ -49,3 +50,10 @@ int os_get_random(unsigned char *buf, size_t len)
     return 0;
 }
 
+void os_sleep(os_time_t sec, os_time_t usec)
+{
+        if (sec)
+                sleep(sec);
+        if (usec)
+                usleep(usec);
+}
diff --git a/components/wpa_supplicant/src/ap/wpa_auth.c b/components/wpa_supplicant/src/ap/wpa_auth.c
index 8b430987..56b41212 100644
--- a/components/wpa_supplicant/src/ap/wpa_auth.c
+++ b/components/wpa_supplicant/src/ap/wpa_auth.c
@@ -2177,7 +2177,7 @@ static int wpa_group_update_sta(struct wpa_state_machine *sm, void *ctx)
 }
 
 
-#ifdef CONFIG_WNM
+#ifdef CONFIG_WNM_AP
 /* update GTK when exiting WNM-Sleep Mode */
 void wpa_wnmsleep_rekey_gtk(struct wpa_state_machine *sm)
 {
@@ -2254,7 +2254,7 @@ int wpa_wnmsleep_igtk_subelem(struct wpa_state_machine *sm, u8 *pos)
     return pos - start;
 }
 #endif /* CONFIG_IEEE80211W */
-#endif /* CONFIG_WNM */
+#endif /* CONFIG_WNM_AP */
 
 
 static void wpa_group_setkeys(struct wpa_authenticator *wpa_auth,
diff --git a/components/wpa_supplicant/src/common/bss.c b/components/wpa_supplicant/src/common/bss.c
new file mode 100755
index 00000000..32c628f6
--- /dev/null
+++ b/components/wpa_supplicant/src/common/bss.c
@@ -0,0 +1,478 @@
+/*
+ * BSS table
+ * Copyright (c) 2009-2019, Jouni Malinen <j@w1.fi>
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#include "utils/includes.h"
+
+#include "utils/common.h"
+#include "common/ieee802_11_defs.h"
+#include "common/ieee802_11_common.h"
+#include "drivers/driver.h"
+#include "eap_peer/eap.h"
+#include "wpa_supplicant_i.h"
+#include "config.h"
+#include "scan.h"
+#include "bss.h"
+#ifdef ESP_SUPPLICANT
+#include "esp_supplicant/esp_wifi_driver.h"
+#endif
+
+#define MAX_BSS_COUNT 20
+
+void wpa_bss_remove(struct wpa_supplicant *wpa_s, struct wpa_bss *bss,
+		    const char *reason)
+{
+	if (wpa_s->last_scan_res) {
+		unsigned int i;
+		for (i = 0; i < wpa_s->last_scan_res_used; i++) {
+			if (wpa_s->last_scan_res[i] == bss) {
+				os_memmove(&wpa_s->last_scan_res[i],
+					   &wpa_s->last_scan_res[i + 1],
+					   (wpa_s->last_scan_res_used - i - 1)
+					   * sizeof(struct wpa_bss *));
+				wpa_s->last_scan_res_used--;
+				break;
+			}
+		}
+	}
+	dl_list_del(&bss->list);
+	dl_list_del(&bss->list_id);
+	wpa_s->num_bss--;
+	wpa_dbg(wpa_s, MSG_DEBUG, "BSS: Remove id %u BSSID " MACSTR
+		" SSID '%s' due to %s", bss->id, MAC2STR(bss->bssid),
+		wpa_ssid_txt(bss->ssid, bss->ssid_len), reason);
+	os_free(bss);
+}
+
+
+/**
+ * wpa_bss_get - Fetch a BSS table entry based on BSSID and SSID
+ * @wpa_s: Pointer to wpa_supplicant data
+ * @bssid: BSSID
+ * @ssid: SSID
+ * @ssid_len: Length of @ssid
+ * Returns: Pointer to the BSS entry or %NULL if not found
+ */
+struct wpa_bss * wpa_bss_get(struct wpa_supplicant *wpa_s, const u8 *bssid,
+			     const u8 *ssid, size_t ssid_len)
+{
+	struct wpa_bss *bss;
+	dl_list_for_each(bss, &wpa_s->bss, struct wpa_bss, list) {
+		if (os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0 &&
+		    bss->ssid_len == ssid_len &&
+		    os_memcmp(bss->ssid, ssid, ssid_len) == 0)
+			return bss;
+	}
+	return NULL;
+}
+
+
+void calculate_update_time(const struct os_reltime *fetch_time,
+			   unsigned int age_ms,
+			   struct os_reltime *update_time)
+{
+	os_time_t usec;
+
+	update_time->sec = fetch_time->sec;
+	update_time->usec = fetch_time->usec;
+	update_time->sec -= age_ms / 1000;
+	usec = (age_ms % 1000) * 1000;
+	if (update_time->usec < usec) {
+		update_time->sec--;
+		update_time->usec += 1000000;
+	}
+	update_time->usec -= usec;
+}
+
+
+static void wpa_bss_copy_res(struct wpa_bss *dst, struct wpa_scan_res *src,
+			     struct os_reltime *fetch_time)
+{
+	dst->flags = src->flags;
+	os_memcpy(dst->bssid, src->bssid, ETH_ALEN);
+	dst->channel = src->chan;
+	dst->beacon_int = src->beacon_int;
+	dst->caps = src->caps;
+	dst->noise = src->noise;
+	dst->level = src->level;
+	dst->tsf = src->tsf;
+	dst->parent_tsf = src->parent_tsf;
+
+	calculate_update_time(fetch_time, src->age, &dst->last_update);
+}
+
+#ifdef ESP_SUPPLICANT
+static int wpa_bss_known(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
+{
+	struct wifi_ssid *ssid = esp_wifi_sta_get_prof_ssid_internal();
+
+	if (ssid->ssid == NULL || ssid->len == 0)
+		return 0;
+	if (ssid->len == bss->ssid_len &&
+	    os_memcmp(ssid->ssid, bss->ssid, ssid->len) == 0)
+		return 1;
+	return 0;
+}
+#endif
+
+static int wpa_bss_in_use(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
+{
+	if (bss == wpa_s->current_bss)
+		return 1;
+
+	if (wpa_s->current_bss &&
+	    (bss->ssid_len != wpa_s->current_bss->ssid_len ||
+	     os_memcmp(bss->ssid, wpa_s->current_bss->ssid,
+		       bss->ssid_len) != 0))
+		return 0; /* SSID has changed */
+
+	return !is_zero_ether_addr(bss->bssid) && wpa_s->current_bss->bssid &&
+		(os_memcmp(bss->bssid, wpa_s->current_bss->bssid, ETH_ALEN) == 0);
+
+	return 0;
+}
+
+static int wpa_bss_remove_oldest_unknown(struct wpa_supplicant *wpa_s)
+{
+	struct wpa_bss *bss;
+
+	dl_list_for_each(bss, &wpa_s->bss, struct wpa_bss, list) {
+		if (!wpa_bss_known(wpa_s, bss)) {
+			wpa_bss_remove(wpa_s, bss, __func__);
+			return 0;
+		}
+	}
+
+	return -1;
+}
+
+static int wpa_bss_remove_oldest(struct wpa_supplicant *wpa_s)
+{
+	struct wpa_bss *bss;
+
+	/*
+	 * Remove the oldest entry that does not match with any configured
+	 * network.
+	 */
+	if (wpa_bss_remove_oldest_unknown(wpa_s) == 0)
+		return 0;
+
+	/*
+	 * Remove the oldest entry that isn't currently in use.
+	 */
+	dl_list_for_each(bss, &wpa_s->bss, struct wpa_bss, list) {
+		if (!wpa_bss_in_use(wpa_s, bss)) {
+			wpa_bss_remove(wpa_s, bss, __func__);
+			return 0;
+		}
+	}
+
+	return -1;
+}
+
+static struct wpa_bss * wpa_bss_add(struct wpa_supplicant *wpa_s,
+				    const u8 *ssid, size_t ssid_len,
+				    struct wpa_scan_res *res,
+				    struct os_reltime *fetch_time)
+{
+	struct wpa_bss *bss;
+
+	if ((wpa_s->num_bss + 1 > MAX_BSS_COUNT) &&
+	    (wpa_bss_remove_oldest(wpa_s) < 0)) {
+		wpa_printf(MSG_ERROR,
+			   "Failed to clean older entries, rejecting scan result");
+		return NULL;
+	}
+
+	bss = os_zalloc(sizeof(*bss) + res->ie_len + res->beacon_ie_len);
+	if (bss == NULL)
+		return NULL;
+	bss->id = wpa_s->bss_next_id++;
+	bss->last_update_idx = wpa_s->bss_update_idx;
+	wpa_bss_copy_res(bss, res, fetch_time);
+	os_memcpy(bss->ssid, ssid, ssid_len);
+	bss->ssid_len = ssid_len;
+	bss->ie_len = res->ie_len;
+	bss->beacon_ie_len = res->beacon_ie_len;
+	os_memcpy(bss + 1, res + 1, res->ie_len + res->beacon_ie_len);
+
+	dl_list_add_tail(&wpa_s->bss, &bss->list);
+	dl_list_add_tail(&wpa_s->bss_id, &bss->list_id);
+	wpa_s->num_bss++;
+	wpa_dbg(wpa_s, MSG_INFO, "BSS: Add new id %u BSSID " MACSTR
+		" SSID '%s' chan %d",
+		bss->id, MAC2STR(bss->bssid), wpa_ssid_txt(ssid, ssid_len),
+		bss->channel);
+	return bss;
+}
+
+static struct wpa_bss *
+wpa_bss_update(struct wpa_supplicant *wpa_s, struct wpa_bss *bss,
+	       struct wpa_scan_res *res, struct os_reltime *fetch_time)
+{
+	if (bss->last_update_idx == wpa_s->bss_update_idx) {
+		struct os_reltime update_time;
+
+		/*
+		 * Some drivers (e.g., cfg80211) include multiple BSS entries
+		 * for the same BSS if that BSS's channel changes. The BSS list
+		 * implementation in wpa_supplicant does not do that and we need
+		 * to filter out the obsolete results here to make sure only the
+		 * most current BSS information remains in the table.
+		 */
+		wpa_printf(MSG_DEBUG, "BSS: " MACSTR
+			   " has multiple entries in the scan results - select the most current one",
+			   MAC2STR(bss->bssid));
+		calculate_update_time(fetch_time, res->age, &update_time);
+		wpa_printf(MSG_DEBUG,
+			   "Accept this BSS entry since it looks more current than the previous update");
+	}
+
+	bss->last_update_idx = wpa_s->bss_update_idx;
+	wpa_bss_copy_res(bss, res, fetch_time);
+	/* Move the entry to the end of the list */
+	dl_list_del(&bss->list);
+	if (bss->ie_len + bss->beacon_ie_len >=
+	    res->ie_len + res->beacon_ie_len) {
+		os_memcpy(bss + 1, res + 1, res->ie_len + res->beacon_ie_len);
+		bss->ie_len = res->ie_len;
+		bss->beacon_ie_len = res->beacon_ie_len;
+	} else {
+		struct wpa_bss *nbss;
+		struct dl_list *prev = bss->list_id.prev;
+		dl_list_del(&bss->list_id);
+		nbss = os_realloc(bss, sizeof(*bss) + res->ie_len +
+				  res->beacon_ie_len);
+		if (nbss) {
+			unsigned int i;
+			for (i = 0; i < wpa_s->last_scan_res_used; i++) {
+				if (wpa_s->last_scan_res[i] == bss) {
+					wpa_s->last_scan_res[i] = nbss;
+					break;
+				}
+			}
+			if (wpa_s->current_bss == bss)
+				wpa_s->current_bss = nbss;
+			bss = nbss;
+			os_memcpy(bss + 1, res + 1,
+				  res->ie_len + res->beacon_ie_len);
+			bss->ie_len = res->ie_len;
+			bss->beacon_ie_len = res->beacon_ie_len;
+		}
+		dl_list_add(prev, &bss->list_id);
+	}
+	dl_list_add_tail(&wpa_s->bss, &bss->list);
+
+	return bss;
+}
+
+
+/**
+ * wpa_bss_update_start - Start a BSS table update from scan results
+ * @wpa_s: Pointer to wpa_supplicant data
+ *
+ * This function is called at the start of each BSS table update round for new
+ * scan results. The actual scan result entries are indicated with calls to
+ * wpa_bss_update_scan_res() and the update round is finished with a call to
+ * wpa_bss_update_end().
+ */
+void wpa_bss_update_start(struct wpa_supplicant *wpa_s)
+{
+	wpa_s->bss_update_idx++;
+	wpa_dbg(wpa_s, MSG_DEBUG, "BSS: Start scan result update %u",
+		wpa_s->bss_update_idx);
+	wpa_s->last_scan_res_used = 0;
+}
+
+
+/**
+ * wpa_bss_update_scan_res - Update a BSS table entry based on a scan result
+ * @wpa_s: Pointer to wpa_supplicant data
+ * @res: Scan result
+ * @fetch_time: Time when the result was fetched from the driver
+ *
+ * This function updates a BSS table entry (or adds one) based on a scan result.
+ * This is called separately for each scan result between the calls to
+ * wpa_bss_update_start() and wpa_bss_update_end().
+ */
+void wpa_bss_update_scan_res(struct wpa_supplicant *wpa_s,
+			     struct wpa_scan_res *res,
+			     struct os_reltime *fetch_time)
+{
+	const u8 *ssid;
+	struct wpa_bss *bss;
+
+	ssid = wpa_scan_get_ie(res, WLAN_EID_SSID);
+	if (ssid == NULL) {
+		wpa_dbg(wpa_s, MSG_DEBUG, "BSS: No SSID IE included for "
+			MACSTR, MAC2STR(res->bssid));
+		return;
+	}
+	if (ssid[1] > SSID_MAX_LEN) {
+		wpa_dbg(wpa_s, MSG_DEBUG, "BSS: Too long SSID IE included for "
+			MACSTR, MAC2STR(res->bssid));
+		return;
+	}
+
+	/* TODO: add option for ignoring BSSes we are not interested in
+	 * (to save memory) */
+
+	bss = wpa_bss_get(wpa_s, res->bssid, ssid + 2, ssid[1]);
+	if (bss == NULL)
+		bss = wpa_bss_add(wpa_s, ssid + 2, ssid[1], res, fetch_time);
+	else {
+		bss = wpa_bss_update(wpa_s, bss, res, fetch_time);
+		if (wpa_s->last_scan_res) {
+			unsigned int i;
+			for (i = 0; i < wpa_s->last_scan_res_used; i++) {
+				if (bss == wpa_s->last_scan_res[i]) {
+					/* Already in the list */
+					return;
+				}
+			}
+		}
+	}
+
+	if (bss == NULL)
+		return;
+	if (wpa_s->last_scan_res_used >= wpa_s->last_scan_res_size) {
+		struct wpa_bss **n;
+		unsigned int siz;
+		if (wpa_s->last_scan_res_size == 0)
+			siz = 32;
+		else
+			siz = wpa_s->last_scan_res_size * 2;
+		n = os_realloc_array(wpa_s->last_scan_res, siz,
+				     sizeof(struct wpa_bss *));
+		if (n == NULL)
+			return;
+		wpa_s->last_scan_res = n;
+		wpa_s->last_scan_res_size = siz;
+	}
+
+	if (wpa_s->last_scan_res)
+		wpa_s->last_scan_res[wpa_s->last_scan_res_used++] = bss;
+}
+
+
+/**
+ * wpa_bss_update_end - End a BSS table update from scan results
+ * @wpa_s: Pointer to wpa_supplicant data
+ * @info: Information about scan parameters
+ * @new_scan: Whether this update round was based on a new scan
+ *
+ * This function is called at the end of each BSS table update round for new
+ * scan results. The start of the update was indicated with a call to
+ * wpa_bss_update_start().
+ */
+void wpa_bss_update_end(struct wpa_supplicant *wpa_s)
+{
+	os_get_reltime(&wpa_s->last_scan);
+}
+
+/**
+ * wpa_bss_init - Initialize BSS table
+ * @wpa_s: Pointer to wpa_supplicant data
+ * Returns: 0 on success, -1 on failure
+ *
+ * This prepares BSS table lists and timer for periodic updates. The BSS table
+ * is deinitialized with wpa_bss_deinit() once not needed anymore.
+ */
+int wpa_bss_init(struct wpa_supplicant *wpa_s)
+{
+	dl_list_init(&wpa_s->bss);
+	dl_list_init(&wpa_s->bss_id);
+	return 0;
+}
+
+
+/**
+ * wpa_bss_flush - Flush all unused BSS entries
+ * @wpa_s: Pointer to wpa_supplicant data
+ */
+void wpa_bss_flush(struct wpa_supplicant *wpa_s)
+{
+	struct wpa_bss *bss, *n;
+
+	if (wpa_s->bss.next == NULL)
+		return; /* BSS table not yet initialized */
+
+	dl_list_for_each_safe(bss, n, &wpa_s->bss, struct wpa_bss, list) {
+		if (wpa_bss_in_use(wpa_s, bss))
+			continue;
+		wpa_bss_remove(wpa_s, bss, __func__);
+	}
+}
+
+
+/**
+ * wpa_bss_deinit - Deinitialize BSS table
+ * @wpa_s: Pointer to wpa_supplicant data
+ */
+void wpa_bss_deinit(struct wpa_supplicant *wpa_s)
+{
+	wpa_bss_flush(wpa_s);
+}
+
+
+/**
+ * wpa_bss_get_bssid - Fetch a BSS table entry based on BSSID
+ * @wpa_s: Pointer to wpa_supplicant data
+ * @bssid: BSSID
+ * Returns: Pointer to the BSS entry or %NULL if not found
+ */
+struct wpa_bss * wpa_bss_get_bssid(struct wpa_supplicant *wpa_s,
+				   const u8 *bssid)
+{
+	struct wpa_bss *bss;
+	dl_list_for_each_reverse(bss, &wpa_s->bss, struct wpa_bss, list) {
+		if (os_memcmp(bss->bssid, bssid, ETH_ALEN) == 0)
+			return bss;
+	}
+	return NULL;
+}
+
+
+/**
+ * wpa_bss_get_next_bss - Fetch a next BSS table entry from the list
+ * @wpa_s: Pointer to wpa_supplicant data
+ * @bss: BSS
+ * Returns: Pointer to the BSS entry or %NULL if not found
+ */
+struct wpa_bss * wpa_bss_get_next_bss(struct wpa_supplicant *wpa_s,
+				   struct wpa_bss *prev_bss)
+{
+	struct wpa_bss *bss;
+
+	if (!prev_bss)
+		return dl_list_first(&wpa_s->bss, struct wpa_bss, list);
+	dl_list_for_each(bss, &wpa_s->bss, struct wpa_bss, list) {
+		if (os_memcmp(bss->bssid, prev_bss->bssid, ETH_ALEN) == 0)
+			return dl_list_entry(bss->list.next, struct wpa_bss, list);
+	}
+	return NULL;
+}
+
+/**
+ * wpa_bss_get_ie - Fetch a specified information element from a BSS entry
+ * @bss: BSS table entry
+ * @ie: Information element identitifier (WLAN_EID_*)
+ * Returns: Pointer to the information element (id field) or %NULL if not found
+ *
+ * This function returns the first matching information element in the BSS
+ * entry.
+ */
+const u8 * wpa_bss_get_ie(const struct wpa_bss *bss, u8 ie)
+{
+	return get_ie((const u8 *) (bss + 1), bss->ie_len, ie);
+}
+
+int wpa_bss_ext_capab(const struct wpa_bss *bss, unsigned int capab)
+{
+	return ieee802_11_ext_capab(wpa_bss_get_ie(bss, WLAN_EID_EXT_CAPAB),
+				    capab);
+}
diff --git a/components/wpa_supplicant/src/common/bss.h b/components/wpa_supplicant/src/common/bss.h
new file mode 100755
index 00000000..c34941a7
--- /dev/null
+++ b/components/wpa_supplicant/src/common/bss.h
@@ -0,0 +1,86 @@
+/*
+ * BSS table
+ * Copyright (c) 2009-2019, Jouni Malinen <j@w1.fi>
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#ifndef BSS_H
+#define BSS_H
+
+struct wpa_scan_res;
+
+/**
+ * struct wpa_bss - BSS table
+ *
+ * This structure is used to store information about neighboring BSSes in
+ * generic format. It is mainly updated based on scan results from the driver.
+ */
+struct wpa_bss {
+	/** List entry for struct wpa_supplicant::bss */
+	struct dl_list list;
+	/** List entry for struct wpa_supplicant::bss_id */
+	struct dl_list list_id;
+	/** Unique identifier for this BSS entry */
+	unsigned int id;
+	/** Index of the last scan update */
+	unsigned int last_update_idx;
+	/** Information flags about the BSS/IBSS (WPA_BSS_*) */
+	unsigned int flags;
+	/** BSSID */
+	u8 bssid[ETH_ALEN];
+	/** SSID */
+	u8 ssid[SSID_MAX_LEN];
+	/** Length of SSID */
+	size_t ssid_len;
+	/** Frequency of the channel in MHz (e.g., 2412 = channel 1) */
+	int channel;
+	/** Beacon interval in TUs (host byte order) */
+	u16 beacon_int;
+	/** Capability information field in host byte order */
+	u16 caps;
+	/** Signal quality */
+	int qual;
+	/** Noise level */
+	int noise;
+	/** Signal level */
+	int level;
+	/** Timestamp of last Beacon/Probe Response frame */
+	u64 tsf;
+	/** Timestamp of parent aganist which it was taken */
+	u64 parent_tsf;
+	/** Time of the last update (i.e., Beacon or Probe Response RX) */
+	struct os_reltime last_update;
+	/** Length of the following IE field in octets (from Probe Response) */
+	size_t ie_len;
+	/** Length of the following Beacon IE field in octets */
+	size_t beacon_ie_len;
+	/* followed by ie_len octets of IEs */
+	/* followed by beacon_ie_len octets of IEs */
+};
+
+void wpa_bss_update_start(struct wpa_supplicant *wpa_s);
+void wpa_bss_update_scan_res(struct wpa_supplicant *wpa_s,
+			     struct wpa_scan_res *res,
+			     struct os_reltime *fetch_time);
+void wpa_bss_remove(struct wpa_supplicant *wpa_s, struct wpa_bss *bss,
+		    const char *reason);
+void wpa_bss_update_end(struct wpa_supplicant *wpa_s);
+int wpa_bss_init(struct wpa_supplicant *wpa_s);
+void wpa_bss_deinit(struct wpa_supplicant *wpa_s);
+void wpa_bss_flush(struct wpa_supplicant *wpa_s);
+struct wpa_bss * wpa_bss_get(struct wpa_supplicant *wpa_s, const u8 *bssid,
+			     const u8 *ssid, size_t ssid_len);
+struct wpa_bss * wpa_bss_get_bssid(struct wpa_supplicant *wpa_s,
+				   const u8 *bssid);
+const u8 * wpa_bss_get_ie(const struct wpa_bss *bss, u8 ie);
+int wpa_bss_ext_capab(const struct wpa_bss *bss, unsigned int capab);
+struct wpa_bss * wpa_bss_get_next_bss(struct wpa_supplicant *wpa_s,
+				   struct wpa_bss *prev_bss);
+
+void calculate_update_time(const struct os_reltime *fetch_time,
+			   unsigned int age_ms,
+			   struct os_reltime *update_time);
+
+#endif /* BSS_H */
diff --git a/components/wpa_supplicant/src/common/ieee802_11_common.c b/components/wpa_supplicant/src/common/ieee802_11_common.c
new file mode 100755
index 00000000..ca159c1b
--- /dev/null
+++ b/components/wpa_supplicant/src/common/ieee802_11_common.c
@@ -0,0 +1,198 @@
+/*
+ * IEEE 802.11 Common routines
+ * Copyright (c) 2002-2019, Jouni Malinen <j@w1.fi>
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#include "utils/includes.h"
+
+#include "utils/common.h"
+#include "defs.h"
+#include "ieee802_11_defs.h"
+#include "ieee802_11_common.h"
+#include "common/wpa_supplicant_i.h"
+
+/**
+ * get_ie - Fetch a specified information element from IEs buffer
+ * @ies: Information elements buffer
+ * @len: Information elements buffer length
+ * @eid: Information element identifier (WLAN_EID_*)
+ * Returns: Pointer to the information element (id field) or %NULL if not found
+ *
+ * This function returns the first matching information element in the IEs
+ * buffer or %NULL in case the element is not found.
+ */
+const u8 * get_ie(const u8 *ies, size_t len, u8 eid)
+{
+	const struct element *elem;
+
+	if (!ies)
+		return NULL;
+
+	for_each_element_id(elem, eid, ies, len)
+		return &elem->id;
+
+	return NULL;
+}
+
+int ieee802_11_parse_candidate_list(const char *pos, u8 *nei_rep,
+				    size_t nei_rep_len)
+{
+	u8 *nei_pos = nei_rep;
+	const char *end;
+
+	/*
+	 * BSS Transition Candidate List Entries - Neighbor Report elements
+	 * neighbor=<BSSID>,<BSSID Information>,<Operating Class>,
+	 * <Channel Number>,<PHY Type>[,<hexdump of Optional Subelements>]
+	 */
+	while (pos) {
+		u8 *nei_start;
+		long int val;
+		char *endptr, *tmp;
+
+		pos = os_strstr(pos, " neighbor=");
+		if (!pos)
+			break;
+		if (nei_pos + 15 > nei_rep + nei_rep_len) {
+			wpa_printf(MSG_DEBUG,
+				   "Not enough room for additional neighbor");
+			return -1;
+		}
+		pos += 10;
+
+		nei_start = nei_pos;
+		*nei_pos++ = WLAN_EID_NEIGHBOR_REPORT;
+		nei_pos++; /* length to be filled in */
+
+		if (hwaddr_aton2(pos, nei_pos) < 0) {
+			wpa_printf(MSG_DEBUG, "Invalid BSSID");
+			return -1;
+		}
+		nei_pos += ETH_ALEN;
+		pos += 17;
+		if (*pos != ',') {
+			wpa_printf(MSG_DEBUG, "Missing BSSID Information");
+			return -1;
+		}
+		pos++;
+
+		val = strtol(pos, &endptr, 0);
+		WPA_PUT_LE32(nei_pos, val);
+		nei_pos += 4;
+		if (*endptr != ',') {
+			wpa_printf(MSG_DEBUG, "Missing Operating Class");
+			return -1;
+		}
+		pos = endptr + 1;
+
+		*nei_pos++ = atoi(pos); /* Operating Class */
+		pos = os_strchr(pos, ',');
+		if (pos == NULL) {
+			wpa_printf(MSG_DEBUG, "Missing Channel Number");
+			return -1;
+		}
+		pos++;
+
+		*nei_pos++ = atoi(pos); /* Channel Number */
+		pos = os_strchr(pos, ',');
+		if (pos == NULL) {
+			wpa_printf(MSG_DEBUG, "Missing PHY Type");
+			return -1;
+		}
+		pos++;
+
+		*nei_pos++ = atoi(pos); /* PHY Type */
+		end = os_strchr(pos, ' ');
+		tmp = os_strchr(pos, ',');
+		if (tmp && (!end || tmp < end)) {
+			/* Optional Subelements (hexdump) */
+			size_t len;
+
+			pos = tmp + 1;
+			end = os_strchr(pos, ' ');
+			if (end)
+				len = end - pos;
+			else
+				len = os_strlen(pos);
+			if (nei_pos + len / 2 > nei_rep + nei_rep_len) {
+				wpa_printf(MSG_DEBUG,
+					   "Not enough room for neighbor subelements");
+				return -1;
+			}
+			if (len & 0x01 ||
+			    hexstr2bin(pos, nei_pos, len / 2) < 0) {
+				wpa_printf(MSG_DEBUG,
+					   "Invalid neighbor subelement info");
+				return -1;
+			}
+			nei_pos += len / 2;
+			pos = end;
+		}
+
+		nei_start[1] = nei_pos - nei_start - 2;
+	}
+
+	return nei_pos - nei_rep;
+}
+
+/**
+ * ieee802_11_parse_elems - Parse information elements in management frames
+ * @start: Pointer to the start of IEs
+ * @len: Length of IE buffer in octets
+ * @elems: Data structure for parsed elements
+ * @show_errors: Whether to show parsing errors in debug log
+ * Returns: Parsing result
+ */
+int ieee802_11_parse_elems(struct wpa_supplicant *wpa_s, const u8 *start, size_t len)
+{
+	const struct element *elem;
+
+	if (!start)
+		return 0;
+
+	for_each_element(elem, start, len) {
+		u8 id = elem->id;
+		const u8 *pos = elem->data;
+
+		switch (id) {
+		case WLAN_EID_RRM_ENABLED_CAPABILITIES:
+			os_memcpy(wpa_s->rrm_ie, pos, 5);
+			wpa_s->rrm.rrm_used = true;
+			break;
+		case WLAN_EID_EXT_CAPAB:
+			/* extended caps can go beyond 8 octacts but we aren't using them now */
+			os_memcpy(wpa_s->extend_caps, pos, 5);
+			break;
+		default:
+			break;
+
+		}
+	}
+	return 0;
+}
+
+int ieee802_11_ext_capab(const u8 *ie, unsigned int capab)
+{
+	if (!ie || ie[1] <= capab / 8)
+		return 0;
+	return !!(ie[2 + capab / 8] & BIT(capab % 8));
+}
+
+u8 get_operating_class(u8 chan, int sec_channel)
+{
+	u8 op_class;
+
+	if (chan < 1 || chan > 14)
+		return 0;
+	if (sec_channel == 1)
+		op_class = 83;
+	else if (sec_channel == -1)
+		op_class = 84;
+	else
+		op_class = 81;
+
+	return op_class;
+}
diff --git a/components/wpa_supplicant/src/common/ieee802_11_common.h b/components/wpa_supplicant/src/common/ieee802_11_common.h
new file mode 100755
index 00000000..80dd04cb
--- /dev/null
+++ b/components/wpa_supplicant/src/common/ieee802_11_common.h
@@ -0,0 +1,42 @@
+/*
+ * IEEE 802.11 Common routines
+ * Copyright (c) 2002-2019, Jouni Malinen <j@w1.fi>
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#ifndef IEEE802_11_COMMON_H
+#define IEEE802_11_COMMON_H
+
+#include "defs.h"
+#include "ieee802_11_defs.h"
+
+struct element {
+	u8 id;
+	u8 datalen;
+	u8 data[];
+} STRUCT_PACKED;
+
+/* element iteration helpers */
+#define for_each_element(_elem, _data, _datalen)                        \
+	for (_elem = (const struct element *) (_data);                  \
+			(const u8 *) (_data) + (_datalen) - (const u8 *) _elem >=  \
+			(int) sizeof(*_elem) &&                                 \
+			(const u8 *) (_data) + (_datalen) - (const u8 *) _elem >=  \
+			(int) sizeof(*_elem) + _elem->datalen;                  \
+			_elem = (const struct element *) (_elem->data + _elem->datalen))
+
+#define for_each_element_id(element, _id, data, datalen)                \
+	for_each_element(element, data, datalen)                        \
+	if (element->id == (_id))
+
+struct wpa_supplicant;
+
+int ieee802_11_parse_candidate_list(const char *pos, u8 *nei_rep,
+				    size_t nei_rep_len);
+const u8 * get_ie(const u8 *ies, size_t len, u8 eid);
+int ieee802_11_parse_elems(struct wpa_supplicant *wpa_s, const u8 *start, size_t len);
+int ieee802_11_ext_capab(const u8 *ie, unsigned int capab);
+u8 get_operating_class(u8 chan, int sec_channel);
+#endif /* IEEE802_11_COMMON_H */
diff --git a/components/wpa_supplicant/src/common/ieee802_11_defs.h b/components/wpa_supplicant/src/common/ieee802_11_defs.h
index 9260d22f..32e2ca92 100755
--- a/components/wpa_supplicant/src/common/ieee802_11_defs.h
+++ b/components/wpa_supplicant/src/common/ieee802_11_defs.h
@@ -1,21 +1,17 @@
 /*
  * IEEE 802.11 Frame type definitions
- * Copyright (c) 2002-2009, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2002-2019, Jouni Malinen <j@w1.fi>
  * Copyright (c) 2007-2008 Intel Corporation
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
  */
 
 #ifndef IEEE802_11_DEFS_H
 #define IEEE802_11_DEFS_H
 
+#include <utils/common.h>
+
 /* IEEE 802.11 defines */
 
 #define WLAN_FC_PVER		0x0003
@@ -89,10 +85,15 @@
 #define WLAN_CAPABILITY_PBCC BIT(6)
 #define WLAN_CAPABILITY_CHANNEL_AGILITY BIT(7)
 #define WLAN_CAPABILITY_SPECTRUM_MGMT BIT(8)
+#define WLAN_CAPABILITY_QOS BIT(9)
 #define WLAN_CAPABILITY_SHORT_SLOT_TIME BIT(10)
+#define WLAN_CAPABILITY_APSD BIT(11)
+#define WLAN_CAPABILITY_RADIO_MEASUREMENT BIT(12)
 #define WLAN_CAPABILITY_DSSS_OFDM BIT(13)
+#define WLAN_CAPABILITY_DELAYED_BLOCK_ACK BIT(14)
+#define WLAN_CAPABILITY_IMM_BLOCK_ACK BIT(15)
 
-/* Status codes (IEEE 802.11-2007, 7.3.1.9, Table 7-23) */
+/* Status codes (IEEE Std 802.11-2016, 9.4.1.9, Table 9-46) */
 #define WLAN_STATUS_SUCCESS 0
 #define WLAN_STATUS_UNSPECIFIED_FAILURE 1
 #define WLAN_STATUS_CAPS_UNSUPPORTED 10
@@ -104,26 +105,23 @@
 #define WLAN_STATUS_AUTH_TIMEOUT 16
 #define WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA 17
 #define WLAN_STATUS_ASSOC_DENIED_RATES 18
-/* IEEE 802.11b */
 #define WLAN_STATUS_ASSOC_DENIED_NOSHORT 19
-#define WLAN_STATUS_ASSOC_DENIED_NOPBCC 20
-#define WLAN_STATUS_ASSOC_DENIED_NOAGILITY 21
-/* IEEE 802.11h */
 #define WLAN_STATUS_SPEC_MGMT_REQUIRED 22
 #define WLAN_STATUS_PWR_CAPABILITY_NOT_VALID 23
 #define WLAN_STATUS_SUPPORTED_CHANNEL_NOT_VALID 24
-/* IEEE 802.11g */
 #define WLAN_STATUS_ASSOC_DENIED_NO_SHORT_SLOT_TIME 25
-#define WLAN_STATUS_ASSOC_DENIED_NO_ER_PBCC 26
-#define WLAN_STATUS_ASSOC_DENIED_NO_DSSS_OFDM 27
+#define WLAN_STATUS_ASSOC_DENIED_NO_HT 27
 #define WLAN_STATUS_R0KH_UNREACHABLE 28
-/* IEEE 802.11w */
+#define WLAN_STATUS_ASSOC_DENIED_NO_PCO 29
 #define WLAN_STATUS_ASSOC_REJECTED_TEMPORARILY 30
 #define WLAN_STATUS_ROBUST_MGMT_FRAME_POLICY_VIOLATION 31
 #define WLAN_STATUS_UNSPECIFIED_QOS_FAILURE 32
+#define WLAN_STATUS_DENIED_INSUFFICIENT_BANDWIDTH 33
+#define WLAN_STATUS_DENIED_POOR_CHANNEL_CONDITIONS 34
+#define WLAN_STATUS_DENIED_QOS_NOT_SUPPORTED 35
 #define WLAN_STATUS_REQUEST_DECLINED 37
 #define WLAN_STATUS_INVALID_PARAMETERS 38
-/* IEEE 802.11i */
+#define WLAN_STATUS_REJECTED_WITH_SUGGESTED_CHANGES 39
 #define WLAN_STATUS_INVALID_IE 40
 #define WLAN_STATUS_GROUP_CIPHER_NOT_VALID 41
 #define WLAN_STATUS_PAIRWISE_CIPHER_NOT_VALID 42
@@ -136,7 +134,6 @@
 #define WLAN_STATUS_DEST_STA_NOT_PRESENT 49
 #define WLAN_STATUS_DEST_STA_NOT_QOS_STA 50
 #define WLAN_STATUS_ASSOC_DENIED_LISTEN_INT_TOO_LARGE 51
-/* IEEE 802.11r */
 #define WLAN_STATUS_INVALID_FT_ACTION_FRAME_COUNT 52
 #define WLAN_STATUS_INVALID_PMKID 53
 #define WLAN_STATUS_INVALID_MDIE 54
@@ -161,7 +158,7 @@
 #define WLAN_STATUS_ASSOC_DENIED_NO_VHT 104
 #define WLAN_STATUS_UNKNOWN_PASSWORD_IDENTIFIER 123
 
-/* Reason codes (IEEE 802.11-2007, 7.3.1.7, Table 7-22) */
+/* Reason codes (IEEE Std 802.11-2016, 9.4.1.7, Table 9-45) */
 #define WLAN_REASON_UNSPECIFIED 1
 #define WLAN_REASON_PREV_AUTH_NOT_VALID 2
 #define WLAN_REASON_DEAUTH_LEAVING 3
@@ -171,10 +168,9 @@
 #define WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA 7
 #define WLAN_REASON_DISASSOC_STA_HAS_LEFT 8
 #define WLAN_REASON_STA_REQ_ASSOC_WITHOUT_AUTH 9
-/* IEEE 802.11h */
 #define WLAN_REASON_PWR_CAPABILITY_NOT_VALID 10
 #define WLAN_REASON_SUPPORTED_CHANNEL_NOT_VALID 11
-/* IEEE 802.11i */
+#define WLAN_REASON_BSS_TRANSITION_DISASSOC 12
 #define WLAN_REASON_INVALID_IE 13
 #define WLAN_REASON_MICHAEL_MIC_FAILURE 14
 #define WLAN_REASON_4WAY_HANDSHAKE_TIMEOUT 15
@@ -188,18 +184,15 @@
 #define WLAN_REASON_IEEE_802_1X_AUTH_FAILED 23
 #define WLAN_REASON_CIPHER_SUITE_REJECTED 24
 
-
-/* Information Element IDs */
+/* Information Element IDs (IEEE Std 802.11-2016, 9.4.2.1, Table 9-77) */
 #define WLAN_EID_SSID 0
 #define WLAN_EID_SUPP_RATES 1
-#define WLAN_EID_FH_PARAMS 2
 #define WLAN_EID_DS_PARAMS 3
 #define WLAN_EID_CF_PARAMS 4
 #define WLAN_EID_TIM 5
 #define WLAN_EID_IBSS_PARAMS 6
 #define WLAN_EID_COUNTRY 7
 #define WLAN_EID_CHALLENGE 16
-/* EIDs defined by IEEE 802.11h - START */
 #define WLAN_EID_PWR_CONSTRAINT 32
 #define WLAN_EID_PWR_CAPABILITY 33
 #define WLAN_EID_TPC_REQUEST 34
@@ -208,23 +201,25 @@
 #define WLAN_EID_CHANNEL_SWITCH 37
 #define WLAN_EID_MEASURE_REQUEST 38
 #define WLAN_EID_MEASURE_REPORT 39
-#define WLAN_EID_QUITE 40
+#define WLAN_EID_QUIET 40
 #define WLAN_EID_IBSS_DFS 41
-/* EIDs defined by IEEE 802.11h - END */
 #define WLAN_EID_ERP_INFO 42
 #define WLAN_EID_HT_CAP 45
 #define WLAN_EID_RSN 48
 #define WLAN_EID_EXT_SUPP_RATES 50
+#define WLAN_EID_NEIGHBOR_REPORT 52
 #define WLAN_EID_MOBILITY_DOMAIN 54
 #define WLAN_EID_FAST_BSS_TRANSITION 55
 #define WLAN_EID_TIMEOUT_INTERVAL 56
 #define WLAN_EID_RIC_DATA 57
 #define WLAN_EID_HT_OPERATION 61
 #define WLAN_EID_SECONDARY_CHANNEL_OFFSET 62
+#define WLAN_EID_RRM_ENABLED_CAPABILITIES 70
 #define WLAN_EID_20_40_BSS_COEXISTENCE 72
 #define WLAN_EID_20_40_BSS_INTOLERANT 73
 #define WLAN_EID_OVERLAPPING_BSS_SCAN_PARAMS 74
 #define WLAN_EID_MMIE 76
+#define WLAN_EID_EXT_CAPAB 127
 #define WLAN_EID_VENDOR_SPECIFIC 221
 #define WLAN_EID_CAG_NUMBER 237
 #define WLAN_EID_AP_CSN 239
@@ -241,7 +236,7 @@
 #define WLAN_EID_EXT_FILS_HLP_CONTAINER 5
 #define WLAN_EID_EXT_FILS_IP_ADDR_ASSIGN 6
 #define WLAN_EID_EXT_KEY_DELIVERY 7
-#define WLAN_EID_EXT_FILS_WRAPPED_DATA 8
+#define WLAN_EID_EXT_WRAPPED_DATA 8
 #define WLAN_EID_EXT_FTM_SYNC_INFO 9
 #define WLAN_EID_EXT_EXTENDED_REQUEST 10
 #define WLAN_EID_EXT_ESTIMATED_SERVICE_PARAMS 11
@@ -253,8 +248,7 @@
 #define WLAN_EID_EXT_HE_CAPABILITIES 35
 #define WLAN_EID_EXT_HE_OPERATION 36
 
-
-/* Action frame categories (IEEE 802.11-2007, 7.3.1.11, Table 7-24) */
+/* Action frame categories (IEEE Std 802.11-2016, 9.4.1.11, Table 9-76) */
 #define WLAN_ACTION_SPECTRUM_MGMT 0
 #define WLAN_ACTION_QOS 1
 #define WLAN_ACTION_DLS 2
@@ -264,6 +258,8 @@
 #define WLAN_ACTION_FT 6
 #define WLAN_ACTION_HT 7
 #define WLAN_ACTION_SA_QUERY 8
+#define WLAN_ACTION_WNM 10
+#define WLAN_ACTION_UNPROTECTED_WNM 11
 #define WLAN_ACTION_WMM 17 /* WMM Specification 1.1 */
 
 /* SA Query Action frame (IEEE 802.11w/D8.0, 7.4.9) */
@@ -300,6 +296,51 @@ struct ieee80211_hdr {
 #define IEEE80211_HDRLEN (sizeof(struct ieee80211_hdr))
 
 #define IEEE80211_FC(type, stype) host_to_le16((type << 2) | (stype << 4))
+/* Radio Measurement Action codes */
+#define WLAN_RRM_RADIO_MEASUREMENT_REQUEST 0
+#define WLAN_RRM_RADIO_MEASUREMENT_REPORT 1
+#define WLAN_RRM_LINK_MEASUREMENT_REQUEST 2
+#define WLAN_RRM_LINK_MEASUREMENT_REPORT 3
+#define WLAN_RRM_NEIGHBOR_REPORT_REQUEST 4
+#define WLAN_RRM_NEIGHBOR_REPORT_RESPONSE 5
+
+/* Radio Measurement capabilities (from RM Enabled Capabilities element)
+ * IEEE Std 802.11-2016, 9.4.2.45, Table 9-157 */
+/* byte 1 (out of 5) */
+#define WLAN_RRM_CAPS_LINK_MEASUREMENT BIT(0)
+#define WLAN_RRM_CAPS_NEIGHBOR_REPORT BIT(1)
+#define WLAN_RRM_CAPS_BEACON_REPORT_PASSIVE BIT(4)
+#define WLAN_RRM_CAPS_BEACON_REPORT_ACTIVE BIT(5)
+#define WLAN_RRM_CAPS_BEACON_REPORT_TABLE BIT(6)
+
+/*
+ * IEEE P802.11-REVmc/D5.0 Table 9-81 - Measurement type definitions for
+ * measurement requests
+ */
+enum measure_type {
+	MEASURE_TYPE_RPI_HIST = 2,
+	MEASURE_TYPE_BEACON = 5,
+	MEASURE_TYPE_LCI = 8,
+	MEASURE_TYPE_LOCATION_CIVIC = 11,
+	MEASURE_TYPE_MEASURE_PAUSE = 255,
+};
+
+/* IEEE Std 802.11-2012 Table 8-71 - Location subject definition */
+enum location_subject {
+	LOCATION_SUBJECT_LOCAL = 0,
+	LOCATION_SUBJECT_REMOTE = 1,
+	LOCATION_SUBJECT_3RD_PARTY = 2,
+};
+
+/*
+ * IEEE P802.11-REVmc/D5.0 Table 9-94 - Optional subelement IDs for LCI request
+ */
+enum lci_req_subelem {
+	LCI_REQ_SUBELEM_AZIMUTH_REQ = 1,
+	LCI_REQ_SUBELEM_ORIGINATOR_MAC_ADDR = 2,
+	LCI_REQ_SUBELEM_TARGET_MAC_ADDR = 3,
+	LCI_REQ_SUBELEM_MAX_AGE = 4,
+};
 
 struct ieee80211_mgmt {
 	le16 frame_control;
@@ -406,6 +447,7 @@ struct ieee80211_mgmt {
 } STRUCT_PACKED;
 
 
+#define IEEE80211_MAX_MMPDU_SIZE 2304
 struct ieee80211_ht_capabilities {
 	le16 ht_capabilities_info;
 	u8 a_mpdu_params;
@@ -416,12 +458,14 @@ struct ieee80211_ht_capabilities {
 } STRUCT_PACKED;
 
 
+/* HT Operation element */
 struct ieee80211_ht_operation {
-	u8 control_chan;
-	u8 ht_param;
-	le16 operation_mode;
-	le16 stbc_param;
-	u8 basic_set[16];
+	u8 primary_chan;
+	/* Five octets of HT Operation Information */
+	u8 ht_param; /* B0..B7 */
+	le16 operation_mode; /* B8..B23 */
+	le16 param; /* B24..B39 */
+	u8 basic_mcs_set[16];
 } STRUCT_PACKED;
 
 #ifdef _MSC_VER
@@ -432,7 +476,9 @@ struct ieee80211_ht_operation {
 #define ERP_INFO_USE_PROTECTION BIT(1)
 #define ERP_INFO_BARKER_PREAMBLE_MODE BIT(2)
 
+#define OVERLAPPING_BSS_TRANS_DELAY_FACTOR 5
 
+/* HT Capabilities Info field within HT Capabilities element */
 #define HT_CAP_INFO_LDPC_CODING_CAP		((u16) BIT(0))
 #define HT_CAP_INFO_SUPP_CHANNEL_WIDTH_SET	((u16) BIT(1))
 #define HT_CAP_INFO_SMPS_MASK			((u16) (BIT(2) | BIT(3)))
@@ -450,79 +496,86 @@ struct ieee80211_ht_operation {
 #define HT_CAP_INFO_DELAYED_BA			((u16) BIT(10))
 #define HT_CAP_INFO_MAX_AMSDU_SIZE		((u16) BIT(11))
 #define HT_CAP_INFO_DSSS_CCK40MHZ		((u16) BIT(12))
-#define HT_CAP_INFO_PSMP_SUPP			((u16) BIT(13))
+/* B13 - Reserved (was PSMP support during P802.11n development) */
 #define HT_CAP_INFO_40MHZ_INTOLERANT		((u16) BIT(14))
 #define HT_CAP_INFO_LSIG_TXOP_PROTECT_SUPPORT	((u16) BIT(15))
 
-
+/* HT Extended Capabilities field within HT Capabilities element */
 #define EXT_HT_CAP_INFO_PCO			((u16) BIT(0))
+#define EXT_HT_CAP_INFO_PCO_TRANS_TIME_MASK	((u16) (BIT(1) | BIT(2)))
 #define EXT_HT_CAP_INFO_TRANS_TIME_OFFSET	1
+/* B3..B7 - Reserved */
+#define EXT_HT_CAP_INFO_MCS_FEEDBACK_MASK	((u16) (BIT(8) | BIT(9)))
 #define EXT_HT_CAP_INFO_MCS_FEEDBACK_OFFSET	8
-#define EXT_HT_CAP_INFO_HTC_SUPPORTED		((u16) BIT(10))
+#define EXT_HT_CAP_INFO_HTC_SUPPORT		((u16) BIT(10))
 #define EXT_HT_CAP_INFO_RD_RESPONDER		((u16) BIT(11))
+/* B12..B15 - Reserved */
 
+/* Transmit Beanforming Capabilities within HT Capabilities element */
+#define TX_BF_CAP_IMPLICIT_TXBF_RX_CAP ((u32) BIT(0))
+#define TX_BF_CAP_RX_STAGGERED_SOUNDING_CAP ((u32) BIT(1))
+#define TX_BF_CAP_TX_STAGGERED_SOUNDING_CAP ((u32) BIT(2))
+#define TX_BF_CAP_RX_NDP_CAP ((u32) BIT(3))
+#define TX_BF_CAP_TX_NDP_CAP ((u32) BIT(4))
+#define TX_BF_CAP_IMPLICIT_TX_BF_CAP ((u32) BIT(5))
+#define TX_BF_CAP_CALIBRATION_MASK ((u32) (BIT(6) | BIT(7))
+#define TX_BF_CAP_CALIB_OFFSET 6
+#define TX_BF_CAP_EXPLICIT_CSI_TXBF_CAP ((u32) BIT(8))
+#define TX_BF_CAP_EXPLICIT_NONCOMPR_STEERING_CAP ((u32) BIT(9))
+#define TX_BF_CAP_EXPLICIT_COMPR_STEERING_CAP ((u32) BIT(10))
+#define TX_BF_CAP_EXPLICIT_TX_BF_CSI_FEEDBACK_MASK ((u32) (BIT(10) | BIT(11)))
+#define TX_BF_CAP_EXPLICIT_BF_CSI_FEEDBACK_OFFSET 11
+#define TX_BF_CAP_EXPLICIT_UNCOMPR_STEERING_MATRIX_FEEDBACK_OFFSET 13
+#define TX_BF_CAP_EXPLICIT_COMPRESSED_STEERING_MATRIX_FEEDBACK_OFFSET 15
+#define TX_BF_CAP_MINIMAL_GROUPING_OFFSET 17
+#define TX_BF_CAP_CSI_NUM_BEAMFORMER_ANT_OFFSET 19
+#define TX_BF_CAP_UNCOMPRESSED_STEERING_MATRIX_BEAMFORMER_ANT_OFFSET 21
+#define TX_BF_CAP_COMPRESSED_STEERING_MATRIX_BEAMFORMER_ANT_OFFSET 23
+#define TX_BF_CAP_SCI_MAX_OF_ROWS_BEANFORMER_SUPPORTED_OFFSET 25
+#define TX_BF_CAP_CHANNEL_ESTIMATION_CAP_MASK ((u32) (BIT(27) | BIT(28)))
+#define TX_BF_CAP_CHANNEL_ESTIMATION_CAP_OFFSET 27
+/* B29..B31 - Reserved */
 
-#define TX_BEAMFORM_CAP_TXBF_CAP ((u32) BIT(0))
-#define TX_BEAMFORM_CAP_RX_STAGGERED_SOUNDING_CAP ((u32) BIT(1))
-#define TX_BEAMFORM_CAP_TX_STAGGERED_SOUNDING_CAP ((u32) BIT(2))
-#define TX_BEAMFORM_CAP_RX_ZLF_CAP ((u32) BIT(3))
-#define TX_BEAMFORM_CAP_TX_ZLF_CAP ((u32) BIT(4))
-#define TX_BEAMFORM_CAP_IMPLICIT_ZLF_CAP ((u32) BIT(5))
-#define TX_BEAMFORM_CAP_CALIB_OFFSET 6
-#define TX_BEAMFORM_CAP_EXPLICIT_CSI_TXBF_CAP ((u32) BIT(8))
-#define TX_BEAMFORM_CAP_EXPLICIT_UNCOMPR_STEERING_MATRIX_CAP ((u32) BIT(9))
-#define TX_BEAMFORM_CAP_EXPLICIT_BF_CSI_FEEDBACK_CAP ((u32) BIT(10))
-#define TX_BEAMFORM_CAP_EXPLICIT_BF_CSI_FEEDBACK_OFFSET 11
-#define TX_BEAMFORM_CAP_EXPLICIT_UNCOMPR_STEERING_MATRIX_FEEDBACK_OFFSET 13
-#define TX_BEAMFORM_CAP_EXPLICIT_COMPRESSED_STEERING_MATRIX_FEEDBACK_OFFSET 15
-#define TX_BEAMFORM_CAP_MINIMAL_GROUPING_OFFSET 17
-#define TX_BEAMFORM_CAP_CSI_NUM_BEAMFORMER_ANT_OFFSET 19
-#define TX_BEAMFORM_CAP_UNCOMPRESSED_STEERING_MATRIX_BEAMFORMER_ANT_OFFSET 21
-#define TX_BEAMFORM_CAP_COMPRESSED_STEERING_MATRIX_BEAMFORMER_ANT_OFFSET 23
-#define TX_BEAMFORM_CAP_SCI_MAX_OF_ROWS_BEANFORMER_SUPPORTED_OFFSET 25
-
-
-#define ASEL_CAPABILITY_ASEL_CAPABLE ((u8) BIT(0))
-#define ASEL_CAPABILITY_EXPLICIT_CSI_FEEDBACK_BASED_TX_AS_CAP ((u8) BIT(1))
-#define ASEL_CAPABILITY_ANT_INDICES_FEEDBACK_BASED_TX_AS_CAP ((u8) BIT(2))
-#define ASEL_CAPABILITY_EXPLICIT_CSI_FEEDBACK_CAP ((u8) BIT(3))
-#define ASEL_CAPABILITY_ANT_INDICES_FEEDBACK_CAP ((u8) BIT(4))
-#define ASEL_CAPABILITY_RX_AS_CAP ((u8) BIT(5))
-#define ASEL_CAPABILITY_TX_SOUND_PPDUS_CAP ((u8) BIT(6))
+/* ASEL Capability field within HT Capabilities element */
+#define ASEL_CAP_ASEL_CAPABLE ((u8) BIT(0))
+#define ASEL_CAP_EXPLICIT_CSI_FEEDBACK_BASED_TX_AS_CAP ((u8) BIT(1))
+#define ASEL_CAP_ANT_INDICES_FEEDBACK_BASED_TX_AS_CAP ((u8) BIT(2))
+#define ASEL_CAP_EXPLICIT_CSI_FEEDBACK_CAP ((u8) BIT(3))
+#define ASEL_CAP_ANT_INDICES_FEEDBACK_CAP ((u8) BIT(4))
+#define ASEL_CAP_RX_AS_CAP ((u8) BIT(5))
+#define ASEL_CAP_TX_SOUNDING_PPDUS_CAP ((u8) BIT(6))
+/* B7 - Reserved */
 
+/* First octet of HT Operation Information within HT Operation element */
 #define HT_INFO_HT_PARAM_SECONDARY_CHNL_OFF_MASK	((u8) BIT(0) | BIT(1))
 #define HT_INFO_HT_PARAM_SECONDARY_CHNL_ABOVE		((u8) BIT(0))
 #define HT_INFO_HT_PARAM_SECONDARY_CHNL_BELOW		((u8) BIT(0) | BIT(1))
-#define HT_INFO_HT_PARAM_REC_TRANS_CHNL_WIDTH		((u8) BIT(2))
+#define HT_INFO_HT_PARAM_STA_CHNL_WIDTH			((u8) BIT(2))
 #define HT_INFO_HT_PARAM_RIFS_MODE			((u8) BIT(3))
-#define HT_INFO_HT_PARAM_CTRL_ACCESS_ONLY		((u8) BIT(4))
-#define HT_INFO_HT_PARAM_SRV_INTERVAL_GRANULARITY	((u8) BIT(5))
+/* B4..B7 - Reserved */
 
+/* HT Protection (B8..B9 of HT Operation Information) */
+#define HT_PROT_NO_PROTECTION           0
+#define HT_PROT_NONMEMBER_PROTECTION    1
+#define HT_PROT_20MHZ_PROTECTION        2
+#define HT_PROT_NON_HT_MIXED            3
+/* Bits within ieee80211_ht_operation::operation_mode (BIT(0) maps to B8 in
+ * HT Operation Information) */
+#define HT_OPER_OP_MODE_HT_PROT_MASK ((u16) (BIT(0) | BIT(1))) /* B8..B9 */
+#define HT_OPER_OP_MODE_NON_GF_HT_STAS_PRESENT	((u16) BIT(2)) /* B10 */
+/* BIT(3), i.e., B11 in HT Operation Information field - Reserved */
+#define HT_OPER_OP_MODE_OBSS_NON_HT_STAS_PRESENT	((u16) BIT(4)) /* B12 */
+/* BIT(5)..BIT(15), i.e., B13..B23 - Reserved */
 
-#define OP_MODE_PURE                    0
-#define OP_MODE_MAY_BE_LEGACY_STAS      1
-#define OP_MODE_20MHZ_HT_STA_ASSOCED    2
-#define OP_MODE_MIXED                   3
-
-#define HT_INFO_OPERATION_MODE_OP_MODE_MASK	\
-		((le16) (0x0001 | 0x0002))
-#define HT_INFO_OPERATION_MODE_OP_MODE_OFFSET		0
-#define HT_INFO_OPERATION_MODE_NON_GF_DEVS_PRESENT	((u8) BIT(2))
-#define HT_INFO_OPERATION_MODE_TRANSMIT_BURST_LIMIT	((u8) BIT(3))
-#define HT_INFO_OPERATION_MODE_NON_HT_STA_PRESENT	((u8) BIT(4))
-
-#define HT_INFO_STBC_PARAM_DUAL_BEACON			((u16) BIT(6))
-#define HT_INFO_STBC_PARAM_DUAL_STBC_PROTECT		((u16) BIT(7))
-#define HT_INFO_STBC_PARAM_SECONDARY_BCN		((u16) BIT(8))
-#define HT_INFO_STBC_PARAM_LSIG_TXOP_PROTECT_ALLOWED	((u16) BIT(9))
-#define HT_INFO_STBC_PARAM_PCO_ACTIVE			((u16) BIT(10))
-#define HT_INFO_STBC_PARAM_PCO_PHASE			((u16) BIT(11))
-
-
-#define OUI_MICROSOFT 0x0050f2 /* Microsoft (also used in Wi-Fi specs)
-				* 00:50:F2 */
-#define WPA_IE_VENDOR_TYPE 0x0050f201
-#define WPS_IE_VENDOR_TYPE 0x0050f204
+/* Last two octets of HT Operation Information (BIT(0) = B24) */
+/* B24..B29 - Reserved */
+#define HT_OPER_PARAM_DUAL_BEACON			((u16) BIT(6))
+#define HT_OPER_PARAM_DUAL_CTS_PROTECTION		((u16) BIT(7))
+#define HT_OPER_PARAM_STBC_BEACON			((u16) BIT(8))
+#define HT_OPER_PARAM_LSIG_TXOP_PROT_FULL_SUPP		((u16) BIT(9))
+#define HT_OPER_PARAM_PCO_ACTIVE			((u16) BIT(10))
+#define HT_OPER_PARAM_PCO_PHASE				((u16) BIT(11))
+/* B36..B39 - Reserved */
 
 #define WMM_OUI_TYPE 2
 #define WMM_OUI_SUBTYPE_INFORMATION_ELEMENT 0
@@ -589,7 +642,7 @@ struct wmm_parameter_element {
 	u8 oui_type; /* 2 */
 	u8 oui_subtype; /* 1 */
 	u8 version; /* 1 for WMM version 1.0 */
-	u8 qos_info; /* AP/STA specif QoS info */
+	u8 qos_info; /* AP/STA specific QoS info */
 	u8 reserved; /* 0 */
 	struct wmm_ac_parameter ac[4]; /* AC_BE, AC_BK, AC_VI, AC_VO */
 
@@ -624,29 +677,260 @@ struct wmm_tspec_element {
 
 
 /* Access Categories / ACI to AC coding */
-enum {
+enum wmm_ac {
 	WMM_AC_BE = 0 /* Best Effort */,
 	WMM_AC_BK = 1 /* Background */,
 	WMM_AC_VI = 2 /* Video */,
-	WMM_AC_VO = 3 /* Voice */
+	WMM_AC_VO = 3 /* Voice */,
+	WMM_AC_NUM = 4
 };
 
+/* MBO v0.0_r19, 4.2.7: Transition Rejection Reason Code Attribute */
+/* Table 4-21: Transition Rejection Reason Code Field Values */
+enum mbo_transition_reject_reason {
+	MBO_TRANSITION_REJECT_REASON_UNSPECIFIED = 0,
+	MBO_TRANSITION_REJECT_REASON_FRAME_LOSS = 1,
+	MBO_TRANSITION_REJECT_REASON_DELAY = 2,
+	MBO_TRANSITION_REJECT_REASON_QOS_CAPACITY = 3,
+	MBO_TRANSITION_REJECT_REASON_RSSI = 4,
+	MBO_TRANSITION_REJECT_REASON_INTERFERENCE = 5,
+	MBO_TRANSITION_REJECT_REASON_SERVICES = 6,
+};
 
-#define OUI_BROADCOM 0x00904c /* Broadcom (Epigram) */
+/* IEEE 802.11v - WNM Action field values */
+enum wnm_action {
+	WNM_EVENT_REQ = 0,
+	WNM_EVENT_REPORT = 1,
+	WNM_DIAGNOSTIC_REQ = 2,
+	WNM_DIAGNOSTIC_REPORT = 3,
+	WNM_LOCATION_CFG_REQ = 4,
+	WNM_LOCATION_CFG_RESP = 5,
+	WNM_BSS_TRANS_MGMT_QUERY = 6,
+	WNM_BSS_TRANS_MGMT_REQ = 7,
+	WNM_BSS_TRANS_MGMT_RESP = 8,
+	WNM_FMS_REQ = 9,
+	WNM_FMS_RESP = 10,
+	WNM_COLLOCATED_INTERFERENCE_REQ = 11,
+	WNM_COLLOCATED_INTERFERENCE_REPORT = 12,
+	WNM_TFS_REQ = 13,
+	WNM_TFS_RESP = 14,
+	WNM_TFS_NOTIFY = 15,
+	WNM_SLEEP_MODE_REQ = 16,
+	WNM_SLEEP_MODE_RESP = 17,
+	WNM_TIM_BROADCAST_REQ = 18,
+	WNM_TIM_BROADCAST_RESP = 19,
+	WNM_QOS_TRAFFIC_CAPAB_UPDATE = 20,
+	WNM_CHANNEL_USAGE_REQ = 21,
+	WNM_CHANNEL_USAGE_RESP = 22,
+	WNM_DMS_REQ = 23,
+	WNM_DMS_RESP = 24,
+	WNM_TIMING_MEASUREMENT_REQ = 25,
+	WNM_NOTIFICATION_REQ = 26,
+	WNM_NOTIFICATION_RESP = 27
+};
 
-#define VENDOR_HT_CAPAB_OUI_TYPE 0x33 /* 00-90-4c:0x33 */
+/* IEEE 802.11v - BSS Transition Management Request - Request Mode */
+#define WNM_BSS_TM_REQ_PREF_CAND_LIST_INCLUDED BIT(0)
+#define WNM_BSS_TM_REQ_ABRIDGED BIT(1)
+#define WNM_BSS_TM_REQ_DISASSOC_IMMINENT BIT(2)
+#define WNM_BSS_TM_REQ_BSS_TERMINATION_INCLUDED BIT(3)
+#define WNM_BSS_TM_REQ_ESS_DISASSOC_IMMINENT BIT(4)
 
-/* cipher suite selectors */
-#define WLAN_CIPHER_SUITE_USE_GROUP	0x000FAC00
-#define WLAN_CIPHER_SUITE_WEP40		0x000FAC01
-#define WLAN_CIPHER_SUITE_TKIP		0x000FAC02
-/* reserved: 				0x000FAC03 */
-#define WLAN_CIPHER_SUITE_CCMP		0x000FAC04
-#define WLAN_CIPHER_SUITE_WEP104	0x000FAC05
-#define WLAN_CIPHER_SUITE_AES_CMAC	0x000FAC06
+/* IEEE Std 802.11-2012 - Table 8-253 */
+enum bss_trans_mgmt_status_code {
+	WNM_BSS_TM_ACCEPT = 0,
+	WNM_BSS_TM_REJECT_UNSPECIFIED = 1,
+	WNM_BSS_TM_REJECT_INSUFFICIENT_BEACON = 2,
+	WNM_BSS_TM_REJECT_INSUFFICIENT_CAPABITY = 3,
+	WNM_BSS_TM_REJECT_UNDESIRED = 4,
+	WNM_BSS_TM_REJECT_DELAY_REQUEST = 5,
+	WNM_BSS_TM_REJECT_STA_CANDIDATE_LIST_PROVIDED = 6,
+	WNM_BSS_TM_REJECT_NO_SUITABLE_CANDIDATES = 7,
+	WNM_BSS_TM_REJECT_LEAVING_ESS = 8
+};
 
-/* AKM suite selectors */
-#define WLAN_AKM_SUITE_8021X		0x000FAC01
-#define WLAN_AKM_SUITE_PSK		0x000FAC02
+/*
+ * IEEE P802.11-REVmc/D5.0 Table 9-150 - Optional subelement IDs for
+ * neighbor report
+ */
+#define WNM_NEIGHBOR_TSF                         1
+#define WNM_NEIGHBOR_CONDENSED_COUNTRY_STRING    2
+#define WNM_NEIGHBOR_BSS_TRANSITION_CANDIDATE    3
+#define WNM_NEIGHBOR_BSS_TERMINATION_DURATION    4
+#define WNM_NEIGHBOR_BEARING                     5
+#define WNM_NEIGHBOR_MEASUREMENT_REPORT         39
+#define WNM_NEIGHBOR_MEASUREMENT_PILOT          66
+#define WNM_NEIGHBOR_RRM_ENABLED_CAPABILITIES   70
+#define WNM_NEIGHBOR_MULTIPLE_BSSID             71
+
+struct tpc_report {
+	u8 eid;
+	u8 len;
+	u8 tx_power;
+	u8 link_margin;
+} STRUCT_PACKED;
+
+#define RRM_CAPABILITIES_IE_LEN 5
+
+/* IEEE Std 802.11-2012, 8.5.7.4 - Link Measurement Request frame format */
+struct rrm_link_measurement_request {
+	u8 dialog_token;
+	s8 tx_power;
+	s8 max_tp;
+	u8 variable[0];
+} STRUCT_PACKED;
+
+/* IEEE Std 802.11-2012, 8.5.7.5 - Link Measurement Report frame format */
+struct rrm_link_measurement_report {
+	u8 dialog_token;
+	struct tpc_report tpc;
+	u8 rx_ant_id;
+	u8 tx_ant_id;
+	u8 rcpi;
+	u8 rsni;
+	u8 variable[0];
+} STRUCT_PACKED;
+
+/* IEEE Std 802.11-2016, 9.4.2.21 - Measurement Request element */
+struct rrm_measurement_request_element {
+	u8 eid; /* Element ID */
+	u8 len; /* Length */
+	u8 token; /* Measurement Token */
+	u8 mode; /* Measurement Request Mode */
+	u8 type; /* Measurement Type */
+	u8 variable[0]; /* Measurement Request */
+} STRUCT_PACKED;
+
+/* IEEE Std 802.11-2016, Figure 9-148 - Measurement Request Mode field */
+#define MEASUREMENT_REQUEST_MODE_PARALLEL BIT(0)
+#define MEASUREMENT_REQUEST_MODE_ENABLE BIT(1)
+#define MEASUREMENT_REQUEST_MODE_REQUEST BIT(2)
+#define MEASUREMENT_REQUEST_MODE_REPORT BIT(3)
+#define MEASUREMENT_REQUEST_MODE_DURATION_MANDATORY BIT(4)
+
+/* IEEE Std 802.11-2016, 9.4.2.21.7 - Beacon request */
+struct rrm_measurement_beacon_request {
+	u8 oper_class; /* Operating Class */
+	u8 channel; /* Channel Number */
+	le16 rand_interval; /* Randomization Interval (in TUs) */
+	le16 duration; /* Measurement Duration (in TUs) */
+	u8 mode; /* Measurement Mode */
+	u8 bssid[ETH_ALEN]; /* BSSID */
+	u8 variable[0]; /* Optional Subelements */
+} STRUCT_PACKED;
+
+/*
+ * IEEE Std 802.11-2016, Table 9-87 - Measurement Mode definitions for Beacon
+ * request
+ */
+enum beacon_report_mode {
+	BEACON_REPORT_MODE_PASSIVE = 0,
+	BEACON_REPORT_MODE_ACTIVE = 1,
+	BEACON_REPORT_MODE_TABLE = 2,
+};
+
+/* IEEE Std 802.11-2016, Table 9-88 - Beacon Request subelement IDs */
+/* IEEE P802.11-REVmd/D2.0, Table 9-106 - Optional subelement IDs for
+ * Beacon request */
+#define WLAN_BEACON_REQUEST_SUBELEM_SSID	0
+#define WLAN_BEACON_REQUEST_SUBELEM_INFO	1 /* Beacon Reporting */
+#define WLAN_BEACON_REQUEST_SUBELEM_DETAIL	2 /* Reporting Detail */
+#define WLAN_BEACON_REQUEST_SUBELEM_REQUEST	10
+#define WLAN_BEACON_REQUEST_SUBELEM_AP_CHANNEL	51 /* AP Channel Report */
+#define WLAN_BEACON_REQUEST_SUBELEM_LAST_INDICATION	164
+#define WLAN_BEACON_REQUEST_SUBELEM_VENDOR	221
+
+/*
+ * IEEE Std 802.11-2016, Table 9-90 - Reporting Detail values
+ */
+enum beacon_report_detail {
+	/* No fixed-length fields or elements */
+	BEACON_REPORT_DETAIL_NONE = 0,
+	/* All fixed-length fields and any requested elements in the Request
+	 * element if present */
+	BEACON_REPORT_DETAIL_REQUESTED_ONLY = 1,
+	/* All fixed-length fields and elements (default, used when Reporting
+	 * Detail subelement is not included in a Beacon request) */
+	BEACON_REPORT_DETAIL_ALL_FIELDS_AND_ELEMENTS = 2,
+};
+
+/* IEEE Std 802.11-2016, 9.4.2.22 - Measurement Report element */
+struct rrm_measurement_report_element {
+	u8 eid; /* Element ID */
+	u8 len; /* Length */
+	u8 token; /* Measurement Token */
+	u8 mode; /* Measurement Report Mode */
+	u8 type; /* Measurement Type */
+	u8 variable[0]; /* Measurement Report */
+} STRUCT_PACKED;
+
+/* IEEE Std 802.11-2016, Figure 9-192 - Measurement Report Mode field */
+#define MEASUREMENT_REPORT_MODE_ACCEPT 0
+#define MEASUREMENT_REPORT_MODE_REJECT_LATE BIT(0)
+#define MEASUREMENT_REPORT_MODE_REJECT_INCAPABLE BIT(1)
+#define MEASUREMENT_REPORT_MODE_REJECT_REFUSED BIT(2)
+
+/* IEEE Std 802.11-2016, 9.4.2.22.7 - Beacon report */
+struct rrm_measurement_beacon_report {
+	u8 op_class; /* Operating Class */
+	u8 channel; /* Channel Number */
+	le64 start_time; /* Actual Measurement Start Time
+			  * (in TSF of the BSS requesting the measurement) */
+	le16 duration; /* in TUs */
+	u8 report_info; /* Reported Frame Information */
+	u8 rcpi; /* RCPI */
+	u8 rsni; /* RSNI */
+	u8 bssid[ETH_ALEN]; /* BSSID */
+	u8 antenna_id; /* Antenna ID */
+	le32 parent_tsf; /* Parent TSF */
+	u8 variable[0]; /* Optional Subelements */
+} STRUCT_PACKED;
+
+/* IEEE Std 802.11-2016, Table 9-112 - Beacon report Subelement IDs */
+/* IEEE P802.11-REVmd/D2.0, Table 9-130 - Optional subelement IDs for
+ * Beacon report */
+#define WLAN_BEACON_REPORT_SUBELEM_FRAME_BODY	1
+#define WLAN_BEACON_REPORT_SUBELEM_FRAME_BODY_FRAGMENT_ID	2
+#define WLAN_BEACON_REPORT_SUBELEM_LAST_INDICATION	164
+
+/* IEEE P802.11-REVmd/D2.0, Table 9-232 - Data field format of the
+ * Reported Frame Body Fragment ID subelement */
+#define REPORTED_FRAME_BODY_SUBELEM_LEN		4
+#define REPORTED_FRAME_BODY_MORE_FRAGMENTS	BIT(7)
+
+/* IEEE P802.11-REVmd/D2.0, 9.4.2.21.7 - Beacon report  */
+#define BEACON_REPORT_LAST_INDICATION_SUBELEM_LEN	3
+
+/* IEEE Std 802.11ac-2013, Annex C - dot11PHYType */
+enum phy_type {
+	PHY_TYPE_UNSPECIFIED = 0,
+	PHY_TYPE_FHSS = 1,
+	PHY_TYPE_DSSS = 2,
+	PHY_TYPE_IRBASEBAND = 3,
+	PHY_TYPE_OFDM = 4,
+	PHY_TYPE_HRDSSS = 5,
+	PHY_TYPE_ERP = 6,
+	PHY_TYPE_HT = 7,
+	PHY_TYPE_DMG = 8,
+	PHY_TYPE_VHT = 9,
+};
+
+/* IEEE P802.11-REVmc/D5.0, 9.4.2.37 - Neighbor Report element */
+/* BSSID Information Field */
+#define NEI_REP_BSSID_INFO_AP_NOT_REACH BIT(0)
+#define NEI_REP_BSSID_INFO_AP_UNKNOWN_REACH BIT(1)
+#define NEI_REP_BSSID_INFO_AP_REACHABLE (BIT(0) | BIT(1))
+#define NEI_REP_BSSID_INFO_SECURITY BIT(2)
+#define NEI_REP_BSSID_INFO_KEY_SCOPE BIT(3)
+#define NEI_REP_BSSID_INFO_SPECTRUM_MGMT BIT(4)
+#define NEI_REP_BSSID_INFO_QOS BIT(5)
+#define NEI_REP_BSSID_INFO_APSD BIT(6)
+#define NEI_REP_BSSID_INFO_RM BIT(7)
+#define NEI_REP_BSSID_INFO_DELAYED_BA BIT(8)
+#define NEI_REP_BSSID_INFO_IMM_BA BIT(9)
+#define NEI_REP_BSSID_INFO_MOBILITY_DOMAIN BIT(10)
+#define NEI_REP_BSSID_INFO_HT BIT(11)
+#define NEI_REP_BSSID_INFO_VHT BIT(12)
+#define NEI_REP_BSSID_INFO_FTM BIT(13)
 
 #endif /* IEEE802_11_DEFS_H */
diff --git a/components/wpa_supplicant/src/common/rrm.c b/components/wpa_supplicant/src/common/rrm.c
new file mode 100755
index 00000000..4dc49f47
--- /dev/null
+++ b/components/wpa_supplicant/src/common/rrm.c
@@ -0,0 +1,1162 @@
+/*
+ * wpa_supplicant - Radio Measurements
+ * Copyright (c) 2003-2016, Jouni Malinen <j@w1.fi>
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#include "utils/includes.h"
+
+#include "utils/common.h"
+#include "utils/bitfield.h"
+#include "common/ieee802_11_defs.h"
+#include "common/ieee802_11_common.h"
+#include "wpa_supplicant_i.h"
+#include "bss.h"
+#include "rrm.h"
+#include "scan.h"
+#include <sys/errno.h>
+#include "esp_supplicant/esp_common_i.h"
+
+static void wpas_rrm_neighbor_rep_timeout_handler(void *data, void *user_ctx)
+{
+	struct rrm_data *rrm = data;
+
+	if (!rrm->notify_neighbor_rep) {
+		wpa_printf(MSG_ERROR,
+			   "RRM: Unexpected neighbor report timeout");
+		return;
+	}
+
+	wpa_printf(MSG_DEBUG, "RRM: Notifying neighbor report - NONE");
+	rrm->notify_neighbor_rep(rrm->neighbor_rep_cb_ctx, NULL, 0);
+
+	rrm->notify_neighbor_rep = NULL;
+	rrm->neighbor_rep_cb_ctx = NULL;
+}
+
+
+/*
+ * wpas_rrm_reset - Clear and reset all RRM data in wpa_supplicant
+ * @wpa_s: Pointer to wpa_supplicant
+ */
+void wpas_rrm_reset(struct wpa_supplicant *wpa_s)
+{
+	wpa_s->rrm.rrm_used = 0;
+
+	eloop_cancel_timeout(wpas_rrm_neighbor_rep_timeout_handler, &wpa_s->rrm,
+			     NULL);
+	if (wpa_s->rrm.notify_neighbor_rep)
+		wpas_rrm_neighbor_rep_timeout_handler(&wpa_s->rrm, NULL);
+	wpa_s->rrm.next_neighbor_rep_token = 1;
+	wpas_clear_beacon_rep_data(wpa_s);
+}
+
+
+/*
+ * wpas_rrm_process_neighbor_rep - Handle incoming neighbor report
+ * @wpa_s: Pointer to wpa_supplicant
+ * @report: Neighbor report buffer, prefixed by a 1-byte dialog token
+ * @report_len: Length of neighbor report buffer
+ */
+void wpas_rrm_process_neighbor_rep(struct wpa_supplicant *wpa_s,
+				   const u8 *report, size_t report_len)
+{
+
+	wpa_hexdump(MSG_DEBUG, "RRM: New Neighbor Report", report, report_len);
+	if (report_len < 1)
+		return;
+
+	if (report[0] != wpa_s->rrm.next_neighbor_rep_token - 1) {
+		wpa_printf(MSG_DEBUG,
+			   "RRM: Discarding neighbor report with token %d (expected %d)",
+			   report[0], wpa_s->rrm.next_neighbor_rep_token - 1);
+		return;
+	}
+
+	eloop_cancel_timeout(wpas_rrm_neighbor_rep_timeout_handler, &wpa_s->rrm,
+			     NULL);
+
+	if (!wpa_s->rrm.notify_neighbor_rep) {
+		wpa_msg(wpa_s, MSG_INFO, "RRM: Unexpected neighbor report");
+		return;
+	}
+
+	wpa_printf(MSG_DEBUG, "RRM: Notifying neighbor report (token = %d)",
+		report[0]);
+	wpa_s->rrm.notify_neighbor_rep(wpa_s->rrm.neighbor_rep_cb_ctx,
+				       report, report_len);
+	wpa_s->rrm.notify_neighbor_rep = NULL;
+	wpa_s->rrm.neighbor_rep_cb_ctx = NULL;
+}
+
+
+#if defined(__CYGWIN__) || defined(CONFIG_NATIVE_WINDOWS)
+/* Workaround different, undefined for Windows, error codes used here */
+#ifndef ENOTCONN
+#define ENOTCONN -1
+#endif
+#ifndef EOPNOTSUPP
+#define EOPNOTSUPP -1
+#endif
+#ifndef ECANCELED
+#define ECANCELED -1
+#endif
+#endif
+
+/* Measurement Request element + Location Subject + Maximum Age subelement */
+#define MEASURE_REQUEST_LCI_LEN (3 + 1 + 4)
+/* Measurement Request element + Location Civic Request */
+#define MEASURE_REQUEST_CIVIC_LEN (3 + 5)
+
+
+/**
+ * wpas_rrm_send_neighbor_rep_request - Request a neighbor report from our AP
+ * @wpa_s: Pointer to wpa_supplicant
+ * @ssid: if not null, this is sent in the request. Otherwise, no SSID IE
+ *	  is sent in the request.
+ * @lci: if set, neighbor request will include LCI request
+ * @civic: if set, neighbor request will include civic location request
+ * @cb: Callback function to be called once the requested report arrives, or
+ *	timed out after RRM_NEIGHBOR_REPORT_TIMEOUT seconds.
+ *	In the former case, 'neighbor_rep' is a newly allocated wpabuf, and it's
+ *	the requester's responsibility to free it.
+ *	In the latter case NULL will be sent in 'neighbor_rep'.
+ * @cb_ctx: Context value to send the callback function
+ * Returns: 0 in case of success, negative error code otherwise
+ *
+ * In case there is a previous request which has not been answered yet, the
+ * new request fails. The caller may retry after RRM_NEIGHBOR_REPORT_TIMEOUT.
+ * Request must contain a callback function.
+ */
+int wpas_rrm_send_neighbor_rep_request(struct wpa_supplicant *wpa_s,
+				       const struct wpa_ssid_value *ssid,
+				       int lci, int civic,
+				       void (*cb)(void *ctx,
+						  const u8 *neighbor_rep, size_t len),
+				       void *cb_ctx)
+{
+	struct wpabuf *buf;
+
+	if (!(wpa_s->rrm_ie[0] & WLAN_RRM_CAPS_NEIGHBOR_REPORT)) {
+		wpa_printf(MSG_ERROR,
+			"RRM: No network support for Neighbor Report.");
+		return -EOPNOTSUPP;
+	}
+
+	/* Refuse if there's a live request */
+	if (wpa_s->rrm.notify_neighbor_rep) {
+		wpas_rrm_neighbor_rep_timeout_handler(&wpa_s->rrm, NULL);
+#if 0
+		wpa_dbg(wpa_s, MSG_DEBUG,
+			"RRM: Currently handling previous Neighbor Report.");
+		return -EBUSY;
+#endif
+	}
+
+	/* 3 = action category + action code + dialog token */
+	buf = wpabuf_alloc(3 + (ssid ? 2 + ssid->ssid_len : 0) +
+			   (lci ? 2 + MEASURE_REQUEST_LCI_LEN : 0) +
+			   (civic ? 2 + MEASURE_REQUEST_CIVIC_LEN : 0));
+	if (buf == NULL) {
+		wpa_dbg(wpa_s, MSG_DEBUG,
+			"RRM: Failed to allocate Neighbor Report Request");
+		return -ENOMEM;
+	}
+
+	wpa_dbg(wpa_s, MSG_DEBUG,
+		"RRM: Neighbor report request (for %s), token=%d",
+		(ssid ? wpa_ssid_txt(ssid->ssid, ssid->ssid_len) : ""),
+		wpa_s->rrm.next_neighbor_rep_token);
+
+	wpabuf_put_u8(buf, WLAN_ACTION_RADIO_MEASUREMENT);
+	wpabuf_put_u8(buf, WLAN_RRM_NEIGHBOR_REPORT_REQUEST);
+	wpabuf_put_u8(buf, wpa_s->rrm.next_neighbor_rep_token);
+	if (ssid) {
+		wpabuf_put_u8(buf, WLAN_EID_SSID);
+		wpabuf_put_u8(buf, ssid->ssid_len);
+		wpabuf_put_data(buf, ssid->ssid, ssid->ssid_len);
+	}
+
+	if (lci) {
+		/* IEEE P802.11-REVmc/D5.0 9.4.2.21 */
+		wpabuf_put_u8(buf, WLAN_EID_MEASURE_REQUEST);
+		wpabuf_put_u8(buf, MEASURE_REQUEST_LCI_LEN);
+
+		/*
+		 * Measurement token; nonzero number that is unique among the
+		 * Measurement Request elements in a particular frame.
+		 */
+		wpabuf_put_u8(buf, 1); /* Measurement Token */
+
+		/*
+		 * Parallel, Enable, Request, and Report bits are 0, Duration is
+		 * reserved.
+		 */
+		wpabuf_put_u8(buf, 0); /* Measurement Request Mode */
+		wpabuf_put_u8(buf, MEASURE_TYPE_LCI); /* Measurement Type */
+
+		/* IEEE P802.11-REVmc/D5.0 9.4.2.21.10 - LCI request */
+		/* Location Subject */
+		wpabuf_put_u8(buf, LOCATION_SUBJECT_REMOTE);
+
+		/* Optional Subelements */
+		/*
+		 * IEEE P802.11-REVmc/D5.0 Figure 9-170
+		 * The Maximum Age subelement is required, otherwise the AP can
+		 * send only data that was determined after receiving the
+		 * request. Setting it here to unlimited age.
+		 */
+		wpabuf_put_u8(buf, LCI_REQ_SUBELEM_MAX_AGE);
+		wpabuf_put_u8(buf, 2);
+		wpabuf_put_le16(buf, 0xffff);
+	}
+
+	if (civic) {
+		/* IEEE P802.11-REVmc/D5.0 9.4.2.21 */
+		wpabuf_put_u8(buf, WLAN_EID_MEASURE_REQUEST);
+		wpabuf_put_u8(buf, MEASURE_REQUEST_CIVIC_LEN);
+
+		/*
+		 * Measurement token; nonzero number that is unique among the
+		 * Measurement Request elements in a particular frame.
+		 */
+		wpabuf_put_u8(buf, 2); /* Measurement Token */
+
+		/*
+		 * Parallel, Enable, Request, and Report bits are 0, Duration is
+		 * reserved.
+		 */
+		wpabuf_put_u8(buf, 0); /* Measurement Request Mode */
+		/* Measurement Type */
+		wpabuf_put_u8(buf, MEASURE_TYPE_LOCATION_CIVIC);
+
+		/* IEEE P802.11-REVmc/D5.0 9.4.2.21.14:
+		 * Location Civic request */
+		/* Location Subject */
+		wpabuf_put_u8(buf, LOCATION_SUBJECT_REMOTE);
+		wpabuf_put_u8(buf, 0); /* Civic Location Type: IETF RFC 4776 */
+		/* Location Service Interval Units: Seconds */
+		wpabuf_put_u8(buf, 0);
+		/* Location Service Interval: 0 - Only one report is requested
+		 */
+		wpabuf_put_le16(buf, 0);
+		/* No optional subelements */
+	}
+
+	wpa_s->rrm.next_neighbor_rep_token++;
+
+	if (wpa_drv_send_action(wpa_s, 0, 0,
+				wpabuf_head(buf), wpabuf_len(buf), 0) < 0) {
+		wpa_dbg(wpa_s, MSG_DEBUG,
+			"RRM: Failed to send Neighbor Report Request");
+		wpabuf_free(buf);
+		return -ECANCELED;
+	}
+
+	wpa_s->rrm.neighbor_rep_cb_ctx = cb_ctx;
+	wpa_s->rrm.notify_neighbor_rep = cb;
+	eloop_register_timeout(RRM_NEIGHBOR_REPORT_TIMEOUT, 0,
+			       wpas_rrm_neighbor_rep_timeout_handler,
+			       &wpa_s->rrm, NULL);
+
+	wpabuf_free(buf);
+	return 0;
+}
+
+
+static int wpas_rrm_report_elem(struct wpabuf **buf, u8 token, u8 mode, u8 type,
+				const u8 *data, size_t data_len)
+{
+	if (wpabuf_resize(buf, 5 + data_len))
+		return -1;
+
+	wpabuf_put_u8(*buf, WLAN_EID_MEASURE_REPORT);
+	wpabuf_put_u8(*buf, 3 + data_len);
+	wpabuf_put_u8(*buf, token);
+	wpabuf_put_u8(*buf, mode);
+	wpabuf_put_u8(*buf, type);
+
+	if (data_len)
+		wpabuf_put_data(*buf, data, data_len);
+
+	return 0;
+}
+
+static void wpas_rrm_send_msr_report_mpdu(struct wpa_supplicant *wpa_s,
+					  const u8 *data, size_t len)
+{
+	struct wpabuf *report = wpabuf_alloc(len + 3);
+
+	if (!report)
+		return;
+
+	wpabuf_put_u8(report, WLAN_ACTION_RADIO_MEASUREMENT);
+	wpabuf_put_u8(report, WLAN_RRM_RADIO_MEASUREMENT_REPORT);
+	wpabuf_put_u8(report, wpa_s->rrm.token);
+
+	wpabuf_put_data(report, data, len);
+
+	if (wpa_drv_send_action(wpa_s, 0, 0,
+				wpabuf_head(report), wpabuf_len(report), 0)) {
+		wpa_printf(MSG_ERROR,
+			   "RRM: Radio measurement report failed: Sending Action frame failed");
+	}
+
+	wpabuf_free(report);
+}
+
+
+static int wpas_rrm_beacon_rep_update_last_frame(u8 *pos, size_t len)
+{
+	struct rrm_measurement_report_element *msr_rep;
+	u8 *end = pos + len;
+	u8 *msr_rep_end;
+	struct rrm_measurement_beacon_report *rep = NULL;
+	u8 *subelem;
+
+	/* Find the last beacon report element */
+	while (end - pos >= (int) sizeof(*msr_rep)) {
+		msr_rep = (struct rrm_measurement_report_element *) pos;
+		msr_rep_end = pos + msr_rep->len + 2;
+
+		if (msr_rep->eid != WLAN_EID_MEASURE_REPORT ||
+		    msr_rep_end > end) {
+			/* Should not happen. This indicates a bug. */
+			wpa_printf(MSG_ERROR,
+				   "RRM: non-measurement report element in measurement report frame");
+			return -1;
+		}
+
+		if (msr_rep->type == MEASURE_TYPE_BEACON)
+			rep = (struct rrm_measurement_beacon_report *)
+				msr_rep->variable;
+
+		pos += pos[1] + 2;
+	}
+
+	if (!rep)
+		return 0;
+
+	subelem = rep->variable;
+	while (subelem + 2 < msr_rep_end &&
+	       subelem[0] != WLAN_BEACON_REPORT_SUBELEM_LAST_INDICATION)
+		subelem += 2 + subelem[1];
+
+	if (subelem + 2 < msr_rep_end &&
+	    subelem[0] == WLAN_BEACON_REPORT_SUBELEM_LAST_INDICATION &&
+	    subelem[1] == 1 &&
+	    subelem + BEACON_REPORT_LAST_INDICATION_SUBELEM_LEN <= end)
+		subelem[2] = 1;
+
+	return 0;
+}
+
+
+static void wpas_rrm_send_msr_report(struct wpa_supplicant *wpa_s,
+				     struct wpabuf *buf)
+{
+	int len = wpabuf_len(buf);
+	u8 *pos = wpabuf_mhead_u8(buf), *next = pos;
+
+#define MPDU_REPORT_LEN (int) (IEEE80211_MAX_MMPDU_SIZE - IEEE80211_HDRLEN - 3)
+
+	while (len) {
+		int send_len = (len > MPDU_REPORT_LEN) ? next - pos : len;
+
+		if (send_len == len)
+			wpas_rrm_beacon_rep_update_last_frame(pos, len);
+
+		if (send_len == len ||
+		    (send_len + next[1] + 2) > MPDU_REPORT_LEN) {
+			wpas_rrm_send_msr_report_mpdu(wpa_s, pos, send_len);
+			len -= send_len;
+			pos = next;
+		}
+
+		if (len)
+			next += next[1] + 2;
+	}
+#undef MPDU_REPORT_LEN
+}
+
+static int wpas_get_op_chan_phy(int channel, const u8 *ies, size_t ies_len,
+				u8 *op_class, u8 *chan, u8 *phy_type)
+{
+	const u8 *ie;
+	int sec_chan = 0;
+	struct ieee80211_ht_operation *ht_oper = NULL;
+
+	ie = get_ie(ies, ies_len, WLAN_EID_HT_OPERATION);
+	if (ie && ie[1] >= 2) {
+		ht_oper = (struct ieee80211_ht_operation *) (ie + 2);
+
+		if (ht_oper->ht_param & HT_INFO_HT_PARAM_SECONDARY_CHNL_ABOVE)
+			sec_chan = 1;
+		else if (ht_oper->ht_param &
+			 HT_INFO_HT_PARAM_SECONDARY_CHNL_BELOW)
+			sec_chan = -1;
+	}
+
+	*op_class = get_operating_class(channel, sec_chan);
+
+	*phy_type = (sec_chan != 0) ? PHY_TYPE_HT : PHY_TYPE_ERP;
+
+	return 0;
+}
+
+
+static int wpas_beacon_rep_add_frame_body(struct bitfield *eids,
+					  enum beacon_report_detail detail,
+					  struct wpa_bss *bss, u8 *buf,
+					  size_t buf_len, u8 **ies_buf,
+					  size_t *ie_len, int add_fixed)
+{
+	u8 *ies = *ies_buf;
+	size_t ies_len = *ie_len;
+	u8 *pos = buf;
+	int rem_len;
+
+	rem_len = 255 - sizeof(struct rrm_measurement_beacon_report) -
+		sizeof(struct rrm_measurement_report_element) - 2 -
+		REPORTED_FRAME_BODY_SUBELEM_LEN;
+
+	if (detail > BEACON_REPORT_DETAIL_ALL_FIELDS_AND_ELEMENTS) {
+		wpa_printf(MSG_DEBUG,
+			   "Beacon Request: Invalid reporting detail: %d",
+			   detail);
+		return -1;
+	}
+
+	if (detail == BEACON_REPORT_DETAIL_NONE)
+		return 0;
+
+	/*
+	 * Minimal frame body subelement size: EID(1) + length(1) + TSF(8) +
+	 * beacon interval(2) + capabilities(2) = 14 bytes
+	 */
+	if (add_fixed && buf_len < 14)
+		return -1;
+
+	*pos++ = WLAN_BEACON_REPORT_SUBELEM_FRAME_BODY;
+	/* The length will be filled later */
+	pos++;
+
+	if (add_fixed) {
+		WPA_PUT_LE64(pos, bss->tsf);
+		pos += sizeof(bss->tsf);
+		WPA_PUT_LE16(pos, bss->beacon_int);
+		pos += 2;
+		WPA_PUT_LE16(pos, bss->caps);
+		pos += 2;
+	}
+
+	rem_len -= pos - buf;
+
+	/*
+	 * According to IEEE Std 802.11-2016, 9.4.2.22.7, if the reported frame
+	 * body subelement causes the element to exceed the maximum element
+	 * size, the subelement is truncated so that the last IE is a complete
+	 * IE. So even when required to report all IEs, add elements one after
+	 * the other and stop once there is no more room in the measurement
+	 * element.
+	 */
+	while (ies_len > 2 && 2U + ies[1] <= ies_len && rem_len > 0) {
+		if (detail == BEACON_REPORT_DETAIL_ALL_FIELDS_AND_ELEMENTS ||
+		    (eids && bitfield_is_set(eids, ies[0]))) {
+			u8 elen = ies[1];
+
+			if (2 + elen > buf + buf_len - pos ||
+			    2 + elen > rem_len)
+				break;
+
+			*pos++ = ies[0];
+			*pos++ = elen;
+			os_memcpy(pos, ies + 2, elen);
+			pos += elen;
+			rem_len -= 2 + elen;
+		}
+
+		ies_len -= 2 + ies[1];
+		ies += 2 + ies[1];
+	}
+
+	*ie_len = ies_len;
+	*ies_buf = ies;
+
+	/* Now the length is known */
+	buf[1] = pos - buf - 2;
+	return pos - buf;
+}
+
+
+static int wpas_add_beacon_rep_elem(struct beacon_rep_data *data,
+				    struct wpa_bss *bss,
+				    struct wpabuf **wpa_buf,
+				    struct rrm_measurement_beacon_report *rep,
+				    u8 **ie, size_t *ie_len, u8 idx)
+{
+	int ret;
+	u8 *buf, *pos;
+	u32 subelems_len = REPORTED_FRAME_BODY_SUBELEM_LEN +
+		(data->last_indication ?
+		 BEACON_REPORT_LAST_INDICATION_SUBELEM_LEN : 0);
+
+	/* Maximum element length: Beacon Report element + Reported Frame Body
+	 * subelement + all IEs of the reported Beacon frame + Reported Frame
+	 * Body Fragment ID subelement */
+	buf = os_malloc(sizeof(*rep) + 14 + *ie_len + subelems_len);
+	if (!buf)
+		return -1;
+
+	os_memcpy(buf, rep, sizeof(*rep));
+
+	ret = wpas_beacon_rep_add_frame_body(data->eids, data->report_detail,
+					     bss, buf + sizeof(*rep),
+					     14 + *ie_len, ie, ie_len,
+					     idx == 0);
+	if (ret < 0)
+		goto out;
+
+	pos = buf + ret + sizeof(*rep);
+	pos[0] = WLAN_BEACON_REPORT_SUBELEM_FRAME_BODY_FRAGMENT_ID;
+	pos[1] = 2;
+
+	/*
+	 * Only one Beacon Report Measurement is supported at a time, so
+	 * the Beacon Report ID can always be set to 1.
+	 */
+	pos[2] = 1;
+
+	/* Fragment ID Number (bits 0..6) and More Frame Body Fragments (bit 7)
+ */
+	pos[3] = idx;
+	if (data->report_detail != BEACON_REPORT_DETAIL_NONE && *ie_len)
+		pos[3] |= REPORTED_FRAME_BODY_MORE_FRAGMENTS;
+	else
+		pos[3] &= ~REPORTED_FRAME_BODY_MORE_FRAGMENTS;
+
+	pos += REPORTED_FRAME_BODY_SUBELEM_LEN;
+
+	if (data->last_indication) {
+		pos[0] = WLAN_BEACON_REPORT_SUBELEM_LAST_INDICATION;
+		pos[1] = 1;
+
+		/* This field will be updated later if this is the last frame */
+		pos[2] = 0;
+	}
+
+	ret = wpas_rrm_report_elem(wpa_buf, data->token,
+				   MEASUREMENT_REPORT_MODE_ACCEPT,
+				   MEASURE_TYPE_BEACON, buf,
+				   ret + sizeof(*rep) + subelems_len);
+out:
+	os_free(buf);
+	return ret;
+}
+
+
+static int wpas_add_beacon_rep(struct wpa_supplicant *wpa_s,
+			       struct wpabuf **wpa_buf, struct wpa_bss *bss,
+			       u64 start, u64 parent_tsf)
+{
+	struct beacon_rep_data *data = &wpa_s->beacon_rep_data;
+	u8 *ies = (u8 *) (bss + 1);
+	u8 *pos = ies;
+	size_t ies_len = bss->ie_len ? bss->ie_len : bss->beacon_ie_len;
+	struct rrm_measurement_beacon_report rep;
+	u8 idx = 0;
+
+	if (os_memcmp(data->bssid, broadcast_ether_addr, ETH_ALEN) != 0 &&
+	    os_memcmp(data->bssid, bss->bssid, ETH_ALEN) != 0)
+		return 0;
+
+	if (data->ssid_len &&
+	    (data->ssid_len != bss->ssid_len ||
+	     os_memcmp(data->ssid, bss->ssid, bss->ssid_len) != 0))
+		return 0;
+
+	if (wpas_get_op_chan_phy(bss->channel, ies, ies_len, &rep.op_class,
+				 &rep.channel, &rep.report_info) < 0)
+		return 0;
+
+	rep.channel = bss->channel;
+	rep.start_time = host_to_le64(start);
+	rep.duration = host_to_le16(data->scan_params.duration);
+	rep.rcpi = rssi_to_rcpi(bss->level);
+	rep.rsni = 255; /* 255 indicates that RSNI is not available */
+	os_memcpy(rep.bssid, bss->bssid, ETH_ALEN);
+	rep.antenna_id = 0; /* unknown */
+	rep.parent_tsf = host_to_le32(parent_tsf);
+
+	do {
+		int ret;
+
+		ret = wpas_add_beacon_rep_elem(data, bss, wpa_buf, &rep,
+					       &pos, &ies_len, idx++);
+		if (ret)
+			return ret;
+	} while (data->report_detail != BEACON_REPORT_DETAIL_NONE &&
+		 ies_len >= 2);
+
+	return 0;
+}
+
+
+static int wpas_beacon_rep_no_results(struct wpa_supplicant *wpa_s,
+				      struct wpabuf **buf)
+{
+	return wpas_rrm_report_elem(buf, wpa_s->beacon_rep_data.token,
+				    MEASUREMENT_REPORT_MODE_ACCEPT,
+				    MEASURE_TYPE_BEACON, NULL, 0);
+}
+
+
+static void wpas_beacon_rep_table(struct wpa_supplicant *wpa_s,
+				  struct wpabuf **buf)
+{
+	size_t i;
+
+	for (i = 0; i < wpa_s->last_scan_res_used; i++) {
+		if (wpas_add_beacon_rep(wpa_s, buf, wpa_s->last_scan_res[i],
+					0, 0) < 0)
+			break;
+	}
+
+	if (!(*buf))
+		wpas_beacon_rep_no_results(wpa_s, buf);
+
+	wpa_hexdump_buf(MSG_DEBUG, "RRM: Radio Measurement report", *buf);
+}
+
+
+static void wpas_rrm_refuse_request(struct wpa_supplicant *wpa_s)
+{
+	if (!is_multicast_ether_addr(wpa_s->rrm.dst_addr)) {
+		struct wpabuf *buf = NULL;
+
+		if (wpas_rrm_report_elem(&buf, wpa_s->beacon_rep_data.token,
+					 MEASUREMENT_REPORT_MODE_REJECT_REFUSED,
+					 MEASURE_TYPE_BEACON, NULL, 0)) {
+			wpa_printf(MSG_ERROR, "RRM: Memory allocation failed");
+			wpabuf_free(buf);
+			return;
+		}
+
+		wpas_rrm_send_msr_report(wpa_s, buf);
+		wpabuf_free(buf);
+	}
+
+	wpas_clear_beacon_rep_data(wpa_s);
+}
+
+
+static void wpas_rrm_scan_timeout(void *eloop_ctx, void *timeout_ctx)
+{
+	struct wpa_supplicant *wpa_s = eloop_ctx;
+	struct wpa_driver_scan_params *params =
+		&wpa_s->beacon_rep_data.scan_params;
+	u16 prev_duration = params->duration;
+
+	if (!wpa_s->current_bss)
+		return;
+
+	os_get_reltime(&wpa_s->beacon_rep_scan);
+	wpa_s->scan_reason = REASON_RRM_BEACON_REPORT;
+	if (wpa_supplicant_trigger_scan(wpa_s, params) < 0)
+		wpas_rrm_refuse_request(wpa_s);
+	params->duration = prev_duration;
+}
+
+
+static int wpas_rm_handle_beacon_req_subelem(struct wpa_supplicant *wpa_s,
+					     struct beacon_rep_data *data,
+					     u8 sid, u8 slen, const u8 *subelem)
+{
+	u8 report_info, i;
+
+	switch (sid) {
+	case WLAN_BEACON_REQUEST_SUBELEM_SSID:
+		if (!slen) {
+			wpa_printf(MSG_DEBUG,
+				   "SSID subelement with zero length - wildcard SSID");
+			break;
+		}
+
+		if (slen > SSID_MAX_LEN) {
+			wpa_printf(MSG_DEBUG,
+				   "Invalid SSID subelement length: %u", slen);
+			return -1;
+		}
+
+		data->ssid_len = slen;
+		os_memcpy(data->ssid, subelem, data->ssid_len);
+		break;
+	case WLAN_BEACON_REQUEST_SUBELEM_INFO:
+		if (slen != 2) {
+			wpa_printf(MSG_DEBUG,
+				   "Invalid reporting information subelement length: %u",
+				   slen);
+			return -1;
+		}
+
+		report_info = subelem[0];
+		if (report_info != 0) {
+			wpa_printf(MSG_DEBUG,
+				   "reporting information=%u is not supported",
+				   report_info);
+			return 0;
+		}
+		break;
+	case WLAN_BEACON_REQUEST_SUBELEM_DETAIL:
+		if (slen != 1) {
+			wpa_printf(MSG_DEBUG,
+				   "Invalid reporting detail subelement length: %u",
+				   slen);
+			return -1;
+		}
+
+		data->report_detail = subelem[0];
+		if (data->report_detail >
+		    BEACON_REPORT_DETAIL_ALL_FIELDS_AND_ELEMENTS) {
+			wpa_printf(MSG_DEBUG, "Invalid reporting detail: %u",
+				   subelem[0]);
+			return -1;
+		}
+
+		break;
+	case WLAN_BEACON_REQUEST_SUBELEM_REQUEST:
+		if (data->report_detail !=
+		    BEACON_REPORT_DETAIL_REQUESTED_ONLY) {
+			wpa_printf(MSG_DEBUG,
+				   "Beacon request: request subelement is present but report detail is %u",
+				   data->report_detail);
+			return -1;
+		}
+
+		if (!slen) {
+			wpa_printf(MSG_DEBUG,
+				   "Invalid request subelement length: %u",
+				   slen);
+			return -1;
+		}
+
+		if (data->eids) {
+			wpa_printf(MSG_DEBUG,
+				   "Beacon Request: Request subelement appears more than once");
+			return -1;
+		}
+
+		data->eids = bitfield_alloc(255);
+		if (!data->eids) {
+			wpa_printf(MSG_DEBUG, "Failed to allocate EIDs bitmap");
+			return -1;
+		}
+
+		for (i = 0; i < slen; i++)
+			bitfield_set(data->eids, subelem[i]);
+		break;
+	case WLAN_BEACON_REQUEST_SUBELEM_AP_CHANNEL:
+		/* Skip - it will be processed when freqs are added */
+		break;
+	case WLAN_BEACON_REQUEST_SUBELEM_LAST_INDICATION:
+		if (slen != 1) {
+			wpa_printf(MSG_DEBUG,
+				   "Beacon request: Invalid last indication request subelement length: %u",
+				   slen);
+			return -1;
+		}
+
+		data->last_indication = subelem[0];
+		break;
+	default:
+		wpa_printf(MSG_DEBUG,
+			   "Beacon request: Unknown subelement id %u", sid);
+		break;
+	}
+
+	return 1;
+}
+
+
+/**
+ * Returns 0 if the next element can be processed, 1 if some operation was
+ * triggered, and -1 if processing failed (i.e., the element is in invalid
+ * format or an internal error occurred).
+ */
+static int
+wpas_rm_handle_beacon_req(struct wpa_supplicant *wpa_s,
+			  u8 elem_token, int duration_mandatory,
+			  const struct rrm_measurement_beacon_request *req,
+			  size_t len, struct wpabuf **buf)
+{
+	struct beacon_rep_data *data = &wpa_s->beacon_rep_data;
+	struct wpa_driver_scan_params *params = &data->scan_params;
+	const u8 *subelems;
+	size_t elems_len;
+	u16 rand_interval;
+	u32 interval_usec;
+	u32 _rand;
+	int ret = 0, res;
+	u8 reject_mode;
+
+	if (len < sizeof(*req))
+		return -1;
+
+	if (req->mode != BEACON_REPORT_MODE_PASSIVE &&
+	    req->mode != BEACON_REPORT_MODE_ACTIVE &&
+	    req->mode != BEACON_REPORT_MODE_TABLE)
+		return 0;
+
+	subelems = req->variable;
+	elems_len = len - sizeof(*req);
+	rand_interval = le_to_host16(req->rand_interval);
+
+	os_memset(data, 0, sizeof(*data));
+
+	data->token = elem_token;
+
+	/* default reporting detail is all fixed length fields and all
+	 * elements */
+	data->report_detail = BEACON_REPORT_DETAIL_ALL_FIELDS_AND_ELEMENTS;
+	os_memcpy(data->bssid, req->bssid, ETH_ALEN);
+
+	while (elems_len >= 2) {
+		if (subelems[1] > elems_len - 2) {
+			wpa_printf(MSG_DEBUG,
+				   "Beacon Request: Truncated subelement");
+			ret = -1;
+			goto out;
+		}
+
+		res = wpas_rm_handle_beacon_req_subelem(
+			wpa_s, data, subelems[0], subelems[1], &subelems[2]);
+		if (res < 0) {
+			ret = res;
+			goto out;
+		} else if (!res) {
+			reject_mode = MEASUREMENT_REPORT_MODE_REJECT_INCAPABLE;
+			goto out_reject;
+		}
+
+		elems_len -= 2 + subelems[1];
+		subelems += 2 + subelems[1];
+	}
+
+	if (req->mode == BEACON_REPORT_MODE_TABLE) {
+		wpas_beacon_rep_table(wpa_s, buf);
+		goto out;
+	}
+	params->channel = req->channel;
+	params->duration = le_to_host16(req->duration);
+	params->duration_mandatory = duration_mandatory;
+	if (!params->duration) {
+		wpa_printf(MSG_DEBUG, "Beacon request: Duration is 0");
+		ret = -1;
+		goto out;
+	}
+
+	if (data->ssid_len) {
+		params->ssids[params->num_ssids].ssid = data->ssid;
+		params->ssids[params->num_ssids++].ssid_len = data->ssid_len;
+	}
+
+	if (os_get_random((u8 *) &_rand, sizeof(_rand)) < 0)
+		_rand = os_random();
+	interval_usec = (_rand % (rand_interval + 1)) * 1024;
+	os_sleep(0, interval_usec);
+	wpas_rrm_scan_timeout(wpa_s, NULL);
+	return 1;
+out_reject:
+	if (!is_multicast_ether_addr(wpa_s->rrm.dst_addr) &&
+	    wpas_rrm_report_elem(buf, elem_token, reject_mode,
+				 MEASURE_TYPE_BEACON, NULL, 0) < 0) {
+		wpa_printf(MSG_DEBUG, "RRM: Failed to add report element");
+		ret = -1;
+	}
+out:
+	wpas_clear_beacon_rep_data(wpa_s);
+	return ret;
+}
+
+
+static int
+wpas_rrm_handle_msr_req_element(
+	struct wpa_supplicant *wpa_s,
+	const struct rrm_measurement_request_element *req,
+	struct wpabuf **buf)
+{
+	int duration_mandatory;
+
+	wpa_printf(MSG_DEBUG, "Measurement request type %d token %d",
+		   req->type, req->token);
+
+	if (req->mode & MEASUREMENT_REQUEST_MODE_ENABLE) {
+		/* Enable bit is not supported for now */
+		wpa_printf(MSG_DEBUG, "RRM: Enable bit not supported, ignore");
+		return 0;
+	}
+
+	if ((req->mode & MEASUREMENT_REQUEST_MODE_PARALLEL) &&
+	    req->type > MEASURE_TYPE_RPI_HIST) {
+		/* Parallel measurements are not supported for now */
+		wpa_printf(MSG_DEBUG,
+			   "RRM: Parallel measurements are not supported, reject");
+		goto reject;
+	}
+
+	duration_mandatory =
+		!!(req->mode & MEASUREMENT_REQUEST_MODE_DURATION_MANDATORY);
+
+	switch (req->type) {
+	case MEASURE_TYPE_BEACON:
+		return wpas_rm_handle_beacon_req(wpa_s, req->token,
+						 duration_mandatory,
+						 (const void *) req->variable,
+						 req->len - 3, buf);
+	default:
+		wpa_printf(MSG_INFO,
+			   "RRM: Unsupported radio measurement type %u",
+			   req->type);
+		break;
+	}
+
+reject:
+	if (!is_multicast_ether_addr(wpa_s->rrm.dst_addr) &&
+	    wpas_rrm_report_elem(buf, req->token,
+				 MEASUREMENT_REPORT_MODE_REJECT_INCAPABLE,
+				 req->type, NULL, 0) < 0) {
+		wpa_printf(MSG_DEBUG, "RRM: Failed to add report element");
+		return -1;
+	}
+
+	return 0;
+}
+
+
+static struct wpabuf *
+wpas_rrm_process_msr_req_elems(struct wpa_supplicant *wpa_s, const u8 *pos,
+			       size_t len)
+{
+	struct wpabuf *buf = NULL;
+
+	while (len) {
+		const struct rrm_measurement_request_element *req;
+		int res;
+
+		if (len < 2) {
+			wpa_printf(MSG_DEBUG, "RRM: Truncated element");
+			goto out;
+		}
+
+		req = (const struct rrm_measurement_request_element *) pos;
+		if (req->eid != WLAN_EID_MEASURE_REQUEST) {
+			wpa_printf(MSG_DEBUG,
+				   "RRM: Expected Measurement Request element, but EID is %u",
+				   req->eid);
+			printf("len is %d", len);
+			goto out;
+		}
+
+		if (req->len < 3) {
+			wpa_printf(MSG_DEBUG, "RRM: Element length too short");
+			goto out;
+		}
+
+		if (req->len > len - 2) {
+			wpa_printf(MSG_DEBUG, "RRM: Element length too long");
+			goto out;
+		}
+
+		res = wpas_rrm_handle_msr_req_element(wpa_s, req, &buf);
+		if (res < 0)
+			goto out;
+
+		pos += req->len + 2;
+		len -= req->len + 2;
+	}
+
+	return buf;
+
+out:
+	wpabuf_free(buf);
+	return NULL;
+}
+
+
+void wpas_rrm_handle_radio_measurement_request(struct wpa_supplicant *wpa_s,
+					       const u8 *src, const u8 *dst,
+					       const u8 *frame, size_t len)
+{
+	struct wpabuf *report;
+
+	if (!wpa_s->rrm.rrm_used) {
+		wpa_printf(MSG_INFO,
+			   "RRM: Ignoring radio measurement request: Not RRM network");
+		return;
+	}
+
+	if (len < 3) {
+		wpa_printf(MSG_INFO,
+			   "RRM: Ignoring too short radio measurement request");
+		return;
+	}
+
+	wpa_s->rrm.token = *frame;
+	os_memcpy(wpa_s->rrm.dst_addr, dst, ETH_ALEN);
+
+	/* Number of repetitions is not supported */
+
+	report = wpas_rrm_process_msr_req_elems(wpa_s, frame + 3, len - 3);
+	if (!report)
+		return;
+
+	wpas_rrm_send_msr_report(wpa_s, report);
+	wpabuf_free(report);
+}
+
+
+void wpas_rrm_handle_link_measurement_request(struct wpa_supplicant *wpa_s,
+					      const u8 *src,
+					      const u8 *frame, size_t len,
+					      int rssi)
+{
+	struct wpabuf *buf;
+	const struct rrm_link_measurement_request *req;
+	struct rrm_link_measurement_report report;
+
+	req = (const struct rrm_link_measurement_request *) frame;
+	if (len < sizeof(*req)) {
+		wpa_printf(MSG_INFO,
+			   "RRM: Link measurement report failed. Request too short");
+		return;
+	}
+
+	os_memset(&report, 0, sizeof(report));
+	report.dialog_token = req->dialog_token;
+	report.tpc.eid = WLAN_EID_TPC_REPORT;
+	report.tpc.len = 2;
+	/* Note: The driver is expected to update report.tpc.tx_power and
+	 * report.tpc.link_margin subfields when sending out this frame.
+	 * Similarly, the driver would need to update report.rx_ant_id and
+	 * report.tx_ant_id subfields. */
+
+#ifdef ESPRESSIF_USE
+	esp_get_tx_power(&report.tpc.tx_power);
+	/* Minimum RSSI = -96 dbm */
+	report.tpc.link_margin = rssi + 96;
+#endif
+	report.rsni = 255; /* 255 indicates that RSNI is not available */
+	report.rcpi = rssi_to_rcpi(rssi);
+
+	/* action_category + action_code */
+	buf = wpabuf_alloc(2 + sizeof(report));
+	if (buf == NULL) {
+		wpa_printf(MSG_ERROR,
+			   "RRM: Link measurement report failed. Buffer allocation failed");
+		return;
+	}
+
+	wpabuf_put_u8(buf, WLAN_ACTION_RADIO_MEASUREMENT);
+	wpabuf_put_u8(buf, WLAN_RRM_LINK_MEASUREMENT_REPORT);
+	wpabuf_put_data(buf, &report, sizeof(report));
+	wpa_hexdump_buf(MSG_DEBUG, "RRM: Link measurement report", buf);
+
+	if (wpa_drv_send_action(wpa_s, 0, 0,
+				wpabuf_head(buf), wpabuf_len(buf), 0)) {
+		wpa_printf(MSG_ERROR,
+			   "RRM: Link measurement report failed. Send action failed");
+	}
+	wpabuf_free(buf);
+}
+
+
+int wpas_beacon_rep_scan_process(struct wpa_supplicant *wpa_s,
+				 u64 scan_start_tsf)
+{
+	size_t i = 0;
+	struct wpabuf *buf = NULL;
+	struct wpa_bss *bss = NULL;
+
+	if (!wpa_s->beacon_rep_data.token)
+		return 0;
+
+	if (!wpa_s->current_bss)
+		goto out;
+
+	wpa_printf(MSG_DEBUG, "RRM: TSF  current BSS: " MACSTR,
+		   MAC2STR(wpa_s->current_bss->bssid));
+
+	for (i = 0; i < wpa_s->num_bss; i++) {
+		bss = wpa_bss_get_next_bss(wpa_s, bss);
+
+		if (!bss)
+			continue;
+
+		if (wpa_s->beacon_rep_data.scan_params.channel &&
+				bss->channel != wpa_s->beacon_rep_data.scan_params.channel)
+			continue;
+		/* We flush scan results before issuing scan again */
+#ifndef ESPRESSIF_USE
+		/*
+		 * Don't report results that were not received during the
+		 * current measurement.
+		 */
+		if (scan_start_tsf <
+			   scan_res->res[i]->parent_tsf) {
+			struct os_reltime update_time, diff;
+
+			/* For now, allow 7 ms older results due to some
+			 * unknown issue with cfg80211 BSS table updates during
+			 * a scan with the current BSS.
+			 * TODO: Fix this more properly to avoid having to have
+			 * this type of hacks in place. */
+			calculate_update_time(&scan_res->fetch_time,
+					      scan_res->res[i]->age,
+					      &update_time);
+			os_reltime_sub(&wpa_s->beacon_rep_scan,
+				       &update_time, &diff);
+			if (os_reltime_before(&update_time,
+					      &wpa_s->beacon_rep_scan) &&
+			    (diff.sec || diff.usec >= 8000)) {
+				wpa_printf(MSG_ERROR,
+					   "RRM: Ignore scan result for " MACSTR
+					   " due to old update (age(ms) %u, calculated age %u.%06u seconds)",
+					   MAC2STR(scan_res->res[i]->bssid),
+					   scan_res->res[i]->age,
+					   (unsigned int) diff.sec,
+					   (unsigned int) diff.usec);
+				continue;
+			}
+		} else {
+			continue;
+		}
+#endif
+		if (wpas_add_beacon_rep(wpa_s, &buf, bss, scan_start_tsf,
+					bss->parent_tsf) < 0)
+			break;
+	}
+
+	if (!buf && wpas_beacon_rep_no_results(wpa_s, &buf))
+		goto out;
+
+	wpa_hexdump_buf(MSG_DEBUG, "RRM: Radio Measurement report", buf);
+
+	wpas_rrm_send_msr_report(wpa_s, buf);
+	wpabuf_free(buf);
+
+out:
+	wpas_clear_beacon_rep_data(wpa_s);
+	return 1;
+}
+
+
+void wpas_clear_beacon_rep_data(struct wpa_supplicant *wpa_s)
+{
+	struct beacon_rep_data *data = &wpa_s->beacon_rep_data;
+
+	eloop_cancel_timeout(wpas_rrm_scan_timeout, wpa_s, NULL);
+	bitfield_free(data->eids);
+	os_memset(data, 0, sizeof(*data));
+}
diff --git a/components/wpa_supplicant/src/common/rrm.h b/components/wpa_supplicant/src/common/rrm.h
new file mode 100755
index 00000000..a981d7c0
--- /dev/null
+++ b/components/wpa_supplicant/src/common/rrm.h
@@ -0,0 +1,30 @@
+
+#ifndef RRM_H
+#define RRM_H
+
+#include "common/defs.h"
+#include "utils/list.h"
+#include "esp_wifi_types.h"
+#define RRM_NEIGHBOR_REPORT_TIMEOUT 1 /* 1 second for AP to send a report */
+
+void wpas_rrm_reset(struct wpa_supplicant *wpa_s);
+void wpas_rrm_process_neighbor_rep(struct wpa_supplicant *wpa_s,
+				   const u8 *report, size_t report_len);
+int wpas_rrm_send_neighbor_rep_request(struct wpa_supplicant *wpa_s,
+				       const struct wpa_ssid_value *ssid,
+				       int lci, int civic,
+				       void (*cb)(void *ctx,
+						  const u8 *neighbor_rep, size_t len),
+				       void *cb_ctx);
+void wpas_rrm_handle_radio_measurement_request(struct wpa_supplicant *wpa_s,
+					       const u8 *src, const u8 *dst,
+					       const u8 *frame, size_t len);
+void wpas_rrm_handle_link_measurement_request(struct wpa_supplicant *wpa_s,
+					      const u8 *src,
+					      const u8 *frame, size_t len,
+					      int rssi);
+int wpas_beacon_rep_scan_process(struct wpa_supplicant *wpa_s,
+				 u64 scan_start_tsf);
+void wpas_clear_beacon_rep_data(struct wpa_supplicant *wpa_s);
+
+#endif
diff --git a/components/wpa_supplicant/src/common/scan.c b/components/wpa_supplicant/src/common/scan.c
new file mode 100755
index 00000000..3e417494
--- /dev/null
+++ b/components/wpa_supplicant/src/common/scan.c
@@ -0,0 +1,95 @@
+/*
+ * WPA Supplicant - Scanning
+ * Copyright (c) 2003-2019, Jouni Malinen <j@w1.fi>
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#include "utils/includes.h"
+
+#include "utils/common.h"
+#include "common/ieee802_11_defs.h"
+#include "config.h"
+#include "wpa_supplicant_i.h"
+#include "drivers/driver.h"
+#include "common/ieee802_11_common.h"
+#include "bss.h"
+#include "scan.h"
+
+/**
+ * wpa_supplicant_req_scan - Schedule a scan for neighboring access points
+ * @wpa_s: Pointer to wpa_supplicant data
+ * @sec: Number of seconds after which to scan
+ * @usec: Number of microseconds after which to scan
+ *
+ * This function is used to schedule a scan for neighboring access points after
+ * the specified time.
+ */
+void wpa_supplicant_req_scan(struct wpa_supplicant *wpa_s, int sec, int usec)
+{
+	int ret;
+	struct wpa_driver_scan_params *params;
+
+	os_sleep(sec, usec);
+
+	if (wpa_s->scanning) {
+		wpa_dbg(wpa_s, MSG_DEBUG, "Already scanning - Return");
+		return;
+	}
+	params = os_zalloc(sizeof(*params));
+
+	if (wpa_s->wnm_mode) {
+		/* Use the same memory */
+		params->ssids[0].ssid = wpa_s->current_bss->ssid;
+		params->ssids[0].ssid_len = wpa_s->current_bss->ssid_len;
+		params->num_ssids = 1;
+	}
+	if (!is_zero_ether_addr(wpa_s->next_scan_bssid)) {
+		/* Use the same memory */
+		params->bssid = wpa_s->next_scan_bssid;
+	}
+
+	if (wpa_s->next_scan_chan)
+		params->channel = wpa_s->next_scan_chan;
+
+	wpa_s->scan_reason = REASON_WNM_BSS_TRANS_REQ;
+	ret = wpa_supplicant_trigger_scan(wpa_s, params);
+
+	os_free(params);
+
+	if (ret < 0) {
+		wpa_printf(MSG_ERROR, "Failed to issue scan - Return");
+		return;
+	}
+}
+
+/**
+ * wpa_scan_get_ie - Fetch a specified information element from a scan result
+ * @res: Scan result entry
+ * @ie: Information element identitifier (WLAN_EID_*)
+ * Returns: Pointer to the information element (id field) or %NULL if not found
+ *
+ * This function returns the first matching information element in the scan
+ * result.
+ */
+const u8 * wpa_scan_get_ie(const struct wpa_scan_res *res, u8 ie)
+{
+	size_t ie_len = res->ie_len;
+
+	/* Use the Beacon frame IEs if res->ie_len is not available */
+	if (!ie_len)
+		ie_len = res->beacon_ie_len;
+
+	return get_ie((const u8 *) (res + 1), ie_len, ie);
+}
+
+void wpa_scan_free_params(struct wpa_driver_scan_params *params)
+{
+	if (params == NULL)
+		return;
+
+	os_free((u8 *) params->bssid);
+
+	os_free(params);
+}
diff --git a/components/wpa_supplicant/src/common/scan.h b/components/wpa_supplicant/src/common/scan.h
new file mode 100755
index 00000000..c5f9e254
--- /dev/null
+++ b/components/wpa_supplicant/src/common/scan.h
@@ -0,0 +1,25 @@
+/*
+ * WPA Supplicant - Scanning
+ * Copyright (c) 2003-2014, Jouni Malinen <j@w1.fi>
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#ifndef SCAN_H
+#define SCAN_H
+
+/*
+ * Noise floor values to use when we have signal strength
+ * measurements, but no noise floor measurements. These values were
+ * measured in an office environment with many APs.
+ */
+#define DEFAULT_NOISE_FLOOR_2GHZ (-89)
+
+struct wpa_driver_scan_params;
+void wpa_supplicant_req_scan(struct wpa_supplicant *wpa_s, int sec, int usec);
+int wpa_supplicant_trigger_scan(struct wpa_supplicant *wpa_s,
+				struct wpa_driver_scan_params *params);
+const u8 * wpa_scan_get_ie(const struct wpa_scan_res *res, u8 ie);
+void wpa_scan_free_params(struct wpa_driver_scan_params *params);
+#endif /* SCAN_H */
diff --git a/components/wpa_supplicant/src/common/wnm_sta.c b/components/wpa_supplicant/src/common/wnm_sta.c
new file mode 100755
index 00000000..f238c206
--- /dev/null
+++ b/components/wpa_supplicant/src/common/wnm_sta.c
@@ -0,0 +1,966 @@
+/*
+ * wpa_supplicant - WNM
+ * Copyright (c) 2011-2013, Qualcomm Atheros, Inc.
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#include "utils/includes.h"
+
+#include "utils/common.h"
+#include "common/ieee802_11_defs.h"
+#include "common/ieee802_11_common.h"
+#include "rsn_supp/wpa.h"
+#include "wpa_supplicant_i.h"
+#include "drivers/driver.h"
+#include "scan.h"
+#include "bss.h"
+#include "wnm_sta.h"
+
+#define MAX_TFS_IE_LEN  1024
+#define WNM_MAX_NEIGHBOR_REPORT 10
+
+#define WNM_SCAN_RESULT_AGE 2 /* 2 seconds */
+
+void wnm_deallocate_memory(struct wpa_supplicant *wpa_s)
+{
+	int i;
+
+	for (i = 0; i < wpa_s->wnm_num_neighbor_report; i++) {
+		os_free(wpa_s->wnm_neighbor_report_elements[i].meas_pilot);
+		os_free(wpa_s->wnm_neighbor_report_elements[i].mul_bssid);
+	}
+
+	wpa_s->wnm_num_neighbor_report = 0;
+	os_free(wpa_s->wnm_neighbor_report_elements);
+	wpa_s->wnm_neighbor_report_elements = NULL;
+}
+
+
+static void wnm_parse_neighbor_report_elem(struct neighbor_report *rep,
+					   u8 id, u8 elen, const u8 *pos)
+{
+	switch (id) {
+	case WNM_NEIGHBOR_TSF:
+		if (elen < 2 + 2) {
+			wpa_printf(MSG_DEBUG, "WNM: Too short TSF");
+			break;
+		}
+		rep->tsf_offset = WPA_GET_LE16(pos);
+		rep->beacon_int = WPA_GET_LE16(pos + 2);
+		rep->tsf_present = 1;
+		break;
+	case WNM_NEIGHBOR_CONDENSED_COUNTRY_STRING:
+		if (elen < 2) {
+			wpa_printf(MSG_DEBUG, "WNM: Too short condensed "
+				   "country string");
+			break;
+		}
+		os_memcpy(rep->country, pos, 2);
+		rep->country_present = 1;
+		break;
+	case WNM_NEIGHBOR_BSS_TRANSITION_CANDIDATE:
+		if (elen < 1) {
+			wpa_printf(MSG_DEBUG, "WNM: Too short BSS transition "
+				   "candidate");
+			break;
+		}
+		rep->preference = pos[0];
+		rep->preference_present = 1;
+		break;
+	case WNM_NEIGHBOR_BSS_TERMINATION_DURATION:
+		if (elen < 10) {
+			wpa_printf(MSG_DEBUG,
+				   "WNM: Too short BSS termination duration");
+			break;
+		}
+		rep->bss_term_tsf = WPA_GET_LE64(pos);
+		rep->bss_term_dur = WPA_GET_LE16(pos + 8);
+		rep->bss_term_present = 1;
+		break;
+	case WNM_NEIGHBOR_BEARING:
+		if (elen < 8) {
+			wpa_printf(MSG_DEBUG, "WNM: Too short neighbor "
+				   "bearing");
+			break;
+		}
+		rep->bearing = WPA_GET_LE16(pos);
+		rep->distance = WPA_GET_LE32(pos + 2);
+		rep->rel_height = WPA_GET_LE16(pos + 2 + 4);
+		rep->bearing_present = 1;
+		break;
+	case WNM_NEIGHBOR_MEASUREMENT_PILOT:
+		if (elen < 1) {
+			wpa_printf(MSG_DEBUG, "WNM: Too short measurement "
+				   "pilot");
+			break;
+		}
+		os_free(rep->meas_pilot);
+		rep->meas_pilot = os_zalloc(sizeof(struct measurement_pilot));
+		if (rep->meas_pilot == NULL)
+			break;
+		rep->meas_pilot->measurement_pilot = pos[0];
+		rep->meas_pilot->subelem_len = elen - 1;
+		os_memcpy(rep->meas_pilot->subelems, pos + 1, elen - 1);
+		break;
+	case WNM_NEIGHBOR_RRM_ENABLED_CAPABILITIES:
+		if (elen < 5) {
+			wpa_printf(MSG_DEBUG, "WNM: Too short RRM enabled "
+				   "capabilities");
+			break;
+		}
+		os_memcpy(rep->rm_capab, pos, 5);
+		rep->rm_capab_present = 1;
+		break;
+	case WNM_NEIGHBOR_MULTIPLE_BSSID:
+		if (elen < 1) {
+			wpa_printf(MSG_DEBUG, "WNM: Too short multiple BSSID");
+			break;
+		}
+		os_free(rep->mul_bssid);
+		rep->mul_bssid = os_zalloc(sizeof(struct multiple_bssid));
+		if (rep->mul_bssid == NULL)
+			break;
+		rep->mul_bssid->max_bssid_indicator = pos[0];
+		rep->mul_bssid->subelem_len = elen - 1;
+		os_memcpy(rep->mul_bssid->subelems, pos + 1, elen - 1);
+		break;
+	}
+}
+
+static void wnm_parse_neighbor_report(struct wpa_supplicant *wpa_s,
+				      const u8 *pos, u8 len,
+				      struct neighbor_report *rep)
+{
+	u8 left = len;
+
+	if (left < 13) {
+		wpa_printf(MSG_DEBUG, "WNM: Too short neighbor report");
+		return;
+	}
+
+	os_memcpy(rep->bssid, pos, ETH_ALEN);
+	rep->bssid_info = WPA_GET_LE32(pos + ETH_ALEN);
+	rep->regulatory_class = *(pos + 10);
+	rep->channel_number = *(pos + 11);
+	rep->phy_type = *(pos + 12);
+
+	pos += 13;
+	left -= 13;
+
+	while (left >= 2) {
+		u8 id, elen;
+
+		id = *pos++;
+		elen = *pos++;
+		wpa_printf(MSG_DEBUG, "WNM: Subelement id=%u len=%u", id, elen);
+		left -= 2;
+		if (elen > left) {
+			wpa_printf(MSG_DEBUG,
+				   "WNM: Truncated neighbor report subelement");
+			break;
+		}
+		wnm_parse_neighbor_report_elem(rep, id, elen, pos);
+		left -= elen;
+		pos += elen;
+	}
+}
+
+
+static void wnm_clear_acceptable(struct wpa_supplicant *wpa_s)
+{
+	unsigned int i;
+
+	for (i = 0; i < wpa_s->wnm_num_neighbor_report; i++)
+		wpa_s->wnm_neighbor_report_elements[i].acceptable = 0;
+}
+
+
+static struct wpa_bss * get_first_acceptable(struct wpa_supplicant *wpa_s)
+{
+	unsigned int i;
+	struct neighbor_report *nei;
+
+	for (i = 0; i < wpa_s->wnm_num_neighbor_report; i++) {
+		nei = &wpa_s->wnm_neighbor_report_elements[i];
+		if (nei->acceptable)
+			return wpa_bss_get_bssid(wpa_s, nei->bssid);
+	}
+
+	return NULL;
+}
+
+/* basic function to match candidate profile with current bss */
+bool wpa_scan_res_match(struct wpa_supplicant *wpa_s,
+			struct wpa_bss *current_bss,
+			struct wpa_bss *target_bss)
+{
+	if (current_bss->ssid_len != target_bss->ssid_len) {
+		wpa_printf(MSG_DEBUG, "WNM: ssid didn't match");
+		return false;
+	}
+	if (os_memcmp(current_bss->ssid, target_bss->ssid, current_bss->ssid_len) != 0) {
+		wpa_printf(MSG_DEBUG, "WNM: ssid didn't match");
+		return false;
+	}
+
+	/* TODO security Match */
+
+	return true;
+}
+
+
+static struct wpa_bss *
+compare_scan_neighbor_results(struct wpa_supplicant *wpa_s, os_time_t age_secs,
+			      enum mbo_transition_reject_reason *reason)
+{
+	u8 i;
+	struct wpa_bss *bss = wpa_s->current_bss;
+	struct wpa_bss *target;
+
+	if (!bss)
+		return NULL;
+
+	wnm_clear_acceptable(wpa_s);
+
+	for (i = 0; i < wpa_s->wnm_num_neighbor_report; i++) {
+		struct neighbor_report *nei;
+
+		nei = &wpa_s->wnm_neighbor_report_elements[i];
+		if (nei->preference_present && nei->preference == 0) {
+			wpa_printf(MSG_DEBUG, "Skip excluded BSS " MACSTR,
+				   MAC2STR(nei->bssid));
+			continue;
+		}
+
+		target = wpa_bss_get_bssid(wpa_s, nei->bssid);
+		if (!target) {
+			wpa_printf(MSG_DEBUG, "Candidate BSS " MACSTR
+				   " (pref %d) not found in scan results",
+				   MAC2STR(nei->bssid),
+				   nei->preference_present ? nei->preference :
+				   -1);
+			continue;
+		}
+
+		if (age_secs) {
+			struct os_reltime now;
+
+			if (os_get_reltime(&now) == 0 &&
+			    os_time_expired(&now, &target->last_update,
+					       age_secs)) {
+				wpa_printf(MSG_DEBUG,
+					   "Candidate BSS is more than %ld seconds old",
+					   age_secs);
+				continue;
+			}
+		}
+
+		if (bss->ssid_len != target->ssid_len ||
+		    os_memcmp(bss->ssid, target->ssid, bss->ssid_len) != 0) {
+			/*
+			 * TODO: Could consider allowing transition to another
+			 * ESS if PMF was enabled for the association.
+			 */
+			wpa_printf(MSG_DEBUG, "Candidate BSS " MACSTR
+				   " (pref %d) in different ESS",
+				   MAC2STR(nei->bssid),
+				   nei->preference_present ? nei->preference :
+				   -1);
+			continue;
+		}
+
+		if (wpa_s->current_bss &&
+		    !wpa_scan_res_match(wpa_s, wpa_s->current_bss, target)) {
+			wpa_printf(MSG_DEBUG, "Candidate BSS " MACSTR
+				   " (pref %d) does not match the current network profile",
+				   MAC2STR(nei->bssid),
+				   nei->preference_present ? nei->preference :
+				   -1);
+			continue;
+		}
+
+		if (target->level < bss->level && target->level < -80) {
+			wpa_printf(MSG_DEBUG, "Candidate BSS " MACSTR
+				   " (pref %d) does not have sufficient signal level (%d)",
+				   MAC2STR(nei->bssid),
+				   nei->preference_present ? nei->preference :
+				   -1,
+				   target->level);
+			continue;
+		}
+
+		nei->acceptable = 1;
+	}
+
+	target = get_first_acceptable(wpa_s);
+
+	if (target) {
+		wpa_printf(MSG_DEBUG,
+			   "WNM: Found an acceptable preferred transition candidate BSS "
+			   MACSTR " (RSSI %d)",
+			   MAC2STR(target->bssid), target->level);
+	}
+
+	return target;
+}
+
+
+static int wpa_bss_ies_eq(struct wpa_bss *a, struct wpa_bss *b, u8 eid)
+{
+	const u8 *ie_a, *ie_b;
+
+	if (!a || !b)
+		return 0;
+
+	ie_a = wpa_bss_get_ie(a, eid);
+	ie_b = wpa_bss_get_ie(b, eid);
+
+	if (!ie_a || !ie_b || ie_a[1] != ie_b[1])
+		return 0;
+
+	return os_memcmp(ie_a, ie_b, ie_a[1]) == 0;
+}
+
+
+static u32 wnm_get_bss_info(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
+{
+	u32 info = 0;
+
+	info |= NEI_REP_BSSID_INFO_AP_UNKNOWN_REACH;
+
+	/*
+	 * Leave the security and key scope bits unset to indicate that the
+	 * security information is not available.
+	 */
+
+	if (bss->caps & WLAN_CAPABILITY_SPECTRUM_MGMT)
+		info |= NEI_REP_BSSID_INFO_SPECTRUM_MGMT;
+	if (bss->caps & WLAN_CAPABILITY_QOS)
+		info |= NEI_REP_BSSID_INFO_QOS;
+	if (bss->caps & WLAN_CAPABILITY_APSD)
+		info |= NEI_REP_BSSID_INFO_APSD;
+	if (bss->caps & WLAN_CAPABILITY_RADIO_MEASUREMENT)
+		info |= NEI_REP_BSSID_INFO_RM;
+	if (bss->caps & WLAN_CAPABILITY_DELAYED_BLOCK_ACK)
+		info |= NEI_REP_BSSID_INFO_DELAYED_BA;
+	if (bss->caps & WLAN_CAPABILITY_IMM_BLOCK_ACK)
+		info |= NEI_REP_BSSID_INFO_IMM_BA;
+	if (wpa_bss_ies_eq(bss, wpa_s->current_bss, WLAN_EID_MOBILITY_DOMAIN))
+		info |= NEI_REP_BSSID_INFO_MOBILITY_DOMAIN;
+	if (wpa_bss_ies_eq(bss, wpa_s->current_bss, WLAN_EID_HT_CAP))
+		info |= NEI_REP_BSSID_INFO_HT;
+
+	return info;
+}
+
+
+static int wnm_add_nei_rep(struct wpabuf **buf, const u8 *bssid,
+			   u32 bss_info, u8 op_class, u8 chan, u8 phy_type,
+			   u8 pref)
+{
+	if (wpabuf_len(*buf) + 18 >
+	    IEEE80211_MAX_MMPDU_SIZE - IEEE80211_HDRLEN) {
+		wpa_printf(MSG_DEBUG,
+			   "WNM: No room in frame for Neighbor Report element");
+		return -1;
+	}
+
+	if (wpabuf_resize(buf, 18) < 0) {
+		wpa_printf(MSG_DEBUG,
+			   "WNM: Failed to allocate memory for Neighbor Report element");
+		return -1;
+	}
+
+	wpabuf_put_u8(*buf, WLAN_EID_NEIGHBOR_REPORT);
+	/* length: 13 for basic neighbor report + 3 for preference subelement */
+	wpabuf_put_u8(*buf, 16);
+	wpabuf_put_data(*buf, bssid, ETH_ALEN);
+	wpabuf_put_le32(*buf, bss_info);
+	wpabuf_put_u8(*buf, op_class);
+	wpabuf_put_u8(*buf, chan);
+	wpabuf_put_u8(*buf, phy_type);
+	wpabuf_put_u8(*buf, WNM_NEIGHBOR_BSS_TRANSITION_CANDIDATE);
+	wpabuf_put_u8(*buf, 1);
+	wpabuf_put_u8(*buf, pref);
+	return 0;
+}
+
+static int wnm_nei_rep_add_bss(struct wpa_supplicant *wpa_s,
+			       struct wpa_bss *bss, struct wpabuf **buf,
+			       u8 pref)
+{
+	const u8 *ie;
+	u8 op_class;
+	int sec_chan = 0;
+	enum phy_type phy_type;
+	u32 info;
+	struct ieee80211_ht_operation *ht_oper = NULL;
+
+	ie = wpa_bss_get_ie(bss, WLAN_EID_HT_OPERATION);
+	if (ie && ie[1] >= 2) {
+		ht_oper = (struct ieee80211_ht_operation *) (ie + 2);
+
+		if (ht_oper->ht_param & HT_INFO_HT_PARAM_SECONDARY_CHNL_ABOVE)
+			sec_chan = 1;
+		else if (ht_oper->ht_param &
+			 HT_INFO_HT_PARAM_SECONDARY_CHNL_BELOW)
+			sec_chan = -1;
+	}
+
+	op_class = get_operating_class(bss->channel, sec_chan);
+
+	phy_type = (sec_chan != 0) ? PHY_TYPE_HT : PHY_TYPE_ERP;
+
+	info = wnm_get_bss_info(wpa_s, bss);
+
+	return wnm_add_nei_rep(buf, bss->bssid, info, op_class, bss->channel, phy_type,
+			       pref);
+}
+
+
+static void wnm_add_cand_list(struct wpa_supplicant *wpa_s, struct wpabuf **buf)
+{
+	unsigned int i, pref = 255;
+	struct os_reltime now;
+
+	if (!wpa_s->current_bss)
+		return;
+
+	/*
+	 * TODO: Define when scan results are no longer valid for the candidate
+	 * list.
+	 */
+	os_get_reltime(&now);
+	if (os_time_expired(&now, &wpa_s->last_scan, 10))
+		return;
+
+	wpa_printf(MSG_DEBUG,
+		   "WNM: Add candidate list to BSS Transition Management Response frame");
+	for (i = 0; i < wpa_s->last_scan_res_used && pref; i++) {
+		struct wpa_bss *bss = wpa_s->last_scan_res[i];
+		int res;
+
+		if (wpa_scan_res_match(wpa_s, wpa_s->current_bss, bss)) {
+			res = wnm_nei_rep_add_bss(wpa_s, bss, buf, pref--);
+			if (res == -2)
+				continue; /* could not build entry for BSS */
+			if (res < 0)
+				break; /* no more room for candidates */
+			if (pref == 1)
+				break;
+		}
+	}
+
+	wpa_hexdump_buf(MSG_DEBUG,
+			"WNM: BSS Transition Management Response candidate list",
+			*buf);
+}
+
+
+#define BTM_RESP_MIN_SIZE	5 + ETH_ALEN
+
+static void wnm_send_bss_transition_mgmt_resp(
+	struct wpa_supplicant *wpa_s, u8 dialog_token,
+	enum bss_trans_mgmt_status_code status,
+	enum mbo_transition_reject_reason reason,
+	u8 delay, const u8 *target_bssid)
+{
+	struct wpabuf *buf;
+	int res;
+
+	wpa_printf(MSG_DEBUG,
+		   "WNM: Send BSS Transition Management Response to " MACSTR
+		   " dialog_token=%u status=%u reason=%u delay=%d",
+		   MAC2STR(wpa_s->current_bss->bssid), dialog_token, status, reason, delay);
+	if (!wpa_s->current_bss) {
+		wpa_printf(MSG_DEBUG,
+			   "WNM: Current BSS not known - drop response");
+		return;
+	}
+
+	buf = wpabuf_alloc(BTM_RESP_MIN_SIZE);
+	if (!buf) {
+		wpa_printf(MSG_DEBUG,
+			   "WNM: Failed to allocate memory for BTM response");
+		return;
+	}
+
+	wpabuf_put_u8(buf, WLAN_ACTION_WNM);
+	wpabuf_put_u8(buf, WNM_BSS_TRANS_MGMT_RESP);
+	wpabuf_put_u8(buf, dialog_token);
+	wpabuf_put_u8(buf, status);
+	wpabuf_put_u8(buf, delay);
+	if (target_bssid) {
+		wpabuf_put_data(buf, target_bssid, ETH_ALEN);
+	} else if (status == WNM_BSS_TM_ACCEPT) {
+		/*
+		 * P802.11-REVmc clarifies that the Target BSSID field is always
+		 * present when status code is zero, so use a fake value here if
+		 * no BSSID is yet known.
+		 */
+		wpabuf_put_data(buf, "\0\0\0\0\0\0", ETH_ALEN);
+	}
+
+	if (status == WNM_BSS_TM_ACCEPT)
+		wnm_add_cand_list(wpa_s, &buf);
+
+	res = wpa_drv_send_action(wpa_s, 0, 0,
+				  wpabuf_head_u8(buf), wpabuf_len(buf), 0);
+	if (res < 0) {
+		wpa_printf(MSG_DEBUG,
+			   "WNM: Failed to send BSS Transition Management Response");
+	}
+
+	wpabuf_free(buf);
+}
+
+void wnm_bss_tm_connect(struct wpa_supplicant *wpa_s,
+			struct wpa_bss *bss, char *ssid,
+			int after_new_scan)
+{
+	wpa_printf(MSG_DEBUG,
+		"WNM: Transition to BSS " MACSTR
+		" based on BSS Transition Management Request after_new_scan=%d)",
+		MAC2STR(bss->bssid), after_new_scan);
+
+	/* Send the BSS Management Response - Accept */
+	if (wpa_s->wnm_reply) {
+		wpa_s->wnm_reply = 0;
+		wpa_printf(MSG_DEBUG,
+			   "WNM: Sending successful BSS Transition Management Response");
+		wnm_send_bss_transition_mgmt_resp(
+			wpa_s, wpa_s->wnm_dialog_token, WNM_BSS_TM_ACCEPT,
+			MBO_TRANSITION_REJECT_REASON_UNSPECIFIED, 0,
+			bss->bssid);
+	}
+
+	if (bss == wpa_s->current_bss) {
+		wpa_printf(MSG_DEBUG,
+			   "WNM: Already associated with the preferred candidate");
+		wnm_deallocate_memory(wpa_s);
+		return;
+	}
+
+	wpa_printf(MSG_DEBUG, "WNM: Issuing connect");
+
+	wpa_supplicant_connect(wpa_s, bss, ssid);
+	wnm_deallocate_memory(wpa_s);
+}
+
+
+int wnm_scan_process(struct wpa_supplicant *wpa_s, int reply_on_fail)
+{
+	struct wpa_bss *bss;
+	enum bss_trans_mgmt_status_code status = WNM_BSS_TM_REJECT_UNSPECIFIED;
+	enum mbo_transition_reject_reason reason =
+		MBO_TRANSITION_REJECT_REASON_UNSPECIFIED;
+
+	if (!wpa_s->wnm_neighbor_report_elements)
+		return 0;
+
+	wpa_dbg(wpa_s, MSG_DEBUG,
+		"WNM: Process scan results for BSS Transition Management");
+	if (os_reltime_before(&wpa_s->wnm_cand_valid_until,
+			      &wpa_s->scan_trigger_time)) {
+		wpa_printf(MSG_DEBUG, "WNM: Previously stored BSS transition candidate list is not valid anymore - drop it");
+		wnm_deallocate_memory(wpa_s);
+		return 0;
+	}
+
+	/* Compare the Neighbor Report and scan results */
+	bss = compare_scan_neighbor_results(wpa_s, 0, &reason);
+	if (!bss) {
+		wpa_printf(MSG_DEBUG, "WNM: No BSS transition candidate match found");
+		status = WNM_BSS_TM_REJECT_NO_SUITABLE_CANDIDATES;
+		goto send_bss_resp_fail;
+	}
+
+	/* Associate to the network */
+	wnm_bss_tm_connect(wpa_s, bss, NULL, 1);
+	return 1;
+
+send_bss_resp_fail:
+	if (!reply_on_fail)
+		return 0;
+
+	/* Send reject response for all the failures */
+
+	if (wpa_s->wnm_reply) {
+		wpa_s->wnm_reply = 0;
+		wnm_send_bss_transition_mgmt_resp(wpa_s,
+						  wpa_s->wnm_dialog_token,
+						  status, reason, 0, NULL);
+	}
+	wnm_deallocate_memory(wpa_s);
+
+	return 0;
+}
+
+
+static int cand_pref_compar(const void *a, const void *b)
+{
+	const struct neighbor_report *aa = a;
+	const struct neighbor_report *bb = b;
+
+	if (!aa->preference_present && !bb->preference_present)
+		return 0;
+	if (!aa->preference_present)
+		return 1;
+	if (!bb->preference_present)
+		return -1;
+	if (bb->preference > aa->preference)
+		return 1;
+	if (bb->preference < aa->preference)
+		return -1;
+	return 0;
+}
+
+
+static void wnm_sort_cand_list(struct wpa_supplicant *wpa_s)
+{
+	if (!wpa_s->wnm_neighbor_report_elements)
+		return;
+	qsort(wpa_s->wnm_neighbor_report_elements,
+	      wpa_s->wnm_num_neighbor_report, sizeof(struct neighbor_report),
+	      cand_pref_compar);
+}
+
+
+static void wnm_dump_cand_list(struct wpa_supplicant *wpa_s)
+{
+#ifdef DEBUG_PRINT
+	unsigned int i;
+
+	wpa_printf(MSG_DEBUG, "WNM: BSS Transition Candidate List");
+	if (!wpa_s->wnm_neighbor_report_elements)
+		return;
+	for (i = 0; i < wpa_s->wnm_num_neighbor_report; i++) {
+		struct neighbor_report *nei;
+
+		nei = &wpa_s->wnm_neighbor_report_elements[i];
+		wpa_printf(MSG_DEBUG, "%u: " MACSTR
+			   " info=0x%x op_class=%u chan=%u phy=%u pref=%d",
+			   i, MAC2STR(nei->bssid), nei->bssid_info,
+			   nei->regulatory_class,
+			   nei->channel_number, nei->phy_type,
+			   nei->preference_present ? nei->preference : -1);
+	}
+#endif
+}
+
+static void wnm_set_scan_freqs(struct wpa_supplicant *wpa_s)
+{
+	unsigned int i;
+	int num_chan;
+	u8 chan = 0;
+
+	wpa_s->next_scan_chan = 0;
+	if (!wpa_s->wnm_neighbor_report_elements)
+		return;
+
+	for (i = 0; i < wpa_s->wnm_num_neighbor_report; i++) {
+		struct neighbor_report *nei;
+
+		nei = &wpa_s->wnm_neighbor_report_elements[i];
+		if (nei->channel_number <= 0) {
+			wpa_printf(MSG_DEBUG,
+				   "WNM: Unknown neighbor operating channel_number for "
+				   MACSTR " - scan all channels",
+				   MAC2STR(nei->bssid));
+			return;
+		}
+		if (nei->channel_number != chan)
+			num_chan++;
+	}
+
+	if (num_chan == 1) {
+		wpa_s->next_scan_chan = chan;
+	}
+}
+
+static int wnm_fetch_scan_results(struct wpa_supplicant *wpa_s)
+{
+	/* ESP doesn't support this */
+	return 0;
+}
+
+static void ieee802_11_rx_bss_trans_mgmt_req(struct wpa_supplicant *wpa_s,
+					     const u8 *pos, const u8 *end,
+					     int reply)
+{
+	unsigned int beacon_int;
+	u8 valid_int;
+
+	if (wpa_s->disable_btm)
+		return;
+
+	if (end - pos < 5)
+		return;
+
+#ifdef CONFIG_MBO
+	wpa_s->wnm_mbo_trans_reason_present = 0;
+	wpa_s->wnm_mbo_transition_reason = 0;
+#endif /* CONFIG_MBO */
+
+	if (wpa_s->current_bss)
+		beacon_int = wpa_s->current_bss->beacon_int;
+	else
+		beacon_int = 100; /* best guess */
+
+	wpa_s->wnm_dialog_token = pos[0];
+	wpa_s->wnm_mode = pos[1];
+	wpa_s->wnm_dissoc_timer = WPA_GET_LE16(pos + 2);
+	valid_int = pos[4];
+	wpa_s->wnm_reply = reply;
+
+	wpa_printf(MSG_DEBUG, "WNM: BSS Transition Management Request: "
+		   "dialog_token=%u request_mode=0x%x "
+		   "disassoc_timer=%u validity_interval=%u",
+		   wpa_s->wnm_dialog_token, wpa_s->wnm_mode,
+		   wpa_s->wnm_dissoc_timer, valid_int);
+
+	pos += 5;
+
+	if (wpa_s->wnm_mode & WNM_BSS_TM_REQ_BSS_TERMINATION_INCLUDED) {
+		if (end - pos < 12) {
+			wpa_printf(MSG_DEBUG, "WNM: Too short BSS TM Request");
+			return;
+		}
+		os_memcpy(wpa_s->wnm_bss_termination_duration, pos, 12);
+		pos += 12; /* BSS Termination Duration */
+	}
+
+	if (wpa_s->wnm_mode & WNM_BSS_TM_REQ_ESS_DISASSOC_IMMINENT) {
+		char url[256];
+
+		if (end - pos < 1 || 1 + pos[0] > end - pos) {
+			wpa_printf(MSG_DEBUG, "WNM: Invalid BSS Transition "
+				   "Management Request (URL)");
+			return;
+		}
+		os_memcpy(url, pos + 1, pos[0]);
+		url[pos[0]] = '\0';
+		pos += 1 + pos[0];
+
+		wpa_msg(wpa_s, MSG_DEBUG, "ESS_DISASSOC_IMMINENT %u %s",
+			wpa_s->wnm_dissoc_timer * beacon_int * 128 / 125, url);
+	}
+
+	if (wpa_s->wnm_mode & WNM_BSS_TM_REQ_DISASSOC_IMMINENT) {
+		wpa_msg(wpa_s, MSG_DEBUG, "WNM: Disassociation Imminent - "
+			"Disassociation Timer %u", wpa_s->wnm_dissoc_timer);
+		if (wpa_s->wnm_dissoc_timer) {
+			/* TODO: mark current BSS less preferred for
+			 * selection */
+			wpa_printf(MSG_DEBUG, "Trying to find another BSS");
+			wpa_supplicant_req_scan(wpa_s, 0, 0);
+		}
+	}
+
+#ifdef CONFIG_MBO
+	vendor = get_ie(pos, end - pos, WLAN_EID_VENDOR_SPECIFIC);
+	if (vendor)
+		wpas_mbo_ie_trans_req(wpa_s, vendor + 2, vendor[1]);
+#endif /* CONFIG_MBO */
+
+	if (wpa_s->wnm_mode & WNM_BSS_TM_REQ_PREF_CAND_LIST_INCLUDED) {
+		unsigned int valid_ms;
+
+		wpa_msg(wpa_s, MSG_DEBUG, "WNM: Preferred List Available");
+		wnm_deallocate_memory(wpa_s);
+		wpa_s->wnm_neighbor_report_elements = os_calloc(
+			WNM_MAX_NEIGHBOR_REPORT,
+			sizeof(struct neighbor_report));
+		if (wpa_s->wnm_neighbor_report_elements == NULL)
+			return;
+
+		while (end - pos >= 2 &&
+		       wpa_s->wnm_num_neighbor_report < WNM_MAX_NEIGHBOR_REPORT)
+		{
+			u8 tag = *pos++;
+			u8 len = *pos++;
+
+			wpa_printf(MSG_DEBUG, "WNM: Neighbor report tag %u",
+				   tag);
+			if (len > end - pos) {
+				wpa_printf(MSG_DEBUG, "WNM: Truncated request");
+				return;
+			}
+			if (tag == WLAN_EID_NEIGHBOR_REPORT) {
+				struct neighbor_report *rep;
+				rep = &wpa_s->wnm_neighbor_report_elements[
+					wpa_s->wnm_num_neighbor_report];
+				wnm_parse_neighbor_report(wpa_s, pos, len, rep);
+				wpa_s->wnm_num_neighbor_report++;
+#ifdef CONFIG_MBO
+				if (wpa_s->wnm_mbo_trans_reason_present &&
+				    wpa_s->wnm_num_neighbor_report == 1) {
+					rep->is_first = 1;
+					wpa_printf(MSG_DEBUG,
+						   "WNM: First transition candidate is "
+						   MACSTR, MAC2STR(rep->bssid));
+				}
+#endif /* CONFIG_MBO */
+			}
+
+			pos += len;
+		}
+
+		if (!wpa_s->wnm_num_neighbor_report) {
+			wpa_printf(MSG_DEBUG,
+				   "WNM: Candidate list included bit is set, but no candidates found");
+			wnm_send_bss_transition_mgmt_resp(
+				wpa_s, wpa_s->wnm_dialog_token,
+				WNM_BSS_TM_REJECT_NO_SUITABLE_CANDIDATES,
+				MBO_TRANSITION_REJECT_REASON_UNSPECIFIED, 0,
+				NULL);
+			return;
+		}
+
+		wnm_sort_cand_list(wpa_s);
+		wnm_dump_cand_list(wpa_s);
+		valid_ms = valid_int * beacon_int * 128 / 125;
+		wpa_printf(MSG_DEBUG, "WNM: Candidate list valid for %u ms",
+			   valid_ms);
+		os_get_reltime(&wpa_s->wnm_cand_valid_until);
+		wpa_s->wnm_cand_valid_until.sec += valid_ms / 1000;
+		wpa_s->wnm_cand_valid_until.usec += (valid_ms % 1000) * 1000;
+		wpa_s->wnm_cand_valid_until.sec +=
+			wpa_s->wnm_cand_valid_until.usec / 1000000;
+		wpa_s->wnm_cand_valid_until.usec %= 1000000;
+
+		/*
+		 * Fetch the latest scan results from the kernel and check for
+		 * candidates based on those results first. This can help in
+		 * finding more up-to-date information should the driver has
+		 * done some internal scanning operations after the last scan
+		 * result update in wpa_supplicant.
+		 */
+		if (wnm_fetch_scan_results(wpa_s) > 0)
+			return;
+
+		/*
+		 * Try to use previously received scan results, if they are
+		 * recent enough to use for a connection.
+		 */
+		if (wpa_s->last_scan_res_used > 0) {
+			struct os_reltime now;
+
+			os_get_reltime(&now);
+			if (!os_time_expired(&now, &wpa_s->last_scan, 10)) {
+				wpa_printf(MSG_DEBUG,
+					   "WNM: Try to use recent scan results");
+				if (wnm_scan_process(wpa_s, 0) > 0)
+					return;
+				wpa_printf(MSG_DEBUG,
+					   "WNM: No match in previous scan results - try a new scan");
+			}
+		}
+		wnm_set_scan_freqs(wpa_s);
+		if (wpa_s->wnm_num_neighbor_report == 1) {
+			os_memcpy(wpa_s->next_scan_bssid,
+				  wpa_s->wnm_neighbor_report_elements[0].bssid,
+				  ETH_ALEN);
+			wpa_printf(MSG_DEBUG,
+				   "WNM: Scan only for a specific BSSID since there is only a single candidate "
+				   MACSTR, MAC2STR(wpa_s->next_scan_bssid));
+		}
+		wpa_supplicant_req_scan(wpa_s, 0, 0);
+	} else if (reply) {
+		enum bss_trans_mgmt_status_code status;
+		if (wpa_s->wnm_mode & WNM_BSS_TM_REQ_ESS_DISASSOC_IMMINENT)
+			status = WNM_BSS_TM_ACCEPT;
+		else {
+			wpa_msg(wpa_s, MSG_DEBUG, "WNM: BSS Transition Management Request did not include candidates");
+			status = WNM_BSS_TM_REJECT_UNSPECIFIED;
+		}
+		wpa_s->wnm_reply = 0;
+		wnm_send_bss_transition_mgmt_resp(
+			wpa_s, wpa_s->wnm_dialog_token, status,
+			MBO_TRANSITION_REJECT_REASON_UNSPECIFIED, 0, NULL);
+	}
+}
+
+
+#define BTM_QUERY_MIN_SIZE	4
+
+int wnm_send_bss_transition_mgmt_query(struct wpa_supplicant *wpa_s,
+				       u8 query_reason,
+				       const char *btm_candidates,
+				       int cand_list)
+{
+	struct wpabuf *buf;
+	int ret;
+
+	wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Query to "
+		   MACSTR " query_reason=%u%s",
+		   MAC2STR(wpa_s->current_bss->bssid), query_reason,
+		   cand_list ? " candidate list" : "");
+
+	buf = wpabuf_alloc(BTM_QUERY_MIN_SIZE);
+	if (!buf)
+		return -1;
+
+	wpabuf_put_u8(buf, WLAN_ACTION_WNM);
+	wpabuf_put_u8(buf, WNM_BSS_TRANS_MGMT_QUERY);
+	wpabuf_put_u8(buf, 1);
+	wpabuf_put_u8(buf, query_reason);
+
+	if (cand_list)
+		wnm_add_cand_list(wpa_s, &buf);
+
+	if (btm_candidates) {
+		const size_t max_len = 1000;
+
+		ret = wpabuf_resize(&buf, max_len);
+		if (ret < 0) {
+			wpabuf_free(buf);
+			return ret;
+		}
+
+		ret = ieee802_11_parse_candidate_list(btm_candidates,
+						      wpabuf_put(buf, 0),
+						      max_len);
+		if (ret < 0) {
+			wpabuf_free(buf);
+			return ret;
+		}
+
+		wpabuf_put(buf, ret);
+	}
+
+	ret = wpa_drv_send_action(wpa_s, 0, 0,
+				  wpabuf_head_u8(buf), wpabuf_len(buf), 0);
+
+	wpabuf_free(buf);
+	return ret;
+}
+
+void ieee802_11_rx_wnm_action(struct wpa_supplicant *wpa_s,
+			      u8 *sender, u8 *payload, size_t len)
+{
+	const u8 *pos, *end;
+	u8 act;
+
+	if (len < 2)
+		return;
+
+	pos = payload;
+	act = *pos++;
+	end = payload + len;
+
+	wpa_printf(MSG_DEBUG, "WNM: RX action %u from " MACSTR,
+		   act, MAC2STR(sender));
+
+	switch (act) {
+	case WNM_BSS_TRANS_MGMT_REQ:
+		ieee802_11_rx_bss_trans_mgmt_req(wpa_s, pos, end,
+						 !(sender[0] & 0x01));
+		break;
+	default:
+		wpa_printf(MSG_ERROR, "WNM: Unknown request");
+		break;
+	}
+}
diff --git a/components/wpa_supplicant/src/common/wnm_sta.h b/components/wpa_supplicant/src/common/wnm_sta.h
new file mode 100755
index 00000000..e513e1a5
--- /dev/null
+++ b/components/wpa_supplicant/src/common/wnm_sta.h
@@ -0,0 +1,70 @@
+/*
+ * IEEE 802.11v WNM related functions and structures
+ * Copyright (c) 2011-2012, Qualcomm Atheros, Inc.
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#ifndef WNM_STA_H
+#define WNM_STA_H
+
+struct measurement_pilot {
+	u8 measurement_pilot;
+	u8 subelem_len;
+	u8 subelems[255];
+};
+
+struct multiple_bssid {
+	u8 max_bssid_indicator;
+	u8 subelem_len;
+	u8 subelems[255];
+};
+
+struct neighbor_report {
+	u8 bssid[ETH_ALEN];
+	u32 bssid_info;
+	u8 regulatory_class;
+	u8 channel_number;
+	u8 phy_type;
+	u8 preference; /* valid if preference_present=1 */
+	u16 tsf_offset; /* valid if tsf_present=1 */
+	u16 beacon_int; /* valid if tsf_present=1 */
+	char country[2]; /* valid if country_present=1 */
+	u8 rm_capab[5]; /* valid if rm_capab_present=1 */
+	u16 bearing; /* valid if bearing_present=1 */
+	u16 rel_height; /* valid if bearing_present=1 */
+	u32 distance; /* valid if bearing_present=1 */
+	u64 bss_term_tsf; /* valid if bss_term_present=1 */
+	u16 bss_term_dur; /* valid if bss_term_present=1 */
+	unsigned int preference_present:1;
+	unsigned int tsf_present:1;
+	unsigned int country_present:1;
+	unsigned int rm_capab_present:1;
+	unsigned int bearing_present:1;
+	unsigned int bss_term_present:1;
+	unsigned int acceptable:1;
+	struct measurement_pilot *meas_pilot;
+	struct multiple_bssid *mul_bssid;
+	int freq;
+};
+
+
+int ieee802_11_send_wnmsleep_req(struct wpa_supplicant *wpa_s,
+				 u8 action, u16 intval, struct wpabuf *tfs_req);
+
+void ieee802_11_rx_wnm_action(struct wpa_supplicant *wpa_s,
+			      u8 *sender, u8 *payload, size_t len);
+
+int wnm_send_bss_transition_mgmt_query(struct wpa_supplicant *wpa_s,
+				       u8 query_reason,
+				       const char *btm_candidates,
+				       int cand_list);
+
+void wnm_deallocate_memory(struct wpa_supplicant *wpa_s);
+int wnm_scan_process(struct wpa_supplicant *wpa_s, int reply_on_fail);
+void wnm_bss_tm_connect(struct wpa_supplicant *wpa_s,
+			struct wpa_bss *bss, char *ssid,
+			int after_new_scan);
+
+#endif /* WNM_STA_H */
diff --git a/components/wpa_supplicant/src/common/wpa_supplicant_i.h b/components/wpa_supplicant/src/common/wpa_supplicant_i.h
new file mode 100755
index 00000000..f3c07a9a
--- /dev/null
+++ b/components/wpa_supplicant/src/common/wpa_supplicant_i.h
@@ -0,0 +1,110 @@
+/*
+ * wpa_supplicant - Internal definitions
+ * Copyright (c) 2003-2014, Jouni Malinen <j@w1.fi>
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#ifndef WPA_SUPPLICANT_I_H
+#define WPA_SUPPLICANT_I_H
+
+
+#include "drivers/driver.h"
+#include "common/ieee802_11_defs.h"
+/*
+ * struct rrm_data - Data used for managing RRM features
+ */
+struct rrm_data {
+	/* rrm_used - indication regarding the current connection */
+	unsigned int rrm_used:1;
+
+	/*
+	 * notify_neighbor_rep - Callback for notifying report requester
+	 */
+	void (*notify_neighbor_rep)(void *ctx, const u8 *neighbor_rep, size_t len);
+
+	/*
+	 * neighbor_rep_cb_ctx - Callback context
+	 * Received in the callback registration, and sent to the callback
+	 * function as a parameter.
+	 */
+	void *neighbor_rep_cb_ctx;
+
+	/* next_neighbor_rep_token - Next request's dialog token */
+	u8 next_neighbor_rep_token;
+
+	/* token - Dialog token of the current radio measurement */
+	u8 token;
+
+	/* destination address of the current radio measurement request */
+	u8 dst_addr[ETH_ALEN];
+};
+
+#define SSID_MAX_LEN 32
+struct beacon_rep_data {
+	u8 token;
+	u8 last_indication;
+	struct wpa_driver_scan_params scan_params;
+	u8 ssid[SSID_MAX_LEN];
+	size_t ssid_len;
+	u8 bssid[ETH_ALEN];
+	enum beacon_report_detail report_detail;
+	struct bitfield *eids;
+};
+
+enum scan_trigger_reason {
+	REASON_INVALID,
+	REASON_RRM_BEACON_REPORT,
+	REASON_WNM_BSS_TRANS_REQ,
+};
+
+struct wpa_supplicant {
+	int disable_btm;
+	/* rrm ie */
+	uint8_t rrm_ie[5];
+	u8 extend_caps[8];
+
+	int scanning;
+	enum scan_trigger_reason scan_reason;
+	u64 scan_start_tsf;
+	u8 tsf_bssid[ETH_ALEN];
+	struct wpa_bss *current_bss;
+
+	struct dl_list bss; /* struct wpa_bss::list */
+	struct dl_list bss_id; /* struct wpa_bss::list_id */
+	size_t num_bss;
+	unsigned int bss_update_idx;
+	unsigned int bss_next_id;
+
+	 /*
+	  * Pointers to BSS entries in the order they were in the last scan
+	  * results.
+	  */
+	struct wpa_bss **last_scan_res;
+	unsigned int last_scan_res_used;
+	unsigned int last_scan_res_size;
+	struct os_reltime last_scan;
+
+	struct os_reltime scan_trigger_time, scan_start_time;
+
+	u8 next_scan_bssid[ETH_ALEN];
+	/* type and subtype of frames for which supplicant has registered */
+	uint32_t type, subtype;
+	u8 next_scan_chan;
+#ifdef CONFIG_WNM
+	u8 wnm_dialog_token;
+	u8 wnm_reply;
+	u8 wnm_num_neighbor_report;
+	u8 wnm_mode;
+	u16 wnm_dissoc_timer;
+	u8 wnm_bss_termination_duration[12];
+	struct neighbor_report *wnm_neighbor_report_elements;
+	struct os_reltime wnm_cand_valid_until;
+#endif /* CONFIG_WNM */
+	struct rrm_data rrm;
+	struct beacon_rep_data beacon_rep_data;
+	struct os_reltime beacon_rep_scan;
+};
+
+#endif
diff --git a/components/wpa_supplicant/src/drivers/driver.h b/components/wpa_supplicant/src/drivers/driver.h
new file mode 100755
index 00000000..759e5b62
--- /dev/null
+++ b/components/wpa_supplicant/src/drivers/driver.h
@@ -0,0 +1,187 @@
+/*
+ * Driver interface definition
+ * Copyright (c) 2003-2017, Jouni Malinen <j@w1.fi>
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ *
+ * This file defines a driver interface used by both %wpa_supplicant and
+ * hostapd. The first part of the file defines data structures used in various
+ * driver operations. This is followed by the struct wpa_driver_ops that each
+ * driver wrapper will beed to define with callback functions for requesting
+ * driver operations. After this, there are definitions for driver event
+ * reporting with wpa_supplicant_event() and some convenience helper functions
+ * that can be used to report events.
+ */
+
+#ifndef DRIVER_H
+#define DRIVER_H
+
+#define WPA_SUPPLICANT_DRIVER_VERSION 4
+
+#include "common/defs.h"
+#include "common/ieee802_11_defs.h"
+#include "common/wpa_common.h"
+#include "utils/list.h"
+struct wpa_bss;
+struct wpa_supplicant;
+/**
+ * struct wpa_scan_res - Scan result for an BSS/IBSS
+ * @flags: information flags about the BSS/IBSS (WPA_SCAN_*)
+ * @bssid: BSSID
+ * @freq: frequency of the channel in MHz (e.g., 2412 = channel 1)
+ * @beacon_int: beacon interval in TUs (host byte order)
+ * @caps: capability information field in host byte order
+ * @qual: signal quality
+ * @noise: noise level
+ * @level: signal level
+ * @tsf: Timestamp
+ * @age: Age of the information in milliseconds (i.e., how many milliseconds
+ * ago the last Beacon or Probe Response frame was received)
+ * @snr: Signal-to-noise ratio in dB (calculated during scan result processing)
+ * @parent_tsf: Time when the Beacon/Probe Response frame was received in terms
+ * of TSF of the BSS specified by %tsf_bssid.
+ * @tsf_bssid: The BSS that %parent_tsf TSF time refers to.
+ * @ie_len: length of the following IE field in octets
+ * @beacon_ie_len: length of the following Beacon IE field in octets
+ *
+ * This structure is used as a generic format for scan results from the
+ * driver. Each driver interface implementation is responsible for converting
+ * the driver or OS specific scan results into this format.
+ *
+ * If the driver does not support reporting all IEs, the IE data structure is
+ * constructed of the IEs that are available. This field will also need to
+ * include SSID in IE format. All drivers are encouraged to be extended to
+ * report all IEs to make it easier to support future additions.
+ *
+ * This structure data is followed by ie_len octets of IEs from Probe Response
+ * frame (or if the driver does not indicate source of IEs, these may also be
+ * from Beacon frame). After the first set of IEs, another set of IEs may follow
+ * (with beacon_ie_len octets of data) if the driver provides both IE sets.
+ */
+struct wpa_scan_res {
+	unsigned int flags;
+	u8 bssid[ETH_ALEN];
+	int chan;
+	u16 beacon_int;
+	u16 caps;
+	int noise;
+	int level;
+	u64 tsf;
+	unsigned int age;
+	u64 parent_tsf;
+	u8 tsf_bssid[ETH_ALEN];
+	size_t ie_len;
+	size_t beacon_ie_len;
+	/* Followed by ie_len + beacon_ie_len octets of IE data */
+};
+
+/**
+ * struct wpa_scan_results - Scan results
+ * @res: Array of pointers to allocated variable length scan result entries
+ * @num: Number of entries in the scan result array
+ * @fetch_time: Time when the results were fetched from the driver
+ */
+struct wpa_scan_results {
+	struct wpa_scan_res **res;
+	size_t num;
+	struct os_reltime fetch_time;
+};
+
+#define WPAS_MAX_SCAN_SSIDS 1
+
+/**
+ * struct wpa_driver_scan_ssid - SSIDs to scan for
+ * @ssid - specific SSID to scan for (ProbeReq)
+ *	%NULL or zero-length SSID is used to indicate active scan
+ *	with wildcard SSID.
+ * @ssid_len - Length of the SSID in octets
+ */
+struct wpa_driver_scan_ssid {
+	const u8 *ssid;
+	size_t ssid_len;
+};
+
+/**
+ * struct wpa_driver_scan_params - Scan parameters
+ * Data for struct wpa_driver_ops::scan2().
+ */
+struct wpa_driver_scan_params {
+	/**
+	 * ssids - SSIDs to scan for
+	 */
+	struct wpa_driver_scan_ssid ssids[WPAS_MAX_SCAN_SSIDS];
+
+	/**
+	 * num_ssids - Number of entries in ssids array
+	 * Zero indicates a request for a passive scan.
+	 */
+	size_t num_ssids;
+
+	/**
+	 * freqs - Array of frequencies to scan or %NULL for all frequencies
+	 *
+	 * The frequency is set in MHz. The array is zero-terminated.
+	 */
+	int channel;
+
+	/**
+	 * bssid - Specific BSSID to scan for
+	 *
+	 * This optional parameter can be used to replace the default wildcard
+	 * BSSID with a specific BSSID to scan for if results are needed from
+	 * only a single BSS.
+	 */
+	const u8 *bssid;
+
+	 /**
+	  * duration - Dwell time on each channel
+	  *
+	  * This optional parameter can be used to set the dwell time on each
+	  * channel. In TUs.
+	  */
+	 u16 duration;
+
+	 unsigned int duration_mandatory;
+};
+
+/**
+ * struct scan_info - Optional data for EVENT_SCAN_RESULTS events
+ * @aborted: Whether the scan was aborted
+ * @freqs: Scanned frequencies in MHz (%NULL = all channels scanned)
+ * @num_freqs: Number of entries in freqs array
+ * @ssids: Scanned SSIDs (%NULL or zero-length SSID indicates wildcard
+ *	SSID)
+ * @num_ssids: Number of entries in ssids array
+ * @external_scan: Whether the scan info is for an external scan
+ * @nl_scan_event: 1 if the source of this scan event is a normal scan,
+ * 	0 if the source of the scan event is a vendor scan
+ * @scan_start_tsf: Time when the scan started in terms of TSF of the
+ *	BSS that the interface that requested the scan is connected to
+ *	(if available).
+ * @scan_start_tsf_bssid: The BSSID according to which %scan_start_tsf
+ *	is set.
+ */
+struct scan_info {
+	int aborted;
+	const int *freqs;
+	size_t num_freqs;
+	struct wpa_driver_scan_ssid ssids[WPAS_MAX_SCAN_SSIDS];
+	size_t num_ssids;
+	int external_scan;
+	int nl_scan_event;
+	u64 scan_start_tsf;
+	u8 scan_start_tsf_bssid[ETH_ALEN];
+} scan_info;
+
+
+/* driver_common.c */
+void wpa_scan_results_free(struct wpa_scan_results *res);
+
+int wpa_drv_send_action(struct wpa_supplicant *wpa_s,
+			unsigned int chan, unsigned int wait,
+			const u8 *data, size_t data_len, int no_cck);
+
+void wpa_supplicant_connect(struct wpa_supplicant *wpa_s,
+			    struct wpa_bss *bss, char *ssid);
+#endif /* DRIVER_H */
diff --git a/components/wpa_supplicant/src/eap_peer/chap.h b/components/wpa_supplicant/src/eap_peer/chap.h
new file mode 100755
index 00000000..a791505f
--- /dev/null
+++ b/components/wpa_supplicant/src/eap_peer/chap.h
@@ -0,0 +1,17 @@
+/*
+ * CHAP-MD5 (RFC 1994)
+ * Copyright (c) 2007-2009, Jouni Malinen <j@w1.fi>
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#ifndef CHAP_H
+#define CHAP_H
+
+#define CHAP_MD5_LEN 16
+
+int chap_md5(u8 id, const u8 *secret, size_t secret_len, const u8 *challenge,
+	     size_t challenge_len, u8 *response);
+
+#endif /* CHAP_H */
diff --git a/components/wpa_supplicant/src/esp_supplicant/esp_common.c b/components/wpa_supplicant/src/esp_supplicant/esp_common.c
new file mode 100755
index 00000000..65aaa33a
--- /dev/null
+++ b/components/wpa_supplicant/src/esp_supplicant/esp_common.c
@@ -0,0 +1,403 @@
+/**
+ * Copyright 2020 Espressif Systems (Shanghai) PTE LTD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "utils/includes.h"
+#include "utils/common.h"
+#include "esp_event.h"
+#include "esp_wifi.h"
+#include "esp_wifi_types.h"
+#include "esp_wifi_driver.h"
+#include "drivers/driver.h"
+#include "common/bss.h"
+#include "common/rrm.h"
+#include "common/wnm_sta.h"
+#include "common/wpa_supplicant_i.h"
+#include "esp_supplicant/esp_scan_i.h"
+#include "esp_supplicant/esp_common_i.h"
+#include "common/ieee802_11_common.h"
+#include "esp_rrm.h"
+#include "esp_wnm.h"
+
+struct wpa_supplicant g_wpa_supp;
+
+static void *s_supplicant_task_hdl = NULL;
+static void *s_supplicant_evt_queue = NULL;
+static void *s_supplicant_api_lock = NULL;
+
+static int esp_handle_action_frm(u8 *frame, size_t len,
+				 u8 *sender, u32 rssi, u8 channel)
+{
+	struct ieee_mgmt_frame *frm = os_malloc(sizeof(struct ieee_mgmt_frame) + len);
+
+	if (!frm) {
+		wpa_printf(MSG_ERROR, "memory allocation failed");
+		return -1;
+	}
+
+	os_memcpy(frm->sender, sender, ETH_ALEN);
+	frm->len = len;
+	frm->channel = channel;
+	frm->rssi = rssi;
+
+	os_memcpy(frm->payload, frame, len);
+	if (esp_supplicant_post_evt(SIG_SUPPLICANT_RX_ACTION, (u32)frm) != 0) {
+		os_free(frm);
+		return -1;
+	}
+
+	return 0;
+}
+
+static void esp_handle_rrm_frame(struct wpa_supplicant *wpa_s, u8 *sender,
+				 u8 *payload, size_t len, u32 rssi)
+{
+	if (payload[0] == WLAN_RRM_NEIGHBOR_REPORT_RESPONSE) {
+		/* neighbor report parsing */
+		wpas_rrm_process_neighbor_rep(wpa_s, payload + 1, len - 1);
+	} else if (payload[0] == WLAN_RRM_RADIO_MEASUREMENT_REQUEST) {
+		/* Beacon measurement */
+		wpas_rrm_handle_radio_measurement_request(wpa_s, NULL,
+				sender, payload + 1, len - 1);
+	} else if (payload[0] == WLAN_RRM_LINK_MEASUREMENT_REQUEST) {
+		/* Link measurement */
+		wpas_rrm_handle_link_measurement_request(wpa_s, NULL,
+				payload + 1, len - 1, rssi);
+	}
+}
+
+static int esp_mgmt_rx_action(u8 *sender, u8 *payload, size_t len, u8 channel, u32 rssi)
+{
+	u8 category;
+	u8 bssid[ETH_ALEN];
+	struct wpa_supplicant *wpa_s = &g_wpa_supp;
+	int ret = esp_wifi_get_assoc_bssid_internal(bssid);
+
+	if (ret < 0) {
+		wpa_printf(MSG_INFO, "STA not associated");
+		return -1;
+	}
+
+	category = *payload++;
+	len--;
+	if (category == WLAN_ACTION_WNM) {
+		ieee802_11_rx_wnm_action(wpa_s, sender, payload, len);
+	} else if (category == WLAN_ACTION_RADIO_MEASUREMENT) {
+		esp_handle_rrm_frame(wpa_s, sender, payload, len, rssi);
+	}
+
+	return 0;
+}
+
+static void esp_supplicant_task(void *pvParameters)
+{
+	supplicant_event_t *evt;
+	bool task_del = false;
+
+	while(1) {
+		if (xQueueReceive(s_supplicant_evt_queue, &evt, portMAX_DELAY) != pdTRUE)
+			continue;
+
+		/* event validation failed */
+		if (evt->id >= SIG_SUPPLICANT_MAX) {
+			os_free(evt);
+			continue;
+		}
+
+		/* get lock */
+		SUPPLICANT_API_LOCK();
+
+		switch (evt->id) {
+		case SIG_SUPPLICANT_RX_ACTION:
+		{
+			struct ieee_mgmt_frame *frm = (struct ieee_mgmt_frame *)evt->data;
+			esp_mgmt_rx_action(frm->sender, frm->payload, frm->len, frm->channel, frm->rssi);
+			os_free(frm);
+			break;
+		}
+
+		case SIG_SUPPLICANT_SCAN_DONE:
+			esp_supplicant_handle_scan_done_evt();
+			break;
+		case SIG_SUPPLICANT_DEL_TASK:
+			task_del = true;
+			break;
+		default:
+			break;
+		}
+
+		os_free(evt);
+		SUPPLICANT_API_UNLOCK();
+
+		if (task_del)
+			break;
+	}
+
+	vQueueDelete(s_supplicant_evt_queue);
+	s_supplicant_evt_queue = NULL;
+
+	if (s_supplicant_api_lock) {
+		vSemaphoreDelete(s_supplicant_api_lock);
+		s_supplicant_api_lock = NULL;
+	}
+
+	/* At this point, we completed */
+	vTaskDelete(NULL);
+}
+
+static void esp_clear_bssid_flag(struct wpa_supplicant *wpa_s)
+{
+	wifi_config_t *config;
+
+	/* Reset only if btm is enabled */
+	if (esp_wifi_is_btm_enabled_internal(ESP_IF_WIFI_STA) == false)
+		return;
+
+	config = os_zalloc(sizeof(wifi_config_t));
+
+	if (!config) {
+		wpa_printf(MSG_ERROR, "failed to allocate memory");
+		return;
+	}
+
+	esp_wifi_get_config(ESP_IF_WIFI_STA, config);
+	config->sta.bssid_set = 0;
+	esp_wifi_set_config(ESP_IF_WIFI_STA, config);
+	os_free(config);
+	wpa_printf(MSG_DEBUG, "cleared bssid flag");
+}
+
+static void esp_regsiter_action_frame(struct wpa_supplicant *wpa_s)
+{
+	wpa_s->type &= ~WLAN_FC_STYPE_ACTION;
+	/* subtype is defined only for action frame */
+	wpa_s->subtype = 0;
+
+	/* current supported features in supplicant: rrm and btm */
+	if (esp_wifi_is_rm_enabled_internal(ESP_IF_WIFI_STA))
+		wpa_s->subtype = 1 << WLAN_ACTION_RADIO_MEASUREMENT;
+	if (esp_wifi_is_btm_enabled_internal(ESP_IF_WIFI_STA))
+		wpa_s->subtype |= 1 << WLAN_ACTION_WNM;
+
+	if (wpa_s->subtype)
+		wpa_s->type |= 1 << WLAN_FC_STYPE_ACTION;
+
+	esp_wifi_register_frame_internal(wpa_s->type, wpa_s->subtype);
+}
+
+static void esp_supplicant_sta_conn_handler(void* arg, esp_event_base_t event_base,
+					    int event_id, void* event_data)
+{
+	u8 bssid[ETH_ALEN];
+	u8 *ie;
+	struct wpa_supplicant *wpa_s = &g_wpa_supp;
+	int ret = esp_wifi_get_assoc_bssid_internal(bssid);
+	if (ret < 0) {
+		wpa_printf(MSG_ERROR, "Not able to get connected bssid");
+		return;
+	}
+	struct wpa_bss *bss = wpa_bss_get_bssid(wpa_s, bssid);
+	if (!bss) {
+		wpa_printf(MSG_INFO, "connected bss entry not present in scan cache");
+		return;
+	}
+	wpa_s->current_bss = bss;
+	ie = (u8 *)bss;
+	ie += sizeof(struct wpa_bss);
+	ieee802_11_parse_elems(wpa_s, ie, bss->ie_len);
+	wpa_bss_flush(wpa_s);
+	/* Register for action frames */
+	esp_regsiter_action_frame(wpa_s);
+	/* clear set bssid flag */
+	esp_clear_bssid_flag(wpa_s);
+}
+
+static void esp_supplicant_sta_disconn_handler(void* arg, esp_event_base_t event_base,
+						int event_id, void* event_data)
+{
+	struct wpa_supplicant *wpa_s = &g_wpa_supp;
+	wpas_rrm_reset(wpa_s);
+	if (wpa_s->current_bss) {
+		wpa_s->current_bss = NULL;
+	}
+}
+
+void esp_supplicant_common_init(struct wpa_funcs *wpa_cb)
+{
+	struct wpa_supplicant *wpa_s = &g_wpa_supp;
+
+	s_supplicant_evt_queue = xQueueCreate(3, sizeof(supplicant_event_t));
+	xTaskCreate(esp_supplicant_task, "supplicantT", SUPPLICANT_TASK_STACK_SIZE, NULL, 2, s_supplicant_task_hdl);
+
+	s_supplicant_api_lock = xSemaphoreCreateRecursiveMutex();
+	if (!s_supplicant_api_lock) {
+		wpa_printf(MSG_ERROR, "esp_supplicant_common_init: failed to create Supplicant API lock");
+		return;
+	}
+
+	esp_scan_init(wpa_s);
+	wpas_rrm_reset(wpa_s);
+	wpas_clear_beacon_rep_data(wpa_s);
+
+	esp_event_handler_register(WIFI_EVENT, WIFI_EVENT_STA_CONNECTED,
+			&esp_supplicant_sta_conn_handler, NULL);
+	esp_event_handler_register(WIFI_EVENT, WIFI_EVENT_STA_DISCONNECTED,
+			&esp_supplicant_sta_disconn_handler, NULL);
+
+	wpa_s->type = 0;
+	wpa_s->subtype = 0;
+	wpa_cb->esp_sta_rx_mgmt = esp_ieee80211_handle_rx_frm;
+}
+
+int esp_rrm_send_neighbor_rep_request(neighbor_rep_request_cb cb,
+				      void *cb_ctx)
+{
+	struct wpa_supplicant *wpa_s = &g_wpa_supp;
+	struct wpa_ssid_value wpa_ssid = {0};
+	struct wifi_ssid *ssid = esp_wifi_sta_get_prof_ssid_internal();
+	os_memcpy(wpa_ssid.ssid, ssid->ssid, ssid->len);
+	wpa_ssid.ssid_len = ssid->len;
+	wpas_rrm_send_neighbor_rep_request(wpa_s, &wpa_ssid, 0, 0, cb, cb_ctx);
+
+	return 0;
+}
+
+int esp_wnm_send_bss_transition_mgmt_query(enum btm_query_reason query_reason,
+					   const char *btm_candidates,
+					   int cand_list)
+{
+	struct wpa_supplicant *wpa_s = &g_wpa_supp;
+	return wnm_send_bss_transition_mgmt_query(wpa_s, query_reason, btm_candidates, cand_list);
+}
+
+void wpa_supplicant_connect(struct wpa_supplicant *wpa_s,
+			    struct wpa_bss *bss, char *ssid)
+{
+	wifi_config_t *config = os_zalloc(sizeof(wifi_config_t));
+
+	if (!config) {
+		wpa_printf(MSG_ERROR, "failed to allocate memory");
+		return;
+	}
+
+	esp_wifi_get_config(ESP_IF_WIFI_STA, config);
+	esp_wifi_disconnect();
+	/* We only support roaming in same ESS, therefore only bssid setting is needed */
+	os_memcpy(config->sta.bssid, bss->bssid, ETH_ALEN);
+	config->sta.bssid_set = 1;
+	esp_wifi_set_config(ESP_IF_WIFI_STA, config);
+	os_free(config);
+	esp_wifi_connect();
+}
+
+void esp_set_rm_enabled_ie(void)
+{
+	uint8_t rmm_ie[5] = {0};
+	uint8_t rrm_ie_len = 5;
+	uint8_t *pos = rmm_ie;
+
+	*pos |= WLAN_RRM_CAPS_LINK_MEASUREMENT;
+
+	*pos |= WLAN_RRM_CAPS_BEACON_REPORT_PASSIVE |
+#ifdef SCAN_CACHE_SUPPORTED
+		WLAN_RRM_CAPS_BEACON_REPORT_TABLE |
+#endif
+		WLAN_RRM_CAPS_BEACON_REPORT_ACTIVE;
+
+	/* set rm enabled IE if enabled in driver */
+	if (esp_wifi_is_rm_enabled_internal(ESP_IF_WIFI_STA)) {
+		esp_wifi_set_appie_internal(WIFI_APPIE_RM_ENABLED_CAPS, rmm_ie, rrm_ie_len, 0);
+	}
+}
+
+void esp_get_tx_power(uint8_t *tx_power)
+{
+#define DEFAULT_MAX_TX_POWER 19 /* max tx power is 19.5 dbm */
+	s8 power;
+	/* esp sends management frames at max tx power configured */
+	int ret = esp_wifi_get_max_tx_power(&power);
+	if (ret != 0) {
+		wpa_printf(MSG_ERROR, "failed to get tx power");
+		*tx_power = DEFAULT_MAX_TX_POWER;
+		return;
+	}
+	*tx_power = power/4;
+#undef DEFAULT_MAX_TX_POWER
+}
+
+int wpa_drv_send_action(struct wpa_supplicant *wpa_s,
+			unsigned int channel,
+			unsigned int wait,
+			const u8 *data, size_t data_len,
+			int no_cck)
+{
+	int ret = 0;
+	mgmt_frm_req_t *req = os_zalloc(sizeof(*req) + data_len);;
+	if (!req)
+		return -1;
+
+	if (!wpa_s->current_bss) {
+		wpa_printf(MSG_ERROR, "STA not associated, return");
+		ret = -1;
+		goto cleanup;
+	}
+
+	req->ifx = ESP_IF_WIFI_STA;
+	req->subtype = WLAN_FC_STYPE_ACTION;
+	req->data_len = data_len;
+	os_memcpy(req->data, data, req->data_len);
+
+	if (esp_wifi_send_mgmt_frm_internal(req) != 0) {
+		wpa_printf(MSG_ERROR, "action frame sending failed");
+		ret = -1;
+		goto cleanup;
+	}
+	wpa_printf(MSG_INFO, "action frame sent");
+
+cleanup:
+	os_free(req);
+	return ret;
+}
+
+int esp_supplicant_post_evt(uint32_t evt_id, uint32_t data)
+{
+	supplicant_event_t *evt = os_zalloc(sizeof(supplicant_event_t));
+	if (evt == NULL) {
+		return -1;
+	}
+	evt->id = evt_id;
+	evt->data = data;
+
+	SUPPLICANT_API_LOCK();
+	if (xQueueSend(s_supplicant_evt_queue, &evt, 10 / portTICK_PERIOD_MS ) != pdPASS) {
+		SUPPLICANT_API_UNLOCK();
+		os_free(evt);
+		return -1;
+	}
+	SUPPLICANT_API_UNLOCK();
+	return 0;
+}
+
+int esp_ieee80211_handle_rx_frm(u8 type, u8 *frame, size_t len, u8 *sender,
+				u32 rssi, u8 channel, u64 current_tsf)
+{
+	if (type == WLAN_FC_STYPE_BEACON || type == WLAN_FC_STYPE_PROBE_RESP) {
+		return esp_handle_beacon_probe(type, frame, len, sender, rssi, channel, current_tsf);
+	} else if (type ==  WLAN_FC_STYPE_ACTION) {
+		return esp_handle_action_frm(frame, len, sender, rssi, channel);
+	}
+
+	return -1;
+}
diff --git a/components/wpa_supplicant/src/esp_supplicant/esp_common_i.h b/components/wpa_supplicant/src/esp_supplicant/esp_common_i.h
new file mode 100755
index 00000000..8d87d077
--- /dev/null
+++ b/components/wpa_supplicant/src/esp_supplicant/esp_common_i.h
@@ -0,0 +1,80 @@
+/**
+ * Copyright 2020 Espressif Systems (Shanghai) PTE LTD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ESP_COMMON_I_H
+#define ESP_COMMON_I_H
+
+#include "utils/includes.h"
+
+struct wpa_funcs;
+
+#ifdef ROAMING_SUPPORT
+struct ieee_mgmt_frame {
+	u8 sender[ETH_ALEN];
+	u8 channel;
+	u32 rssi;
+	size_t len;
+	u8 payload[0];
+};
+
+typedef struct {
+    uint32_t id;
+    uint32_t data;
+} supplicant_event_t;
+
+#define SUPPLICANT_API_LOCK() xSemaphoreTakeRecursive(s_supplicant_api_lock, portMAX_DELAY)
+#define SUPPLICANT_API_UNLOCK() xSemaphoreGiveRecursive(s_supplicant_api_lock)
+
+#define SUPPLICANT_TASK_STACK_SIZE (6144 + TASK_STACK_SIZE_ADD)
+enum SIG_SUPPLICANT {
+	SIG_SUPPLICANT_RX_ACTION,
+	SIG_SUPPLICANT_SCAN_DONE,
+	SIG_SUPPLICANT_DEL_TASK,
+	SIG_SUPPLICANT_MAX,
+};
+
+int esp_supplicant_post_evt(uint32_t evt_id, uint32_t data);
+int esp_ieee80211_handle_rx_frm(u8 type, u8 *frame, size_t len, u8 *sender,
+			    u32 rssi, u8 channel, u64 current_tsf);
+void esp_set_rm_enabled_ie(void);
+void esp_get_tx_power(uint8_t *tx_power);
+void esp_supplicant_common_init(struct wpa_funcs *wpa_cb);
+#else
+
+#include "esp_rrm.h"
+#include "esp_wnm.h"
+
+static inline void esp_set_rm_enabled_ie(void) {}
+static inline int esp_ieee80211_handle_rx_frm(u8 type, u8 *frame, size_t len, u8 *sender,
+			    u32 rssi, u8 channel, u64 current_tsf)
+{
+	return -1;
+}
+int esp_rrm_send_neighbor_rep_request(neighbor_rep_request_cb cb,
+				      void *cb_ctx)
+{
+	return -1;
+}
+
+int esp_wnm_send_bss_transition_mgmt_query(enum btm_query_reason query_reason,
+					   const char *btm_candidates,
+					   int cand_list)
+{
+	return -1;
+}
+
+#endif
+#endif
diff --git a/components/wpa_supplicant/src/esp_supplicant/esp_scan.c b/components/wpa_supplicant/src/esp_supplicant/esp_scan.c
new file mode 100755
index 00000000..788d584c
--- /dev/null
+++ b/components/wpa_supplicant/src/esp_supplicant/esp_scan.c
@@ -0,0 +1,270 @@
+/**
+ * Copyright 2020 Espressif Systems (Shanghai) PTE LTD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "utils/includes.h"
+
+#include "utils/common.h"
+#include "common/ieee802_11_defs.h"
+#include "common/wpa_supplicant_i.h"
+#include "utils/wpa_debug.h"
+#include "esp_wifi_driver.h"
+#include "esp_wifi_types.h"
+#include "drivers/driver.h"
+#include "common/scan.h"
+#include "common/bss.h"
+#include "common/rrm.h"
+#include "common/ieee802_11_common.h"
+#include "esp_supplicant/esp_common_i.h"
+#include "common/wnm_sta.h"
+
+extern struct wpa_supplicant g_wpa_supp;
+
+static void esp_scan_done_event_handler(void* arg, esp_event_base_t event_base,
+					int event_id, void* event_data)
+{
+	struct wpa_supplicant *wpa_s = &g_wpa_supp;
+	if (!wpa_s->scanning) {
+		/* update last scan time */
+		wpa_s->scan_start_tsf = esp_wifi_get_tsf_time(ESP_IF_WIFI_STA);
+		wpa_printf(MSG_DEBUG, "scan not triggered by supplicant, ignore");
+		return;
+	}
+	wpa_s->type &= ~(1 << WLAN_FC_STYPE_BEACON) & ~(1 << WLAN_FC_STYPE_PROBE_RESP);
+	esp_wifi_register_frame_internal(wpa_s->type, wpa_s->subtype);
+	esp_supplicant_post_evt(SIG_SUPPLICANT_SCAN_DONE, 0);
+
+}
+
+static void esp_supp_handle_wnm_scan_done(struct wpa_supplicant *wpa_s)
+{
+	struct wpa_bss *bss = wpa_bss_get_next_bss(wpa_s, wpa_s->current_bss);
+
+	if (wpa_s->wnm_neighbor_report_elements) {
+		wnm_scan_process(wpa_s, 1);
+	} else if (wpa_s->wnm_dissoc_timer) {
+		if (wpa_s->num_bss == 1) {
+			wpa_printf(MSG_INFO, "not able to find another candidate, do nothing");
+			return;
+		}
+		/* this is a already matched bss */
+		if (bss)
+			wnm_bss_tm_connect(wpa_s, bss, NULL, 1);
+	}
+}
+
+static void esp_supp_scan_done_cleanup(struct wpa_supplicant *wpa_s)
+{
+	uint16_t number = 1;
+	wifi_ap_record_t ap_records;
+
+	wpa_s->scanning = 0;
+	wpa_s->scan_reason = 0;
+	/* clean scan list from net80211 */
+	esp_wifi_scan_get_ap_records(&number, &ap_records);
+}
+
+void esp_supplicant_handle_scan_done_evt(void)
+{
+	struct wpa_supplicant *wpa_s = &g_wpa_supp;
+
+	wpa_printf(MSG_INFO, "scan done received");
+	/* Check which module started this, call the respective function */
+	if (wpa_s->scan_reason == REASON_RRM_BEACON_REPORT) {
+		wpas_beacon_rep_scan_process(wpa_s, wpa_s->scan_start_tsf);
+	} else if (wpa_s->scan_reason == REASON_WNM_BSS_TRANS_REQ) {
+		esp_supp_handle_wnm_scan_done(wpa_s);
+	}
+	esp_supp_scan_done_cleanup(wpa_s);
+	wpa_bss_update_end(wpa_s);
+#ifndef SCAN_CACHE_SUPPORTED
+	wpa_bss_flush(wpa_s);
+#endif
+}
+
+void esp_scan_init(struct wpa_supplicant *wpa_s)
+{
+	wpa_s->scanning = 0;
+	wpa_bss_init(wpa_s);
+	wpa_s->last_scan_res = NULL;
+	esp_event_handler_register(WIFI_EVENT, WIFI_EVENT_SCAN_DONE,
+			&esp_scan_done_event_handler, NULL);
+}
+
+void esp_scan_deinit(struct wpa_supplicant *wpa_s)
+{
+	wpa_bss_deinit(wpa_s);
+}
+
+int esp_handle_beacon_probe(u8 type, u8 *frame, size_t len, u8 *sender,
+			    u32 rssi, u8 channel, u64 current_tsf)
+{
+	struct wpa_supplicant *wpa_s = &g_wpa_supp;
+	struct os_reltime now;
+	struct wpa_scan_res *res;
+	u8 *ptr;
+
+	if (len < 12) {
+		wpa_printf(MSG_ERROR, "beacon/probe is having short len=%d\n", len);
+		return -1;
+	}
+
+	res = os_zalloc(sizeof(struct wpa_scan_res) + len - 12);
+	if (!res) {
+		wpa_printf(MSG_ERROR, "failed to allocate memory");
+		return -1;
+	}
+
+	ptr = (u8 *)res;
+	os_get_time(&now);
+	os_memcpy(res->bssid, sender, ETH_ALEN);
+	res->tsf = WPA_GET_LE64(frame);
+	frame += 8;
+	len -= 8;
+
+	if ((wpa_s->scan_start_tsf == 0) &&
+	    wpa_s->current_bss &&
+	    (os_memcmp(wpa_s->current_bss, sender, ETH_ALEN) == 0)) {
+		wpa_s->scan_start_tsf = res->tsf;
+		os_memcpy(wpa_s->tsf_bssid, sender, ETH_ALEN);
+	}
+	res->beacon_int = WPA_GET_LE16(frame);
+
+	frame += 2;
+	len -= 2;
+	res->caps = WPA_GET_LE16(frame);
+	frame += 2;
+	len -= 2;
+
+	res->chan = channel;
+	res->noise = 0;
+	res->level = rssi;
+	os_memcpy(res->tsf_bssid, wpa_s->tsf_bssid, ETH_ALEN);
+	res->parent_tsf = current_tsf - wpa_s->scan_start_tsf;
+	if (type == WLAN_FC_STYPE_PROBE_RESP)
+		res->ie_len = len;
+	else if (type == WLAN_FC_STYPE_BEACON)
+		res->beacon_ie_len = len;
+
+	ptr += sizeof(struct wpa_scan_res);
+
+	/* update rest of the frame */
+	os_memcpy(ptr, frame, len);
+	wpa_bss_update_scan_res(wpa_s, res, &now);
+	os_free(res);
+
+	return 0;
+}
+
+static int esp_issue_scan(struct wpa_supplicant *wpa_s,
+			       struct wpa_driver_scan_params *scan_params)
+{
+	wifi_scan_config_t *params = NULL;
+	int ret = 0;
+	u64 scan_start_tsf = esp_wifi_get_tsf_time(ESP_IF_WIFI_STA);
+
+	/* TODO: Directly try to connect if scan results are recent */
+	if ((scan_start_tsf -  wpa_s->scan_start_tsf) > 100000) {
+		wpa_printf(MSG_DEBUG, "flushing old scan cache %llu",
+				(scan_start_tsf -  wpa_s->scan_start_tsf));
+		wpa_bss_flush(wpa_s);
+	}
+
+	esp_wifi_get_macaddr_internal(ESP_IF_WIFI_STA, wpa_s->tsf_bssid);
+
+	if (scan_params) {
+		params = os_zalloc(sizeof(wifi_scan_config_t));
+		if (!params) {
+			wpa_printf(MSG_ERROR, "failed to allocate memory");
+			return -1;
+		}
+		if (scan_params->num_ssids) {
+			params->ssid = os_zalloc(scan_params->ssids[0].ssid_len + 1);
+			if (!params->ssid) {
+				wpa_printf(MSG_ERROR, "failed to allocate memory");
+				return -1;
+			}
+			os_memcpy(params->ssid, scan_params->ssids[0].ssid, scan_params->ssids[0].ssid_len);
+			params->scan_type = WIFI_SCAN_TYPE_ACTIVE;
+		} else
+			params->scan_type = WIFI_SCAN_TYPE_PASSIVE;
+
+		if (scan_params->bssid) {
+			params->bssid = os_zalloc(ETH_ALEN);
+			if (!params->bssid) {
+				wpa_printf(MSG_ERROR, "failed to allocate memory");
+				return -1;
+			}
+			os_memcpy(params->bssid, scan_params->bssid, ETH_ALEN);
+		}
+		if (scan_params->channel) {
+			params->channel = scan_params->channel;
+		}
+
+		if (scan_params->duration) {
+			params->scan_time.passive = scan_params->duration;
+			params->scan_time.active.min = scan_params->duration;
+			params->scan_time.active.max = scan_params->duration;
+		}
+	}
+
+	wpa_s->scan_start_tsf = scan_start_tsf;
+	/* Register frames to come to supplicant when we park on channel */
+	wpa_s->type |= (1 << WLAN_FC_STYPE_BEACON) | (1 << WLAN_FC_STYPE_PROBE_RESP);
+	esp_wifi_register_frame_internal(wpa_s->type, wpa_s->subtype);
+
+	/* issue scan */
+	if (esp_wifi_scan_start(params, false) < 0) {
+		ret = -1;
+		goto cleanup;
+	}
+	wpa_s->scanning = 1;
+	wpa_bss_update_start(wpa_s);
+	wpa_printf(MSG_INFO, "scan issued at time=%llu", wpa_s->scan_start_tsf);
+
+cleanup:
+	if (params->ssid)
+		os_free(params->ssid);
+	if (params->bssid)
+		os_free(params->bssid);
+	os_free(params);
+
+	return ret;
+}
+
+/**
+ * wpa_supplicant_trigger_scan - Request driver to start a scan
+ * @wpa_s: Pointer to wpa_supplicant data
+ * @params: Scan parameters
+ * Returns: 0 on success, -1 on failure
+ */
+int wpa_supplicant_trigger_scan(struct wpa_supplicant *wpa_s,
+				struct wpa_driver_scan_params *params)
+{
+	return esp_issue_scan(wpa_s, params);
+}
+
+void wpa_scan_results_free(struct wpa_scan_results *res)
+{
+	size_t i;
+
+	if (res == NULL)
+		return;
+
+	for (i = 0; i < res->num; i++)
+		os_free(res->res[i]);
+	os_free(res->res);
+	os_free(res);
+}
diff --git a/components/wpa_supplicant/src/esp_supplicant/esp_scan_i.h b/components/wpa_supplicant/src/esp_supplicant/esp_scan_i.h
new file mode 100755
index 00000000..25442a6a
--- /dev/null
+++ b/components/wpa_supplicant/src/esp_supplicant/esp_scan_i.h
@@ -0,0 +1,25 @@
+/**
+ * Copyright 2020 Espressif Systems (Shanghai) PTE LTD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ESP_SCAN_I_H
+#define ESP_SCAN_I_H
+void esp_scan_init(struct wpa_supplicant *wpa_s);
+void esp_scan_deinit(struct wpa_supplicant *wpa_s);
+int esp_handle_beacon_probe(u8 type, u8 *frame, size_t len, u8 *sender,
+			    u32 rssi, u8 channel, u64 current_tsf);
+
+void esp_supplicant_handle_scan_done_evt(void);
+#endif
diff --git a/components/wpa_supplicant/src/esp_supplicant/esp_wifi_driver.h b/components/wpa_supplicant/src/esp_supplicant/esp_wifi_driver.h
old mode 100644
new mode 100755
index 77b5d4a5..ffd054da
--- a/components/wpa_supplicant/src/esp_supplicant/esp_wifi_driver.h
+++ b/components/wpa_supplicant/src/esp_supplicant/esp_wifi_driver.h
@@ -39,6 +39,7 @@ enum {
     WIFI_APPIE_FREQ_ERROR,
     WIFI_APPIE_ESP_MANUFACTOR,
     WIFI_APPIE_COUNTRY,
+    WIFI_APPIE_RM_ENABLED_CAPS,
     WIFI_APPIE_MAX,
 };
 
@@ -107,6 +108,7 @@ struct wpa_funcs {
     int (*wpa_michael_mic_failure)(u16 is_unicast);
     uint8_t *(*wpa3_build_sae_msg)(uint8_t *bssid, uint32_t type, size_t *len);
     int (*wpa3_parse_sae_msg)(uint8_t *buf, size_t len, uint32_t type, uint16_t status);
+    int (*esp_sta_rx_mgmt)(u8 type, u8 *frame, size_t len, u8 *sender, u32 rssi, u8 channel, u64 current_tsf);
 };
 
 struct wpa2_funcs {
@@ -156,7 +158,13 @@ typedef struct {
     uint8_t igtk[WPA_IGTK_LEN];
 } wifi_wpa_igtk_t;
 
-/*wpa_auth.c*/
+typedef struct {
+    wifi_interface_t ifx;
+    uint8_t subtype;
+    uint32_t data_len;
+    uint8_t data[0];
+} mgmt_frm_req_t;
+
 uint8_t *esp_wifi_ap_get_prof_pmk_internal(void);
 struct wifi_ssid *esp_wifi_ap_get_prof_ap_ssid_internal(void);
 uint8_t esp_wifi_ap_get_prof_authmode_internal(void);
@@ -224,5 +232,9 @@ uint8_t esp_wifi_get_user_init_flag_internal(void);
 int esp_wifi_ipc_internal(wifi_ipc_config_t *cfg, bool sync);
 esp_err_t esp_wifi_internal_issue_disconnect(uint8_t reason_code);
 int esp_wifi_ap_deauth_internal(uint8_t *mac, uint32_t reason);
+bool esp_wifi_is_rm_enabled_internal(uint8_t if_index);
+bool esp_wifi_is_btm_enabled_internal(uint8_t if_index);
+void esp_wifi_register_frame_internal(uint32_t type, uint32_t subtype);
+esp_err_t esp_wifi_send_mgmt_frm_internal(const mgmt_frm_req_t *req);
 
 #endif /* _ESP_WIFI_DRIVER_H_ */
diff --git a/components/wpa_supplicant/src/esp_supplicant/esp_wpa_main.c b/components/wpa_supplicant/src/esp_supplicant/esp_wpa_main.c
index 4fa9d1cc..7b37a6c0 100644
--- a/components/wpa_supplicant/src/esp_supplicant/esp_wpa_main.c
+++ b/components/wpa_supplicant/src/esp_supplicant/esp_wpa_main.c
@@ -34,6 +34,7 @@
 #include "esp_wifi_driver.h"
 #include "esp_private/wifi.h"
 #include "esp_wpa3_i.h"
+#include "esp_common_i.h"
 
 void  wpa_install_key(enum wpa_alg alg, u8 *addr, int key_idx, int set_tx,
                       u8 *seq, size_t seq_len, u8 *key, size_t key_len, int key_entry_valid)
@@ -102,6 +103,7 @@ void  wpa_config_assoc_ie(u8 proto, u8 *assoc_buf, u32 assoc_wpa_ie_len)
     } else {
         esp_wifi_set_appie_internal(WIFI_APPIE_RSN, assoc_buf, assoc_wpa_ie_len, 1);
     }
+    esp_set_rm_enabled_ie();
 }
 
 void  wpa_neg_complete(void)
@@ -154,6 +156,7 @@ bool  wpa_deattach(void)
 
 void  wpa_sta_connect(uint8_t *bssid)
 {
+
     int ret = 0;
     wpa_config_profile();
     ret = wpa_config_bss(bssid);
@@ -198,6 +201,13 @@ static void wpa_sta_disconnected_cb(uint8_t reason_code)
     }
 }
 
+#ifndef ROAMING_SUPPORT
+static void esp_supplicant_common_init(struct wpa_funcs *wpa_cb)
+{
+	wpa_cb->esp_sta_rx_mgmt = NULL;
+}
+#endif
+
 int esp_supplicant_init(void)
 {
     struct wpa_funcs *wpa_cb;
@@ -226,6 +236,7 @@ int esp_supplicant_init(void)
     wpa_cb->wpa_config_bss = NULL;//wpa_config_bss;
     wpa_cb->wpa_michael_mic_failure = wpa_michael_mic_failure;
     esp_wifi_register_wpa3_cb(wpa_cb);
+    esp_supplicant_common_init(wpa_cb);
 
     esp_wifi_register_wpa_cb_internal(wpa_cb);
 
diff --git a/components/wpa_supplicant/src/utils/bitfield.c b/components/wpa_supplicant/src/utils/bitfield.c
new file mode 100755
index 00000000..8dcec390
--- /dev/null
+++ b/components/wpa_supplicant/src/utils/bitfield.c
@@ -0,0 +1,89 @@
+/*
+ * Bitfield
+ * Copyright (c) 2013, Jouni Malinen <j@w1.fi>
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#include "includes.h"
+
+#include "common.h"
+#include "bitfield.h"
+
+
+struct bitfield {
+	u8 *bits;
+	size_t max_bits;
+};
+
+
+struct bitfield * bitfield_alloc(size_t max_bits)
+{
+	struct bitfield *bf;
+
+	bf = os_zalloc(sizeof(*bf) + (max_bits + 7) / 8);
+	if (bf == NULL)
+		return NULL;
+	bf->bits = (u8 *) (bf + 1);
+	bf->max_bits = max_bits;
+	return bf;
+}
+
+
+void bitfield_free(struct bitfield *bf)
+{
+	os_free(bf);
+}
+
+
+void bitfield_set(struct bitfield *bf, size_t bit)
+{
+	if (bit >= bf->max_bits)
+		return;
+	bf->bits[bit / 8] |= BIT(bit % 8);
+}
+
+
+void bitfield_clear(struct bitfield *bf, size_t bit)
+{
+	if (bit >= bf->max_bits)
+		return;
+	bf->bits[bit / 8] &= ~BIT(bit % 8);
+}
+
+
+int bitfield_is_set(struct bitfield *bf, size_t bit)
+{
+	if (bit >= bf->max_bits)
+		return 0;
+	return !!(bf->bits[bit / 8] & BIT(bit % 8));
+}
+
+
+static int first_zero(u8 val)
+{
+	int i;
+	for (i = 0; i < 8; i++) {
+		if (!(val & 0x01))
+			return i;
+		val >>= 1;
+	}
+	return -1;
+}
+
+
+int bitfield_get_first_zero(struct bitfield *bf)
+{
+	size_t i;
+	for (i = 0; i < (bf->max_bits + 7) / 8; i++) {
+		if (bf->bits[i] != 0xff)
+			break;
+	}
+	if (i == (bf->max_bits + 7) / 8)
+		return -1;
+	i = i * 8 + first_zero(bf->bits[i]);
+	if (i >= bf->max_bits)
+		return -1;
+	return i;
+}
diff --git a/components/wpa_supplicant/src/utils/bitfield.h b/components/wpa_supplicant/src/utils/bitfield.h
new file mode 100755
index 00000000..7050a208
--- /dev/null
+++ b/components/wpa_supplicant/src/utils/bitfield.h
@@ -0,0 +1,21 @@
+/*
+ * Bitfield
+ * Copyright (c) 2013, Jouni Malinen <j@w1.fi>
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#ifndef BITFIELD_H
+#define BITFIELD_H
+
+struct bitfield;
+
+struct bitfield * bitfield_alloc(size_t max_bits);
+void bitfield_free(struct bitfield *bf);
+void bitfield_set(struct bitfield *bf, size_t bit);
+void bitfield_clear(struct bitfield *bf, size_t bit);
+int bitfield_is_set(struct bitfield *bf, size_t bit);
+int bitfield_get_first_zero(struct bitfield *bf);
+
+#endif /* BITFIELD_H */
diff --git a/components/wpa_supplicant/src/utils/common.c b/components/wpa_supplicant/src/utils/common.c
index b57feee3..47305b0c 100644
--- a/components/wpa_supplicant/src/utils/common.c
+++ b/components/wpa_supplicant/src/utils/common.c
@@ -491,3 +491,59 @@ int hwaddr_aton2(const char *txt, u8 *addr)
 
 	return pos - txt;
 }
+
+static inline int os_reltime_expired(struct os_time *now,
+				     struct os_time *ts,
+				     os_time_t timeout_secs)
+{
+	struct os_time age;
+
+	os_time_sub(now, ts, &age);
+	return (age.sec > timeout_secs) ||
+		(age.sec == timeout_secs && age.usec > 0);
+}
+
+int os_time_expired(struct os_time *now,
+		struct os_time *ts,
+		os_time_t timeout_secs)
+{
+	return os_reltime_expired(now, ts, timeout_secs);
+}
+
+u8 rssi_to_rcpi(int rssi)
+{
+	if (!rssi)
+		return 255; /* not available */
+	if (rssi < -110)
+		return 0;
+	if (rssi > 0)
+		return 220;
+	return (rssi + 110) * 2;
+}
+
+/**
+ * wpa_ssid_txt - Convert SSID to a printable string
+ * @ssid: SSID (32-octet string)
+ * @ssid_len: Length of ssid in octets
+ * Returns: Pointer to a printable string
+ *
+ * This function can be used to convert SSIDs into printable form. In most
+ * cases, SSIDs do not use unprintable characters, but IEEE 802.11 standard
+ * does not limit the used character set, so anything could be used in an SSID.
+ *
+ * This function uses a static buffer, so only one call can be used at the
+ * time, i.e., this is not re-entrant and the returned buffer must be used
+ * before calling this again.
+ */
+const char * wpa_ssid_txt(const u8 *ssid, size_t ssid_len)
+{
+	static char ssid_txt[SSID_MAX_LEN * 4 + 1];
+
+	if (ssid == NULL) {
+		ssid_txt[0] = '\0';
+		return ssid_txt;
+	}
+
+	printf_encode(ssid_txt, sizeof(ssid_txt), ssid, ssid_len);
+	return ssid_txt;
+}
diff --git a/components/wpa_supplicant/src/utils/common.h b/components/wpa_supplicant/src/utils/common.h
index fb486565..7e6b4352 100644
--- a/components/wpa_supplicant/src/utils/common.h
+++ b/components/wpa_supplicant/src/utils/common.h
@@ -13,6 +13,7 @@
 #endif /* ets */
 #include "os.h"
 #include "esp_bit_defs.h"
+#include "utils/list.h"
 
 /* Define platform specific variable type macros */
 #if defined(ESP_PLATFORM)
@@ -117,6 +118,12 @@ static inline unsigned int wpa_swap_32(unsigned int v)
 #define WPA_BYTE_SWAP_DEFINED
 #endif /* !WPA_BYTE_SWAP_DEFINED */
 
+#define SSID_MAX_LEN 32
+
+struct wpa_ssid_value {
+	u8 ssid[SSID_MAX_LEN];
+	size_t ssid_len;
+};
 
 /* Macros for handling unaligned memory accesses */
 
@@ -381,6 +388,10 @@ int wpa_snprintf_hex_uppercase(char *buf, size_t buf_size, const u8 *data,
 			       size_t len);
 
 int hwaddr_mask_txt(char *buf, size_t len, const u8 *addr, const u8 *mask);
+u8 rssi_to_rcpi(int rssi);
+int os_time_expired(struct os_time *now,
+		struct os_time *ts,
+		os_time_t timeout_secs);
 
 #ifdef CONFIG_NATIVE_WINDOWS
 void wpa_unicode2ascii_inplace(TCHAR *str);
diff --git a/components/wpa_supplicant/src/utils/list.h b/components/wpa_supplicant/src/utils/list.h
index a67a0496..a9a48754 100755
--- a/components/wpa_supplicant/src/utils/list.h
+++ b/components/wpa_supplicant/src/utils/list.h
@@ -12,8 +12,8 @@
  * See README and COPYING for more details.
  */
 
-#ifndef LIST_H
-#define LIST_H
+#ifndef WPA_LIST_H
+#define WPA_LIST_H
 
 #include <stddef.h>
 
@@ -100,4 +100,4 @@ static inline unsigned int dl_list_len(struct dl_list *list)
 #define DEFINE_DL_LIST(name) \
 	struct dl_list name = { &(name), &(name) }
 
-#endif /* LIST_H */
+#endif /* WPA_LIST_H */
diff --git a/components/wpa_supplicant/src/utils/wpa_debug.c b/components/wpa_supplicant/src/utils/wpa_debug.c
index 20a0ae44..8d53bf49 100644
--- a/components/wpa_supplicant/src/utils/wpa_debug.c
+++ b/components/wpa_supplicant/src/utils/wpa_debug.c
@@ -91,22 +91,22 @@ void  wpa_hexdump(int level, const char *title, const u8 *buf, size_t len)
 	size_t i;
 	char output[50];
 
-	if (level < MSG_MSGDUMP)
+	if (level < MSG_ERROR)
 		return;
 
-	wpa_printf(MSG_DEBUG, "%s - hexdump(len=%lu):", title, (unsigned long) len);
+	wpa_printf(level, "%s - hexdump(len=%lu):", title, (unsigned long) len);
 	if (buf == NULL) {
-		wpa_printf(MSG_DEBUG, " [NULL]");
+		wpa_printf(level, " [NULL]");
 	} else {
 		for (i = 0; i < len / 16; i++) {
 			_wpa_snprintf_hex(output, 50, buf + i * 16, 16, 0, 1);
-			wpa_printf(MSG_DEBUG, "%s", output);
+			wpa_printf(level, "%s", output);
 		}
 		if (len % 16) {
 			int bytes_printed = (len / 16) * 16;
 			_wpa_snprintf_hex(output, 50, buf + bytes_printed,
 							  len - bytes_printed, 0, 1);
-			wpa_printf(MSG_DEBUG, "%s", output);
+			wpa_printf(level, "%s", output);
 		}
 	} 
 #endif	

From 9cef7494443950139637ab2b3ef6e88280393942 Mon Sep 17 00:00:00 2001
From: Zhang Jun Hao <zhangjunhao@espressif.com>
Date: Tue, 1 Sep 2020 15:48:39 +0800
Subject: [PATCH 2/5] feat(examples): add roaming example

---
 examples/wifi/roaming/CMakeLists.txt         |   9 +
 examples/wifi/roaming/Makefile               |   9 +
 examples/wifi/roaming/main/CMakeLists.txt    |   3 +
 examples/wifi/roaming/main/Kconfig.projbuild |  21 ++
 examples/wifi/roaming/main/component.mk      |   4 +
 examples/wifi/roaming/main/roaming_example.c | 356 +++++++++++++++++++
 examples/wifi/roaming/sdkconfig.defaults     |   2 +
 7 files changed, 404 insertions(+)
 create mode 100755 examples/wifi/roaming/CMakeLists.txt
 create mode 100755 examples/wifi/roaming/Makefile
 create mode 100755 examples/wifi/roaming/main/CMakeLists.txt
 create mode 100755 examples/wifi/roaming/main/Kconfig.projbuild
 create mode 100755 examples/wifi/roaming/main/component.mk
 create mode 100755 examples/wifi/roaming/main/roaming_example.c
 create mode 100755 examples/wifi/roaming/sdkconfig.defaults

diff --git a/examples/wifi/roaming/CMakeLists.txt b/examples/wifi/roaming/CMakeLists.txt
new file mode 100755
index 00000000..a1db8df4
--- /dev/null
+++ b/examples/wifi/roaming/CMakeLists.txt
@@ -0,0 +1,9 @@
+
+# (Automatically converted from project Makefile by convert_to_cmake.py.)
+
+# The following lines of boilerplate have to be in your project's CMakeLists
+# in this exact order for cmake to work correctly
+cmake_minimum_required(VERSION 3.5)
+
+include($ENV{IDF_PATH}/tools/cmake/project.cmake)
+project(roaming)
diff --git a/examples/wifi/roaming/Makefile b/examples/wifi/roaming/Makefile
new file mode 100755
index 00000000..0822c383
--- /dev/null
+++ b/examples/wifi/roaming/Makefile
@@ -0,0 +1,9 @@
+#
+# This is a project Makefile. It is assumed the directory this Makefile resides in is a
+# project subdirectory.
+#
+
+PROJECT_NAME := roaminng
+
+include $(IDF_PATH)/make/project.mk
+
diff --git a/examples/wifi/roaming/main/CMakeLists.txt b/examples/wifi/roaming/main/CMakeLists.txt
new file mode 100755
index 00000000..c3c5d418
--- /dev/null
+++ b/examples/wifi/roaming/main/CMakeLists.txt
@@ -0,0 +1,3 @@
+# Embed CA, certificate & key directly into binary
+idf_component_register(SRCS "roaming_example.c"
+                    INCLUDE_DIRS ".")
diff --git a/examples/wifi/roaming/main/Kconfig.projbuild b/examples/wifi/roaming/main/Kconfig.projbuild
new file mode 100755
index 00000000..6561bff7
--- /dev/null
+++ b/examples/wifi/roaming/main/Kconfig.projbuild
@@ -0,0 +1,21 @@
+menu "Example Configuration"
+
+    config EXAMPLE_WIFI_SSID
+        string "WiFi SSID"
+        default "roaming_test"
+        help
+            SSID (network name) for the example to connect to.
+
+    config EXAMPLE_WIFI_PASSWORD
+        string "WiFi Password"
+        default "password"
+        help
+            WiFi password (WPA or WPA2) for the example to use.
+
+    config EXAMPLE_WIFI_RSSI_THRESHOLD
+        int "WiFi RSSI threshold to trigger roaming"
+        default 0
+        help
+            WiFi RSSI threshold to trigger roaming value in dbm (-100 to 0). 0 denotes feature is disabled.
+
+endmenu
diff --git a/examples/wifi/roaming/main/component.mk b/examples/wifi/roaming/main/component.mk
new file mode 100755
index 00000000..a98f634e
--- /dev/null
+++ b/examples/wifi/roaming/main/component.mk
@@ -0,0 +1,4 @@
+#
+# "main" pseudo-component makefile.
+#
+# (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.)
diff --git a/examples/wifi/roaming/main/roaming_example.c b/examples/wifi/roaming/main/roaming_example.c
new file mode 100755
index 00000000..30051ef4
--- /dev/null
+++ b/examples/wifi/roaming/main/roaming_example.c
@@ -0,0 +1,356 @@
+#include <string.h>
+#include <stdlib.h>
+#include "freertos/FreeRTOS.h"
+#include "freertos/task.h"
+#include "freertos/event_groups.h"
+#include "esp_wifi.h"
+#include "esp_wnm.h"
+#include "esp_rrm.h"
+#include "esp_event.h"
+#include "esp_log.h"
+#include "esp_system.h"
+#include "nvs_flash.h"
+#include "esp_netif.h"
+
+/* Configuration */
+#define EXAMPLE_WIFI_SSID CONFIG_EXAMPLE_WIFI_SSID
+#define EXAMPLE_WIFI_PASSWORD CONFIG_EXAMPLE_WIFI_PASSWORD
+#define EXAMPLE_WIFI_RSSI_THRESHOLD CONFIG_EXAMPLE_WIFI_RSSI_THRESHOLD
+
+/* rrm ctx */
+int rrm_ctx = 0;
+
+/* FreeRTOS event group to signal when we are connected & ready to make a request */
+static EventGroupHandle_t wifi_event_group;
+
+static const char *TAG = "roaming_example";
+
+static inline uint32_t WPA_GET_LE32(const uint8_t *a)
+{
+	return ((uint32_t) a[3] << 24) | (a[2] << 16) | (a[1] << 8) | a[0];
+}
+
+static void event_handler(void* arg, esp_event_base_t event_base,
+		int32_t event_id, void* event_data)
+{
+	if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) {
+		esp_wifi_connect();
+	} else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) {
+		esp_wifi_connect();
+	} else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_CONNECTED) {
+#if EXAMPLE_WIFI_RSSI_THRESHOLD
+		if (EXAMPLE_WIFI_RSSI_THRESHOLD) {
+			ESP_LOGI(TAG, "setting rssi threshold as %d\n", EXAMPLE_WIFI_RSSI_THRESHOLD);
+			esp_wifi_set_rssi_threshold(EXAMPLE_WIFI_RSSI_THRESHOLD);
+		}
+#endif
+	}
+}
+
+#ifndef WLAN_EID_MEASURE_REPORT
+#define WLAN_EID_MEASURE_REPORT 39
+#endif
+#ifndef MEASURE_TYPE_LCI
+#define MEASURE_TYPE_LCI 9
+#endif
+#ifndef MEASURE_TYPE_LOCATION_CIVIC
+#define MEASURE_TYPE_LOCATION_CIVIC 11
+#endif
+#ifndef WLAN_EID_NEIGHBOR_REPORT
+#define WLAN_EID_NEIGHBOR_REPORT 52
+#endif
+#ifndef ETH_ALEN
+#define ETH_ALEN 6
+#endif
+
+#define MAX_NEIGHBOR_LEN 512
+#if 1
+static char * get_btm_neighbor_list(uint8_t *report, size_t report_len)
+{
+	size_t len = 0;
+	const uint8_t *data;
+	int ret = 0;
+
+	/*
+	 * Neighbor Report element (IEEE P802.11-REVmc/D5.0)
+	 * BSSID[6]
+	 * BSSID Information[4]
+	 * Operating Class[1]
+	 * Channel Number[1]
+	 * PHY Type[1]
+	 * Optional Subelements[variable]
+	 */
+#define NR_IE_MIN_LEN (ETH_ALEN + 4 + 1 + 1 + 1)
+
+	if (!report || report_len == 0) {
+		ESP_LOGI(TAG, "RRM neighbor report is not valid");
+		return NULL;
+	}
+
+	char *buf = calloc(1, MAX_NEIGHBOR_LEN);
+	data = report;
+
+	while (report_len >= 2 + NR_IE_MIN_LEN) {
+		const uint8_t *nr;
+		char lci[256 * 2 + 1];
+		char civic[256 * 2 + 1];
+		uint8_t nr_len = data[1];
+		const uint8_t *pos = data, *end;
+
+		if (pos[0] != WLAN_EID_NEIGHBOR_REPORT ||
+		    nr_len < NR_IE_MIN_LEN) {
+			ESP_LOGI(TAG, "CTRL: Invalid Neighbor Report element: id=%u len=%u",
+					data[0], nr_len);
+			ret = -1;
+			goto cleanup;
+		}
+
+		if (2U + nr_len > report_len) {
+			ESP_LOGI(TAG, "CTRL: Invalid Neighbor Report element: id=%u len=%zu nr_len=%u",
+					data[0], report_len, nr_len);
+			ret = -1;
+			goto cleanup;
+		}
+		pos += 2;
+		end = pos + nr_len;
+
+		nr = pos;
+		pos += NR_IE_MIN_LEN;
+
+		lci[0] = '\0';
+		civic[0] = '\0';
+		while (end - pos > 2) {
+			uint8_t s_id, s_len;
+
+			s_id = *pos++;
+			s_len = *pos++;
+			if (s_len > end - pos) {
+				ret = -1;
+				goto cleanup;
+			}
+			if (s_id == WLAN_EID_MEASURE_REPORT && s_len > 3) {
+				/* Measurement Token[1] */
+				/* Measurement Report Mode[1] */
+				/* Measurement Type[1] */
+				/* Measurement Report[variable] */
+				switch (pos[2]) {
+					case MEASURE_TYPE_LCI:
+						if (lci[0])
+							break;
+						memcpy(lci, pos, s_len);
+						break;
+					case MEASURE_TYPE_LOCATION_CIVIC:
+						if (civic[0])
+							break;
+						memcpy(civic, pos, s_len);
+						break;
+				}
+			}
+
+			pos += s_len;
+		}
+
+		ESP_LOGI(TAG, "RMM neigbor report bssid=" MACSTR
+				" info=0x%x op_class=%u chan=%u phy_type=%u%s%s%s%s",
+				MAC2STR(nr), WPA_GET_LE32(nr + ETH_ALEN),
+				nr[ETH_ALEN + 4], nr[ETH_ALEN + 5],
+				nr[ETH_ALEN + 6],
+				lci[0] ? " lci=" : "", lci,
+				civic[0] ? " civic=" : "", civic);
+
+		/* neighbor start */
+		len += snprintf(buf + len, MAX_NEIGHBOR_LEN - len, " neighbor=");
+		/* bssid */
+		len += snprintf(buf + len, MAX_NEIGHBOR_LEN - len, MACSTR, MAC2STR(nr));
+		/* , */
+		len += snprintf(buf + len, MAX_NEIGHBOR_LEN - len, ",");
+		/* bssid info */
+		len += snprintf(buf + len, MAX_NEIGHBOR_LEN - len, "0x%04x", WPA_GET_LE32(nr + ETH_ALEN));
+		len += snprintf(buf + len, MAX_NEIGHBOR_LEN - len, ",");
+		/* operating class */
+		len += snprintf(buf + len, MAX_NEIGHBOR_LEN - len, "%u", nr[ETH_ALEN + 4]);
+		len += snprintf(buf + len, MAX_NEIGHBOR_LEN - len, ",");
+		/* channel number */
+		len += snprintf(buf + len, MAX_NEIGHBOR_LEN - len, "%u", nr[ETH_ALEN + 5]);
+		len += snprintf(buf + len, MAX_NEIGHBOR_LEN - len, ",");
+		/* phy type */
+		len += snprintf(buf + len, MAX_NEIGHBOR_LEN - len, "%u", nr[ETH_ALEN + 6]);
+		/* optional elements, skip */
+
+		data = end;
+		report_len -= 2 + nr_len;
+	}
+
+cleanup:
+	if (ret < 0) {
+		free(buf);
+		buf = NULL;
+	}
+	return buf;
+}
+
+#else
+char * get_tmp_neighbor_list(uint8_t *report, size_t report_len)
+{
+#define MAC1 "00:01:02:03:04:05"
+#define MAC2 "00:02:03:04:05:06"
+
+	printf("coming here\n");
+	char * buf = calloc(1, MAX_NEIGHBOR_LEN);
+	size_t len = 0;
+	char *pos;
+	if (!buf)
+		return NULL;
+
+	pos = buf;
+	/* create two temp neighbors */
+	/* format for neighbor list : neighbor=11:22:33:44:55:66,0x0000,81,3,7,0301ff */
+
+	/* neighbor start */
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, " neighbor=");
+	printf("buf: %s len =%d\n", buf, len);
+	/* bssid */
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, MAC1);
+	/* , */
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, ",");
+	/* bssid info */
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, "0x0000");
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, ",");
+	/* operating class */
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, "81");
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, ",");
+	/* channel number */
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, "6");
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, ",");
+	/* phy type */
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, "7");
+	/* optional elements, skip */
+
+	/* neighbor start */
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, " neighbor=");
+	/* bssid */
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, MAC2);
+	/* , */
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, ",");
+	/* bssid info */
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, "0x0000");
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, ",");
+	/* operating class */
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, "81");
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, ",");
+	/* channel number */
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, "6");
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, ",");
+	/* phy type */
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, "7");
+	/* optional elements, skip */
+
+	len += snprintf(pos + len, MAX_NEIGHBOR_LEN - len, " ");
+
+	return buf;
+}
+#endif
+
+void neighbor_report_recv_cb(void *ctx, const uint8_t *report, size_t report_len)
+{
+	int *val = ctx;
+	uint8_t *pos = (uint8_t *)report;
+	int cand_list = 0;
+
+	if (!report) {
+		ESP_LOGE(TAG, "report is null");
+		return;
+	}
+	if (*val != rrm_ctx) {
+		ESP_LOGE(TAG, "rrm_ctx value didn't match, not initiated by us");
+		return;
+	}
+	/* dump report info */
+	ESP_LOGI(TAG, "rrm: neighbor report len=%d", report_len);
+	ESP_LOG_BUFFER_HEXDUMP(TAG, pos, report_len, ESP_LOG_INFO);
+
+	/* create neighbor list */
+	char *neighbor_list = get_btm_neighbor_list(pos + 1, report_len - 1);
+
+	/* In case neighbor list is not present issue a scan and get the list from that */
+	if (!neighbor_list) {
+		/* issue scan */
+		wifi_scan_config_t params;
+		memset(&params, 0, sizeof(wifi_scan_config_t));
+		if (esp_wifi_scan_start(&params, true) < 0) {
+			goto cleanup;
+		}
+		/* cleanup from net802.11 */
+		uint16_t number = 1;
+		wifi_ap_record_t ap_records;
+		esp_wifi_scan_get_ap_records(&number, &ap_records);
+		cand_list = 1;
+	}
+	/* send AP btm query, this will cause STA to roam as well */
+	esp_wnm_send_bss_transition_mgmt_query(REASON_FRAME_LOSS, neighbor_list, cand_list);
+
+cleanup:
+	if (neighbor_list)
+		free(neighbor_list);
+}
+
+#if EXAMPLE_WIFI_RSSI_THRESHOLD
+static void esp_bss_rssi_low_handler(void* arg, esp_event_base_t event_base,
+		int32_t event_id, void* event_data)
+{
+	wifi_event_bss_rssi_low_t *event = event_data;
+
+	ESP_LOGI(TAG, "%s:bss rssi is=%d", __func__, event->rssi);
+	/* Lets check channel conditions */
+	rrm_ctx++;
+	if (esp_rrm_send_neighbor_rep_request(neighbor_report_recv_cb, &rrm_ctx) < 0) {
+		/* failed to send neighbor report request */
+		ESP_LOGI(TAG, "failed to send neighbor report request");
+		if (esp_wnm_send_bss_transition_mgmt_query(REASON_FRAME_LOSS, NULL, 0) < 0) {
+			ESP_LOGI(TAG, "failed to send btm query");
+		}
+	}
+}
+#endif
+
+static void initialise_wifi(void)
+{
+	wifi_event_group = xEventGroupCreate();
+
+	ESP_ERROR_CHECK(esp_netif_init());
+
+	ESP_ERROR_CHECK(esp_event_loop_create_default());
+
+	wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
+	ESP_ERROR_CHECK( esp_wifi_init(&cfg) );
+
+	ESP_ERROR_CHECK( esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL) );
+	ESP_ERROR_CHECK( esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler, NULL) );
+
+#if EXAMPLE_WIFI_RSSI_THRESHOLD
+	ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, WIFI_EVENT_STA_BSS_RSSI_LOW,
+				&esp_bss_rssi_low_handler, NULL));
+#endif
+
+
+	ESP_ERROR_CHECK( esp_wifi_set_storage(WIFI_STORAGE_RAM) );
+	wifi_config_t wifi_config = {
+		.sta = {
+			.ssid = EXAMPLE_WIFI_SSID,
+			.password = EXAMPLE_WIFI_PASSWORD,
+			.rm_enabled =1,
+			.btm_enabled =1,
+		},
+	};
+
+	ESP_LOGI(TAG, "Setting WiFi configuration SSID %s...", wifi_config.sta.ssid);
+	ESP_ERROR_CHECK( esp_wifi_set_mode(WIFI_MODE_STA) );
+	ESP_ERROR_CHECK( esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config) );
+	ESP_ERROR_CHECK( esp_wifi_start() );
+}
+
+void app_main(void)
+{
+	ESP_ERROR_CHECK( nvs_flash_init() );
+	initialise_wifi();
+}
diff --git a/examples/wifi/roaming/sdkconfig.defaults b/examples/wifi/roaming/sdkconfig.defaults
new file mode 100755
index 00000000..8e1ae374
--- /dev/null
+++ b/examples/wifi/roaming/sdkconfig.defaults
@@ -0,0 +1,2 @@
+CONFIG_WPA_11KV_SUPPORT=y
+CONFIG_WPA_SCAN_CACHE=y

From c8c35d12d4507702fb9b89515051c4dfcadf846a Mon Sep 17 00:00:00 2001
From: Zhang Jun Hao <zhangjunhao@espressif.com>
Date: Tue, 1 Sep 2020 16:36:53 +0800
Subject: [PATCH 3/5] update lib

---
 components/esp8266/lib/VERSION           |   8 ++++----
 components/esp8266/lib/libcore.a         | Bin 39018 -> 39018 bytes
 components/esp8266/lib/libcore_dbg.a     | Bin 39926 -> 39926 bytes
 components/esp8266/lib/libespnow.a       | Bin 38556 -> 38556 bytes
 components/esp8266/lib/libespnow_dbg.a   | Bin 38556 -> 38556 bytes
 components/esp8266/lib/libnet80211.a     | Bin 496898 -> 505288 bytes
 components/esp8266/lib/libnet80211_dbg.a | Bin 551534 -> 559900 bytes
 components/esp8266/lib/libpp.a           | Bin 257180 -> 257962 bytes
 components/esp8266/lib/libpp_dbg.a       | Bin 279460 -> 280218 bytes
 9 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/components/esp8266/lib/VERSION b/components/esp8266/lib/VERSION
index d9881a16..b78aa4c3 100644
--- a/components/esp8266/lib/VERSION
+++ b/components/esp8266/lib/VERSION
@@ -1,8 +1,8 @@
 gwen:
-    core:       daab7f3
-    net80211:   daab7f3
-    pp:         874acad
-    espnow:     daab7f3
+    core:       a3b9b2e
+    net80211:   a3b9b2e
+    pp:         a3b9b2e
+    espnow:     a3b9b2e
 
     smartconfig:  2.8.2
     phy:          1163.0
diff --git a/components/esp8266/lib/libcore.a b/components/esp8266/lib/libcore.a
index 1a7ec4dfd3f87c131fe7f0ebbfaccb972e96db1b..36a57826fd474dd10d7b47c6788962c241302302 100755
GIT binary patch
delta 174
zcmaF0f$7x-rU}w)mIjs<CI%Z7U09*a$@;<Ko10jLnUMLL*#E1*`19K&HlNq&6F}xy
z+g{>_@j?2teD}l5+pHh_4#h01u*vMmYG1{!*MRaj&u<Io;+@XO00xXw3=DHOGfzxs
F2LQeVG35XN

delta 174
zcmaF0f$7x-rU}w)7A8h!=4KleU09*a$@;<Ko10jLnUMLL*#E1*`19K&HlNq&6F}xy
z+g{>_@j?2teD}l5+pHh_4#h01u*vMmYG1{!*MRaj&u<Io;%#SS00TxT28Q0v%oEeu
E0ml(B;{X5v

diff --git a/components/esp8266/lib/libcore_dbg.a b/components/esp8266/lib/libcore_dbg.a
index 13c73f4115282face597631c0fbec6b8a6dfd4d0..91aa1ff9c5c8aecf121c6ab4f45f2d47b3516825 100755
GIT binary patch
delta 180
zcmeyio$1?lrU}yQmIjs<CPwBPm7G~&?8y%T#5Omv3NxVyY-0bff+BEEr(Xa?pvpF0
z7$&g!LBLg1122VLha0$gL*z<!xYC5gqZ%*{*lwpT2QJ>}j0|AFD8;}qcXR)gbans=
Ck~Y-<

delta 180
zcmeyio$1?lrU}yQ7A8h!<`$+Km7G~&?8y%T#5Omv3NxVyY-0bff+BEEr(Xa?pvpF0
z7$&g!LBLg1122VLha0$gL*z<!xYC5gqZ%*{*lwpT2QJ=rMg}lolwx4$-P}JVogDxS
CfHuDX

diff --git a/components/esp8266/lib/libespnow.a b/components/esp8266/lib/libespnow.a
index 0f549a8162c55531c76dfffba0c3957d41576d2b..178c4a2be5cdb331d210ecb35f944427c7678aa0 100755
GIT binary patch
delta 245
zcmbQUmTAsfrU}w)mIjs<CI%Z7%b20e$#a=&7;7d=u_!X8OtxW>0Ft3Bnmj3Il#ekn
zFz_%NIi*bQVle><?`N?GlK;UZgk8_N7AT_2b`mUWKKUIR2biTfIe}e?Ipt3B<h$%%
zlh3nr14VDMM*&GQ4i6w%&jB)NKSw-}l;;GpH^*~s(MC8(e6oS*3C57kKTX4#SR#~^
z!Y7AV>;m%nEd`kw!zU}+NHRujwzhdBDPd;JpjVWil30?c7ayNinwK0OuVQXwV7%Eh
HEZqSBN%u;4

delta 245
zcmbQUmTAsfrU}w)7A8h!=4Kle%b20e$#a=&7;`2|u_!WzOtxW>0Ft3Bnmi$Al#ekn
zFz_%NIfYE_Vle><?`N?GlK;UZgk8_N7AT_2b`mUWKKUIR2biTfIe}e?Ipj|A<h$%%
zlh3nr14VDMM*&GQ4i6w%&jB)NKSw-}l;;GpH^*~s(MC8(e6oS*3C4iUKTX4#SVEMP
zf+vSq>;m%nEd`kwgC{H6NCLH3+dPt#Ff?P(E6PtvEJ@Uhk54PjOOB6MF*h_d+iV(^
G?f?Ln%}G80

diff --git a/components/esp8266/lib/libespnow_dbg.a b/components/esp8266/lib/libespnow_dbg.a
index f63e24212cf556eeab1cf8fb5e9930ba14a2bf79..d12225467244eee6354c83fe4ab229d5eecccbdc 100755
GIT binary patch
delta 248
zcmbQUmTAsfrU}yQmIjs<CPo$;l}edm?8)<(s~Kx1OR*?2rcAbBkpPmRESfwiXOxdI
zF);8j8#$#+?qV?k3h!sJ2a^B6B!pehx)vy+%XShhYd-lM8wZ%BIXQt{i8<v?^5nbh
zUX#zWa|1<hvqu3*GY$_RS<eA7X+K9ikd)^HvNy+bZqY_^k=SGd(-Vv#n}3>yGqFS{
zDTPlCvDgLV^IHlsGloxAw2@?t*lca{NK(Sgm_e^7KP9mwQ7=9|tu!w=K3>J#$iR5B
IX;``g00SdSDF6Tf

delta 248
zcmbQUmTAsfrU}yQ7A8h!<`!lfl}edm?8)<(s~K}9OR*?2hD^3$kpPmRESfwaXOxdI
zF);8j8##qc?qV?k3h!sJ2a^B6B!pehx)vy+%XShhYd-lM8wZ%BIXQt{i8<s>^5nbh
zUX#zWa|1<hvqu3*GY$_RS<eA7X+K9ikd)^HvNy+bZqY_^k=SGd(-VvVn}3>yGqHpy
zDFsgsvDgLV^IHlsGX_sqw2=hrv9@_6DPd^FpjVWil30?c7ayNinwK0OuVQX!YPQ)l
HEZqSBOSwtu

diff --git a/components/esp8266/lib/libnet80211.a b/components/esp8266/lib/libnet80211.a
index d74e0bfa2261e69dc4788883193b065fb8489a34..c91ffb1f317106d758819bc61bb592c68228eae0 100755
GIT binary patch
delta 84984
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

delta 76648
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%0D^2X}%G3z&f935Yy0A`Y38?*yO2E{K^ycZvBx
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

diff --git a/components/esp8266/lib/libnet80211_dbg.a b/components/esp8266/lib/libnet80211_dbg.a
index f22a45b78cd0b68604bfb2744aa4549efba0fffd..32fc48fce961fb4c25ab698e9294a640949214fe 100755
GIT binary patch
delta 87790
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

delta 79473
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
WQ0b2$Caq!u#s{H6upHVX!~H*xt=G!{

diff --git a/components/esp8266/lib/libpp.a b/components/esp8266/lib/libpp.a
index 45323d6143901fa6ec42a4c4c06b86b5aa7306a8..101902ab395937eded4463193b010d4df92aecbf 100755
GIT binary patch
delta 15408
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

delta 14974
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
Vfbz|25<Z-%?vH)%u7r;^{5K+XN$3Co

diff --git a/components/esp8266/lib/libpp_dbg.a b/components/esp8266/lib/libpp_dbg.a
index f22c05751566529dd955a513d196ebd8c79d73b0..cc8ec495f27b37f20a97c1ccbf3ff7cf6e010d04 100755
GIT binary patch
delta 19926
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
C))xr?

delta 19115
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


From a89097ccec6546aa6bb56955f3bbb1b594b6dd50 Mon Sep 17 00:00:00 2001
From: Zhang Jun Hao <zhangjunhao@espressif.com>
Date: Tue, 1 Sep 2020 17:20:16 +0800
Subject: [PATCH 4/5] feat(wpa_supplicant): pmf espnow coexistance fixes

---
 .../esp8266/include/esp_wifi_crypto_types.h   |  4 ++-
 .../wpa_supplicant/src/crypto/aes-ccm.c       | 10 +++++--
 components/wpa_supplicant/src/crypto/aes.h    |  4 +--
 components/wpa_supplicant/src/crypto/ccmp.c   | 27 ++++++++++---------
 components/wpa_supplicant/src/crypto/ccmp.h   |  2 +-
 5 files changed, 28 insertions(+), 19 deletions(-)

diff --git a/components/esp8266/include/esp_wifi_crypto_types.h b/components/esp8266/include/esp_wifi_crypto_types.h
index a14eedda..0638a918 100644
--- a/components/esp8266/include/esp_wifi_crypto_types.h
+++ b/components/esp8266/include/esp_wifi_crypto_types.h
@@ -455,10 +455,12 @@ typedef int (*esp_omac1_aes_128_t)(const uint8_t *key, const uint8_t *data, size
  * @data: Pointer to encrypted data buffer
  * @data_len: Encrypted data length in bytes
  * @decrypted_len: Length of decrypted data
+ * @espnow_pkt: Indicates if it's an ESPNOW packet
  * Returns: Pointer to decrypted data on success, NULL on failure
  */
 typedef uint8_t * (*esp_ccmp_decrypt_t)(const uint8_t *tk, const uint8_t *ieee80211_hdr,
-                                        const uint8_t *data, size_t data_len, size_t *decrypted_len);
+                                        const uint8_t *data, size_t data_len,
+                                        size_t *decrypted_len, bool espnow_pkt);
 
 /**
  * @brief Encrypt data using CCMP (Counter Mode CBC-MAC Protocol OR
diff --git a/components/wpa_supplicant/src/crypto/aes-ccm.c b/components/wpa_supplicant/src/crypto/aes-ccm.c
index ca3acc26..53e43cbd 100644
--- a/components/wpa_supplicant/src/crypto/aes-ccm.c
+++ b/components/wpa_supplicant/src/crypto/aes-ccm.c
@@ -177,9 +177,10 @@ int aes_ccm_ae(const u8 *key, size_t key_len, const u8 *nonce,
 
 
 /* AES-CCM with fixed L=2 and aad_len <= 30 assumption */
-int aes_ccm_ad(const u8 *key, size_t key_len, const u8 *nonce,
+int aes_ccm_ad(const u8 *key, size_t key_len, u8 *nonce,
 	       size_t M, const u8 *crypt, size_t crypt_len,
-	       const u8 *aad, size_t aad_len, const u8 *auth, u8 *plain)
+	       const u8 *aad, size_t aad_len, const u8 *auth,
+	       u8 *plain, bool skip_auth)
 {
 	const size_t L = 2;
 	void *aes;
@@ -200,6 +201,11 @@ int aes_ccm_ad(const u8 *key, size_t key_len, const u8 *nonce,
 	/* plaintext = msg XOR (S_1 | S_2 | ... | S_n) */
 	aes_ccm_encr(aes, L, crypt, crypt_len, plain, a);
 
+	if (skip_auth) {
+		aes_encrypt_deinit(aes);
+		return 0;
+	}
+
 	aes_ccm_auth_start(aes, M, L, nonce, aad, aad_len, crypt_len, x);
 	aes_ccm_auth(aes, plain, crypt_len, x);
 
diff --git a/components/wpa_supplicant/src/crypto/aes.h b/components/wpa_supplicant/src/crypto/aes.h
index 309d24db..ee71688b 100644
--- a/components/wpa_supplicant/src/crypto/aes.h
+++ b/components/wpa_supplicant/src/crypto/aes.h
@@ -29,8 +29,8 @@ int omac1_aes_128(const u8 *key, const u8 *data, size_t data_len, u8 *mac);
 int aes_ccm_ae(const u8 *key, size_t key_len, const u8 *nonce,
                size_t M, const u8 *plain, size_t plain_len,
                const u8 *aad, size_t aad_len, u8 *crypt, u8 *auth);
-int aes_ccm_ad(const u8 *key, size_t key_len, const u8 *nonce,
+int aes_ccm_ad(const u8 *key, size_t key_len, u8 *nonce,
                size_t M, const u8 *crypt, size_t crypt_len,
                const u8 *aad, size_t aad_len, const u8 *auth,
-               u8 *plain);
+               u8 *plain, bool skip_auth);
 #endif /* AES_H */
diff --git a/components/wpa_supplicant/src/crypto/ccmp.c b/components/wpa_supplicant/src/crypto/ccmp.c
index f5814a78..152c2341 100644
--- a/components/wpa_supplicant/src/crypto/ccmp.c
+++ b/components/wpa_supplicant/src/crypto/ccmp.c
@@ -16,7 +16,7 @@
 #include "aes_wrap.h"
 
 static void ccmp_aad_nonce(const struct ieee80211_hdr *hdr, const u8 *data,
-			   u8 *aad, size_t *aad_len, u8 *nonce)
+                           u8 *aad, size_t *aad_len, u8 *nonce, bool espnow_pkt)
 {
 	u16 fc, stype, seq;
 	int qos = 0, addr4 = 0;
@@ -41,7 +41,7 @@ static void ccmp_aad_nonce(const struct ieee80211_hdr *hdr, const u8 *data,
 				qc += ETH_ALEN;
 			nonce[0] = qc[0] & 0x0f;
 		}
-	} else if (WLAN_FC_GET_TYPE(fc) == WLAN_FC_TYPE_MGMT)
+	} else if (!espnow_pkt && WLAN_FC_GET_TYPE(fc) == WLAN_FC_TYPE_MGMT)
 		nonce[0] |= 0x10; /* Management */
 
 	fc &= ~(WLAN_FC_RETRY | WLAN_FC_PWRMGT | WLAN_FC_MOREDATA);
@@ -136,7 +136,7 @@ static void ccmp_aad_nonce_pv1(const u8 *hdr, const u8 *a1, const u8 *a2,
 
 
 u8 * ccmp_decrypt(const u8 *tk, const u8 *hdr, const u8 *data,
-		  size_t data_len, size_t *decrypted_len)
+		  size_t data_len, size_t *decrypted_len, bool espnow_pkt)
 {
 	u8 aad[30], nonce[13];
 	size_t aad_len;
@@ -153,22 +153,22 @@ u8 * ccmp_decrypt(const u8 *tk, const u8 *hdr, const u8 *data,
 	mlen = data_len - 8 - 8;
 
 	os_memset(aad, 0, sizeof(aad));
-	ccmp_aad_nonce((const struct ieee80211_hdr *)hdr, data, aad, &aad_len, nonce);
-	//wpa_hexdump(MSG_DEBUG, "CCMP AAD", aad, aad_len);
-	//wpa_hexdump(MSG_DEBUG, "CCMP nonce", nonce, 13);
+	ccmp_aad_nonce((const struct ieee80211_hdr *)hdr, data, aad, &aad_len,
+                   nonce, espnow_pkt);
+	wpa_hexdump(MSG_DEBUG, "CCMP AAD", aad, aad_len);
+	wpa_hexdump(MSG_DEBUG, "CCMP nonce", nonce, 13);
 
 	if (aes_ccm_ad(tk, 16, nonce, 8, data + 8, mlen, aad, aad_len,
-		       data + 8 + mlen, plain) < 0) {
+                   data + 8 + mlen, plain, espnow_pkt ? true : false) < 0) {
 		os_free(plain);
 		return NULL;
 	}
-	//wpa_hexdump(MSG_DEBUG, "CCMP decrypted", plain, mlen);
+	wpa_hexdump(MSG_DEBUG, "CCMP decrypted", plain, mlen);
 
 	*decrypted_len = mlen;
 	return plain;
 }
 
-
 void ccmp_get_pn(u8 *pn, const u8 *data)
 {
 	pn[0] = data[7]; /* PN5 */
@@ -210,7 +210,7 @@ u8 * ccmp_encrypt(const u8 *tk, u8 *frame, size_t len, size_t hdrlen,
 	*pos++ = pn[0]; /* PN5 */
 
 	os_memset(aad, 0, sizeof(aad));
-	ccmp_aad_nonce(hdr, crypt + hdrlen, aad, &aad_len, nonce);
+	ccmp_aad_nonce(hdr, crypt + hdrlen, aad, &aad_len, nonce, false);
 	wpa_hexdump(MSG_DEBUG, "CCMP AAD", aad, aad_len);
 	wpa_hexdump(MSG_DEBUG, "CCMP nonce", nonce, 13);
 
@@ -288,12 +288,13 @@ u8 * ccmp_256_decrypt(const u8 *tk, const u8 *hdr, const u8 *data,
 	mlen = data_len - 8 - 16;
 
 	os_memset(aad, 0, sizeof(aad));
-	ccmp_aad_nonce((const struct ieee80211_hdr *)hdr, data, aad, &aad_len, nonce);
+	ccmp_aad_nonce((const struct ieee80211_hdr *)hdr, data, aad,
+                   &aad_len, nonce, false);
 	wpa_hexdump(MSG_DEBUG, "CCMP-256 AAD", aad, aad_len);
 	wpa_hexdump(MSG_DEBUG, "CCMP-256 nonce", nonce, 13);
 
 	if (aes_ccm_ad(tk, 32, nonce, 16, data + 8, mlen, aad, aad_len,
-		       data + 8 + mlen, plain) < 0) {
+		       data + 8 + mlen, plain, false) < 0) {
 		os_free(plain);
 		return NULL;
 	}
@@ -334,7 +335,7 @@ u8 * ccmp_256_encrypt(const u8 *tk, u8 *frame, size_t len, size_t hdrlen,
 	*pos++ = pn[0]; /* PN5 */
 
 	os_memset(aad, 0, sizeof(aad));
-	ccmp_aad_nonce(hdr, crypt + hdrlen, aad, &aad_len, nonce);
+	ccmp_aad_nonce(hdr, crypt + hdrlen, aad, &aad_len, nonce, false);
 	wpa_hexdump(MSG_DEBUG, "CCMP-256 AAD", aad, aad_len);
 	wpa_hexdump(MSG_DEBUG, "CCMP-256 nonce", nonce, 13);
 
diff --git a/components/wpa_supplicant/src/crypto/ccmp.h b/components/wpa_supplicant/src/crypto/ccmp.h
index aeca0602..0cf157bd 100644
--- a/components/wpa_supplicant/src/crypto/ccmp.h
+++ b/components/wpa_supplicant/src/crypto/ccmp.h
@@ -11,7 +11,7 @@
 #define CCMP_H
 
 u8 * ccmp_decrypt(const u8 *tk, const u8 *hdr, const u8 *data,
-		  size_t data_len, size_t *decrypted_len);
+		  size_t data_len, size_t *decrypted_len, bool espnow_pkt);
 u8 * ccmp_encrypt(const u8 *tk, u8 *frame, size_t len, size_t hdrlen,
 		  u8 *pn, int keyid, size_t *encrypted_len);
 u8 * ccmp_encrypt_pv1(const u8 *tk, const u8 *a1, const u8 *a2, const u8 *a3,

From 6ea6a7dfd581ceb63395baee7431ed4ef22f656a Mon Sep 17 00:00:00 2001
From: Zhang Jun Hao <zhangjunhao@espressif.com>
Date: Thu, 3 Sep 2020 15:35:18 +0800
Subject: [PATCH 5/5] feat(lib): update lib  - add max connection log in softap
  - add set and get inactive time api  - remove taskdelay after station
 disconnect from ap  - refactor set and get max phy tpw api  - fix sig test
 error

---
 components/esp8266/lib/VERSION           |   8 ++++----
 components/esp8266/lib/libcore.a         | Bin 39018 -> 39018 bytes
 components/esp8266/lib/libcore_dbg.a     | Bin 39926 -> 39926 bytes
 components/esp8266/lib/libespnow.a       | Bin 38556 -> 38660 bytes
 components/esp8266/lib/libespnow_dbg.a   | Bin 38556 -> 38660 bytes
 components/esp8266/lib/libnet80211.a     | Bin 505288 -> 510448 bytes
 components/esp8266/lib/libnet80211_dbg.a | Bin 559900 -> 564920 bytes
 components/esp8266/lib/libpp.a           | Bin 257962 -> 257918 bytes
 components/esp8266/lib/libpp_dbg.a       | Bin 280218 -> 280162 bytes
 9 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/components/esp8266/lib/VERSION b/components/esp8266/lib/VERSION
index b78aa4c3..b5d2b774 100644
--- a/components/esp8266/lib/VERSION
+++ b/components/esp8266/lib/VERSION
@@ -1,8 +1,8 @@
 gwen:
-    core:       a3b9b2e
-    net80211:   a3b9b2e
-    pp:         a3b9b2e
-    espnow:     a3b9b2e
+    core:       0f4f59c
+    net80211:   0f4f59c
+    pp:         0f4f59c
+    espnow:     0f4f59c
 
     smartconfig:  2.8.2
     phy:          1163.0
diff --git a/components/esp8266/lib/libcore.a b/components/esp8266/lib/libcore.a
index 36a57826fd474dd10d7b47c6788962c241302302..682ef4a79dd3fe828e77b0aba9e0fadc4199dc4e 100755
GIT binary patch
delta 134
zcmaF0f$7x-rU^1EhK8mV8x`DG!Hmgz!4jLBSVfrNyv3W?RUw>tZIYYM>+}mCc-6L-
n`QZvTXZaq07_wO}_yfX#%~oMk*b%B;#ct35^ES_GJ0l1H#*-=E

delta 134
zcmaF0f$7x-rU^1E29_2k8x`DG!Hmgz!4jLBSVfrNyv3W?RUw>tZIYYM>+}mCc-6L-
n`QZvTXZaq07_wO}_yfX#%~oMk*b%B;#ct35^ES_GJ0l1H)`uz^

diff --git a/components/esp8266/lib/libcore_dbg.a b/components/esp8266/lib/libcore_dbg.a
index 91aa1ff9c5c8aecf121c6ab4f45f2d47b3516825..85268af687b8217a90a8e523e8ee76c5a47410d6 100755
GIT binary patch
delta 130
zcmeyio$1?lrU^1EhK8mV8x`DG!HmiG0wgv!v5GLkd5br(tHL>(&*@AMK=7(;6NJIM
i&G!OsAQ^Be>;}Yu&Fdo9utQYDC7#eg=ydAZA_xEppey_U

delta 130
zcmeyio$1?lrU^1E29_2k8x`DG!HmiG0wgv!v5GLkd5br(tHL>(&*@AMK=7(;6NJIM
i&G!OsAQ^Be>;}Yu&Fdo9utQYDC7#eg=ydAZA_xE(1S~iJ

diff --git a/components/esp8266/lib/libespnow.a b/components/esp8266/lib/libespnow.a
index 178c4a2be5cdb331d210ecb35f944427c7678aa0..eadd8123ce417a4f2b8dd14a0d703cc359730935 100755
GIT binary patch
delta 2879
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
YB;u1m^&698qf&&ZHsQ>b;juF8Kax`qQvd(}

delta 2969
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

diff --git a/components/esp8266/lib/libespnow_dbg.a b/components/esp8266/lib/libespnow_dbg.a
index d12225467244eee6354c83fe4ab229d5eecccbdc..d1d505edecb84d9a228b85cfd8982e592b367037 100755
GIT binary patch
delta 2879
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
YB;u1m^&698qf&&ZHsQ>b;juF8Kax`qQvd(}

delta 2969
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

diff --git a/components/esp8266/lib/libnet80211.a b/components/esp8266/lib/libnet80211.a
index c91ffb1f317106d758819bc61bb592c68228eae0..155dc866c871e9f055730984f119cf3ffd39a617 100755
GIT binary patch
delta 102317
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
F?e9!)Pe1?w

delta 98847
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
IE>Tkc3;qvE`2YX_

diff --git a/components/esp8266/lib/libnet80211_dbg.a b/components/esp8266/lib/libnet80211_dbg.a
index 32fc48fce961fb4c25ab698e9294a640949214fe..bf09f75ef188d7b3a66d97235170571e0fba7a24 100755
GIT binary patch
delta 107908
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
Wbp&kV<bjyXU(ddSagQ69cK-uvhUTRJ

delta 103287
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
b{z)W#_DT*!&I6OR2PgV*92Pg=l-J=ur@Gr~

diff --git a/components/esp8266/lib/libpp.a b/components/esp8266/lib/libpp.a
index 101902ab395937eded4463193b010d4df92aecbf..2c7fdbc2a043cae3901b2074374ce8f799d5cb99 100755
GIT binary patch
delta 5135
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
HeD?kWu*wbq

delta 4767
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
E0hiETFaQ7m

diff --git a/components/esp8266/lib/libpp_dbg.a b/components/esp8266/lib/libpp_dbg.a
index cc8ec495f27b37f20a97c1ccbf3ff7cf6e010d04..4181fbd95a8ca4891750be7246fa49a1a3b46f56 100755
GIT binary patch
delta 4645
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

delta 5314
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