From 89a99d46edb389e4c48e51c7ca24553eda854bc4 Mon Sep 17 00:00:00 2001 From: Krishna Kumaar Natarajan Date: Thu, 4 Aug 2016 15:44:38 -0700 Subject: [PATCH] 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 --- core/hdd/src/wlan_hdd_cfg80211.c | 2 ++ core/hdd/src/wlan_hdd_cfg80211.h | 2 ++ core/mac/inc/sir_api.h | 3 +-- core/mac/src/pe/lim/lim_scan_result_utils.c | 5 +++++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index f17bdb59abb7..5bcf100a23c2 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/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); diff --git a/core/hdd/src/wlan_hdd_cfg80211.h b/core/hdd/src/wlan_hdd_cfg80211.h index d3adc4ff5a97..d27e33cb6cba 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.h +++ b/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 diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index fba805dff4b0..c4b7daf8a2cd 100644 --- a/core/mac/inc/sir_api.h +++ b/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; diff --git a/core/mac/src/pe/lim/lim_scan_result_utils.c b/core/mac/src/pe/lim/lim_scan_result_utils.c index af0e93e5b1ac..65796e0f270e 100644 --- a/core/mac/src/pe/lim/lim_scan_result_utils.c +++ b/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);