diff options
| author | Selvaraj, Sridhar <sselvara@codeaurora.org> | 2016-09-13 12:45:22 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2016-09-22 03:26:35 -0700 |
| commit | e01e0732d8a3de4592745349379eb1ccd929a967 (patch) | |
| tree | fd5329855cfd1b68cb9da09fd2fa5b06cb5288c2 /core/mac/src | |
| parent | 656a19e0fecdcf3513818dc853198865b48cf66d (diff) | |
qcacld-3.0: Move HT/VHT parameter from PEsession to Station dph entry
Move HT/VHT parameter from PEsession to Station dph entry which are
introduced as part of wlan data logging.
Change-Id: Icd9258c32a82d3842708ac92b498106d870d7f4f
CRs-Fixed: 1053747
Diffstat (limited to 'core/mac/src')
| -rw-r--r-- | core/mac/src/include/dph_global.h | 23 | ||||
| -rw-r--r-- | core/mac/src/pe/include/lim_session.h | 4 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c | 15 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_process_sme_req_messages.c | 4 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_send_sme_rsp_messages.c | 24 |
5 files changed, 50 insertions, 20 deletions
diff --git a/core/mac/src/include/dph_global.h b/core/mac/src/include/dph_global.h index 89bb6e0e85e1..63236b9be124 100644 --- a/core/mac/src/include/dph_global.h +++ b/core/mac/src/include/dph_global.h @@ -103,6 +103,28 @@ typedef struct sDphQueueAttr { uint16_t rsvd:1; } tDphQueueAttr, *tpDphQueueAttr; +/** + * struct parsed_ies: Parsed IE's of BSS capability + * @ht_caps: HT caps IE + * @vht_caps: VHT caps IE + * @ht_operation: HT operation IE + * @vht_operation: VHT operation IE + * @hs20vendor_ie: HS2.0 vendor IE + * + * This structure holds the parsed IE of connected BSS + * and this is not the intersection of BSS and STA + * capability. For example, if BSS supports 80 MHz + * and STA connects to BSS in 20 MHz, this structure + * holds 80 MHz as peer capability. + */ +struct parsed_ies { + tDot11fIEHTCaps ht_caps; + tDot11fIEVHTCaps vht_caps; + tDot11fIEHTInfo ht_operation; + tDot11fIEVHTOperation vht_operation; + tDot11fIEhs20vendor_ie hs20vendor_ie; +}; + /* STA state node */ typedef struct sDphHashNode { /* @@ -242,6 +264,7 @@ typedef struct sDphHashNode { uint8_t nss; int8_t del_sta_ctx_rssi; bool sta_deletion_in_progress; + struct parsed_ies parsed_ies; /* * When a station with already an existing dph entry tries to diff --git a/core/mac/src/pe/include/lim_session.h b/core/mac/src/pe/include/lim_session.h index ea306bf695f8..f12cc19a7619 100644 --- a/core/mac/src/pe/include/lim_session.h +++ b/core/mac/src/pe/include/lim_session.h @@ -476,10 +476,6 @@ typedef struct sPESession /* Added to Support BT-AMP */ /* Supported NSS is intersection of self and peer NSS */ bool supported_nss_1x1; bool is_ext_caps_present; - tDot11fIEHTCaps ht_caps; - tDot11fIEVHTCaps vht_caps; - tDot11fIEHTInfo ht_operation; - tDot11fIEVHTOperation vht_operation; uint8_t beacon_tx_rate; uint8_t *access_policy_vendor_ie; uint8_t access_policy; diff --git a/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c b/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c index ab87740e3707..8e267663c73d 100644 --- a/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c +++ b/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c @@ -996,11 +996,16 @@ lim_process_assoc_rsp_frame(tpAniSirGlobal mac_ctx, ie_len, beacon); - session_entry->vht_caps = beacon->VHTCaps; - session_entry->ht_caps = beacon->HTCaps; - session_entry->hs20vendor_ie = beacon->hs20vendor_ie; - session_entry->ht_operation = beacon->HTInfo; - session_entry->vht_operation = beacon->VHTOperation; + if (beacon->VHTCaps.present) + sta_ds->parsed_ies.vht_caps = beacon->VHTCaps; + if (beacon->HTCaps.present) + sta_ds->parsed_ies.ht_caps = beacon->HTCaps; + if (beacon->hs20vendor_ie.present) + sta_ds->parsed_ies.hs20vendor_ie = beacon->hs20vendor_ie; + if (beacon->HTInfo.present) + sta_ds->parsed_ies.ht_operation = beacon->HTInfo; + if (beacon->VHTOperation.present) + sta_ds->parsed_ies.vht_operation = beacon->VHTOperation; if (mac_ctx->lim.gLimProtectionControl != WNI_CFG_FORCE_POLICY_PROTECTION_DISABLE) diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c index 951d860665ac..006aaba04ca6 100644 --- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c @@ -941,7 +941,7 @@ __lim_handle_sme_start_bss_request(tpAniSirGlobal mac_ctx, uint32_t *msg_buf) session->vht_config.su_beam_former = 0; session->vht_config.tx_stbc = 0; session->vht_config.num_soundingdim = 0; - session->ht_caps.txSTBC = 0; + session->htConfig.ht_tx_stbc = 0; } /* * keep the RSN/WPA IE information in PE Session Entry @@ -1931,7 +1931,7 @@ __lim_process_sme_join_req(tpAniSirGlobal mac_ctx, uint32_t *msg_buf) session->vht_config.su_beam_former = 0; session->vht_config.tx_stbc = 0; session->vht_config.num_soundingdim = 0; - session->ht_caps.txSTBC = 0; + session->htConfig.ht_tx_stbc = 0; } #ifdef FEATURE_WLAN_ESE diff --git a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c index 4fdd41270ddd..26d0190c47d5 100644 --- a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c +++ b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c @@ -393,19 +393,25 @@ static void lim_handle_join_rsp_status(tpAniSirGlobal mac_ctx, /** * lim_add_bss_info() - copy data from session entry to join rsp - * @session_entry: PE Session Info + * @sta_ds: Station dph entry * @sme_join_rsp: Join response buffer to be filled up * * Return: None */ -void lim_add_bss_info(tpPESession session_entry, - tpSirSmeJoinRsp sme_join_rsp) +void lim_add_bss_info(tpDphHashNode sta_ds, tpSirSmeJoinRsp sme_join_rsp) { - sme_join_rsp->hs20vendor_ie = session_entry->hs20vendor_ie; - sme_join_rsp->vht_caps = session_entry->vht_caps; - sme_join_rsp->ht_caps = session_entry->ht_caps; - sme_join_rsp->ht_operation = session_entry->ht_operation; - sme_join_rsp->vht_operation = session_entry->vht_operation; + struct parsed_ies *parsed_ies = &sta_ds->parsed_ies; + + if (parsed_ies->hs20vendor_ie.present) + sme_join_rsp->hs20vendor_ie = parsed_ies->hs20vendor_ie; + if (parsed_ies->vht_caps.present) + sme_join_rsp->vht_caps = parsed_ies->vht_caps; + if (parsed_ies->ht_caps.present) + sme_join_rsp->ht_caps = parsed_ies->ht_caps; + if (parsed_ies->ht_operation.present) + sme_join_rsp->ht_operation = parsed_ies->ht_operation; + if (parsed_ies->vht_operation.present) + sme_join_rsp->vht_operation = parsed_ies->vht_operation; } /** @@ -500,6 +506,7 @@ lim_send_sme_join_reassoc_rsp(tpAniSirGlobal mac_ctx, uint16_t msg_type, sme_join_rsp->nss = sta_ds->nss; sme_join_rsp->max_rate_flags = lim_get_max_rate_flags(mac_ctx, sta_ds); + lim_add_bss_info(sta_ds, sme_join_rsp); } } sme_join_rsp->beaconLength = 0; @@ -509,7 +516,6 @@ lim_send_sme_join_reassoc_rsp(tpAniSirGlobal mac_ctx, uint16_t msg_type, #ifdef FEATURE_WLAN_ESE sme_join_rsp->tspecIeLen = 0; #endif - lim_add_bss_info(session_entry, sme_join_rsp); lim_handle_join_rsp_status(mac_ctx, session_entry, result_code, sme_join_rsp); |
