summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPadma, Santhosh Kumar <skpadma@codeaurora.org>2016-11-02 18:04:14 +0530
committerqcabuildsw <qcabuildsw@localhost>2016-12-14 14:08:27 -0800
commit1ac024059343727afe386cfeb0a143d27124b38c (patch)
treea45a1a614ec0a0f85b751c02983956d201068b8c
parent58c7243abaff61a4eab4f5ca48058d9340d42337 (diff)
downloadqcacld-1ac024059343727afe386cfeb0a143d27124b38c.tar.gz
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.h5
-rw-r--r--core/hdd/src/wlan_hdd_ext_scan.c12
-rw-r--r--core/mac/inc/sir_api.h2
-rw-r--r--core/wma/src/wma_scan_roam.c8
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 b2298e9852..3761deffe0 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 936ef80fa9..28ad241250 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 0800974b45..56fd9d5213 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 7dc9ff9ae4..7c1f7f0dfb 100644
--- a/core/wma/src/wma_scan_roam.c
+++ b/core/wma/src/wma_scan_roam.c
@@ -3904,6 +3904,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",
@@ -3925,11 +3927,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);