Browse Source

qcacld-3.0: Provide sequence control information to userspace

Provide sequence control information to userpace tool via
vendor IE.

Change-Id: Ic0489f7fca3519964b12aa5f272bd66a4d02115c
CRs-Fixed: 1050754
Krishna Kumaar Natarajan 8 năm trước cách đây
mục cha
commit
89a99d46ed

+ 2 - 0
core/hdd/src/wlan_hdd_cfg80211.c

@@ -9433,6 +9433,8 @@ wlan_hdd_cfg80211_inform_bss_frame(hdd_adapter_t *pAdapter,
 	qie_age->tsf_delta = bss_desc->tsf_delta;
 	memcpy(&qie_age->beacon_tsf, bss_desc->timeStamp,
 	       sizeof(qie_age->beacon_tsf));
+	memcpy(&qie_age->seq_ctrl, &bss_desc->seq_ctrl,
+	       sizeof(qie_age->seq_ctrl));
 #endif
 
 	memcpy(mgmt->u.probe_resp.variable, ie, ie_length);

+ 2 - 0
core/hdd/src/wlan_hdd_cfg80211.h

@@ -122,6 +122,7 @@
  * @age: Age
  * @tsf_delta: tsf delta from FW
  * @beacon_tsf: original beacon TSF
+ * @seq_ctrl: sequence control field
  */
 typedef struct {
 	u8 element_id;
@@ -133,6 +134,7 @@ typedef struct {
 	u32 age;
 	u32 tsf_delta;
 	u64 beacon_tsf;
+	u16 seq_ctrl;
 } __attribute__ ((packed)) qcom_ie_age;
 #endif
 

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

@@ -733,8 +733,7 @@ typedef struct sSirBssDescription {
 	uint8_t fProbeRsp;
 	/* Actual channel the beacon/probe response was received on */
 	uint8_t rx_channel;
-	uint8_t reservedPadding2;
-	uint8_t reservedPadding3;
+	tSirMacSeqCtl seq_ctrl;
 	uint32_t WscIeLen;
 	uint8_t WscIeProbeRsp[WSCIE_PROBE_RSP_LEN];
 	uint8_t reservedPadding4;

+ 5 - 0
core/mac/src/pe/lim/lim_scan_result_utils.c

@@ -179,6 +179,7 @@ lim_collect_bss_description(tpAniSirGlobal pMac,
 
 	pBssDescr->nReceivedTime = (uint32_t) qdf_mc_timer_get_system_ticks();
 	pBssDescr->tsf_delta = WMA_GET_RX_TSF_DELTA(pRxPacketInfo);
+	pBssDescr->seq_ctrl = pHdr->seqControl;
 
 	lim_log(pMac, LOG1,
 		  FL("BSSID: "MAC_ADDRESS_STR " tsf_delta = %u ReceivedTime = %u ssid = %s"),
@@ -186,6 +187,10 @@ lim_collect_bss_description(tpAniSirGlobal pMac,
 		  pBssDescr->nReceivedTime,
 		  ((pBPR->ssidPresent) ? (char *)pBPR->ssId.ssId : ""));
 
+	lim_log(pMac, LOG1, FL("Seq Ctrl: Frag Num: %d, Seq Num: LO:%02x HI:%02x"),
+		pBssDescr->seq_ctrl.fragNum, pBssDescr->seq_ctrl.seqNumLo,
+		pBssDescr->seq_ctrl.seqNumHi);
+
 	if (fScanning) {
 		rrm_get_start_tsf(pMac, pBssDescr->startTSF);
 		pBssDescr->parentTSF = WMA_GET_RX_TIMESTAMP(pRxPacketInfo);