qcacld-2.0: Fix monitor mode not showing in iwconfig and iw utility
iwconfig was showing interface type as managed in case of monitor mode
Added the support for NL80211_IFTYPE_MONITOR and IW_MODE_MONITOR in
the code
Change-Id: Ibde24dd3b826fc744d1ec82820fcb51952e1b6ef
CRs-Fixed: 2139968
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 066046c..117acb4 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -11892,6 +11892,8 @@
if (session_type == WLAN_HDD_P2P_CLIENT)
adapter->wdev.iftype = NL80211_IFTYPE_P2P_CLIENT;
+ else if (VOS_MONITOR_MODE == vos_get_conparam())
+ adapter->wdev.iftype = NL80211_IFTYPE_MONITOR;
else
adapter->wdev.iftype = NL80211_IFTYPE_STATION;
@@ -16930,6 +16932,7 @@
rtnl_lock_enable);
#ifdef WLAN_OPEN_P2P_INTERFACE
+ if(VOS_MONITOR_MODE != vos_get_conparam()){
/* Open P2P device interface */
if (pAdapter != NULL &&
!hdd_cfg_is_sub20_channel_width_enabled(pHddCtx)) {
@@ -16966,6 +16969,7 @@
goto err_close_adapter;
}
}
+ }
#endif /* WLAN_OPEN_P2P_INTERFACE */
/* Open 802.11p Interface */
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index bcc7967..4205040 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -2177,8 +2177,13 @@
switch (pWextState->roamProfile.BSSType) {
case eCSR_BSS_TYPE_INFRASTRUCTURE:
- hddLog(LOG1, FL("returns IW_MODE_INFRA"));
- wrqu->mode = IW_MODE_INFRA;
+ if(VOS_MONITOR_MODE == vos_get_conparam()){
+ hddLog(LOG1, FL("returns IW_MODE_MONITOR"));
+ wrqu->mode = IW_MODE_MONITOR;
+ }else{
+ hddLog(LOG1, FL("returns IW_MODE_INFRA"));
+ wrqu->mode = IW_MODE_INFRA;
+ }
break;
case eCSR_BSS_TYPE_IBSS:
case eCSR_BSS_TYPE_START_IBSS: