Browse Source

qcacld-3.0: Send MBSSID BSS information to firmware

Send MBSSID BSS information like profile number
and max profile count to firmware as part of VDEV
UP command.

Change-Id: I612f0be9c52fd61b25d1c884940f28ce9fe0872e
CRs-Fixed: 2399999
Sandeep Puligilla 6 years ago
parent
commit
d8546bb3eb

+ 1 - 0
core/mac/inc/sir_api.h

@@ -679,6 +679,7 @@ struct bss_description {
 	uint8_t WscIeProbeRsp[WSCIE_PROBE_RSP_LEN];
 	uint8_t reservedPadding4;
 	uint32_t tsf_delta;
+	struct scan_mbssid_info mbssid_info;
 #ifdef WLAN_FEATURE_FILS_SK
 	struct fils_ind_elements fils_info_element;
 #endif

+ 3 - 0
core/mac/src/pe/lim/lim_assoc_utils.c

@@ -2772,6 +2772,9 @@ lim_add_sta_self(struct mac_context *mac, uint16_t staIdx, uint8_t updateSta,
 	/* This will indicate HAL to "allocate" a new STA index */
 	pAddStaParams->staIdx = staIdx;
 	pAddStaParams->updateSta = updateSta;
+	qdf_mem_copy(&pAddStaParams->mbssid_info,
+		     &pe_session->pLimJoinReq->bssDescription.mbssid_info,
+		     sizeof(struct scan_mbssid_info));
 
 	pAddStaParams->shortPreambleSupported =
 					mac->mlme_cfg->ht_caps.short_preamble;

+ 2 - 0
core/sme/src/csr/csr_api_scan.c

@@ -2619,6 +2619,8 @@ static QDF_STATUS csr_fill_bss_from_scan_entry(struct mac_context *mac_ctx,
 			  MGMT_SUBTYPE_PROBE_RESP);
 	bss_desc->seq_ctrl = hdr->seqControl;
 	bss_desc->tsf_delta = scan_entry->tsf_delta;
+	qdf_mem_copy(&bss_desc->mbssid_info, &scan_entry->mbssid_info,
+		     sizeof(struct scan_mbssid_info));
 
 	qdf_mem_copy((uint8_t *) &bss_desc->ieFields,
 		ie_ptr, ie_len);

+ 2 - 0
core/wma/inc/wma_if.h

@@ -178,6 +178,7 @@ struct sAniProbeRspStruct {
  * @nss: Return the number of spatial streams supported
  * @stbc_capable: stbc capable
  * @max_amsdu_num: Maximum number of MSDUs in a tx aggregate frame
+ * @mbssid_info: Multiple bssid information
  *
  * This structure contains parameter required for
  * add sta request of upper layer.
@@ -274,6 +275,7 @@ typedef struct {
 	uint32_t peerAtimWindowLength;
 	uint8_t nonRoamReassoc;
 	uint32_t nss;
+	struct scan_mbssid_info mbssid_info;
 #ifdef WLAN_FEATURE_11AX
 	bool he_capable;
 	tDot11fIEhe_cap he_config;

+ 4 - 0
core/wma/src/wma_dev_if.c

@@ -5542,6 +5542,10 @@ static QDF_STATUS wma_indicate_start_success(tp_wma_handle wma,
 
 	param.vdev_id = params->smesessionId;
 	param.assoc_id = params->assocId;
+	param.profile_idx = params->mbssid_info.profile_num;
+	param.profile_num = params->mbssid_info.profile_count;
+	qdf_mem_copy(&param.trans_bssid, &params->mbssid_info.trans_bssid,
+		     QDF_MAC_ADDR_SIZE);
 	status = wma_send_vdev_up_to_fw(wma, &param, params->bssId);
 	if (QDF_IS_STATUS_ERROR(status)) {
 		WMA_LOGE("%s: Failed to send vdev up cmd: vdev %d bssid %pM",