summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPadma, Santhosh Kumar <skpadma@codeaurora.org>2016-11-02 18:04:14 +0530
committerqcabuildsw <qcabuildsw@localhost>2016-11-23 06:08:21 -0800
commitb83beae2dd23f92da0caf4d5a0a69013b00f1696 (patch)
tree79aa9ce1b5c0da2dfb42b39feab125b11481da2a
parent13b4df42c18783220d0e261cb1fdaa56a2a717e0 (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.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 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);