diff options
| author | Padma, Santhosh Kumar <skpadma@codeaurora.org> | 2016-11-02 18:04:14 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2016-11-23 06:08:21 -0800 |
| commit | b83beae2dd23f92da0caf4d5a0a69013b00f1696 (patch) | |
| tree | 79aa9ce1b5c0da2dfb42b39feab125b11481da2a | |
| parent | 13b4df42c18783220d0e261cb1fdaa56a2a717e0 (diff) | |
qcacld-3.0: Add changes to send max blacklist bssids supported
qcacld-2.0 to qcacld-3.0 propagation
Add changes to send maximum number of blacklist bssid that firmware
supports to user space. Blacklist bssid information is used by driver
and firmware to avoid connection to that particular bssid.
Change-Id: I135d3b4d7723a8d4efe46dcef9efb2de6c0f558a
CRs-Fixed: 1080765
| -rw-r--r-- | core/hdd/src/wlan_hdd_cfg80211.h | 5 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_ext_scan.c | 12 | ||||
| -rw-r--r-- | core/mac/inc/sir_api.h | 2 | ||||
| -rw-r--r-- | core/wma/src/wma_scan_roam.c | 8 |
4 files changed, 23 insertions, 4 deletions
diff --git a/core/hdd/src/wlan_hdd_cfg80211.h b/core/hdd/src/wlan_hdd_cfg80211.h index b2298e9852e4..3761deffe0c0 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.h +++ b/core/hdd/src/wlan_hdd_cfg80211.h @@ -1175,6 +1175,9 @@ enum qca_wlan_vendor_attr_extscan_config_params { * Unsigned 32bit value, Bit mask of all buckets scanned in the * current EXTSCAN CYCLE. For e.g. If fw scan is going to scan * following buckets 0, 1, 2 in current cycle then it will be (0x111) + * @QCA_WLAN_VENDOR_ATTR_EXTSCAN_MAX_NUM_BLACKLISTED_BSSID: + * Unsigned 32bit value; a EXTSCAN Capabilities attribute to send + * maximum umber of blacklist bssid's that firmware can support. * @QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_AFTER_LAST: After last * @QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_MAX: Max value */ @@ -1297,6 +1300,8 @@ enum qca_wlan_vendor_attr_extscan_results { */ QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_BUCKETS_SCANNED, + QCA_WLAN_VENDOR_ATTR_EXTSCAN_MAX_NUM_BLACKLISTED_BSSID, + /* keep last */ QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_AFTER_LAST, QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_MAX = diff --git a/core/hdd/src/wlan_hdd_ext_scan.c b/core/hdd/src/wlan_hdd_ext_scan.c index 44c574bf68f9..86a51f71fe55 100644 --- a/core/hdd/src/wlan_hdd_ext_scan.c +++ b/core/hdd/src/wlan_hdd_ext_scan.c @@ -1604,6 +1604,8 @@ void wlan_hdd_cfg80211_extscan_callback(void *ctx, const uint16_t evType, QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_CAPABILITIES_MAX_NUM_EPNO_NETS_BY_SSID #define MAX_NUM_WHITELISTED_SSID \ QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_CAPABILITIES_MAX_NUM_WHITELISTED_SSID +#define MAX_NUM_BLACKLISTED_BSSID \ + QCA_WLAN_VENDOR_ATTR_EXTSCAN_MAX_NUM_BLACKLISTED_BSSID /** * wlan_hdd_send_ext_scan_capability - send ext scan capability to user space @@ -1638,7 +1640,8 @@ static int wlan_hdd_send_ext_scan_capability(hdd_context_t *hdd_ctx) (sizeof(data->max_hotlist_ssids) + NLA_HDRLEN) + (sizeof(data->max_number_epno_networks) + NLA_HDRLEN) + (sizeof(data->max_number_epno_networks_by_ssid) + NLA_HDRLEN) + - (sizeof(data->max_number_of_white_listed_ssid) + NLA_HDRLEN); + (sizeof(data->max_number_of_white_listed_ssid) + NLA_HDRLEN) + + (sizeof(data->max_number_of_black_listed_bssid) + NLA_HDRLEN); skb = cfg80211_vendor_cmd_alloc_reply_skb(hdd_ctx->wiphy, nl_buf_len); @@ -1672,6 +1675,8 @@ static int wlan_hdd_send_ext_scan_capability(hdd_context_t *hdd_ctx) data->max_number_epno_networks_by_ssid); hdd_notice("max_number_of_white_listed_ssid %u", data->max_number_of_white_listed_ssid); + hdd_notice("max_number_of_black_listed_bssid (%u)", + data->max_number_of_black_listed_bssid); if (nla_put_u32(skb, PARAM_REQUEST_ID, data->requestId) || nla_put_u32(skb, PARAM_STATUS, data->status) || @@ -1694,7 +1699,9 @@ static int wlan_hdd_send_ext_scan_capability(hdd_context_t *hdd_ctx) nla_put_u32(skb, MAX_NUM_EPNO_NETS_BY_SSID, data->max_number_epno_networks_by_ssid) || nla_put_u32(skb, MAX_NUM_WHITELISTED_SSID, - data->max_number_of_white_listed_ssid)) { + data->max_number_of_white_listed_ssid) || + nla_put_u32(skb, MAX_NUM_BLACKLISTED_BSSID, + data->max_number_of_black_listed_bssid)) { hdd_err("nla put fail"); goto nla_put_failure; } @@ -1724,6 +1731,7 @@ nla_put_failure: #undef MAX_NUM_EPNO_NETS #undef MAX_NUM_EPNO_NETS_BY_SSID #undef MAX_NUM_WHITELISTED_SSID +#undef MAX_NUM_BLACKLISTED_BSSID /** * __wlan_hdd_cfg80211_extscan_get_capabilities() - get ext scan capabilities diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index fec1ee634f23..a4252d70b828 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -4303,6 +4303,7 @@ typedef struct { * which an exact match is required, * or entries corresponding to hidden ssids * @max_number_of_white_listed_ssid: max number of white listed SSIDs + * @max_number_of_black_listed_bssid: max number of black listed BSSIDs */ struct ext_scan_capabilities_response { uint32_t requestId; @@ -4322,6 +4323,7 @@ struct ext_scan_capabilities_response { uint32_t max_number_epno_networks; uint32_t max_number_epno_networks_by_ssid; uint32_t max_number_of_white_listed_ssid; + uint32_t max_number_of_black_listed_bssid; }; typedef struct { diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 7e6ddfb9fbe7..75e2a4488a6a 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -3900,6 +3900,8 @@ int wma_extscan_capabilities_event_handler(void *handle, event->num_epno_networks; dest_capab->max_number_of_white_listed_ssid = event->num_roam_ssid_whitelist; + dest_capab->max_number_of_black_listed_bssid = + event->num_roam_bssid_blacklist; dest_capab->status = 0; WMA_LOGD("%s: request_id: %u status: %d", @@ -3921,11 +3923,13 @@ int wma_extscan_capabilities_event_handler(void *handle, WMA_LOGD("%s: Capabilities: max_hotlist_ssids: %d," "max_number_epno_networks: %d, max_number_epno_networks_by_ssid: %d," - "max_number_of_white_listed_ssid: %d", + "max_number_of_white_listed_ssid: %d," + "max_number_of_black_listed_bssid: %d", __func__, dest_capab->max_hotlist_ssids, dest_capab->max_number_epno_networks, dest_capab->max_number_epno_networks_by_ssid, - dest_capab->max_number_of_white_listed_ssid); + dest_capab->max_number_of_white_listed_ssid, + dest_capab->max_number_of_black_listed_bssid); pMac->sme.pExtScanIndCb(pMac->hHdd, eSIR_EXTSCAN_GET_CAPABILITIES_IND, dest_capab); |
