diff --git a/qcwcn/wifi_hal/wifilogger_diag.cpp b/qcwcn/wifi_hal/wifilogger_diag.cpp
index 5e11271..d021541 100644
--- a/qcwcn/wifi_hal/wifilogger_diag.cpp
+++ b/qcwcn/wifi_hal/wifilogger_diag.cpp
@@ -107,6 +107,106 @@
     return WIFI_SUCCESS;
 }
 
+#define SCAN_CAP_ENTRY_SIZE 1024
+static wifi_error process_log_extscan_capabilities(hal_info *info,
+                                                   u8* buf, int length)
+{
+    wifi_ring_buffer_driver_connectivity_event *pConnectEvent;
+    wifi_ring_buffer_entry *pRingBufferEntry;
+    wlan_ext_scan_capabilities_payload_type *pScanCapabilities;
+    wifi_gscan_capabilities gscan_cap;
+    gscan_capabilities_vendor_data_t cap_vendor_data;
+    tlv_log *pTlv;
+    int tot_len = sizeof(wifi_ring_buffer_driver_connectivity_event);
+    u8 out_buf[SCAN_CAP_ENTRY_SIZE];
+    wifi_error status;
+
+    pRingBufferEntry = (wifi_ring_buffer_entry *)&out_buf[0];
+    memset(pRingBufferEntry, 0, SCAN_CAP_ENTRY_SIZE);
+    pConnectEvent = (wifi_ring_buffer_driver_connectivity_event *)
+                     (pRingBufferEntry + 1);
+
+    pConnectEvent->event = WIFI_EVENT_G_SCAN_CAPABILITIES;
+    pTlv = &pConnectEvent->tlvs[0];
+
+    pScanCapabilities = (wlan_ext_scan_capabilities_payload_type *)buf;
+    pTlv = addLoggerTlv(WIFI_TAG_REQUEST_ID,
+                        sizeof(pScanCapabilities->request_id),
+                        (u8 *)&pScanCapabilities->request_id, pTlv);
+    tot_len += sizeof(tlv_log) + sizeof(pScanCapabilities->request_id);
+
+    gscan_cap.max_scan_cache_size =
+        pScanCapabilities->extscan_cache_capabilities.scan_cache_entry_size;
+    gscan_cap.max_scan_buckets =
+        pScanCapabilities->extscan_cache_capabilities.max_buckets;
+    gscan_cap.max_ap_cache_per_scan =
+        pScanCapabilities->extscan_cache_capabilities.max_bssid_per_scan;
+    gscan_cap.max_rssi_sample_size = FEATURE_NOT_SUPPORTED;
+    gscan_cap.max_scan_reporting_threshold =
+        pScanCapabilities->extscan_cache_capabilities.max_table_usage_threshold;
+    gscan_cap.max_hotlist_bssids =
+        pScanCapabilities->extscan_hotlist_monitor_capabilities.max_hotlist_entries;
+    gscan_cap.max_hotlist_ssids =
+        pScanCapabilities->extscan_capabilities.num_extscan_hotlist_ssid;
+    gscan_cap.max_significant_wifi_change_aps = FEATURE_NOT_SUPPORTED;
+    gscan_cap.max_bssid_history_entries = FEATURE_NOT_SUPPORTED;
+    gscan_cap.max_number_epno_networks =
+        pScanCapabilities->extscan_capabilities.num_epno_networks;
+    gscan_cap.max_number_epno_networks_by_ssid =
+        pScanCapabilities->extscan_capabilities.num_epno_networks;
+    gscan_cap.max_number_of_white_listed_ssid =
+        pScanCapabilities->extscan_capabilities.num_roam_ssid_whitelist;
+
+    pTlv = addLoggerTlv(WIFI_TAG_GSCAN_CAPABILITIES,
+                        sizeof(wifi_gscan_capabilities),
+                        (u8 *)&gscan_cap, pTlv);
+    tot_len += sizeof(tlv_log) + sizeof(wifi_gscan_capabilities);
+
+    cap_vendor_data.hotlist_mon_table_id =
+        pScanCapabilities->extscan_hotlist_monitor_capabilities.table_id;
+    cap_vendor_data.wlan_hotlist_entry_size =
+        pScanCapabilities->extscan_hotlist_monitor_capabilities.wlan_hotlist_entry_size;
+    cap_vendor_data.cache_cap_table_id =
+        pScanCapabilities->extscan_cache_capabilities.table_id;
+    cap_vendor_data.requestor_id =
+        pScanCapabilities->extscan_capabilities.requestor_id;
+    cap_vendor_data.vdev_id =
+        pScanCapabilities->extscan_capabilities.vdev_id;
+    cap_vendor_data.num_extscan_cache_tables =
+        pScanCapabilities->extscan_capabilities.num_extscan_cache_tables;
+    cap_vendor_data.num_wlan_change_monitor_tables =
+        pScanCapabilities->extscan_capabilities.num_wlan_change_monitor_tables;
+    cap_vendor_data.num_hotlist_monitor_tables =
+        pScanCapabilities->extscan_capabilities.num_hotlist_monitor_tables;
+    cap_vendor_data.rtt_one_sided_supported =
+        pScanCapabilities->extscan_capabilities.rtt_one_sided_supported;
+    cap_vendor_data.rtt_11v_supported =
+        pScanCapabilities->extscan_capabilities.rtt_11v_supported;
+    cap_vendor_data.rtt_ftm_supported =
+        pScanCapabilities->extscan_capabilities.rtt_ftm_supported;
+    cap_vendor_data.num_extscan_cache_capabilities =
+        pScanCapabilities->extscan_capabilities.num_extscan_cache_capabilities;
+    cap_vendor_data.num_extscan_wlan_change_capabilities =
+        pScanCapabilities->extscan_capabilities.num_extscan_wlan_change_capabilities;
+    cap_vendor_data.num_extscan_hotlist_capabilities =
+        pScanCapabilities->extscan_capabilities.num_extscan_hotlist_capabilities;
+    cap_vendor_data.num_roam_bssid_blacklist =
+        pScanCapabilities->extscan_capabilities.num_roam_bssid_blacklist;
+    cap_vendor_data.num_roam_bssid_preferred_list =
+        pScanCapabilities->extscan_capabilities.num_roam_bssid_preferred_list;
+
+    pTlv = addLoggerTlv(WIFI_TAG_VENDOR_SPECIFIC,
+                        sizeof(gscan_capabilities_vendor_data_t),
+                        (u8 *)&cap_vendor_data, pTlv);
+    tot_len += sizeof(tlv_log) + sizeof(gscan_capabilities_vendor_data_t);
+
+    status = update_connectivity_ring_buf(info, pRingBufferEntry, tot_len);
+    if (status != WIFI_SUCCESS) {
+        ALOGE("Failed to write ext scan capabilities event into ring buffer");
+    }
+    return status;
+}
+
 static wifi_error process_bt_coex_scan_event(hal_info *info,
                                              u32 id, u8* buf, int length)
 {
@@ -781,6 +881,22 @@
             break;
             case WLAN_DIAG_TYPE_LOG:
             {
+                id = diag_msg_hdr->diag_id;
+                payloadlen = diag_msg_hdr->u.payload_len;
+
+                switch (id) {
+                case LOG_WLAN_EXTSCAN_CAPABILITIES:
+                    status = process_log_extscan_capabilities(info,
+                                                    diag_msg_hdr->payload,
+                                                    payloadlen);
+                    if (status != WIFI_SUCCESS) {
+                        ALOGE("Failed to process extscan capabilities");
+                        return status;
+                    }
+                    break;
+                default:
+                    return WIFI_SUCCESS;
+                }
             }
             break;
             case WLAN_DIAG_TYPE_MSG:
diff --git a/qcwcn/wifi_hal/wifilogger_diag.h b/qcwcn/wifi_hal/wifilogger_diag.h
index 6bba3db..38bbde9 100644
--- a/qcwcn/wifi_hal/wifilogger_diag.h
+++ b/qcwcn/wifi_hal/wifilogger_diag.h
@@ -45,6 +45,7 @@
 #define ANI_NL_MSG_LOG_HOST_PRINT_TYPE 89
 
 #define WLAN_PKT_LOG_STATS            0x18E0
+#define FEATURE_NOT_SUPPORTED         0xFF
 
 /*
  *  - verbose_level 0 corresponds to no collection
diff --git a/qcwcn/wifi_hal/wifilogger_event_defs.h b/qcwcn/wifi_hal/wifilogger_event_defs.h
index a02fdad..baf9bee 100644
--- a/qcwcn/wifi_hal/wifilogger_event_defs.h
+++ b/qcwcn/wifi_hal/wifilogger_event_defs.h
@@ -324,7 +324,7 @@
     u16 Tsco;
     u8 Rsco;
 } __attribute__((packed)) wlan_bt_coex_bt_sco_stop_payload_type;
-/*End EVENT_WLAN_BT_COEX_BT_SCO_STOP*/
+/* End EVENT_WLAN_BT_COEX_BT_SCO_STOP */
 
 /* EVENT_WLAN_BT_COEX_BT_SCAN_START */
 typedef struct {
@@ -332,16 +332,16 @@
     u8 scan_bitmap;
 } __attribute__((packed)) wlan_bt_coex_bt_scan_start_payload_type;
 
-/*End EVENT_WLAN_BT_COEX_BT_SCAN_START*/
+/* End EVENT_WLAN_BT_COEX_BT_SCAN_START */
 
 /* EVENT_WLAN_BT_COEX_BT_SCAN_STOP */
 typedef struct {
     u8 scan_type;
     u8 scan_bitmap;
 } __attribute__((packed)) wlan_bt_coex_bt_scan_stop_payload_type;
-/*End EVENT_WLAN_BT_COEX_BT_SCAN_STOP*/
+/* End EVENT_WLAN_BT_COEX_BT_SCAN_STOP */
 
-/*EVENT_WIFI_BT_COEX_BT_HID_START */
+/* EVENT_WIFI_BT_COEX_BT_HID_START */
 typedef struct {
     u8 link_id;
     u8 link_state;
@@ -349,7 +349,7 @@
     u8 Tsniff;
     u8 attempts;
 } __attribute__((packed)) wlan_bt_coex_bt_hid_start_payload_type;
-/*End EVENT_WIFI_BT_COEX_BT_HID_START */
+/* End EVENT_WIFI_BT_COEX_BT_HID_START */
 
 /* EVENT_WIFI_BT_COEX_BT_HID_STOP */
 typedef struct {
@@ -378,7 +378,7 @@
 } __attribute__((packed)) wlan_ext_scan_results_available_payload_type;
 /* End EVENT_WLAN_EXTSCAN_RESULTS_AVAILABLE */
 
-/* EVENT_WLAN_EXTSCAN_CAPABILITIES */
+/* Log LOG_WLAN_EXTSCAN_CAPABILITIES */
 typedef struct {
     u32 header;
     u32 request_id;
@@ -423,7 +423,7 @@
     wlan_extscan_cache_capabilities extscan_cache_capabilities;
     wlan_extscan_hotlist_monitor_capabilities extscan_hotlist_monitor_capabilities;
 } __attribute__((packed)) wlan_ext_scan_capabilities_payload_type;
-/* End EVENT_WLAN_EXTSCAN_CAPABILITIES*/
+/* End LOG_WLAN_EXTSCAN_CAPABILITIES */
 
 /* EVENT_WLAN_BEACON_RECEIVED */
 typedef struct {
diff --git a/qcwcn/wifi_hal/wifilogger_vendor_tag_defs.h b/qcwcn/wifi_hal/wifilogger_vendor_tag_defs.h
index 8b8aadf..148e3d5 100644
--- a/qcwcn/wifi_hal/wifilogger_vendor_tag_defs.h
+++ b/qcwcn/wifi_hal/wifilogger_vendor_tag_defs.h
@@ -108,4 +108,23 @@
     u8 fInitiator;
 } __attribute__((packed)) addba_failed_vendor_data_t;
 
+typedef struct {
+    u32 hotlist_mon_table_id;
+    u32 wlan_hotlist_entry_size;
+    u32 cache_cap_table_id;
+    u32 max_scan_cache_entries;
+    u32 requestor_id;
+    u32 vdev_id;
+    u32 num_extscan_cache_tables;
+    u32 num_wlan_change_monitor_tables;
+    u32 num_hotlist_monitor_tables;
+    u32 rtt_one_sided_supported;
+    u32 rtt_11v_supported;
+    u32 rtt_ftm_supported;
+    u32 num_extscan_cache_capabilities;
+    u32 num_extscan_wlan_change_capabilities;
+    u32 num_extscan_hotlist_capabilities;
+    u32 num_roam_bssid_blacklist;
+    u32 num_roam_bssid_preferred_list;
+} __attribute__((packed)) gscan_capabilities_vendor_data_t;
 #endif /* __WIFI_HAL_WIFILOGGER_VENDOR_EVENTS_H__ */
