|
@@ -135,7 +135,7 @@ struct obss_detection_cfg {
|
|
|
#define WLAN_MLO_IE_COM_MAX_LEN 257
|
|
|
|
|
|
/**
|
|
|
- * wlan_mlo_sta_profile - Per STA profile structure
|
|
|
+ * struct wlan_mlo_sta_profile - Per STA profile structure
|
|
|
* @num_data: the length of data
|
|
|
* @data: the Per STA profile subelement data. Subelement ID + LEN + others,
|
|
|
* if num_data more than 257, it includes the frag IE for tx; it does not
|
|
@@ -147,7 +147,7 @@ struct wlan_mlo_sta_profile {
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
- * medium_sync_delay - medium sync delay info
|
|
|
+ * struct medium_sync_delay - medium sync delay info
|
|
|
* @medium_sync_duration: medium sync duration
|
|
|
* @medium_sync_ofdm_ed_thresh: medium sync OFDM ED threshold
|
|
|
* @medium_sync_max_txop_num: medium sync max txop num
|
|
@@ -159,7 +159,7 @@ struct medium_sync_delay {
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
- * eml_capabilities - EML capability info
|
|
|
+ * struct eml_capabilities - EML capability info
|
|
|
* @emlsr_support: EMLSR support
|
|
|
* @emlsr_padding_delay: EMLSR padding delay
|
|
|
* @emlsr_transition_delay: EMLSR transition delay
|
|
@@ -179,7 +179,7 @@ struct eml_capabilities {
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
- * mld_capab_and_op - MLD capability and operations info
|
|
|
+ * struct mld_capab_and_op - MLD capability and operations info
|
|
|
* @max_simultaneous_link_num: MAX simultaneous link num
|
|
|
* @srs_support: SRS support
|
|
|
* @tid_link_map_supported: TID link map support
|
|
@@ -197,7 +197,7 @@ struct mld_capab_and_op {
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
- * wlan_mlo_ie - wlan ML IE info
|
|
|
+ * struct wlan_mlo_ie - wlan ML IE info
|
|
|
* @type: the variant of the ML IE
|
|
|
* @reserved: reserved
|
|
|
* @link_id_info_present: the present flag of link id info
|
|
@@ -356,20 +356,311 @@ struct wlan_mlo_ie_info {
|
|
|
/**
|
|
|
* struct pe_session - per-vdev PE context
|
|
|
* @available: true if the entry is available, false if it is in use
|
|
|
+ * @cm_id:
|
|
|
* @peSessionId: unique ID assigned to the entry
|
|
|
+ * @smeSessionId: ID of the session (legacy nomenclature)
|
|
|
* @vdev_id: ID of the vdev for which this entry is applicable
|
|
|
* @vdev: the actual vdev for which this entry is applicable
|
|
|
+ * @bssId: BSSID of the session
|
|
|
+ * @self_mac_addr: self MAC address
|
|
|
+ * * In AP role: BSSID and self_mac_addr will be the same.
|
|
|
+ * * In STA role: they will be different
|
|
|
+ * @ssId:
|
|
|
+ * @valid:
|
|
|
+ * @limMlmState: MLM State
|
|
|
+ * @limPrevMlmState: Previous MLM State
|
|
|
+ * @limSmeState: SME State
|
|
|
+ * @limPrevSmeState: Previous SME State
|
|
|
+ * @limSystemRole:
|
|
|
+ * @bssType:
|
|
|
+ * @nwType:
|
|
|
+ * @pLimStartBssReq:
|
|
|
+ * @lim_join_req: handle to sme join req
|
|
|
+ * @pLimReAssocReq: handle to sme reassoc req
|
|
|
+ * @pLimMlmJoinReq: handle to MLM join Req
|
|
|
+ * @pLimMlmReassocRetryReq: keep reasoc req for retry
|
|
|
+ * @pLimMlmReassocReq: handle to MLM reassoc Req
|
|
|
+ * @channelChangeReasonCode:
|
|
|
+ * @dot11mode:
|
|
|
+ * @htCapability:
|
|
|
* @connected_akm: AKM of current connection
|
|
|
- * @is_adaptive_11R_connection: flag to check if we are connecting
|
|
|
+ * @htSupportedChannelWidthSet: HT Supported Channel Width Set:
|
|
|
+ * * 0 - 20MHz
|
|
|
+ * * 1 - 40MHz
|
|
|
+ * @htRecommendedTxWidthSet: Recommended Tx Width Set:
|
|
|
+ * * 0 - use 20 MHz channel (control channel)
|
|
|
+ * * 1 - use channel width enabled under Supported Channel Width Set
|
|
|
+ * @htSecondaryChannelOffset: Identifies the 40 MHz extension channel
|
|
|
+ * @limRFBand:
|
|
|
+ * @limCurrentAuthType:
|
|
|
+ * @limCurrentBssCaps:
|
|
|
+ * @limCurrentBssQosCaps:
|
|
|
+ * @limSentCapsChangeNtf:
|
|
|
+ * @limAID:
|
|
|
+ * @limReAssocbssId:
|
|
|
+ * @lim_reassoc_chan_freq:
|
|
|
+ * @reAssocHtSupportedChannelWidthSet:
|
|
|
+ * @reAssocHtRecommendedTxWidthSet:
|
|
|
+ * @reAssocHtSecondaryChannelOffset:
|
|
|
+ * @limReassocSSID:
|
|
|
+ * @limReassocBssCaps:
|
|
|
+ * @limReassocBssQosCaps:
|
|
|
+ * @limAssocResponseData: Assoc or ReAssoc Response Data/Frame
|
|
|
+ * @statypeForBss: to know session is for PEER or SELF
|
|
|
+ * @shortSlotTimeSupported:
|
|
|
+ * @dtimPeriod:
|
|
|
+ * @rateSet:
|
|
|
+ * @extRateSet:
|
|
|
+ * @htOperMode:
|
|
|
+ * @curr_op_freq:
|
|
|
+ * @curr_req_chan_freq:
|
|
|
+ * @LimRxedBeaconCntDuringHB:
|
|
|
+ * @lastBeaconTimeStamp: Time stamp of the last beacon received from the BSS
|
|
|
+ * to which STA is connected.
|
|
|
+ * @currentBssBeaconCnt: RX Beacon count for the current BSS to which STA
|
|
|
+ * is connected.
|
|
|
+ * @bcon_dtim_period: Beacon DTIM period
|
|
|
+ * @bcnLen: Length of @beacon
|
|
|
+ * @beacon: Used to store last beacon / probe response before assoc.
|
|
|
+ * @assocReqLen: Length of @assoc_req
|
|
|
+ * @assoc_req: Used to store association request frame
|
|
|
+ * @assocRspLen: Length of @assocRsp
|
|
|
+ * @assocRsp: Used to store association response received while associating
|
|
|
+ * @dph:
|
|
|
+ * @parsedAssocReq: Used to store parsed assoc req from various requesting
|
|
|
+ * station
|
|
|
+ * @RICDataLen: Length of @ricData
|
|
|
+ * @ricData: Used to store the Ric data received in the assoc response
|
|
|
+ * @tspecLen: Length of @tspecIes
|
|
|
+ * @tspecIes: Used to store the TSPEC IEs received in the assoc response
|
|
|
+ * @encryptType:
|
|
|
+ * @gLimProtectionControl: used for 11n protection
|
|
|
+ * @gHTNonGFDevicesPresent:
|
|
|
+ * @cfgProtection: protection related config cache
|
|
|
+ * @gLim11bParams: Number of legacy STAs associated
|
|
|
+ * @gLim11aParams: Number of 11A STAs associated
|
|
|
+ * @gLim11gParams: Number of non-ht non-legacy STAs associated
|
|
|
+ * @gLimNonGfParams: Number of nonGf STA associated
|
|
|
+ * @gLimHt20Params: Number of HT 20 STAs associated
|
|
|
+ * @gLimLsigTxopParams: Number of Lsig Txop not supported STAs associated
|
|
|
+ * @gLimNoShortParams: Number of STAs that do not support short preamble
|
|
|
+ * @gLimNoShortSlotParams: Number of STAs that do not support short slot time
|
|
|
+ * @gLimOlbcParams: OLBC parameters
|
|
|
+ * @gLimOverlap11gParams: OLBC parameters
|
|
|
+ * @gLimOverlap11aParams:
|
|
|
+ * @gLimOverlapHt20Params:
|
|
|
+ * @gLimOverlapNonGfParams:
|
|
|
+ * @protStaCache: cache for each overlap
|
|
|
+ * @privacy:
|
|
|
+ * @authType:
|
|
|
+ * @WEPKeyMaterial:
|
|
|
+ * @wmm_params:
|
|
|
+ * @gStartBssRSNIe:
|
|
|
+ * @gStartBssWPAIe:
|
|
|
+ * @APWPSIEs:
|
|
|
+ * @apUapsdEnable:
|
|
|
+ * @pAPWPSPBCSession:
|
|
|
+ * @DefProbeRspIeBitmap:
|
|
|
+ * @proxyProbeRspEn:
|
|
|
+ * @probeRespFrame:
|
|
|
+ * @ssidHidden:
|
|
|
+ * @fwdWPSPBCProbeReq:
|
|
|
+ * @wps_state:
|
|
|
+ * @wps_registration:
|
|
|
+ * @limQosEnabled: Is 802.11e QoS enabled
|
|
|
+ * @limWmeEnabled: Is WME enabled
|
|
|
+ * @limWsmEnabled: Is WSM enabled
|
|
|
+ * @limHcfEnabled: Is HCF enabled
|
|
|
+ * @limRmfEnabled: Is 802.11w RMF enabled
|
|
|
+ * @lim11hEnable: Is 802.11h enabled
|
|
|
+ * @maxTxPower: Max transmit power, the minimum of Regulatory and local
|
|
|
+ * power constraint)
|
|
|
+ * @min_11h_pwr:
|
|
|
+ * @max_11h_pwr:
|
|
|
+ * @opmode:
|
|
|
+ * @txMgmtPower:
|
|
|
+ * @is11Rconnection:
|
|
|
+ * @is_adaptive_11r_connection: flag to check if we are connecting
|
|
|
+ * @isESEconnection:
|
|
|
+ * @eseContext:
|
|
|
+ * @isFastTransitionEnabled:
|
|
|
+ * @isFastRoamIniFeatureEnabled:
|
|
|
+ * @p2pGoPsUpdate:
|
|
|
+ * @defaultAuthFailureTimeout:
|
|
|
+ * @gLimEdcaParams: These EDCA parameters are used locally on AP or STA.
|
|
|
+ * If STA, then these are values taken from the Assoc Rsp when associating,
|
|
|
+ * or Beacons/Probe Response after association. If AP, then these are
|
|
|
+ * values originally set locally on AP.
|
|
|
+ * @gLimEdcaParamsBC: These EDCA parameters are use by AP to broadcast
|
|
|
+ * to other STATIONs in the BSS.
|
|
|
+ * @gLimEdcaParamsActive: These EDCA parameters are what's actively being
|
|
|
+ * used on station. Specific AC values may be downgraded depending on
|
|
|
+ * admission control for that particular AC.
|
|
|
+ * @gLimEdcaParamSetCount:
|
|
|
+ * @beaconParams:
|
|
|
+ * @vhtCapability:
|
|
|
+ * @gLimOperatingMode:
|
|
|
+ * @vhtCapabilityPresentInBeacon:
|
|
|
+ * @ch_center_freq_seg0: center freq number as advertized OTA
|
|
|
+ * @ch_width:
|
|
|
+ * @puncture_bitmap:
|
|
|
+ * @ch_center_freq_seg1:
|
|
|
+ * @enableVhtpAid:
|
|
|
+ * @enableVhtGid:
|
|
|
+ * @gLimWiderBWChannelSwitch:
|
|
|
+ * @enableAmpduPs:
|
|
|
+ * @enableHtSmps:
|
|
|
+ * @htSmpsvalue:
|
|
|
+ * @send_smps_action:
|
|
|
+ * @spectrumMgtEnabled:
|
|
|
+ * @gLimSpecMgmt:
|
|
|
+ * @gLimChannelSwitch: CB Primary/Secondary Channel Switch Info
|
|
|
+ * @gLimPhyMode:
|
|
|
+ * @txLdpcIniFeatureEnabled:
|
|
|
+ * @gpLimPeerIdxpool: free peer index pool. A non-zero value indicates that
|
|
|
+ * peer index is available for assignment.
|
|
|
+ * @freePeerIdxHead:
|
|
|
+ * @freePeerIdxTail:
|
|
|
+ * @gLimNumOfCurrentSTAs:
|
|
|
+ * @peerAIDBitmap:
|
|
|
+ * @tdls_send_set_state_disable:
|
|
|
+ * @fWaitForProbeRsp:
|
|
|
+ * @fIgnoreCapsChange:
|
|
|
+ * @fDeauthReceived:
|
|
|
+ * @rssi:
|
|
|
+ * @max_amsdu_num:
|
|
|
+ * @ht_config:
|
|
|
+ * @vht_config:
|
|
|
+ * @gLimCurrentBssUapsd:
|
|
|
+ * @gUapsdPerAcBitmask: Used on STA, this is a static UAPSD mask setting
|
|
|
+ * derived from SME_JOIN_REQ and SME_REASSOC_REQ. If a
|
|
|
+ * particular AC bit is set, it means the AC is both
|
|
|
+ * trigger enabled and delivery enabled.
|
|
|
+ * @gUapsdPerAcTriggerEnableMask: Used on STA, this is a dynamic UPASD mask
|
|
|
+ * setting derived from AddTS Rsp and DelTS
|
|
|
+ * frame. If a particular AC bit is set, it
|
|
|
+ * means AC is trigger enabled.
|
|
|
+ * @gUapsdPerAcDeliveryEnableMask: Used on STA, dynamic UPASD mask setting
|
|
|
+ * derived from AddTS Rsp and DelTs frame. If
|
|
|
+ * a particular AC bit is set, it means AC is
|
|
|
+ * delivery enabled.
|
|
|
+ * @csaOffloadEnable: Flag to skip CSA IE processing when CSA offload is
|
|
|
+ * enabled.
|
|
|
+ * @gAcAdmitMask: Used on STA for AC downgrade. This is a dynamic mask
|
|
|
+ * setting which keep tracks of ACs being admitted.
|
|
|
+ * If bit is set to 0: That particular AC is not admitted
|
|
|
+ * If bit is set to 1: That particular AC is admitted
|
|
|
+ * @pmmOffloadInfo: Power Save Off load Parameters
|
|
|
+ * @smpsMode: SMPS mode
|
|
|
+ * @chainMask:
|
|
|
+ * @dfsIncludeChanSwIe: Flag to indicate Chan Sw announcement is required
|
|
|
+ * @dfsIncludeChanWrapperIe: Flag to indicate Chan Wrapper Element is required
|
|
|
+ * @cc_switch_mode:
|
|
|
+ * @isCiscoVendorAP:
|
|
|
+ * @add_ie_params:
|
|
|
+ * @pSchProbeRspTemplate:
|
|
|
+ * @pSchBeaconFrameBegin: Beginning portion of the beacon frame to be written
|
|
|
+ * to TFP
|
|
|
+ * @pSchBeaconFrameEnd: Trailing portion of the beacon frame to be written
|
|
|
+ * to TFP
|
|
|
+ * @schBeaconOffsetBegin: Size of the beginning portion
|
|
|
+ * @schBeaconOffsetEnd: Size of the trailing portion
|
|
|
+ * @isOSENConnection:
|
|
|
+ * @QosMapSet: DSCP to UP mapping for HS 2.0
|
|
|
+ * @bRoamSynchInProgress:
|
|
|
+ * @ftPEContext: Fast Transition (FT) Context
|
|
|
+ * @isNonRoamReassoc:
|
|
|
+ * @pmf_retry_timer:
|
|
|
+ * @pmf_retry_timer_info:
|
|
|
+ * @protection_fields_reset_timer: timer for resetting protection fields
|
|
|
+ * at regular intervals
|
|
|
+ * @ap_ecsa_timer: timer to decrement CSA/ECSA count
|
|
|
* @ap_ecsa_wakelock: wakelock to complete CSA operation.
|
|
|
* @ap_ecsa_runtime_lock: runtime lock to complete SAP CSA operation.
|
|
|
- * to Adaptive 11R network
|
|
|
+ * to Adaptive 11R network
|
|
|
+ * @mac_ctx: MAC context
|
|
|
+ * @old_protection_state: variable to store state of various protection
|
|
|
+ * struct like gLimOlbcParams, gLimOverlap11gParams,
|
|
|
+ * gLimOverlapHt20Params etc
|
|
|
+ * @prev_ap_bssid:
|
|
|
+ * @sap_advertise_avoid_ch_ie: tells if Q2Q IE, from another MDM device in
|
|
|
+ * AP MCC mode was received
|
|
|
+ * @is_ese_version_ie_present:
|
|
|
+ * @sap_dot11mc:
|
|
|
+ * @is_vendor_specific_vhtcaps:
|
|
|
+ * @vendor_specific_vht_ie_sub_type:
|
|
|
+ * @vendor_vht_sap:
|
|
|
+ * @hs20vendor_ie: HS 2.0 Indication
|
|
|
+ * @country_info_present: flag to indicate country code in beacon
|
|
|
+ * @nss:
|
|
|
+ * @nss_forced_1x1:
|
|
|
+ * @add_bss_failed:
|
|
|
+ * @obss_ht40_scanparam: OBSS Scan IE Parameters
|
|
|
+ * @vdev_nss:
|
|
|
+ * @supported_nss_1x1: Supported NSS is intersection of self and peer NSS
|
|
|
+ * @is_ext_caps_present:
|
|
|
+ * @beacon_tx_rate:
|
|
|
+ * @access_policy_vendor_ie:
|
|
|
+ * @access_policy:
|
|
|
+ * @send_p2p_conf_frame:
|
|
|
+ * @process_ho_fail:
|
|
|
+ * @lim_non_ecsa_cap_num: Number of STAs that do not support ECSA capability
|
|
|
+ * @he_capable:
|
|
|
+ * @he_config:
|
|
|
+ * @he_op:
|
|
|
+ * @he_sta_obsspd:
|
|
|
+ * @he_6ghz_band:
|
|
|
+ * @he_bss_color_change:
|
|
|
+ * @bss_color_info:
|
|
|
+ * @bss_color_changing:
|
|
|
+ * @deauth_retry:
|
|
|
+ * @enable_bcast_probe_rsp:
|
|
|
+ * @ht_client_cnt:
|
|
|
+ * @force_24ghz_in_ht20:
|
|
|
+ * @ch_switch_in_progress:
|
|
|
+ * @he_with_wep_tkip:
|
|
|
+ * @fils_info:
|
|
|
* @prev_auth_seq_num: Sequence number of previously received auth frame to
|
|
|
- * detect duplicate frames.
|
|
|
+ * detect duplicate frames.
|
|
|
* @prev_auth_mac_addr: mac_addr of the sta correspond to @prev_auth_seq_num
|
|
|
+ * @obss_offload_cfg:
|
|
|
+ * @current_obss_detection:
|
|
|
+ * @is_session_obss_offload_enabled:
|
|
|
+ * @is_obss_reset_timer_initialized:
|
|
|
+ * @sae_pmk_cached:
|
|
|
+ * @recvd_deauth_while_roaming:
|
|
|
+ * @recvd_disassoc_while_roaming:
|
|
|
+ * @deauth_disassoc_rc:
|
|
|
+ * @obss_color_collision_dec_evt:
|
|
|
+ * @is_session_obss_color_collision_det_enabled:
|
|
|
+ * @ap_mu_edca_params:
|
|
|
+ * @mu_edca_present:
|
|
|
+ * @def_max_tx_pwr:
|
|
|
+ * @active_ba_64_session:
|
|
|
+ * @is_mbssid_enabled:
|
|
|
+ * @peer_twt_requestor:
|
|
|
+ * @peer_twt_responder:
|
|
|
+ * @enable_session_twt_support:
|
|
|
+ * @cac_duration_ms:
|
|
|
+ * @stop_bss_reason:
|
|
|
+ * @prot_status_code:
|
|
|
+ * @result_code:
|
|
|
+ * @dfs_regdomain:
|
|
|
+ * @ap_power_type: AP power type
|
|
|
+ * @same_ctry_code: If AP Country IE has same country code as STA programmed
|
|
|
+ * country
|
|
|
+ * @ap_power_type_6g: AP power type for 6G (LPI, SP, or VLP)
|
|
|
+ * @sta_follows_sap_power:
|
|
|
+ * @eht_capable:
|
|
|
+ * @eht_config:
|
|
|
+ * @eht_op:
|
|
|
+ * @mlo_link_info:
|
|
|
+ * @ml_partner_info:
|
|
|
+ * @mlo_ie_total_len:
|
|
|
+ * @mlo_ie:
|
|
|
+ * @user_edca_set:
|
|
|
*/
|
|
|
struct pe_session {
|
|
|
- /* To check session table is in use or free */
|
|
|
uint8_t available;
|
|
|
wlan_cm_id cm_id;
|
|
|
uint16_t peSessionId;
|
|
@@ -379,52 +670,41 @@ struct pe_session {
|
|
|
};
|
|
|
struct wlan_objmgr_vdev *vdev;
|
|
|
|
|
|
- /* In AP role: BSSID and self_mac_addr will be the same. */
|
|
|
- /* In STA role: they will be different */
|
|
|
tSirMacAddr bssId;
|
|
|
tSirMacAddr self_mac_addr;
|
|
|
tSirMacSSid ssId;
|
|
|
uint8_t valid;
|
|
|
- tLimMlmStates limMlmState; /* MLM State */
|
|
|
- tLimMlmStates limPrevMlmState; /* Previous MLM State */
|
|
|
- tLimSmeStates limSmeState; /* SME State */
|
|
|
- tLimSmeStates limPrevSmeState; /* Previous SME State */
|
|
|
+ tLimMlmStates limMlmState;
|
|
|
+ tLimMlmStates limPrevMlmState;
|
|
|
+ tLimSmeStates limSmeState;
|
|
|
+ tLimSmeStates limPrevSmeState;
|
|
|
tLimSystemRole limSystemRole;
|
|
|
enum bss_type bssType;
|
|
|
tSirNwType nwType;
|
|
|
struct start_bss_config *pLimStartBssReq;
|
|
|
- struct join_req *lim_join_req; /* handle to sme join req */
|
|
|
- struct join_req *pLimReAssocReq; /* handle to sme reassoc req */
|
|
|
- tpLimMlmJoinReq pLimMlmJoinReq; /* handle to MLM join Req */
|
|
|
- void *pLimMlmReassocRetryReq; /* keep reasoc req for retry */
|
|
|
- void *pLimMlmReassocReq; /* handle to MLM reassoc Req */
|
|
|
+ struct join_req *lim_join_req;
|
|
|
+ struct join_req *pLimReAssocReq;
|
|
|
+ tpLimMlmJoinReq pLimMlmJoinReq;
|
|
|
+ void *pLimMlmReassocRetryReq;
|
|
|
+ void *pLimMlmReassocReq;
|
|
|
uint16_t channelChangeReasonCode;
|
|
|
uint8_t dot11mode;
|
|
|
uint8_t htCapability;
|
|
|
enum ani_akm_type connected_akm;
|
|
|
|
|
|
- /* Supported Channel Width Set: 0-20MHz 1 - 40MHz */
|
|
|
uint8_t htSupportedChannelWidthSet;
|
|
|
- /* Recommended Tx Width Set
|
|
|
- * 0 - use 20 MHz channel (control channel)
|
|
|
- * 1 - use channel width enabled under Supported Channel Width Set
|
|
|
- */
|
|
|
uint8_t htRecommendedTxWidthSet;
|
|
|
- /* Identifies the 40 MHz extension channel */
|
|
|
ePhyChanBondState htSecondaryChannelOffset;
|
|
|
enum reg_wifi_band limRFBand;
|
|
|
|
|
|
- /* These global variables moved to session Table to support BT-AMP : Oct 9th review */
|
|
|
tAniAuthType limCurrentAuthType;
|
|
|
uint16_t limCurrentBssCaps;
|
|
|
uint8_t limCurrentBssQosCaps;
|
|
|
uint8_t limSentCapsChangeNtf;
|
|
|
uint16_t limAID;
|
|
|
|
|
|
- /* Parameters For Reassociation */
|
|
|
tSirMacAddr limReAssocbssId;
|
|
|
uint32_t lim_reassoc_chan_freq;
|
|
|
- /* CB parameters required/duplicated for Reassoc since re-assoc maintains its own params in lim */
|
|
|
uint8_t reAssocHtSupportedChannelWidthSet;
|
|
|
uint8_t reAssocHtRecommendedTxWidthSet;
|
|
|
ePhyChanBondState reAssocHtSecondaryChannelOffset;
|
|
@@ -432,12 +712,9 @@ struct pe_session {
|
|
|
uint16_t limReassocBssCaps;
|
|
|
uint8_t limReassocBssQosCaps;
|
|
|
|
|
|
- /* Assoc or ReAssoc Response Data/Frame */
|
|
|
void *limAssocResponseData;
|
|
|
|
|
|
- /** BSS Table parameters **/
|
|
|
-
|
|
|
- uint16_t statypeForBss; /* to know session is for PEER or SELF */
|
|
|
+ uint16_t statypeForBss;
|
|
|
uint8_t shortSlotTimeSupported;
|
|
|
uint8_t dtimPeriod;
|
|
|
tSirMacRateSet rateSet;
|
|
@@ -446,73 +723,47 @@ struct pe_session {
|
|
|
qdf_freq_t curr_op_freq;
|
|
|
uint32_t curr_req_chan_freq;
|
|
|
uint8_t LimRxedBeaconCntDuringHB;
|
|
|
-
|
|
|
- /* Time stamp of the last beacon received from the BSS to which STA is connected. */
|
|
|
uint64_t lastBeaconTimeStamp;
|
|
|
- /* RX Beacon count for the current BSS to which STA is connected. */
|
|
|
uint32_t currentBssBeaconCnt;
|
|
|
uint8_t bcon_dtim_period;
|
|
|
|
|
|
uint32_t bcnLen;
|
|
|
- uint8_t *beacon; /* Used to store last beacon / probe response before assoc. */
|
|
|
+ uint8_t *beacon;
|
|
|
|
|
|
uint32_t assocReqLen;
|
|
|
- uint8_t *assoc_req; /* Used to store association request frame */
|
|
|
+ uint8_t *assoc_req;
|
|
|
|
|
|
uint32_t assocRspLen;
|
|
|
- uint8_t *assocRsp; /* Used to store association response received while associating */
|
|
|
+ uint8_t *assocRsp;
|
|
|
tAniSirDph dph;
|
|
|
- void **parsedAssocReq; /* Used to store parsed assoc req from various requesting station */
|
|
|
- uint32_t RICDataLen; /* Used to store the Ric data received in the assoc response */
|
|
|
+ void **parsedAssocReq;
|
|
|
+ uint32_t RICDataLen;
|
|
|
uint8_t *ricData;
|
|
|
#ifdef FEATURE_WLAN_ESE
|
|
|
- uint32_t tspecLen; /* Used to store the TSPEC IEs received in the assoc response */
|
|
|
+ uint32_t tspecLen;
|
|
|
uint8_t *tspecIes;
|
|
|
#endif
|
|
|
uint32_t encryptType;
|
|
|
|
|
|
- uint8_t gLimProtectionControl; /* used for 11n protection */
|
|
|
+ uint8_t gLimProtectionControl;
|
|
|
|
|
|
uint8_t gHTNonGFDevicesPresent;
|
|
|
|
|
|
- /* protection related config cache */
|
|
|
tCfgProtection cfgProtection;
|
|
|
-
|
|
|
- /* Number of legacy STAs associated */
|
|
|
tLimProtStaParams gLim11bParams;
|
|
|
-
|
|
|
- /* Number of 11A STAs associated */
|
|
|
tLimProtStaParams gLim11aParams;
|
|
|
-
|
|
|
- /* Number of non-ht non-legacy STAs associated */
|
|
|
tLimProtStaParams gLim11gParams;
|
|
|
-
|
|
|
- /* Number of nonGf STA associated */
|
|
|
tLimProtStaParams gLimNonGfParams;
|
|
|
-
|
|
|
- /* Number of HT 20 STAs associated */
|
|
|
tLimProtStaParams gLimHt20Params;
|
|
|
-
|
|
|
- /* Number of Lsig Txop not supported STAs associated */
|
|
|
tLimProtStaParams gLimLsigTxopParams;
|
|
|
-
|
|
|
- /* Number of STAs that do not support short preamble */
|
|
|
tLimNoShortParams gLimNoShortParams;
|
|
|
-
|
|
|
- /* Number of STAs that do not support short slot time */
|
|
|
tLimNoShortSlotParams gLimNoShortSlotParams;
|
|
|
-
|
|
|
- /* OLBC parameters */
|
|
|
tLimProtStaParams gLimOlbcParams;
|
|
|
-
|
|
|
- /* OLBC parameters */
|
|
|
tLimProtStaParams gLimOverlap11gParams;
|
|
|
-
|
|
|
tLimProtStaParams gLimOverlap11aParams;
|
|
|
tLimProtStaParams gLimOverlapHt20Params;
|
|
|
tLimProtStaParams gLimOverlapNonGfParams;
|
|
|
|
|
|
- /* cache for each overlap */
|
|
|
tCacheParams protStaCache[LIM_PROT_STA_CACHE_SIZE];
|
|
|
|
|
|
uint8_t privacy;
|
|
@@ -533,14 +784,14 @@ struct pe_session {
|
|
|
uint8_t wps_state;
|
|
|
bool wps_registration;
|
|
|
|
|
|
- uint8_t limQosEnabled:1; /* 11E */
|
|
|
- uint8_t limWmeEnabled:1; /* WME */
|
|
|
- uint8_t limWsmEnabled:1; /* WSM */
|
|
|
+ uint8_t limQosEnabled:1;
|
|
|
+ uint8_t limWmeEnabled:1;
|
|
|
+ uint8_t limWsmEnabled:1;
|
|
|
uint8_t limHcfEnabled:1;
|
|
|
- uint8_t limRmfEnabled:1; /* 11W */
|
|
|
+ uint8_t limRmfEnabled:1;
|
|
|
uint32_t lim11hEnable;
|
|
|
|
|
|
- int8_t maxTxPower; /* MIN (Regulatory and local power constraint) */
|
|
|
+ int8_t maxTxPower;
|
|
|
int8_t min_11h_pwr;
|
|
|
int8_t max_11h_pwr;
|
|
|
enum QDF_OPMODE opmode;
|
|
@@ -557,21 +808,8 @@ struct pe_session {
|
|
|
tSirP2PNoaAttr p2pGoPsUpdate;
|
|
|
uint32_t defaultAuthFailureTimeout;
|
|
|
|
|
|
- /* EDCA QoS parameters
|
|
|
- * gLimEdcaParams - These EDCA parameters are used locally on AP or STA.
|
|
|
- * If STA, then these are values taken from the Assoc Rsp when associating,
|
|
|
- * or Beacons/Probe Response after association. If AP, then these are
|
|
|
- * values originally set locally on AP.
|
|
|
- *
|
|
|
- * gLimEdcaParamsBC - These EDCA parameters are use by AP to broadcast
|
|
|
- * to other STATIONs in the BSS.
|
|
|
- *
|
|
|
- * gLimEdcaParamsActive: These EDCA parameters are what's actively being
|
|
|
- * used on station. Specific AC values may be downgraded depending on
|
|
|
- * admission control for that particular AC.
|
|
|
- */
|
|
|
- tSirMacEdcaParamRecord gLimEdcaParams[QCA_WLAN_AC_ALL]; /* used locally */
|
|
|
- tSirMacEdcaParamRecord gLimEdcaParamsBC[QCA_WLAN_AC_ALL]; /* used for broadcast */
|
|
|
+ tSirMacEdcaParamRecord gLimEdcaParams[QCA_WLAN_AC_ALL];
|
|
|
+ tSirMacEdcaParamRecord gLimEdcaParamsBC[QCA_WLAN_AC_ALL];
|
|
|
tSirMacEdcaParamRecord gLimEdcaParamsActive[QCA_WLAN_AC_ALL];
|
|
|
|
|
|
uint8_t gLimEdcaParamSetCount;
|
|
@@ -580,7 +818,6 @@ struct pe_session {
|
|
|
uint8_t vhtCapability;
|
|
|
tLimOperatingModeInfo gLimOperatingMode;
|
|
|
uint8_t vhtCapabilityPresentInBeacon;
|
|
|
- /* center freq number as advertized OTA */
|
|
|
uint8_t ch_center_freq_seg0;
|
|
|
enum phy_ch_width ch_width;
|
|
|
#ifdef WLAN_FEATURE_11BE
|
|
@@ -595,28 +832,17 @@ struct pe_session {
|
|
|
uint8_t htSmpsvalue;
|
|
|
bool send_smps_action;
|
|
|
uint8_t spectrumMgtEnabled;
|
|
|
- /* *********************11H related**************************** */
|
|
|
+
|
|
|
tLimSpecMgmtInfo gLimSpecMgmt;
|
|
|
- /* CB Primary/Secondary Channel Switch Info */
|
|
|
tLimChannelSwitchInfo gLimChannelSwitch;
|
|
|
- /* *********************End 11H related**************************** */
|
|
|
|
|
|
uint32_t gLimPhyMode;
|
|
|
uint8_t txLdpcIniFeatureEnabled;
|
|
|
- /**
|
|
|
- * Following is the place holder for free peer index pool.
|
|
|
- * A non-zero value indicates that peer index is available
|
|
|
- * for assignment.
|
|
|
- */
|
|
|
uint8_t *gpLimPeerIdxpool;
|
|
|
uint8_t freePeerIdxHead;
|
|
|
uint8_t freePeerIdxTail;
|
|
|
uint16_t gLimNumOfCurrentSTAs;
|
|
|
#ifdef FEATURE_WLAN_TDLS
|
|
|
- /* TDLS parameters to check whether TDLS
|
|
|
- * and TDLS channel switch is allowed in the
|
|
|
- * AP network
|
|
|
- */
|
|
|
uint32_t peerAIDBitmap[2];
|
|
|
bool tdls_send_set_state_disable;
|
|
|
#endif
|
|
@@ -629,56 +855,20 @@ struct pe_session {
|
|
|
uint8_t max_amsdu_num;
|
|
|
struct mlme_ht_capabilities_info ht_config;
|
|
|
struct wlan_vht_config vht_config;
|
|
|
- /*
|
|
|
- * Place holder for StartBssReq message
|
|
|
- * received by SME state machine
|
|
|
- */
|
|
|
uint8_t gLimCurrentBssUapsd;
|
|
|
-
|
|
|
- /* Used on STA, this is a static UAPSD mask setting
|
|
|
- * derived from SME_JOIN_REQ and SME_REASSOC_REQ. If a
|
|
|
- * particular AC bit is set, it means the AC is both
|
|
|
- * trigger enabled and delivery enabled.
|
|
|
- */
|
|
|
uint8_t gUapsdPerAcBitmask;
|
|
|
-
|
|
|
- /* Used on STA, this is a dynamic UPASD mask setting
|
|
|
- * derived from AddTS Rsp and DelTS frame. If a
|
|
|
- * particular AC bit is set, it means AC is trigger
|
|
|
- * enabled.
|
|
|
- */
|
|
|
uint8_t gUapsdPerAcTriggerEnableMask;
|
|
|
-
|
|
|
- /* Used on STA, dynamic UPASD mask setting
|
|
|
- * derived from AddTS Rsp and DelTs frame. If
|
|
|
- * a particular AC bit is set, it means AC is
|
|
|
- * delivery enabled.
|
|
|
- */
|
|
|
uint8_t gUapsdPerAcDeliveryEnableMask;
|
|
|
-
|
|
|
- /* Flag to skip CSA IE processing when CSA
|
|
|
- * offload is enabled.
|
|
|
- */
|
|
|
uint8_t csaOffloadEnable;
|
|
|
-
|
|
|
- /* Used on STA for AC downgrade. This is a dynamic mask
|
|
|
- * setting which keep tracks of ACs being admitted.
|
|
|
- * If bit is set to 0: That partiular AC is not admitted
|
|
|
- * If bit is set to 1: That particular AC is admitted
|
|
|
- */
|
|
|
uint8_t gAcAdmitMask[SIR_MAC_DIRECTION_DIRECT];
|
|
|
|
|
|
- /* Power Save Off load Parameters */
|
|
|
tPowersaveoffloadInfo pmmOffloadInfo;
|
|
|
- /* SMPS mode */
|
|
|
uint8_t smpsMode;
|
|
|
|
|
|
uint8_t chainMask;
|
|
|
|
|
|
- /* Flag to indicate Chan Sw announcement is required */
|
|
|
uint8_t dfsIncludeChanSwIe;
|
|
|
|
|
|
- /* Flag to indicate Chan Wrapper Element is required */
|
|
|
uint8_t dfsIncludeChanWrapperIe;
|
|
|
|
|
|
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
|
|
@@ -690,42 +880,29 @@ struct pe_session {
|
|
|
struct add_ie_params add_ie_params;
|
|
|
|
|
|
uint8_t *pSchProbeRspTemplate;
|
|
|
- /* Beginning portion of the beacon frame to be written to TFP */
|
|
|
uint8_t *pSchBeaconFrameBegin;
|
|
|
- /* Trailing portion of the beacon frame to be written to TFP */
|
|
|
uint8_t *pSchBeaconFrameEnd;
|
|
|
- /* Size of the beginning portion */
|
|
|
uint16_t schBeaconOffsetBegin;
|
|
|
- /* Size of the trailing portion */
|
|
|
uint16_t schBeaconOffsetEnd;
|
|
|
bool isOSENConnection;
|
|
|
- /* DSCP to UP mapping for HS 2.0 */
|
|
|
struct qos_map_set QosMapSet;
|
|
|
|
|
|
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
|
|
bool bRoamSynchInProgress;
|
|
|
#endif
|
|
|
|
|
|
- /* Fast Transition (FT) */
|
|
|
tftPEContext ftPEContext;
|
|
|
bool isNonRoamReassoc;
|
|
|
qdf_mc_timer_t pmf_retry_timer;
|
|
|
struct comeback_timer_info pmf_retry_timer_info;
|
|
|
- /* timer for resetting protection fields at regular intervals */
|
|
|
qdf_mc_timer_t protection_fields_reset_timer;
|
|
|
- /* timer to decrement CSA/ECSA count */
|
|
|
qdf_mc_timer_t ap_ecsa_timer;
|
|
|
qdf_wake_lock_t ap_ecsa_wakelock;
|
|
|
qdf_runtime_lock_t ap_ecsa_runtime_lock;
|
|
|
struct mac_context *mac_ctx;
|
|
|
- /*
|
|
|
- * variable to store state of various protection struct like
|
|
|
- * gLimOlbcParams, gLimOverlap11gParams, gLimOverlapHt20Params etc
|
|
|
- */
|
|
|
uint16_t old_protection_state;
|
|
|
tSirMacAddr prev_ap_bssid;
|
|
|
#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
|
|
|
- /* tells if Q2Q IE, from another MDM device in AP MCC mode was recvd */
|
|
|
bool sap_advertise_avoid_ch_ie;
|
|
|
#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
|
|
|
#ifdef FEATURE_WLAN_ESE
|
|
@@ -735,17 +912,13 @@ struct pe_session {
|
|
|
bool is_vendor_specific_vhtcaps;
|
|
|
uint8_t vendor_specific_vht_ie_sub_type;
|
|
|
bool vendor_vht_sap;
|
|
|
- /* HS 2.0 Indication */
|
|
|
tDot11fIEhs20vendor_ie hs20vendor_ie;
|
|
|
- /* flag to indicate country code in beacon */
|
|
|
uint8_t country_info_present;
|
|
|
uint8_t nss;
|
|
|
bool nss_forced_1x1;
|
|
|
bool add_bss_failed;
|
|
|
- /* To hold OBSS Scan IE Parameters */
|
|
|
struct obss_scanparam obss_ht40_scanparam;
|
|
|
uint8_t vdev_nss;
|
|
|
- /* Supported NSS is intersection of self and peer NSS */
|
|
|
bool supported_nss_1x1;
|
|
|
bool is_ext_caps_present;
|
|
|
uint16_t beacon_tx_rate;
|
|
@@ -753,7 +926,6 @@ struct pe_session {
|
|
|
uint8_t access_policy;
|
|
|
bool send_p2p_conf_frame;
|
|
|
bool process_ho_fail;
|
|
|
- /* Number of STAs that do not support ECSA capability */
|
|
|
uint8_t lim_non_ecsa_cap_num;
|
|
|
#ifdef WLAN_FEATURE_11AX
|
|
|
bool he_capable;
|
|
@@ -767,7 +939,6 @@ struct pe_session {
|
|
|
uint8_t bss_color_changing;
|
|
|
#endif
|
|
|
#endif
|
|
|
-
|
|
|
struct deauth_retry_params deauth_retry;
|
|
|
bool enable_bcast_probe_rsp;
|
|
|
uint8_t ht_client_cnt;
|
|
@@ -777,7 +948,7 @@ struct pe_session {
|
|
|
#ifdef WLAN_FEATURE_FILS_SK
|
|
|
struct pe_fils_session *fils_info;
|
|
|
#endif
|
|
|
- /* previous auth frame's sequence number */
|
|
|
+
|
|
|
uint16_t prev_auth_seq_num;
|
|
|
tSirMacAddr prev_auth_mac_addr;
|
|
|
struct obss_detection_cfg obss_offload_cfg;
|
|
@@ -805,11 +976,9 @@ struct pe_session {
|
|
|
uint16_t prot_status_code;
|
|
|
tSirResultCodes result_code;
|
|
|
uint32_t dfs_regdomain;
|
|
|
- /* AP power type */
|
|
|
uint8_t ap_power_type;
|
|
|
- bool same_ctry_code; /* If AP Country IE has same country code as */
|
|
|
- /* STA programmed country */
|
|
|
- uint8_t ap_power_type_6g; /* AP power type for 6G (LPI, SP, or VLP) */
|
|
|
+ bool same_ctry_code;
|
|
|
+ uint8_t ap_power_type_6g;
|
|
|
bool sta_follows_sap_power;
|
|
|
#ifdef WLAN_FEATURE_11BE
|
|
|
bool eht_capable;
|
|
@@ -904,7 +1073,7 @@ struct pe_session *pe_find_session_by_vdev_id(struct mac_context *mac,
|
|
|
* mlm state.
|
|
|
* @mac: pointer to global adapter context
|
|
|
* @vdev_id: vdev id the session
|
|
|
- * @vdev_id: vdev id the session
|
|
|
+ * @lim_state: LIM state of the session
|
|
|
*
|
|
|
* During LFR2 roaming, new pe session is created before old pe session
|
|
|
* deleted, the 2 pe sessions have different pe session id, but same vdev id,
|
|
@@ -952,8 +1121,8 @@ struct pe_session *pe_find_session_by_session_id(struct mac_context *mac,
|
|
|
/**
|
|
|
* pe_delete_session() - deletes the PE session given the session ID.
|
|
|
*
|
|
|
- * @mac: pointer to global adapter context
|
|
|
- * @sessionId: session ID to delete.
|
|
|
+ * @mac: pointer to global adapter context
|
|
|
+ * @pe_session: session to delete
|
|
|
*
|
|
|
* Return: void
|
|
|
*/
|