summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornakul kachhwaha <nkachhwa@codeaurora.org>2018-01-11 11:24:17 +0530
committernakul kachhwaha <nkachhwa@codeaurora.org>2018-03-01 14:08:08 +0530
commit4b0730dfd26c14affe53eb9217d767d13c39df89 (patch)
tree23a5bce113c3216a651ade2e710a4093bff03354
parentf4c34d7d184f04965e5fa9a4417653dae186e8ce (diff)
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
-rw-r--r--CORE/HDD/src/wlan_hdd_main.c4
-rw-r--r--CORE/HDD/src/wlan_hdd_wext.c9
2 files changed, 11 insertions, 2 deletions
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 066046c4c891..117acb451402 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -11892,6 +11892,8 @@ hdd_adapter_t *hdd_open_adapter(hdd_context_t *hdd_ctx,
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 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc)
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 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc)
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 bcc796739090..420504029711 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -2177,8 +2177,13 @@ __iw_get_mode(struct net_device *dev, struct iw_request_info *info,
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: