mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 06:03:36 -04:00
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
This commit is contained in:
parent
656a19e0fe
commit
e01e0732d8
5 changed files with 50 additions and 20 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue