qcacld-3.0: Cleanup IBSS code from LIM
Cleanup IBSS related code from LIM. Change-Id: Idebb0f55aa27751f1fdd7b4c1fb8124ae29eb382 CRs-Fixed: 2687017
This commit is contained in:

committed by
nshrivas

parent
a196271737
commit
322d8eb806
8
Kbuild
8
Kbuild
@@ -469,10 +469,6 @@ MAC_LIM_OBJS := $(MAC_SRC_DIR)/pe/lim/lim_aid_mgmt.o \
|
|||||||
$(MAC_SRC_DIR)/pe/lim/lim_trace.o \
|
$(MAC_SRC_DIR)/pe/lim/lim_trace.o \
|
||||||
$(MAC_SRC_DIR)/pe/lim/lim_utils.o
|
$(MAC_SRC_DIR)/pe/lim/lim_utils.o
|
||||||
|
|
||||||
ifeq ($(CONFIG_QCA_IBSS_SUPPORT), y)
|
|
||||||
MAC_LIM_OBJS += $(MAC_SRC_DIR)/pe/lim/lim_ibss_peer_mgmt.o
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_QCOM_TDLS), y)
|
ifeq ($(CONFIG_QCOM_TDLS), y)
|
||||||
MAC_LIM_OBJS += $(MAC_SRC_DIR)/pe/lim/lim_process_tdls.o
|
MAC_LIM_OBJS += $(MAC_SRC_DIR)/pe/lim/lim_process_tdls.o
|
||||||
endif
|
endif
|
||||||
@@ -2654,10 +2650,6 @@ cppflags-$(CONFIG_FEATURE_STATS_EXT) += -DWLAN_FEATURE_STATS_EXT
|
|||||||
cppflags-$(CONFIG_QCACLD_FEATURE_NAN) += -DWLAN_FEATURE_NAN
|
cppflags-$(CONFIG_QCACLD_FEATURE_NAN) += -DWLAN_FEATURE_NAN
|
||||||
cppflags-$(CONFIG_NDP_SAP_CONCURRENCY_ENABLE) += -DNDP_SAP_CONCURRENCY_ENABLE
|
cppflags-$(CONFIG_NDP_SAP_CONCURRENCY_ENABLE) += -DNDP_SAP_CONCURRENCY_ENABLE
|
||||||
|
|
||||||
ifeq ($(CONFIG_QCA_IBSS_SUPPORT), y)
|
|
||||||
cppflags-$(CONFIG_QCA_IBSS_SUPPORT) += -DQCA_IBSS_SUPPORT
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_DFS_FCC_TYPE4_DURATION_CHECK), y)
|
ifeq ($(CONFIG_DFS_FCC_TYPE4_DURATION_CHECK), y)
|
||||||
cppflags-$(CONFIG_DFS_FCC_TYPE4_DURATION_CHECK) += -DDFS_FCC_TYPE4_DURATION_CHECK
|
cppflags-$(CONFIG_DFS_FCC_TYPE4_DURATION_CHECK) += -DDFS_FCC_TYPE4_DURATION_CHECK
|
||||||
endif
|
endif
|
||||||
|
@@ -260,33 +260,6 @@ bool pmo_is_vdev_in_ap_mode(struct wlan_objmgr_vdev *vdev)
|
|||||||
return (mode == QDF_SAP_MODE || mode == QDF_P2P_GO_MODE) == 1 ? 1 : 0;
|
return (mode == QDF_SAP_MODE || mode == QDF_P2P_GO_MODE) == 1 ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QCA_IBSS_SUPPORT
|
|
||||||
/**
|
|
||||||
* pmo_is_vdev_in_ibss_mode() - check that vdev is in ibss mode or not
|
|
||||||
* @vdev: objmgr vdev handle
|
|
||||||
* @vdev_id: vdev id
|
|
||||||
*
|
|
||||||
* Helper function to know whether given vdev id
|
|
||||||
* is in IBSS mode or not.
|
|
||||||
*
|
|
||||||
* Return: True/False
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
bool pmo_is_vdev_in_ibss_mode(struct wlan_objmgr_vdev *vdev)
|
|
||||||
{
|
|
||||||
enum QDF_OPMODE mode;
|
|
||||||
|
|
||||||
mode = pmo_get_vdev_opmode(vdev);
|
|
||||||
|
|
||||||
return (mode == QDF_IBSS_MODE) ? true : false;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static inline bool pmo_is_vdev_in_ibss_mode(struct wlan_objmgr_vdev *vdev)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif /* QCA_IBSS_SUPPORT */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pmo_handle_initial_wake_up() - handle initial wake up
|
* pmo_handle_initial_wake_up() - handle initial wake up
|
||||||
* @cb_ctx: callback context
|
* @cb_ctx: callback context
|
||||||
|
@@ -253,11 +253,9 @@ CONFIG_FEATURE_WLAN_STA_4ADDR_SCHEME := y
|
|||||||
CONFIG_MDM_PLATFORM := y
|
CONFIG_MDM_PLATFORM := y
|
||||||
CONFIG_FEATURE_WLAN_STA_AP_MODE_DFS_DISABLE := y
|
CONFIG_FEATURE_WLAN_STA_AP_MODE_DFS_DISABLE := y
|
||||||
CONFIG_FEATURE_AP_MCC_CH_AVOIDANCE := y
|
CONFIG_FEATURE_AP_MCC_CH_AVOIDANCE := y
|
||||||
CONFIG_QCA_IBSS_SUPPORT := n
|
|
||||||
CONFIG_WLAN_OPEN_P2P_INTERFACE := n
|
CONFIG_WLAN_OPEN_P2P_INTERFACE := n
|
||||||
CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY := n
|
CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY := n
|
||||||
else
|
else
|
||||||
CONFIG_QCA_IBSS_SUPPORT := y
|
|
||||||
CONFIG_WLAN_OPEN_P2P_INTERFACE := y
|
CONFIG_WLAN_OPEN_P2P_INTERFACE := y
|
||||||
CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY := y
|
CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY := y
|
||||||
endif
|
endif
|
||||||
|
@@ -455,7 +455,6 @@ CONFIG_FEATURE_WLAN_STA_AP_MODE_DFS_DISABLE := y
|
|||||||
CONFIG_FEATURE_AP_MCC_CH_AVOIDANCE := y
|
CONFIG_FEATURE_AP_MCC_CH_AVOIDANCE := y
|
||||||
else
|
else
|
||||||
CONFIG_QCOM_ESE := y
|
CONFIG_QCOM_ESE := y
|
||||||
CONFIG_QCA_IBSS_SUPPORT := y
|
|
||||||
CONFIG_WLAN_OPEN_P2P_INTERFACE := y
|
CONFIG_WLAN_OPEN_P2P_INTERFACE := y
|
||||||
CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY := y
|
CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY := y
|
||||||
endif
|
endif
|
||||||
|
@@ -15,7 +15,6 @@ CONFIG_POWER_MANAGEMENT_OFFLOAD := y
|
|||||||
CONFIG_LFR_SUBNET_DETECTION := y
|
CONFIG_LFR_SUBNET_DETECTION := y
|
||||||
CONFIG_MCC_TO_SCC_SWITCH := y
|
CONFIG_MCC_TO_SCC_SWITCH := y
|
||||||
CONFIG_QCOM_ESE := y
|
CONFIG_QCOM_ESE := y
|
||||||
CONFIG_QCA_IBSS_SUPPORT := n
|
|
||||||
CONFIG_WLAN_OPEN_P2P_INTERFACE := y
|
CONFIG_WLAN_OPEN_P2P_INTERFACE := y
|
||||||
CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY := y
|
CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY := y
|
||||||
CONFIG_WLAN_DFS_MASTER_ENABLE := y
|
CONFIG_WLAN_DFS_MASTER_ENABLE := y
|
||||||
|
@@ -234,12 +234,6 @@ typedef void (*CHANGE_CHANNEL_CALLBACK)(struct mac_context *mac, QDF_STATUS stat
|
|||||||
uint32_t *data,
|
uint32_t *data,
|
||||||
struct pe_session *pe_session);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
/* / LIM global definitions */
|
|
||||||
struct lim_ibss_info {
|
|
||||||
void *mac_hdr;
|
|
||||||
void *beacon;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct sDialogueToken {
|
typedef struct sDialogueToken {
|
||||||
/* bytes 0-3 */
|
/* bytes 0-3 */
|
||||||
uint16_t assocId;
|
uint16_t assocId;
|
||||||
@@ -338,20 +332,6 @@ typedef struct sAniSirLim {
|
|||||||
|
|
||||||
/* //////////////////////////////////////// BSS RELATED END /////////////////////////////////////////// */
|
/* //////////////////////////////////////// BSS RELATED END /////////////////////////////////////////// */
|
||||||
|
|
||||||
/* //////////////////////////////////////// IBSS RELATED START /////////////////////////////////////////// */
|
|
||||||
/* This indicates whether this STA coalesced and adapter to peer's capabilities or not. */
|
|
||||||
uint8_t gLimIbssCoalescingHappened;
|
|
||||||
|
|
||||||
/* / Definition for storing IBSS peers BSS description */
|
|
||||||
tLimIbssPeerNode *gLimIbssPeerList;
|
|
||||||
uint32_t gLimNumIbssPeers;
|
|
||||||
uint32_t ibss_retry_cnt;
|
|
||||||
|
|
||||||
/* ibss info - params for which ibss to join while coalescing */
|
|
||||||
struct lim_ibss_info ibss_info;
|
|
||||||
|
|
||||||
/* //////////////////////////////////////// IBSS RELATED END /////////////////////////////////////////// */
|
|
||||||
|
|
||||||
/* //////////////////////////////////////// STATS/COUNTER RELATED START /////////////////////////////////////////// */
|
/* //////////////////////////////////////// STATS/COUNTER RELATED START /////////////////////////////////////////// */
|
||||||
|
|
||||||
uint16_t maxStation;
|
uint16_t maxStation;
|
||||||
@@ -728,8 +708,6 @@ struct vdev_type_nss {
|
|||||||
* struct mgmt_beacon_probe_filter
|
* struct mgmt_beacon_probe_filter
|
||||||
* @num_sta_sessions: Number of active PE STA sessions
|
* @num_sta_sessions: Number of active PE STA sessions
|
||||||
* @sta_bssid: Array of PE STA session's peer BSSIDs
|
* @sta_bssid: Array of PE STA session's peer BSSIDs
|
||||||
* @num_ibss_sessions: Number of active PE IBSS sessions
|
|
||||||
* @ibss_ssid: Array of PE IBSS session's SSID
|
|
||||||
* @num_sap_session: Number of active PE SAP sessions
|
* @num_sap_session: Number of active PE SAP sessions
|
||||||
* @sap_channel: Array of PE SAP session's channels
|
* @sap_channel: Array of PE SAP session's channels
|
||||||
*
|
*
|
||||||
@@ -739,8 +717,6 @@ struct vdev_type_nss {
|
|||||||
struct mgmt_beacon_probe_filter {
|
struct mgmt_beacon_probe_filter {
|
||||||
uint8_t num_sta_sessions;
|
uint8_t num_sta_sessions;
|
||||||
tSirMacAddr sta_bssid[WLAN_MAX_VDEVS];
|
tSirMacAddr sta_bssid[WLAN_MAX_VDEVS];
|
||||||
uint8_t num_ibss_sessions;
|
|
||||||
tSirMacSSid ibss_ssid[WLAN_MAX_VDEVS];
|
|
||||||
uint8_t num_sap_sessions;
|
uint8_t num_sap_sessions;
|
||||||
uint8_t sap_channel[WLAN_MAX_VDEVS];
|
uint8_t sap_channel[WLAN_MAX_VDEVS];
|
||||||
};
|
};
|
||||||
|
@@ -464,7 +464,6 @@ struct sir_set_antenna_mode {
|
|||||||
*
|
*
|
||||||
* @eSIR_INFRASTRUCTURE_MODE: Infrastructure station
|
* @eSIR_INFRASTRUCTURE_MODE: Infrastructure station
|
||||||
* @eSIR_INFRA_AP_MODE: softAP mode
|
* @eSIR_INFRA_AP_MODE: softAP mode
|
||||||
* @eSIR_IBSS_MODE: IBSS mode
|
|
||||||
* @eSIR_AUTO_MODE: Auto role
|
* @eSIR_AUTO_MODE: Auto role
|
||||||
* @eSIR_MONITOR_MODE: Monitor mode
|
* @eSIR_MONITOR_MODE: Monitor mode
|
||||||
* @eSIR_NDI_MODE: NAN datapath mode
|
* @eSIR_NDI_MODE: NAN datapath mode
|
||||||
@@ -472,7 +471,6 @@ struct sir_set_antenna_mode {
|
|||||||
enum bss_type {
|
enum bss_type {
|
||||||
eSIR_INFRASTRUCTURE_MODE,
|
eSIR_INFRASTRUCTURE_MODE,
|
||||||
eSIR_INFRA_AP_MODE,
|
eSIR_INFRA_AP_MODE,
|
||||||
eSIR_IBSS_MODE,
|
|
||||||
eSIR_AUTO_MODE,
|
eSIR_AUTO_MODE,
|
||||||
eSIR_MONITOR_MODE,
|
eSIR_MONITOR_MODE,
|
||||||
eSIR_NDI_MODE,
|
eSIR_NDI_MODE,
|
||||||
@@ -1163,10 +1161,6 @@ typedef enum eSirSmeStatusChangeCode {
|
|||||||
eSIR_SME_DISASSOC_FROM_PEER,
|
eSIR_SME_DISASSOC_FROM_PEER,
|
||||||
eSIR_SME_LOST_LINK_WITH_PEER,
|
eSIR_SME_LOST_LINK_WITH_PEER,
|
||||||
eSIR_SME_CHANNEL_SWITCH,
|
eSIR_SME_CHANNEL_SWITCH,
|
||||||
eSIR_SME_JOINED_NEW_BSS,
|
|
||||||
eSIR_SME_LEAVING_BSS,
|
|
||||||
eSIR_SME_IBSS_ACTIVE,
|
|
||||||
eSIR_SME_IBSS_INACTIVE,
|
|
||||||
eSIR_SME_RADAR_DETECTED,
|
eSIR_SME_RADAR_DETECTED,
|
||||||
eSIR_SME_AP_CAPS_CHANGED,
|
eSIR_SME_AP_CAPS_CHANGED,
|
||||||
} tSirSmeStatusChangeCode;
|
} tSirSmeStatusChangeCode;
|
||||||
@@ -1194,13 +1188,6 @@ struct ap_new_caps {
|
|||||||
* eSIR_SME_DISASSOC_FROM_PEER Reason code received in DISASSOC frame
|
* eSIR_SME_DISASSOC_FROM_PEER Reason code received in DISASSOC frame
|
||||||
* eSIR_SME_LOST_LINK_WITH_PEER None
|
* eSIR_SME_LOST_LINK_WITH_PEER None
|
||||||
* eSIR_SME_CHANNEL_SWITCH New channel number
|
* eSIR_SME_CHANNEL_SWITCH New channel number
|
||||||
* eSIR_SME_JOINED_NEW_BSS BSSID, SSID and channel number
|
|
||||||
* eSIR_SME_LEAVING_BSS None
|
|
||||||
* eSIR_SME_IBSS_ACTIVE Indicates that another STA joined
|
|
||||||
* IBSS apart from this STA that
|
|
||||||
* started IBSS
|
|
||||||
* eSIR_SME_IBSS_INACTIVE Indicates that only this STA is left
|
|
||||||
* in IBSS
|
|
||||||
* eSIR_SME_RADAR_DETECTED Indicates that radar is detected
|
* eSIR_SME_RADAR_DETECTED Indicates that radar is detected
|
||||||
* eSIR_SME_AP_CAPS_CHANGED Indicates that capabilities of the AP
|
* eSIR_SME_AP_CAPS_CHANGED Indicates that capabilities of the AP
|
||||||
* that STA is currently associated with
|
* that STA is currently associated with
|
||||||
@@ -1222,11 +1209,6 @@ struct wm_status_change_ntf {
|
|||||||
/* none for eSIR_SME_LOST_LINK_WITH_PEER */
|
/* none for eSIR_SME_LOST_LINK_WITH_PEER */
|
||||||
/* eSIR_SME_CHANNEL_SWITCH */
|
/* eSIR_SME_CHANNEL_SWITCH */
|
||||||
uint32_t new_freq;
|
uint32_t new_freq;
|
||||||
/* eSIR_SME_JOINED_NEW_BSS */
|
|
||||||
struct new_bss_info newBssInfo;
|
|
||||||
/* none for eSIR_SME_LEAVING_BSS */
|
|
||||||
/* none for eSIR_SME_IBSS_ACTIVE */
|
|
||||||
/* none for eSIR_SME_IBSS_INACTIVE */
|
|
||||||
/* none for eSIR_SME_RADAR_DETECTED */
|
/* none for eSIR_SME_RADAR_DETECTED */
|
||||||
/* eSIR_SME_AP_CAPS_CHANGED */
|
/* eSIR_SME_AP_CAPS_CHANGED */
|
||||||
struct ap_new_caps apNewCaps;
|
struct ap_new_caps apNewCaps;
|
||||||
@@ -1605,11 +1587,6 @@ typedef struct sSmeIbssPeerInd {
|
|||||||
/* Beacon will be appended for new Peer indication. */
|
/* Beacon will be appended for new Peer indication. */
|
||||||
} tSmeIbssPeerInd, *tpSmeIbssPeerInd;
|
} tSmeIbssPeerInd, *tpSmeIbssPeerInd;
|
||||||
|
|
||||||
struct ibss_peer_inactivity_ind {
|
|
||||||
uint8_t bss_idx;
|
|
||||||
struct qdf_mac_addr peer_addr;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct lim_channel_status
|
* struct lim_channel_status
|
||||||
* @channelfreq: Channel freq
|
* @channelfreq: Channel freq
|
||||||
|
@@ -53,8 +53,6 @@ enum eWniMsgTypes {
|
|||||||
eWNI_SME_DEAUTH_IND = SIR_SME_MSG_TYPES_BEGIN + 14,
|
eWNI_SME_DEAUTH_IND = SIR_SME_MSG_TYPES_BEGIN + 14,
|
||||||
eWNI_SME_DISCONNECT_DONE_IND = SIR_SME_MSG_TYPES_BEGIN + 15,
|
eWNI_SME_DISCONNECT_DONE_IND = SIR_SME_MSG_TYPES_BEGIN + 15,
|
||||||
eWNI_SME_WM_STATUS_CHANGE_NTF = SIR_SME_MSG_TYPES_BEGIN + 16,
|
eWNI_SME_WM_STATUS_CHANGE_NTF = SIR_SME_MSG_TYPES_BEGIN + 16,
|
||||||
eWNI_SME_IBSS_NEW_PEER_IND = SIR_SME_MSG_TYPES_BEGIN + 17,
|
|
||||||
eWNI_SME_IBSS_PEER_DEPARTED_IND = SIR_SME_MSG_TYPES_BEGIN + 18,
|
|
||||||
eWNI_SME_START_BSS_REQ = SIR_SME_MSG_TYPES_BEGIN + 19,
|
eWNI_SME_START_BSS_REQ = SIR_SME_MSG_TYPES_BEGIN + 19,
|
||||||
eWNI_SME_START_BSS_RSP = SIR_SME_MSG_TYPES_BEGIN + 20,
|
eWNI_SME_START_BSS_RSP = SIR_SME_MSG_TYPES_BEGIN + 20,
|
||||||
eWNI_SME_ASSOC_IND = SIR_SME_MSG_TYPES_BEGIN + 21,
|
eWNI_SME_ASSOC_IND = SIR_SME_MSG_TYPES_BEGIN + 21,
|
||||||
|
@@ -779,9 +779,6 @@ QDF_STATUS
|
|||||||
populate_dot11f_ht_info(struct mac_context *mac,
|
populate_dot11f_ht_info(struct mac_context *mac,
|
||||||
tDot11fIEHTInfo *pDot11f, struct pe_session *pe_session);
|
tDot11fIEHTInfo *pDot11f, struct pe_session *pe_session);
|
||||||
|
|
||||||
void populate_dot11f_ibss_params(struct mac_context *mac,
|
|
||||||
tDot11fIEIBSSParams *pDot11f,
|
|
||||||
struct pe_session *pe_session);
|
|
||||||
|
|
||||||
#ifdef ANI_SUPPORT_11H
|
#ifdef ANI_SUPPORT_11H
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
|
@@ -367,7 +367,6 @@ struct sir_cfg_action_frm_tb_ppdu {
|
|||||||
#define SIR_HAL_RX_SCAN_EVENT (SIR_HAL_ITC_MSG_TYPES_BEGIN + 147)
|
#define SIR_HAL_RX_SCAN_EVENT (SIR_HAL_ITC_MSG_TYPES_BEGIN + 147)
|
||||||
#define SIR_HAL_DHCP_START_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 148)
|
#define SIR_HAL_DHCP_START_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 148)
|
||||||
#define SIR_HAL_DHCP_STOP_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 149)
|
#define SIR_HAL_DHCP_STOP_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 149)
|
||||||
#define SIR_HAL_IBSS_PEER_INACTIVITY_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 150)
|
|
||||||
|
|
||||||
#define SIR_HAL_LPHB_CONF_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 151)
|
#define SIR_HAL_LPHB_CONF_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 151)
|
||||||
|
|
||||||
|
@@ -50,7 +50,6 @@
|
|||||||
#define GET_LIM_SYSTEM_ROLE(pe_session) (pe_session->limSystemRole)
|
#define GET_LIM_SYSTEM_ROLE(pe_session) (pe_session->limSystemRole)
|
||||||
#define LIM_IS_AP_ROLE(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_AP_ROLE)
|
#define LIM_IS_AP_ROLE(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_AP_ROLE)
|
||||||
#define LIM_IS_STA_ROLE(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_STA_ROLE)
|
#define LIM_IS_STA_ROLE(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_STA_ROLE)
|
||||||
#define LIM_IS_IBSS_ROLE(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_STA_IN_IBSS_ROLE)
|
|
||||||
#define LIM_IS_UNKNOWN_ROLE(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_UNKNOWN_ROLE)
|
#define LIM_IS_UNKNOWN_ROLE(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_UNKNOWN_ROLE)
|
||||||
#define LIM_IS_P2P_DEVICE_ROLE(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_P2P_DEVICE_ROLE)
|
#define LIM_IS_P2P_DEVICE_ROLE(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_P2P_DEVICE_ROLE)
|
||||||
#define LIM_IS_P2P_DEVICE_GO(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_P2P_DEVICE_GO)
|
#define LIM_IS_P2P_DEVICE_GO(pe_session) (GET_LIM_SYSTEM_ROLE(pe_session) == eLIM_P2P_DEVICE_GO)
|
||||||
@@ -189,46 +188,6 @@ QDF_STATUS lim_post_msg_high_priority(struct mac_context *mac,
|
|||||||
*/
|
*/
|
||||||
void lim_message_processor(struct mac_context *, struct scheduler_msg *);
|
void lim_message_processor(struct mac_context *, struct scheduler_msg *);
|
||||||
|
|
||||||
#ifdef QCA_IBSS_SUPPORT
|
|
||||||
/**
|
|
||||||
* lim_handle_ibss_coalescing() - Function to handle IBSS coalescing.
|
|
||||||
* @param mac - Pointer to Global MAC structure
|
|
||||||
* @param pBeacon - Parsed Beacon Frame structure
|
|
||||||
* @param pRxPacketInfo - Pointer to RX packet info structure
|
|
||||||
* @pe_session - pointer to pe session
|
|
||||||
*
|
|
||||||
* This function is called upon receiving Beacon/Probe Response
|
|
||||||
* while operating in IBSS mode.
|
|
||||||
*
|
|
||||||
* @return Status whether to process or ignore received Beacon Frame
|
|
||||||
*/
|
|
||||||
QDF_STATUS
|
|
||||||
lim_handle_ibss_coalescing(struct mac_context *mac,
|
|
||||||
tpSchBeaconStruct pBeacon,
|
|
||||||
uint8_t *pRxPacketInfo,
|
|
||||||
struct pe_session *pe_session);
|
|
||||||
#else
|
|
||||||
/**
|
|
||||||
* lim_handle_ibss_coalescing() - Function to handle IBSS coalescing.
|
|
||||||
* @param mac - Pointer to Global MAC structure
|
|
||||||
* @param pBeacon - Parsed Beacon Frame structure
|
|
||||||
* @param pRxPacketInfo - Pointer to RX packet info structure
|
|
||||||
* @pe_session - pointer to pe session
|
|
||||||
*
|
|
||||||
* This function is dummy
|
|
||||||
*
|
|
||||||
* @return Status whether to process or ignore received Beacon Frame
|
|
||||||
*/
|
|
||||||
static inline QDF_STATUS
|
|
||||||
lim_handle_ibss_coalescing(struct mac_context *mac,
|
|
||||||
tpSchBeaconStruct pBeacon,
|
|
||||||
uint8_t *pRxPacketInfo,
|
|
||||||
struct pe_session *pe_session)
|
|
||||||
{
|
|
||||||
return QDF_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* / Function used by other Sirius modules to read global SME state */
|
/* / Function used by other Sirius modules to read global SME state */
|
||||||
static inline tLimSmeStates lim_get_sme_state(struct mac_context *mac)
|
static inline tLimSmeStates lim_get_sme_state(struct mac_context *mac)
|
||||||
{
|
{
|
||||||
|
@@ -57,7 +57,6 @@
|
|||||||
typedef enum eLimSystemRole {
|
typedef enum eLimSystemRole {
|
||||||
eLIM_UNKNOWN_ROLE,
|
eLIM_UNKNOWN_ROLE,
|
||||||
eLIM_AP_ROLE,
|
eLIM_AP_ROLE,
|
||||||
eLIM_STA_IN_IBSS_ROLE,
|
|
||||||
eLIM_STA_ROLE,
|
eLIM_STA_ROLE,
|
||||||
eLIM_P2P_DEVICE_ROLE,
|
eLIM_P2P_DEVICE_ROLE,
|
||||||
eLIM_P2P_DEVICE_GO,
|
eLIM_P2P_DEVICE_GO,
|
||||||
@@ -330,76 +329,6 @@ typedef struct sLimNoShortSlotParams {
|
|||||||
tCacheParams staNoShortSlotCache[LIM_PROT_STA_CACHE_SIZE];
|
tCacheParams staNoShortSlotCache[LIM_PROT_STA_CACHE_SIZE];
|
||||||
} tLimNoShortSlotParams, *tpLimNoShortSlotParams;
|
} tLimNoShortSlotParams, *tpLimNoShortSlotParams;
|
||||||
|
|
||||||
typedef struct tLimIbssPeerNode tLimIbssPeerNode;
|
|
||||||
struct tLimIbssPeerNode {
|
|
||||||
tLimIbssPeerNode *next;
|
|
||||||
tSirMacAddr peerMacAddr;
|
|
||||||
uint8_t extendedRatesPresent:1;
|
|
||||||
uint8_t edcaPresent:1;
|
|
||||||
uint8_t wmeEdcaPresent:1;
|
|
||||||
uint8_t wmeInfoPresent:1;
|
|
||||||
uint8_t htCapable:1;
|
|
||||||
uint8_t vhtCapable:1;
|
|
||||||
uint8_t rsvd:2;
|
|
||||||
uint8_t htSecondaryChannelOffset;
|
|
||||||
tSirMacCapabilityInfo capabilityInfo;
|
|
||||||
tSirMacRateSet supportedRates;
|
|
||||||
tSirMacRateSet extendedRates;
|
|
||||||
uint8_t supportedMCSSet[SIZE_OF_SUPPORTED_MCS_SET];
|
|
||||||
tSirMacEdcaParamSetIE edcaParams;
|
|
||||||
uint8_t erpIePresent;
|
|
||||||
|
|
||||||
/* HT Capabilities of IBSS Peer */
|
|
||||||
uint8_t htGreenfield;
|
|
||||||
uint8_t htShortGI40Mhz;
|
|
||||||
uint8_t htShortGI20Mhz;
|
|
||||||
|
|
||||||
/* DSSS/CCK at 40 MHz: Enabled 1 or Disabled */
|
|
||||||
uint8_t htDsssCckRate40MHzSupport;
|
|
||||||
|
|
||||||
/* MIMO Power Save */
|
|
||||||
tSirMacHTMIMOPowerSaveState htMIMOPSState;
|
|
||||||
|
|
||||||
/* */
|
|
||||||
/* A-MPDU Density */
|
|
||||||
/* 000 - No restriction */
|
|
||||||
/* 001 - 1/8 usec */
|
|
||||||
/* 010 - 1/4 usec */
|
|
||||||
/* 011 - 1/2 usec */
|
|
||||||
/* 100 - 1 usec */
|
|
||||||
/* 101 - 2 usec */
|
|
||||||
/* 110 - 4 usec */
|
|
||||||
/* 111 - 8 usec */
|
|
||||||
/* */
|
|
||||||
uint8_t htAMpduDensity;
|
|
||||||
|
|
||||||
/* Maximum Rx A-MPDU factor */
|
|
||||||
uint8_t htMaxRxAMpduFactor;
|
|
||||||
|
|
||||||
/* Set to 0 for 3839 octets */
|
|
||||||
/* Set to 1 for 7935 octets */
|
|
||||||
uint8_t htMaxAmsduLength;
|
|
||||||
|
|
||||||
/* */
|
|
||||||
/* Recommended Tx Width Set */
|
|
||||||
/* 0 - use 20 MHz channel (control channel) */
|
|
||||||
/* 1 - use 40 Mhz channel */
|
|
||||||
/* */
|
|
||||||
uint8_t htSupportedChannelWidthSet;
|
|
||||||
|
|
||||||
uint8_t htLdpcCapable;
|
|
||||||
|
|
||||||
uint8_t beaconHBCount;
|
|
||||||
uint8_t heartbeatFailure;
|
|
||||||
|
|
||||||
uint8_t *beacon; /* Hold beacon to be sent to HDD/CSR */
|
|
||||||
uint16_t beaconLen;
|
|
||||||
|
|
||||||
tDot11fIEVHTCaps VHTCaps;
|
|
||||||
uint8_t vhtSupportedChannelWidthSet;
|
|
||||||
uint8_t vhtBeamFormerCapable;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Enums used for channel switching. */
|
/* Enums used for channel switching. */
|
||||||
typedef enum eLimChannelSwitchState {
|
typedef enum eLimChannelSwitchState {
|
||||||
eLIM_CHANNEL_SWITCH_IDLE,
|
eLIM_CHANNEL_SWITCH_IDLE,
|
||||||
|
@@ -180,7 +180,6 @@ struct pe_session {
|
|||||||
/* Identifies the 40 MHz extension channel */
|
/* Identifies the 40 MHz extension channel */
|
||||||
ePhyChanBondState htSecondaryChannelOffset;
|
ePhyChanBondState htSecondaryChannelOffset;
|
||||||
enum reg_wifi_band limRFBand;
|
enum reg_wifi_band limRFBand;
|
||||||
uint8_t limIbssActive; /* TO SUPPORT CONCURRENCY */
|
|
||||||
|
|
||||||
/* These global varibales moved to session Table to support BT-AMP : Oct 9th review */
|
/* These global varibales moved to session Table to support BT-AMP : Oct 9th review */
|
||||||
tAniAuthType limCurrentAuthType;
|
tAniAuthType limCurrentAuthType;
|
||||||
@@ -736,7 +735,6 @@ void pe_delete_fils_info(struct pe_session *session);
|
|||||||
*
|
*
|
||||||
* @mac_ctx: pointer to global mac context
|
* @mac_ctx: pointer to global mac context
|
||||||
* @session: pointer to the PE session
|
* @session: pointer to the PE session
|
||||||
* @ibss_ssid: SSID of the session for IBSS sessions
|
|
||||||
* @sap_channel: Operating Channel of the session for SAP sessions
|
* @sap_channel: Operating Channel of the session for SAP sessions
|
||||||
*
|
*
|
||||||
* Sets the beacon/probe filter in the global mac context to filter
|
* Sets the beacon/probe filter in the global mac context to filter
|
||||||
@@ -746,7 +744,6 @@ void pe_delete_fils_info(struct pe_session *session);
|
|||||||
*/
|
*/
|
||||||
void lim_set_bcn_probe_filter(struct mac_context *mac_ctx,
|
void lim_set_bcn_probe_filter(struct mac_context *mac_ctx,
|
||||||
struct pe_session *session,
|
struct pe_session *session,
|
||||||
tSirMacSSid *ibss_ssid,
|
|
||||||
uint8_t sap_channel);
|
uint8_t sap_channel);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2011-2016, 2018-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2011-2016, 2018-2020 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -45,9 +45,7 @@
|
|||||||
* @pe_session: session entry
|
* @pe_session: session entry
|
||||||
*
|
*
|
||||||
* This function is called while starting a BSS at AP
|
* This function is called while starting a BSS at AP
|
||||||
* to initialize AID pool. This may also be called while
|
* to initialize AID pool.
|
||||||
* starting/joining an IBSS if 'Association' is allowed
|
|
||||||
* in IBSS.
|
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
@@ -69,11 +67,6 @@ void lim_init_peer_idxpool(struct mac_context *mac, struct pe_session *pe_sessio
|
|||||||
if (LIM_IS_STA_ROLE(pe_session)) {
|
if (LIM_IS_STA_ROLE(pe_session)) {
|
||||||
pe_session->freePeerIdxHead = DPH_STA_HASH_INDEX_PEER + 1;
|
pe_session->freePeerIdxHead = DPH_STA_HASH_INDEX_PEER + 1;
|
||||||
} else
|
} else
|
||||||
#endif
|
|
||||||
#ifdef QCA_IBSS_SUPPORT
|
|
||||||
if (LIM_IS_IBSS_ROLE(pe_session)) {
|
|
||||||
pe_session->freePeerIdxHead = LIM_START_PEER_IDX;
|
|
||||||
} else
|
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
pe_session->freePeerIdxHead = LIM_START_PEER_IDX;
|
pe_session->freePeerIdxHead = LIM_START_PEER_IDX;
|
||||||
@@ -141,7 +134,7 @@ uint16_t lim_assign_peer_idx(struct mac_context *mac, struct pe_session *pe_sess
|
|||||||
*
|
*
|
||||||
***FUNCTION:
|
***FUNCTION:
|
||||||
* This function is called when a STA context is removed
|
* This function is called when a STA context is removed
|
||||||
* at AP (or at a STA in IBSS mode or TDLS) to return peer Index
|
* at AP (or TDLS) to return peer Index
|
||||||
* to free pool.
|
* to free pool.
|
||||||
*
|
*
|
||||||
***LOGIC:
|
***LOGIC:
|
||||||
|
@@ -42,7 +42,6 @@
|
|||||||
#include "lim_assoc_utils.h"
|
#include "lim_assoc_utils.h"
|
||||||
#include "lim_prop_exts_utils.h"
|
#include "lim_prop_exts_utils.h"
|
||||||
#include "lim_ser_des_utils.h"
|
#include "lim_ser_des_utils.h"
|
||||||
#include "lim_ibss_peer_mgmt.h"
|
|
||||||
#include "lim_admit_control.h"
|
#include "lim_admit_control.h"
|
||||||
#include "lim_send_sme_rsp_messages.h"
|
#include "lim_send_sme_rsp_messages.h"
|
||||||
#include "lim_security_utils.h"
|
#include "lim_security_utils.h"
|
||||||
@@ -403,7 +402,6 @@ QDF_STATUS lim_initialize(struct mac_context *mac)
|
|||||||
mac->lim.tdls_frm_session_id = NO_SESSION;
|
mac->lim.tdls_frm_session_id = NO_SESSION;
|
||||||
mac->lim.deferredMsgCnt = 0;
|
mac->lim.deferredMsgCnt = 0;
|
||||||
mac->lim.retry_packet_cnt = 0;
|
mac->lim.retry_packet_cnt = 0;
|
||||||
mac->lim.ibss_retry_cnt = 0;
|
|
||||||
mac->lim.deauthMsgCnt = 0;
|
mac->lim.deauthMsgCnt = 0;
|
||||||
mac->lim.disassocMsgCnt = 0;
|
mac->lim.disassocMsgCnt = 0;
|
||||||
|
|
||||||
@@ -414,9 +412,6 @@ QDF_STATUS lim_initialize(struct mac_context *mac)
|
|||||||
__lim_init_bss_vars(mac);
|
__lim_init_bss_vars(mac);
|
||||||
__lim_init_ht_vars(mac);
|
__lim_init_ht_vars(mac);
|
||||||
|
|
||||||
/* Initializations for maintaining peers in IBSS */
|
|
||||||
lim_ibss_init(mac);
|
|
||||||
|
|
||||||
rrm_initialize(mac);
|
rrm_initialize(mac);
|
||||||
|
|
||||||
if (QDF_IS_STATUS_ERROR(qdf_mutex_create(
|
if (QDF_IS_STATUS_ERROR(qdf_mutex_create(
|
||||||
@@ -1116,12 +1111,7 @@ static bool pe_filter_bcn_probe_frame(struct mac_context *mac_ctx,
|
|||||||
uint8_t *rx_pkt_info)
|
uint8_t *rx_pkt_info)
|
||||||
{
|
{
|
||||||
uint8_t session_id;
|
uint8_t session_id;
|
||||||
uint8_t *body;
|
|
||||||
const uint8_t *ssid_ie;
|
|
||||||
uint16_t frame_len;
|
|
||||||
struct mgmt_beacon_probe_filter *filter;
|
struct mgmt_beacon_probe_filter *filter;
|
||||||
tpSirMacCapabilityInfo bcn_caps;
|
|
||||||
tSirMacSSid bcn_ssid;
|
|
||||||
|
|
||||||
if (pe_is_ext_scan_bcn_probe_rsp(hdr, rx_pkt_info))
|
if (pe_is_ext_scan_bcn_probe_rsp(hdr, rx_pkt_info))
|
||||||
return true;
|
return true;
|
||||||
@@ -1142,44 +1132,6 @@ static bool pe_filter_bcn_probe_frame(struct mac_context *mac_ctx,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* If any IBSS session exists and beacon is has IBSS capability set
|
|
||||||
* and SSID matches the IBSS SSID, allow the frame
|
|
||||||
*/
|
|
||||||
if (filter->num_ibss_sessions) {
|
|
||||||
body = WMA_GET_RX_MPDU_DATA(rx_pkt_info);
|
|
||||||
frame_len = WMA_GET_RX_PAYLOAD_LEN(rx_pkt_info);
|
|
||||||
if (frame_len < SIR_MAC_B_PR_SSID_OFFSET)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
bcn_caps = (tpSirMacCapabilityInfo)
|
|
||||||
(body + SIR_MAC_B_PR_CAPAB_OFFSET);
|
|
||||||
if (!bcn_caps->ibss)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
ssid_ie = wlan_get_ie_ptr_from_eid(WLAN_ELEMID_SSID,
|
|
||||||
body + SIR_MAC_B_PR_SSID_OFFSET,
|
|
||||||
frame_len);
|
|
||||||
|
|
||||||
if (!ssid_ie)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
bcn_ssid.length = ssid_ie[1];
|
|
||||||
qdf_mem_copy(&bcn_ssid.ssId,
|
|
||||||
&ssid_ie[2],
|
|
||||||
bcn_ssid.length);
|
|
||||||
|
|
||||||
for (session_id = 0; session_id < WLAN_MAX_VDEVS;
|
|
||||||
session_id++) {
|
|
||||||
if (filter->ibss_ssid[session_id].length ==
|
|
||||||
bcn_ssid.length &&
|
|
||||||
(!qdf_mem_cmp(filter->ibss_ssid[session_id].ssId,
|
|
||||||
bcn_ssid.ssId, bcn_ssid.length))) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1440,90 +1392,6 @@ lim_update_overlap_sta_param(struct mac_context *mac, tSirMacAddr bssId,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QCA_IBSS_SUPPORT
|
|
||||||
/**
|
|
||||||
* lim_ibss_enc_type_matched() - API to check enc type match
|
|
||||||
* @param pBeacon - Parsed Beacon Frame structure
|
|
||||||
* @param pSession - Pointer to the PE session
|
|
||||||
*
|
|
||||||
* This function compares the encryption type of the peer with self
|
|
||||||
* while operating in IBSS mode and detects mismatch.
|
|
||||||
*
|
|
||||||
* @return true if encryption type is matched; false otherwise
|
|
||||||
*/
|
|
||||||
static bool lim_ibss_enc_type_matched(tpSchBeaconStruct pBeacon,
|
|
||||||
struct pe_session *pSession)
|
|
||||||
{
|
|
||||||
if (!pBeacon || !pSession)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
/* Open case */
|
|
||||||
if (pBeacon->capabilityInfo.privacy == 0
|
|
||||||
&& pSession->encryptType == eSIR_ED_NONE)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
/* WEP case */
|
|
||||||
if (pBeacon->capabilityInfo.privacy == 1 && pBeacon->wpaPresent == 0
|
|
||||||
&& pBeacon->rsnPresent == 0
|
|
||||||
&& (pSession->encryptType == eSIR_ED_WEP40
|
|
||||||
|| pSession->encryptType == eSIR_ED_WEP104))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
/* WPA-None case */
|
|
||||||
if (pBeacon->capabilityInfo.privacy == 1 && pBeacon->wpaPresent == 1
|
|
||||||
&& pBeacon->rsnPresent == 0
|
|
||||||
&& ((pSession->encryptType == eSIR_ED_CCMP) ||
|
|
||||||
(pSession->encryptType == eSIR_ED_GCMP) ||
|
|
||||||
(pSession->encryptType == eSIR_ED_GCMP_256) ||
|
|
||||||
(pSession->encryptType == eSIR_ED_TKIP)))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
QDF_STATUS
|
|
||||||
lim_handle_ibss_coalescing(struct mac_context *mac,
|
|
||||||
tpSchBeaconStruct pBeacon,
|
|
||||||
uint8_t *pRxPacketInfo, struct pe_session *pe_session)
|
|
||||||
{
|
|
||||||
tpSirMacMgmtHdr pHdr;
|
|
||||||
QDF_STATUS retCode;
|
|
||||||
|
|
||||||
pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
|
|
||||||
|
|
||||||
/* Ignore the beacon when any of the conditions below is met:
|
|
||||||
1. The beacon claims no IBSS network
|
|
||||||
2. SSID in the beacon does not match SSID of self station
|
|
||||||
3. Operational channel in the beacon does not match self station
|
|
||||||
4. Encyption type in the beacon does not match with self station
|
|
||||||
*/
|
|
||||||
if ((!pBeacon->capabilityInfo.ibss) ||
|
|
||||||
lim_cmp_ssid(&pBeacon->ssId, pe_session) ||
|
|
||||||
(pe_session->curr_op_freq != pBeacon->chan_freq))
|
|
||||||
retCode = QDF_STATUS_E_INVAL;
|
|
||||||
else if (lim_ibss_enc_type_matched(pBeacon, pe_session) != true) {
|
|
||||||
pe_debug("peer privacy: %d peer wpa: %d peer rsn: %d self encType: %d",
|
|
||||||
pBeacon->capabilityInfo.privacy,
|
|
||||||
pBeacon->wpaPresent, pBeacon->rsnPresent,
|
|
||||||
pe_session->encryptType);
|
|
||||||
retCode = QDF_STATUS_E_INVAL;
|
|
||||||
} else {
|
|
||||||
uint32_t ieLen;
|
|
||||||
uint16_t tsfLater;
|
|
||||||
uint8_t *pIEs;
|
|
||||||
|
|
||||||
ieLen = WMA_GET_RX_PAYLOAD_LEN(pRxPacketInfo);
|
|
||||||
tsfLater = WMA_GET_RX_TSF_LATER(pRxPacketInfo);
|
|
||||||
pIEs = WMA_GET_RX_MPDU_DATA(pRxPacketInfo);
|
|
||||||
pe_debug("BEFORE Coalescing tsfLater val: %d", tsfLater);
|
|
||||||
retCode =
|
|
||||||
lim_ibss_coalesce(mac, pHdr, pBeacon, pIEs, ieLen, tsfLater,
|
|
||||||
pe_session);
|
|
||||||
}
|
|
||||||
return retCode;
|
|
||||||
} /*** end lim_handle_ibs_scoalescing() ***/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* lim_enc_type_matched() - matches security type of incoming beracon with
|
* lim_enc_type_matched() - matches security type of incoming beracon with
|
||||||
* current
|
* current
|
||||||
@@ -2578,7 +2446,7 @@ pe_roam_synch_callback(struct mac_context *mac_ctx,
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
/* Update the beacon/probe filter in mac_ctx */
|
/* Update the beacon/probe filter in mac_ctx */
|
||||||
lim_set_bcn_probe_filter(mac_ctx, ft_session_ptr, NULL, 0);
|
lim_set_bcn_probe_filter(mac_ctx, ft_session_ptr, 0);
|
||||||
|
|
||||||
sir_copy_mac_addr(ft_session_ptr->self_mac_addr,
|
sir_copy_mac_addr(ft_session_ptr->self_mac_addr,
|
||||||
session_ptr->self_mac_addr);
|
session_ptr->self_mac_addr);
|
||||||
@@ -2748,8 +2616,6 @@ static bool lim_is_beacon_miss_scenario(struct mac_context *mac,
|
|||||||
|
|
||||||
- In Scan State, drop the frames which are not marked as scan frames
|
- In Scan State, drop the frames which are not marked as scan frames
|
||||||
- In non-Scan state, drop the frames which are marked as scan frames.
|
- In non-Scan state, drop the frames which are marked as scan frames.
|
||||||
- Drop INFRA Beacons and Probe Responses in IBSS Mode
|
|
||||||
- Drop the Probe Request in IBSS mode, if STA did not send out the last beacon
|
|
||||||
|
|
||||||
\param mac - global mac structure
|
\param mac - global mac structure
|
||||||
\return - none
|
\return - none
|
||||||
@@ -2802,19 +2668,6 @@ tMgmtFrmDropReason lim_is_pkt_candidate_for_drop(struct mac_context *mac,
|
|||||||
if (capabilityInfo.ess)
|
if (capabilityInfo.ess)
|
||||||
return eMGMT_DROP_INFRA_BCN_IN_IBSS;
|
return eMGMT_DROP_INFRA_BCN_IN_IBSS;
|
||||||
|
|
||||||
} else if ((subType == SIR_MAC_MGMT_PROBE_REQ) &&
|
|
||||||
(!WMA_GET_RX_BEACON_SENT(pRxPacketInfo))) {
|
|
||||||
pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
|
|
||||||
pe_session = pe_find_session_by_bssid(mac,
|
|
||||||
pHdr->bssId,
|
|
||||||
&sessionId);
|
|
||||||
if ((pe_session && !LIM_IS_IBSS_ROLE(pe_session)) ||
|
|
||||||
(!pe_session))
|
|
||||||
return eMGMT_DROP_NO_DROP;
|
|
||||||
|
|
||||||
/* Drop the Probe Request in IBSS mode, if STA did not send out the last beacon */
|
|
||||||
/* In IBSS, the node which sends out the beacon, is supposed to respond to ProbeReq */
|
|
||||||
return eMGMT_DROP_NOT_LAST_IBSS_BCN;
|
|
||||||
} else if (subType == SIR_MAC_MGMT_AUTH) {
|
} else if (subType == SIR_MAC_MGMT_AUTH) {
|
||||||
uint16_t curr_seq_num = 0;
|
uint16_t curr_seq_num = 0;
|
||||||
struct tLimPreAuthNode *auth_node;
|
struct tLimPreAuthNode *auth_node;
|
||||||
|
@@ -44,7 +44,6 @@
|
|||||||
#include "lim_ser_des_utils.h"
|
#include "lim_ser_des_utils.h"
|
||||||
#include "lim_admit_control.h"
|
#include "lim_admit_control.h"
|
||||||
#include "lim_send_messages.h"
|
#include "lim_send_messages.h"
|
||||||
#include "lim_ibss_peer_mgmt.h"
|
|
||||||
#include "lim_ft_defs.h"
|
#include "lim_ft_defs.h"
|
||||||
#include "lim_session.h"
|
#include "lim_session.h"
|
||||||
#include "lim_process_fils.h"
|
#include "lim_process_fils.h"
|
||||||
@@ -1804,7 +1803,6 @@ QDF_STATUS lim_populate_peer_rate_set(struct mac_context *mac,
|
|||||||
* processing on AP and while adding peer's context
|
* processing on AP and while adding peer's context
|
||||||
* in IBSS role to process the CFG rate sets and
|
* in IBSS role to process the CFG rate sets and
|
||||||
* the rate sets received in the Assoc request on AP
|
* the rate sets received in the Assoc request on AP
|
||||||
* or Beacon/Probe Response from peer in IBSS.
|
|
||||||
*
|
*
|
||||||
* 1. It makes the intersection between our own rate Sat
|
* 1. It makes the intersection between our own rate Sat
|
||||||
* and extemcded rate set and the ones received in the
|
* and extemcded rate set and the ones received in the
|
||||||
@@ -2149,8 +2147,7 @@ lim_add_sta(struct mac_context *mac_ctx,
|
|||||||
if (!add_sta_params)
|
if (!add_sta_params)
|
||||||
return QDF_STATUS_E_NOMEM;
|
return QDF_STATUS_E_NOMEM;
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(session_entry) || LIM_IS_IBSS_ROLE(session_entry) ||
|
if (LIM_IS_AP_ROLE(session_entry) || LIM_IS_NDI_ROLE(session_entry))
|
||||||
LIM_IS_NDI_ROLE(session_entry))
|
|
||||||
sta_Addr = &sta_ds->staAddr;
|
sta_Addr = &sta_ds->staAddr;
|
||||||
#ifdef FEATURE_WLAN_TDLS
|
#ifdef FEATURE_WLAN_TDLS
|
||||||
/* SystemRole shouldn't be matter if staType is TDLS peer */
|
/* SystemRole shouldn't be matter if staType is TDLS peer */
|
||||||
@@ -2201,8 +2198,7 @@ lim_add_sta(struct mac_context *mac_ctx,
|
|||||||
add_sta_params->status = QDF_STATUS_SUCCESS;
|
add_sta_params->status = QDF_STATUS_SUCCESS;
|
||||||
|
|
||||||
/* Update VHT/HT Capability */
|
/* Update VHT/HT Capability */
|
||||||
if (LIM_IS_AP_ROLE(session_entry) ||
|
if (LIM_IS_AP_ROLE(session_entry)) {
|
||||||
LIM_IS_IBSS_ROLE(session_entry)) {
|
|
||||||
add_sta_params->htCapable = sta_ds->mlmStaContext.htCapability;
|
add_sta_params->htCapable = sta_ds->mlmStaContext.htCapability;
|
||||||
add_sta_params->vhtCapable =
|
add_sta_params->vhtCapable =
|
||||||
sta_ds->mlmStaContext.vhtCapability;
|
sta_ds->mlmStaContext.vhtCapability;
|
||||||
@@ -2918,7 +2914,7 @@ lim_delete_dph_hash_entry(struct mac_context *mac_ctx, tSirMacAddr sta_addr,
|
|||||||
*/
|
*/
|
||||||
lim_util_count_sta_del(mac_ctx, sta_ds, session_entry);
|
lim_util_count_sta_del(mac_ctx, sta_ds, session_entry);
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(session_entry) || LIM_IS_IBSS_ROLE(session_entry)) {
|
if (LIM_IS_AP_ROLE(session_entry)) {
|
||||||
if (LIM_IS_AP_ROLE(session_entry)) {
|
if (LIM_IS_AP_ROLE(session_entry)) {
|
||||||
if (session_entry->gLimProtectionControl !=
|
if (session_entry->gLimProtectionControl !=
|
||||||
MLME_FORCE_POLICY_PROTECTION_DISABLE)
|
MLME_FORCE_POLICY_PROTECTION_DISABLE)
|
||||||
@@ -2937,10 +2933,6 @@ lim_delete_dph_hash_entry(struct mac_context *mac_ctx, tSirMacAddr sta_addr,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LIM_IS_IBSS_ROLE(session_entry))
|
|
||||||
lim_ibss_decide_protection_on_delete(mac_ctx, sta_ds,
|
|
||||||
&beacon_params, session_entry);
|
|
||||||
|
|
||||||
lim_decide_short_preamble(mac_ctx, sta_ds, &beacon_params,
|
lim_decide_short_preamble(mac_ctx, sta_ds, &beacon_params,
|
||||||
session_entry);
|
session_entry);
|
||||||
lim_decide_short_slot(mac_ctx, sta_ds, &beacon_params,
|
lim_decide_short_slot(mac_ctx, sta_ds, &beacon_params,
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -456,9 +456,7 @@ void lim_handle_ft_pre_auth_rsp(struct mac_context *mac, QDF_STATUS status,
|
|||||||
pbssDescription->bssId);
|
pbssDescription->bssId);
|
||||||
|
|
||||||
/* Update the beacon/probe filter in mac_ctx */
|
/* Update the beacon/probe filter in mac_ctx */
|
||||||
lim_set_bcn_probe_filter(mac,
|
lim_set_bcn_probe_filter(mac, ft_session, 0);
|
||||||
ft_session,
|
|
||||||
NULL, 0);
|
|
||||||
|
|
||||||
if (ft_session->bssType == eSIR_INFRASTRUCTURE_MODE)
|
if (ft_session->bssType == eSIR_INFRASTRUCTURE_MODE)
|
||||||
ft_session->limSystemRole = eLIM_STA_ROLE;
|
ft_session->limSystemRole = eLIM_STA_ROLE;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,471 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2011-2012, 2014-2019 The Linux Foundation. All rights reserved.
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
|
||||||
* above copyright notice and this permission notice appear in all
|
|
||||||
* copies.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
|
|
||||||
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
|
|
||||||
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
|
||||||
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
||||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
* PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
* This file lim_ibss_peer_mgmt.h contains prototypes for
|
|
||||||
* the utility functions LIM uses to maintain peers in IBSS.
|
|
||||||
* Author: Chandra Modumudi
|
|
||||||
* Date: 03/12/04
|
|
||||||
* History:-
|
|
||||||
* Date Modified by Modification Information
|
|
||||||
* --------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "sir_common.h"
|
|
||||||
#include "lim_utils.h"
|
|
||||||
|
|
||||||
#ifdef QCA_IBSS_SUPPORT
|
|
||||||
/**
|
|
||||||
* ibss_bss_add()- add the ibss
|
|
||||||
* @mac_ctx: Pointer to Global MAC structure
|
|
||||||
* @session: pe session
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
void ibss_bss_add(struct mac_context *mac_ctx, struct pe_session *session);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ibss_bss_delete()- delete the current BSS
|
|
||||||
* @mac_ctx: Pointer to Global MAC structure
|
|
||||||
* @session: pe session
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
void ibss_bss_delete(struct mac_context *mac_ctx, struct pe_session *session);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_delete_all_peers() - delete all IBSS peers.
|
|
||||||
* @mac_ctx: Pointer to Global MAC structure
|
|
||||||
* @session: pe session
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
void lim_ibss_delete_all_peers(struct mac_context *mac_ctx, struct pe_session *session);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_init() - API to init IBSS
|
|
||||||
* @mac_ctx: Pointer to Global MAC structure
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
void lim_ibss_init(struct mac_context *);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_delete() - Delete ibss while tearing down an IBSS
|
|
||||||
*
|
|
||||||
* @mac: Pointer to Global MAC structure
|
|
||||||
* @session: Pointer to session entry
|
|
||||||
*
|
|
||||||
* Return: none
|
|
||||||
*/
|
|
||||||
void lim_ibss_delete(struct mac_context *, struct pe_session *pe_session);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_coalesce() - API to process IBSS Beacon/Probe Response
|
|
||||||
* @param mac - Pointer to Global MAC structure
|
|
||||||
* @param pBeacon - Parsed Beacon Frame structure
|
|
||||||
* @param pBD - Pointer to received BD
|
|
||||||
*
|
|
||||||
* This function is called upon receiving Beacon/Probe Response
|
|
||||||
* while operating in IBSS mode.
|
|
||||||
*
|
|
||||||
* @return Status whether to process or ignore received Beacon Frame
|
|
||||||
*/
|
|
||||||
QDF_STATUS lim_ibss_coalesce(struct mac_context *, tpSirMacMgmtHdr,
|
|
||||||
tpSchBeaconStruct, uint8_t *, uint32_t, uint16_t,
|
|
||||||
struct pe_session *);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_sta_add() - API to add an STA context in IBSS role
|
|
||||||
* @param mac Pointer to Global MAC structure
|
|
||||||
* @param peerAdddr MAC address of the peer being added
|
|
||||||
*
|
|
||||||
* This function is called to add an STA context in IBSS role
|
|
||||||
* whenever a data frame is received from/for a STA that failed
|
|
||||||
* hash lookup at DPH.
|
|
||||||
*
|
|
||||||
* @return retCode Indicates success or failure return code
|
|
||||||
*/
|
|
||||||
QDF_STATUS lim_ibss_sta_add(struct mac_context *, void *, struct pe_session *);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_add_sta_rsp() - API to process STA add response in IBSS role
|
|
||||||
* @param mac Pointer to Global MAC structure
|
|
||||||
* @param peerAdddr MAC address of the peer being added
|
|
||||||
*
|
|
||||||
* This function is called to add an STA context in IBSS role
|
|
||||||
* whenever a data frame is received from/for a STA that failed
|
|
||||||
* hash lookup at DPH.
|
|
||||||
*
|
|
||||||
* @return retCode Indicates success or failure return code
|
|
||||||
*/
|
|
||||||
QDF_STATUS lim_ibss_add_sta_rsp(struct mac_context *, void *, struct pe_session *);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_process_ibss_del_sta_rsp()- Handle ibss delete
|
|
||||||
* peer resp from firmware
|
|
||||||
* @mac_ptr: Pointer to Global MAC structure
|
|
||||||
* @lim_msg: delete sta response
|
|
||||||
* @pe_session: pe session
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void lim_process_ibss_del_sta_rsp(struct mac_context *mac_ctx,
|
|
||||||
struct scheduler_msg *lim_msg,
|
|
||||||
struct pe_session *pe_session);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_peer_find() - API to find IBSS peer
|
|
||||||
* @mac: pointer to mac context
|
|
||||||
* @param macAddr - MAC address of the peer
|
|
||||||
*
|
|
||||||
* This function is called while adding a context at
|
|
||||||
* DPH & Polaris for a peer in IBSS.
|
|
||||||
* If peer is found in the list, capabilities from the
|
|
||||||
* returned BSS description are used at DPH node & Polaris.
|
|
||||||
*
|
|
||||||
* @return Pointer to peer node if found, else NULL
|
|
||||||
*/
|
|
||||||
tLimIbssPeerNode *lim_ibss_peer_find(struct mac_context *mac, tSirMacAddr macAddr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_del_bss_rsp() - Handle ibss delete
|
|
||||||
* response
|
|
||||||
* @mac: Pointer to Global MAC structure
|
|
||||||
* @vdev_stop_rsp: pointer to del bss response
|
|
||||||
* @pe_session: pointer to pe session
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void lim_ibss_del_bss_rsp(struct mac_context *mac,
|
|
||||||
struct del_bss_resp *vdev_stop_rsp,
|
|
||||||
struct pe_session *pe_session);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_del_bss_rsp_when_coalescing() - Handle ibss delete
|
|
||||||
* response when coalescing
|
|
||||||
* @mac: Pointer to Global MAC structure
|
|
||||||
* @vdev_stop_rsp: pointer to del bss response
|
|
||||||
* @pe_session: pointer to pe session
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void lim_ibss_del_bss_rsp_when_coalescing(struct mac_context *mac,
|
|
||||||
struct del_bss_resp *vdev_stop_rsp,
|
|
||||||
struct pe_session *pe_session);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_add_bss_rsp_when_coalescing()- Handle ADD BSS rsp of IBSS coalescing
|
|
||||||
* @mac_ptr: Pointer to Global MAC structure
|
|
||||||
* @op_chan_freq: operating chan freq
|
|
||||||
* @pe_session: PE session pointer
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
void lim_ibss_add_bss_rsp_when_coalescing(struct mac_context *mac,
|
|
||||||
uint32_t op_chan_freq,
|
|
||||||
struct pe_session *pe_session);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_decide_protection_on_delete() - decides protection related info.
|
|
||||||
* @mac_ctx: global mac context
|
|
||||||
* @stads: station hash node
|
|
||||||
* @bcn_param: beacon parameters
|
|
||||||
* @session: PE session entry
|
|
||||||
*
|
|
||||||
* Decides all the protection related information.
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
void lim_ibss_decide_protection_on_delete(struct mac_context *mac, tpDphHashNode sta,
|
|
||||||
tpUpdateBeaconParams pBeaconParams,
|
|
||||||
struct pe_session *pe_session);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_heart_beat_handle() - handle IBSS hearbeat failure
|
|
||||||
* @mac_ctx: global mac context
|
|
||||||
* @session: PE session entry
|
|
||||||
*
|
|
||||||
* Hanlde IBSS hearbeat failure.
|
|
||||||
*
|
|
||||||
* Return: None.
|
|
||||||
*/
|
|
||||||
void lim_ibss_heart_beat_handle(struct mac_context *mac, struct pe_session *pe_session);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_process_ibss_peer_inactivity() - Handle inactive IBSS peer
|
|
||||||
* @mac: Global MAC context
|
|
||||||
* @buf: pointer to buffer
|
|
||||||
*
|
|
||||||
* Internal function. Deletes FW indicated peer which is inactive
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
void lim_process_ibss_peer_inactivity(struct mac_context *mac, void *buf);
|
|
||||||
#else
|
|
||||||
/**
|
|
||||||
* ibss_bss_add()- api to add ibss
|
|
||||||
* @mac_ctx: Pointer to Global MAC structure
|
|
||||||
* @session: pe session
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void ibss_bss_add(struct mac_context *mac_ctx, struct pe_session *session)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ibss_bss_delete()- delete the current BSS
|
|
||||||
* @mac_ctx: Pointer to Global MAC structure
|
|
||||||
* @session: pe session
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void ibss_bss_delete(struct mac_context *mac_ctx, struct pe_session *session)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_delete_all_peers: delete all IBSS peers.
|
|
||||||
* @mac_ctx: Pointer to Global MAC structure
|
|
||||||
* @session: pe session
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void lim_ibss_delete_all_peers(struct mac_context *mac_ctx,
|
|
||||||
struct pe_session *session)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_init() - API to init IBSS
|
|
||||||
* @mac_ctx: Pointer to Global MAC structure
|
|
||||||
*
|
|
||||||
* This function is dummy.
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void lim_ibss_init(struct mac_context *mac)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_delete() - Delete ibss while tearing down an IBSS
|
|
||||||
* @mac: Pointer to Global MAC structure
|
|
||||||
* @session: Pointer to session entry
|
|
||||||
*
|
|
||||||
* Return: none
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void lim_ibss_delete(struct mac_context *mac, struct pe_session *session)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_coalesce() - API to process IBSS Beacon/Probe Response
|
|
||||||
* @param mac - Pointer to Global MAC structure
|
|
||||||
* @param pBeacon - Parsed Beacon Frame structure
|
|
||||||
* @param pBD - Pointer to received BD
|
|
||||||
*
|
|
||||||
* This function is dummy.
|
|
||||||
*
|
|
||||||
* @return Status whether to process or ignore received Beacon Frame
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
QDF_STATUS lim_ibss_coalesce(struct mac_context *mac,
|
|
||||||
tpSirMacMgmtHdr pHdr,
|
|
||||||
tpSchBeaconStruct pBeacon,
|
|
||||||
uint8_t *pIEs,
|
|
||||||
uint32_t ieLen, uint16_t fTsfLater,
|
|
||||||
struct pe_session *pe_session)
|
|
||||||
{
|
|
||||||
return QDF_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_sta_add() - API to add an STA context in IBSS role
|
|
||||||
* @param mac Pointer to Global MAC structure
|
|
||||||
* @param peerAdddr MAC address of the peer being added
|
|
||||||
*
|
|
||||||
* This function is dummy.
|
|
||||||
*
|
|
||||||
* @return retCode Indicates success or failure return code
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
QDF_STATUS lim_ibss_sta_add(struct mac_context *mac, void *pBody,
|
|
||||||
struct pe_session *pe_session)
|
|
||||||
{
|
|
||||||
return QDF_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_add_sta_rsp() - API to process STA add response in IBSS role
|
|
||||||
* @param mac Pointer to Global MAC structure
|
|
||||||
* @param peerAdddr MAC address of the peer being added
|
|
||||||
*
|
|
||||||
* This function is funny.
|
|
||||||
*
|
|
||||||
* @return retCode Indicates success or failure return code
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
QDF_STATUS lim_ibss_add_sta_rsp(struct mac_context *mac,
|
|
||||||
void *msg, struct pe_session *pe_session)
|
|
||||||
{
|
|
||||||
return QDF_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_process_ibss_del_sta_rsp()- Handle ibss delete
|
|
||||||
* peer resp from firmware
|
|
||||||
* @mac_ptr: Pointer to Global MAC structure
|
|
||||||
* @lim_msg: delete sta response
|
|
||||||
* @pe_session: pe session
|
|
||||||
*
|
|
||||||
* This function is dymmy.
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void lim_process_ibss_del_sta_rsp(struct mac_context *mac_ctx,
|
|
||||||
struct scheduler_msg *lim_msg,
|
|
||||||
struct pe_session *pe_session)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_peer_find() - API to find IBSS peer
|
|
||||||
* @mac: pointer to mac context
|
|
||||||
* @param macAddr - MAC address of the peer
|
|
||||||
*
|
|
||||||
* This function is dymmy.
|
|
||||||
*
|
|
||||||
* @return Pointer to peer node if found, else NULL
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
tLimIbssPeerNode *lim_ibss_peer_find(struct mac_context *mac,
|
|
||||||
tSirMacAddr macAddr)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_del_bss_rsp() - Handle ibss delete
|
|
||||||
* response
|
|
||||||
* @mac: Pointer to Global MAC structure
|
|
||||||
* @vdev_stop_rsp: pointer to del bss response
|
|
||||||
* @pe_session: pointer to pe session
|
|
||||||
*
|
|
||||||
* This function is dymmy.
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void lim_ibss_del_bss_rsp(struct mac_context *mac,
|
|
||||||
struct del_bss_resp *vdev_stop_rsp,
|
|
||||||
struct pe_session *pe_session)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_del_bss_rsp_when_coalescing() - Handle ibss delete
|
|
||||||
* response when coalescing
|
|
||||||
* @mac: Pointer to Global MAC structure
|
|
||||||
* @vdev_stop_rsp: pointer to del bss response
|
|
||||||
* @pe_session: pointer to pe session
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void lim_ibss_del_bss_rsp_when_coalescing(struct mac_context *mac,
|
|
||||||
struct del_bss_resp *vdev_stop_rsp,
|
|
||||||
struct pe_session *pe_session)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_add_bss_rsp_when_coalescing()- Handle ADD BSS rsp of IBSS coalescing
|
|
||||||
* @mac_ptr: Pointer to Global MAC structure
|
|
||||||
* @op_chan_freq: operating chan freq
|
|
||||||
* @pe_session: PE session pointer
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void lim_ibss_add_bss_rsp_when_coalescing(struct mac_context *mac,
|
|
||||||
uint32_t op_chan_freq,
|
|
||||||
struct pe_session *pe_session)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_decide_protection_on_delete() - decides protection related info.
|
|
||||||
* @mac_ctx: global mac context
|
|
||||||
* @stads: station hash node
|
|
||||||
* @bcn_param: beacon parameters
|
|
||||||
* @session: PE session entry
|
|
||||||
*
|
|
||||||
* This function is dummy.
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void lim_ibss_decide_protection_on_delete(struct mac_context *mac,
|
|
||||||
tpDphHashNode sta,
|
|
||||||
tpUpdateBeaconParams pBeaconParams,
|
|
||||||
struct pe_session *pe_session)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_ibss_heart_beat_handle() - handle IBSS hearbeat failure
|
|
||||||
* @mac_ctx: global mac context
|
|
||||||
* @session: PE session entry
|
|
||||||
*
|
|
||||||
* This function is dummy.
|
|
||||||
*
|
|
||||||
* Return: None.
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void lim_ibss_heart_beat_handle(struct mac_context *mac,
|
|
||||||
struct pe_session *pe_session)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* lim_process_ibss_peer_inactivity() - Handle inactive IBSS peer
|
|
||||||
* @mac: Global MAC context
|
|
||||||
* @buf: pointer to buffer
|
|
||||||
*
|
|
||||||
* This function is dummy.
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void lim_process_ibss_peer_inactivity(struct mac_context *mac, void *buf)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
@@ -63,10 +63,6 @@ static void lim_delete_sta_util(struct mac_context *mac_ctx, tpDeleteStaContext
|
|||||||
|
|
||||||
pe_debug("Deleting station: reasonCode: %d", msg->reasonCode);
|
pe_debug("Deleting station: reasonCode: %d", msg->reasonCode);
|
||||||
|
|
||||||
if (LIM_IS_IBSS_ROLE(session_entry)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
stads = dph_lookup_hash_entry(mac_ctx, msg->addr2, &msg->assocId,
|
stads = dph_lookup_hash_entry(mac_ctx, msg->addr2, &msg->assocId,
|
||||||
&session_entry->dph.dphHashTable);
|
&session_entry->dph.dphHashTable);
|
||||||
|
|
||||||
|
@@ -944,8 +944,7 @@ static void lim_process_auth_frame_type3(struct mac_context *mac_ctx,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(pe_session) ||
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
LIM_IS_IBSS_ROLE(pe_session)) {
|
|
||||||
/*
|
/*
|
||||||
* Check if wep bit was set in FC. If not set,
|
* Check if wep bit was set in FC. If not set,
|
||||||
* reject with Authentication frame4 with
|
* reject with Authentication frame4 with
|
||||||
|
@@ -172,8 +172,7 @@ void lim_apply_configuration(struct mac_context *mac, struct pe_session *pe_sess
|
|||||||
lim_set_cfg_protection(mac, pe_session);
|
lim_set_cfg_protection(mac, pe_session);
|
||||||
|
|
||||||
/* Added for BT - AMP Support */
|
/* Added for BT - AMP Support */
|
||||||
if (LIM_IS_AP_ROLE(pe_session) ||
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
LIM_IS_IBSS_ROLE(pe_session)) {
|
|
||||||
/* This check is required to ensure the beacon generation is not done
|
/* This check is required to ensure the beacon generation is not done
|
||||||
as a part of join request for a BT-AMP station */
|
as a part of join request for a BT-AMP station */
|
||||||
|
|
||||||
@@ -209,8 +208,7 @@ static void lim_update_config(struct mac_context *mac, struct pe_session *pe_ses
|
|||||||
mac->mlme_cfg->ht_caps.short_preamble;
|
mac->mlme_cfg->ht_caps.short_preamble;
|
||||||
|
|
||||||
/* In STA case this parameter is filled during the join request */
|
/* In STA case this parameter is filled during the join request */
|
||||||
if (LIM_IS_AP_ROLE(pe_session) ||
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
LIM_IS_IBSS_ROLE(pe_session)) {
|
|
||||||
enabled = mac->mlme_cfg->wmm_params.wme_enabled;
|
enabled = mac->mlme_cfg->wmm_params.wme_enabled;
|
||||||
pe_session->limWmeEnabled = enabled;
|
pe_session->limWmeEnabled = enabled;
|
||||||
}
|
}
|
||||||
@@ -222,7 +220,7 @@ static void lim_update_config(struct mac_context *mac, struct pe_session *pe_ses
|
|||||||
pe_session->limWsmEnabled = 0;
|
pe_session->limWsmEnabled = 0;
|
||||||
}
|
}
|
||||||
/* In STA , this parameter is filled during the join request */
|
/* In STA , this parameter is filled during the join request */
|
||||||
if (LIM_IS_AP_ROLE(pe_session) || LIM_IS_IBSS_ROLE(pe_session)) {
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
enabled = mac->mlme_cfg->wmm_params.qos_enabled;
|
enabled = mac->mlme_cfg->wmm_params.qos_enabled;
|
||||||
pe_session->limQosEnabled = enabled;
|
pe_session->limQosEnabled = enabled;
|
||||||
}
|
}
|
||||||
|
@@ -202,8 +202,7 @@ lim_process_deauth_frame(struct mac_context *mac, uint8_t *pRxPacketInfo,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* Received Deauth frame in either IBSS */
|
/* Received Deauth frame un-known role. Log and ignore it */
|
||||||
/* or un-known role. Log and ignore it */
|
|
||||||
pe_err("received Deauth frame with reasonCode %d in role %d from "
|
pe_err("received Deauth frame with reasonCode %d in role %d from "
|
||||||
QDF_MAC_ADDR_STR, reasonCode,
|
QDF_MAC_ADDR_STR, reasonCode,
|
||||||
GET_LIM_SYSTEM_ROLE(pe_session),
|
GET_LIM_SYSTEM_ROLE(pe_session),
|
||||||
@@ -483,9 +482,6 @@ void lim_perform_deauth(struct mac_context *mac_ctx, struct pe_session *pe_sessi
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case eLIM_STA_IN_IBSS_ROLE:
|
|
||||||
break;
|
|
||||||
|
|
||||||
case eLIM_AP_ROLE:
|
case eLIM_AP_ROLE:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@@ -262,8 +262,7 @@ lim_process_disassoc_frame(struct mac_context *mac, uint8_t *pRxPacketInfo,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* Received Disassociation frame in either IBSS */
|
/* Received Disassoc in un-known role. Log and ignore it */
|
||||||
/* or un-known role. Log and ignore it */
|
|
||||||
pe_err("received Disassoc frame with invalid reasonCode: %d in role:"
|
pe_err("received Disassoc frame with invalid reasonCode: %d in role:"
|
||||||
"%d in sme state: %d from " QDF_MAC_ADDR_STR, reasonCode,
|
"%d in sme state: %d from " QDF_MAC_ADDR_STR, reasonCode,
|
||||||
GET_LIM_SYSTEM_ROLE(pe_session), pe_session->limSmeState,
|
GET_LIM_SYSTEM_ROLE(pe_session), pe_session->limSmeState,
|
||||||
|
@@ -39,7 +39,6 @@
|
|||||||
#include "lim_prop_exts_utils.h"
|
#include "lim_prop_exts_utils.h"
|
||||||
|
|
||||||
#include "lim_admit_control.h"
|
#include "lim_admit_control.h"
|
||||||
#include "lim_ibss_peer_mgmt.h"
|
|
||||||
#include "sch_api.h"
|
#include "sch_api.h"
|
||||||
#include "lim_ft_defs.h"
|
#include "lim_ft_defs.h"
|
||||||
#include "lim_session.h"
|
#include "lim_session.h"
|
||||||
@@ -1931,11 +1930,6 @@ static void lim_process_messages(struct mac_context *mac_ctx,
|
|||||||
case WMA_RX_CHN_STATUS_EVENT:
|
case WMA_RX_CHN_STATUS_EVENT:
|
||||||
lim_process_rx_channel_status_event(mac_ctx, msg->bodyptr);
|
lim_process_rx_channel_status_event(mac_ctx, msg->bodyptr);
|
||||||
break;
|
break;
|
||||||
case WMA_IBSS_PEER_INACTIVITY_IND:
|
|
||||||
lim_process_ibss_peer_inactivity(mac_ctx, msg->bodyptr);
|
|
||||||
qdf_mem_free((void *)(msg->bodyptr));
|
|
||||||
msg->bodyptr = NULL;
|
|
||||||
break;
|
|
||||||
case WMA_DFS_BEACON_TX_SUCCESS_IND:
|
case WMA_DFS_BEACON_TX_SUCCESS_IND:
|
||||||
lim_process_beacon_tx_success_ind(mac_ctx, msg->type,
|
lim_process_beacon_tx_success_ind(mac_ctx, msg->type,
|
||||||
(void *)msg->bodyptr);
|
(void *)msg->bodyptr);
|
||||||
|
@@ -490,8 +490,7 @@ static bool lim_is_auth_req_expected(struct mac_context *mac_ctx,
|
|||||||
/*
|
/*
|
||||||
* Expect Auth request only when:
|
* Expect Auth request only when:
|
||||||
* 1. STA joined/associated with a BSS or
|
* 1. STA joined/associated with a BSS or
|
||||||
* 2. STA is in IBSS mode
|
* 2. STA is going to authenticate with a unicast
|
||||||
* and STA is going to authenticate with a unicast
|
|
||||||
* address and requested authentication algorithm is
|
* address and requested authentication algorithm is
|
||||||
* supported.
|
* supported.
|
||||||
*/
|
*/
|
||||||
@@ -499,10 +498,7 @@ static bool lim_is_auth_req_expected(struct mac_context *mac_ctx,
|
|||||||
flag = (((LIM_IS_STA_ROLE(session) &&
|
flag = (((LIM_IS_STA_ROLE(session) &&
|
||||||
((session->limMlmState == eLIM_MLM_JOINED_STATE) ||
|
((session->limMlmState == eLIM_MLM_JOINED_STATE) ||
|
||||||
(session->limMlmState ==
|
(session->limMlmState ==
|
||||||
eLIM_MLM_LINK_ESTABLISHED_STATE))) ||
|
eLIM_MLM_LINK_ESTABLISHED_STATE)))) &&
|
||||||
(LIM_IS_IBSS_ROLE(session) &&
|
|
||||||
(session->limMlmState ==
|
|
||||||
eLIM_MLM_BSS_STARTED_STATE))) &&
|
|
||||||
(!IEEE80211_IS_MULTICAST(
|
(!IEEE80211_IS_MULTICAST(
|
||||||
mac_ctx->lim.gpLimMlmAuthReq->peerMacAddr)) &&
|
mac_ctx->lim.gpLimMlmAuthReq->peerMacAddr)) &&
|
||||||
lim_is_auth_algo_supported(mac_ctx,
|
lim_is_auth_algo_supported(mac_ctx,
|
||||||
@@ -976,8 +972,6 @@ lim_process_mlm_disassoc_req_ntf(struct mac_context *mac_ctx,
|
|||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case eLIM_STA_IN_IBSS_ROLE:
|
|
||||||
break;
|
|
||||||
case eLIM_AP_ROLE:
|
case eLIM_AP_ROLE:
|
||||||
case eLIM_P2P_DEVICE_GO:
|
case eLIM_P2P_DEVICE_GO:
|
||||||
if (true ==
|
if (true ==
|
||||||
@@ -1347,10 +1341,6 @@ lim_process_mlm_deauth_req_ntf(struct mac_context *mac_ctx,
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case eLIM_STA_IN_IBSS_ROLE:
|
|
||||||
pe_err("received MLM_DEAUTH_REQ IBSS Mode");
|
|
||||||
mlm_deauth_cnf.resultCode = eSIR_SME_INVALID_PARAMETERS;
|
|
||||||
goto end;
|
|
||||||
case eLIM_AP_ROLE:
|
case eLIM_AP_ROLE:
|
||||||
case eLIM_P2P_DEVICE_GO:
|
case eLIM_P2P_DEVICE_GO:
|
||||||
if (true ==
|
if (true ==
|
||||||
@@ -1805,7 +1795,7 @@ lim_process_auth_rsp_timeout(struct mac_context *mac_ctx, uint32_t auth_idx)
|
|||||||
session, 0, AUTH_RESPONSE_TIMEOUT);
|
session, 0, AUTH_RESPONSE_TIMEOUT);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(session) || LIM_IS_IBSS_ROLE(session)) {
|
if (LIM_IS_AP_ROLE(session)) {
|
||||||
if (auth_node->mlmState != eLIM_MLM_WT_AUTH_FRAME3_STATE) {
|
if (auth_node->mlmState != eLIM_MLM_WT_AUTH_FRAME3_STATE) {
|
||||||
pe_err("received AUTH rsp timeout in unexpected "
|
pe_err("received AUTH rsp timeout in unexpected "
|
||||||
"state for MAC address: " QDF_MAC_ADDR_STR,
|
"state for MAC address: " QDF_MAC_ADDR_STR,
|
||||||
|
@@ -29,7 +29,6 @@
|
|||||||
#include "lim_send_messages.h"
|
#include "lim_send_messages.h"
|
||||||
#include "lim_admit_control.h"
|
#include "lim_admit_control.h"
|
||||||
#include "lim_send_messages.h"
|
#include "lim_send_messages.h"
|
||||||
#include "lim_ibss_peer_mgmt.h"
|
|
||||||
#include "lim_ft.h"
|
#include "lim_ft.h"
|
||||||
#include "lim_ft_defs.h"
|
#include "lim_ft_defs.h"
|
||||||
#include "lim_session.h"
|
#include "lim_session.h"
|
||||||
@@ -224,9 +223,8 @@ void lim_process_mlm_start_cnf(struct mac_context *mac, uint32_t *msg_buf)
|
|||||||
pe_session->ch_center_freq_seg1,
|
pe_session->ch_center_freq_seg1,
|
||||||
BIT(band));
|
BIT(band));
|
||||||
|
|
||||||
if (!(LIM_IS_IBSS_ROLE(pe_session) ||
|
if (!LIM_IS_AP_ROLE(pe_session))
|
||||||
(LIM_IS_AP_ROLE(pe_session))))
|
return;
|
||||||
return;
|
|
||||||
if (pe_session->ch_width == CH_WIDTH_160MHZ) {
|
if (pe_session->ch_width == CH_WIDTH_160MHZ) {
|
||||||
send_bcon_ind = false;
|
send_bcon_ind = false;
|
||||||
} else if (pe_session->ch_width == CH_WIDTH_80P80MHZ) {
|
} else if (pe_session->ch_width == CH_WIDTH_80P80MHZ) {
|
||||||
@@ -844,8 +842,6 @@ void lim_process_mlm_disassoc_ind(struct mac_context *mac, uint32_t *msg_buf)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
switch (GET_LIM_SYSTEM_ROLE(pe_session)) {
|
switch (GET_LIM_SYSTEM_ROLE(pe_session)) {
|
||||||
case eLIM_STA_IN_IBSS_ROLE:
|
|
||||||
break;
|
|
||||||
case eLIM_STA_ROLE:
|
case eLIM_STA_ROLE:
|
||||||
pe_session->limSmeState = eLIM_SME_WT_DISASSOC_STATE;
|
pe_session->limSmeState = eLIM_SME_WT_DISASSOC_STATE;
|
||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
@@ -1093,8 +1089,6 @@ void lim_process_mlm_purge_sta_ind(struct mac_context *mac, uint32_t *msg_buf)
|
|||||||
/* Purge STA indication from MLM */
|
/* Purge STA indication from MLM */
|
||||||
resultCode = (tSirResultCodes) pMlmPurgeStaInd->reasonCode;
|
resultCode = (tSirResultCodes) pMlmPurgeStaInd->reasonCode;
|
||||||
switch (GET_LIM_SYSTEM_ROLE(pe_session)) {
|
switch (GET_LIM_SYSTEM_ROLE(pe_session)) {
|
||||||
case eLIM_STA_IN_IBSS_ROLE:
|
|
||||||
break;
|
|
||||||
case eLIM_STA_ROLE:
|
case eLIM_STA_ROLE:
|
||||||
default: /* eLIM_AP_ROLE */
|
default: /* eLIM_AP_ROLE */
|
||||||
if (LIM_IS_STA_ROLE(pe_session) &&
|
if (LIM_IS_STA_ROLE(pe_session) &&
|
||||||
@@ -1730,11 +1724,6 @@ void lim_process_mlm_del_sta_rsp(struct mac_context *mac_ctx,
|
|||||||
session_entry);
|
session_entry);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (LIM_IS_IBSS_ROLE(session_entry)) {
|
|
||||||
lim_process_ibss_del_sta_rsp(mac_ctx, msg,
|
|
||||||
session_entry);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (LIM_IS_NDI_ROLE(session_entry)) {
|
if (LIM_IS_NDI_ROLE(session_entry)) {
|
||||||
lim_process_ndi_del_sta_rsp(mac_ctx, msg, session_entry);
|
lim_process_ndi_del_sta_rsp(mac_ctx, msg, session_entry);
|
||||||
return;
|
return;
|
||||||
@@ -1985,22 +1974,8 @@ static void lim_process_ap_mlm_add_bss_rsp(struct mac_context *mac,
|
|||||||
MTRACE(mac_trace
|
MTRACE(mac_trace
|
||||||
(mac, TRACE_CODE_MLM_STATE, pe_session->peSessionId,
|
(mac, TRACE_CODE_MLM_STATE, pe_session->peSessionId,
|
||||||
pe_session->limMlmState));
|
pe_session->limMlmState));
|
||||||
if (eSIR_IBSS_MODE == pe_session->bssType) {
|
pe_session->limSystemRole = eLIM_AP_ROLE;
|
||||||
/** IBSS is 'active' when we receive
|
|
||||||
* Beacon frames from other STAs that are part of same IBSS.
|
|
||||||
* Mark internal state as inactive until then.
|
|
||||||
*/
|
|
||||||
pe_session->limIbssActive = false;
|
|
||||||
pe_session->statypeForBss = STA_ENTRY_PEER; /* to know session created for self/peer */
|
|
||||||
limResetHBPktCount(pe_session);
|
|
||||||
}
|
|
||||||
|
|
||||||
pe_session->limSystemRole = eLIM_STA_IN_IBSS_ROLE;
|
|
||||||
|
|
||||||
if (eSIR_INFRA_AP_MODE == pe_session->bssType)
|
|
||||||
pe_session->limSystemRole = eLIM_AP_ROLE;
|
|
||||||
else
|
|
||||||
pe_session->limSystemRole = eLIM_STA_IN_IBSS_ROLE;
|
|
||||||
sch_edca_profile_update(mac, pe_session);
|
sch_edca_profile_update(mac, pe_session);
|
||||||
lim_init_pre_auth_list(mac);
|
lim_init_pre_auth_list(mac);
|
||||||
/* Check the SAP security configuration.If configured to
|
/* Check the SAP security configuration.If configured to
|
||||||
@@ -2050,76 +2025,6 @@ static void lim_process_ap_mlm_add_bss_rsp(struct mac_context *mac,
|
|||||||
lim_send_start_bss_confirm(mac, &mlmStartCnf);
|
lim_send_start_bss_confirm(mac, &mlmStartCnf);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QCA_IBSS_SUPPORT
|
|
||||||
/*
|
|
||||||
* lim_process_ibss_mlm_add_bss_rsp: API to process add bss response
|
|
||||||
* in IBSS role
|
|
||||||
* @session_entry: pe session entry
|
|
||||||
* @auth_mode: auth mode needs to be updated
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
lim_process_ibss_mlm_add_bss_rsp(struct mac_context *mac,
|
|
||||||
struct add_bss_rsp *add_bss_rsp,
|
|
||||||
struct pe_session *pe_session)
|
|
||||||
{
|
|
||||||
tLimMlmStartCnf mlmStartCnf;
|
|
||||||
|
|
||||||
if (!add_bss_rsp) {
|
|
||||||
pe_err("add_bss_rsp is NULL");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (QDF_IS_STATUS_SUCCESS(add_bss_rsp->status)) {
|
|
||||||
pe_debug("WMA_ADD_BSS_RSP returned with QDF_STATUS_SUCCESS");
|
|
||||||
|
|
||||||
/* Set MLME state */
|
|
||||||
pe_session->limMlmState = eLIM_MLM_BSS_STARTED_STATE;
|
|
||||||
MTRACE(mac_trace
|
|
||||||
(mac, TRACE_CODE_MLM_STATE, pe_session->peSessionId,
|
|
||||||
pe_session->limMlmState));
|
|
||||||
/** IBSS is 'active' when we receive
|
|
||||||
* Beacon frames from other STAs that are part of same IBSS.
|
|
||||||
* Mark internal state as inactive until then.
|
|
||||||
*/
|
|
||||||
pe_session->limIbssActive = false;
|
|
||||||
limResetHBPktCount(pe_session);
|
|
||||||
pe_session->limSystemRole = eLIM_STA_IN_IBSS_ROLE;
|
|
||||||
pe_session->statypeForBss = STA_ENTRY_SELF;
|
|
||||||
sch_edca_profile_update(mac, pe_session);
|
|
||||||
if (0 == pe_session->freePeerIdxHead)
|
|
||||||
lim_init_peer_idxpool(mac, pe_session);
|
|
||||||
|
|
||||||
/* Apply previously set configuration at HW */
|
|
||||||
lim_apply_configuration(mac, pe_session);
|
|
||||||
mlmStartCnf.resultCode = eSIR_SME_SUCCESS;
|
|
||||||
/* If ADD BSS was issued as part of IBSS coalescing, don't send the message to SME, as that is internal to LIM */
|
|
||||||
if (true == mac->lim.gLimIbssCoalescingHappened) {
|
|
||||||
lim_ibss_add_bss_rsp_when_coalescing(mac,
|
|
||||||
pe_session->curr_op_freq,
|
|
||||||
pe_session);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
pe_err("WMA_ADD_BSS_REQ failed with status %d",
|
|
||||||
add_bss_rsp->status);
|
|
||||||
mlmStartCnf.resultCode = eSIR_SME_HAL_SEND_MESSAGE_FAIL;
|
|
||||||
}
|
|
||||||
/* Send this message to SME, when ADD_BSS is initiated by SME */
|
|
||||||
/* If ADD_BSS is done as part of coalescing, this won't happen. */
|
|
||||||
/* Update PE session Id */
|
|
||||||
mlmStartCnf.sessionId = pe_session->peSessionId;
|
|
||||||
lim_send_start_bss_confirm(mac, &mlmStartCnf);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static inline void
|
|
||||||
lim_process_ibss_mlm_add_bss_rsp(struct mac_context *mac,
|
|
||||||
struct add_bss_rsp *add_bss_rsp,
|
|
||||||
struct pe_session *pe_session)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_FILS_SK
|
#ifdef WLAN_FEATURE_FILS_SK
|
||||||
/*
|
/*
|
||||||
* lim_update_fils_auth_mode: API to update Auth mode in case of fils session
|
* lim_update_fils_auth_mode: API to update Auth mode in case of fils session
|
||||||
@@ -2349,10 +2254,7 @@ void lim_handle_add_bss_rsp(struct mac_context *mac_ctx,
|
|||||||
bss_type = session_entry->bssType;
|
bss_type = session_entry->bssType;
|
||||||
/* update PE session Id */
|
/* update PE session Id */
|
||||||
mlm_start_cnf.sessionId = session_entry->peSessionId;
|
mlm_start_cnf.sessionId = session_entry->peSessionId;
|
||||||
if (eSIR_IBSS_MODE == bss_type) {
|
if (eSIR_NDI_MODE == session_entry->bssType) {
|
||||||
lim_process_ibss_mlm_add_bss_rsp(mac_ctx, add_bss_rsp,
|
|
||||||
session_entry);
|
|
||||||
} else if (eSIR_NDI_MODE == session_entry->bssType) {
|
|
||||||
lim_process_ndi_mlm_add_bss_rsp(mac_ctx, add_bss_rsp,
|
lim_process_ndi_mlm_add_bss_rsp(mac_ctx, add_bss_rsp,
|
||||||
session_entry);
|
session_entry);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -255,9 +255,7 @@ lim_process_probe_req_frame(struct mac_context *mac_ctx, uint8_t *rx_pkt_info,
|
|||||||
tAniSSID ssid;
|
tAniSSID ssid;
|
||||||
|
|
||||||
mac_hdr = WMA_GET_RX_MAC_HEADER(rx_pkt_info);
|
mac_hdr = WMA_GET_RX_MAC_HEADER(rx_pkt_info);
|
||||||
if (LIM_IS_AP_ROLE(session) ||
|
if (LIM_IS_AP_ROLE(session)) {
|
||||||
(LIM_IS_IBSS_ROLE(session) &&
|
|
||||||
(WMA_GET_RX_BEACON_SENT(rx_pkt_info)))) {
|
|
||||||
frame_len = WMA_GET_RX_PAYLOAD_LEN(rx_pkt_info);
|
frame_len = WMA_GET_RX_PAYLOAD_LEN(rx_pkt_info);
|
||||||
|
|
||||||
pe_debug("Received Probe Request: %d bytes from",
|
pe_debug("Received Probe Request: %d bytes from",
|
||||||
@@ -490,8 +488,7 @@ lim_process_probe_req_frame_multiple_bss(struct mac_context *mac_ctx,
|
|||||||
if (LIM_IS_AP_ROLE(session))
|
if (LIM_IS_AP_ROLE(session))
|
||||||
lim_indicate_probe_req_to_hdd(mac_ctx,
|
lim_indicate_probe_req_to_hdd(mac_ctx,
|
||||||
buf_descr, session);
|
buf_descr, session);
|
||||||
if (LIM_IS_AP_ROLE(session) ||
|
if (LIM_IS_AP_ROLE(session))
|
||||||
LIM_IS_IBSS_ROLE(session))
|
|
||||||
lim_process_probe_req_frame(mac_ctx,
|
lim_process_probe_req_frame(mac_ctx,
|
||||||
buf_descr, session);
|
buf_descr, session);
|
||||||
}
|
}
|
||||||
|
@@ -262,12 +262,6 @@ lim_process_probe_rsp_frame(struct mac_context *mac_ctx, uint8_t *rx_Packet_info
|
|||||||
lim_detect_change_in_ap_capabilities(
|
lim_detect_change_in_ap_capabilities(
|
||||||
mac_ctx, probe_rsp, session_entry);
|
mac_ctx, probe_rsp, session_entry);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
if (LIM_IS_IBSS_ROLE(session_entry) &&
|
|
||||||
(session_entry->limMlmState ==
|
|
||||||
eLIM_MLM_BSS_STARTED_STATE))
|
|
||||||
lim_handle_ibss_coalescing(mac_ctx, probe_rsp,
|
|
||||||
rx_Packet_info, session_entry);
|
|
||||||
}
|
}
|
||||||
qdf_mem_free(probe_rsp);
|
qdf_mem_free(probe_rsp);
|
||||||
|
|
||||||
|
@@ -39,7 +39,6 @@
|
|||||||
#include "lim_security_utils.h"
|
#include "lim_security_utils.h"
|
||||||
#include "lim_ser_des_utils.h"
|
#include "lim_ser_des_utils.h"
|
||||||
#include "lim_sme_req_utils.h"
|
#include "lim_sme_req_utils.h"
|
||||||
#include "lim_ibss_peer_mgmt.h"
|
|
||||||
#include "lim_admit_control.h"
|
#include "lim_admit_control.h"
|
||||||
#include "dph_hash_table.h"
|
#include "dph_hash_table.h"
|
||||||
#include "lim_send_messages.h"
|
#include "lim_send_messages.h"
|
||||||
@@ -84,10 +83,6 @@ static void lim_update_add_ie_buffer(struct mac_context *mac,
|
|||||||
uint8_t **pDstData_buff,
|
uint8_t **pDstData_buff,
|
||||||
uint16_t *pDstDataLen,
|
uint16_t *pDstDataLen,
|
||||||
uint8_t *pSrcData_buff, uint16_t srcDataLen);
|
uint8_t *pSrcData_buff, uint16_t srcDataLen);
|
||||||
static bool lim_update_ibss_prop_add_ies(struct mac_context *mac,
|
|
||||||
uint8_t **pDstData_buff,
|
|
||||||
uint16_t *pDstDataLen,
|
|
||||||
tSirModifyIE *pModifyIE);
|
|
||||||
static void lim_process_modify_add_ies(struct mac_context *mac, uint32_t *pMsg);
|
static void lim_process_modify_add_ies(struct mac_context *mac, uint32_t *pMsg);
|
||||||
|
|
||||||
static void lim_process_update_add_ies(struct mac_context *mac, uint32_t *pMsg);
|
static void lim_process_update_add_ies(struct mac_context *mac, uint32_t *pMsg);
|
||||||
@@ -540,8 +535,6 @@ __lim_handle_sme_start_bss_request(struct mac_context *mac_ctx, uint32_t *msg_bu
|
|||||||
tLimMlmStartReq *mlm_start_req = NULL;
|
tLimMlmStartReq *mlm_start_req = NULL;
|
||||||
struct start_bss_req *sme_start_bss_req = NULL;
|
struct start_bss_req *sme_start_bss_req = NULL;
|
||||||
tSirResultCodes ret_code = eSIR_SME_SUCCESS;
|
tSirResultCodes ret_code = eSIR_SME_SUCCESS;
|
||||||
/* Flag Used in case of IBSS to Auto generate BSSID. */
|
|
||||||
uint32_t auto_gen_bssid = false;
|
|
||||||
uint8_t session_id;
|
uint8_t session_id;
|
||||||
struct pe_session *session = NULL;
|
struct pe_session *session = NULL;
|
||||||
uint8_t vdev_id = 0xFF;
|
uint8_t vdev_id = 0xFF;
|
||||||
@@ -604,7 +597,6 @@ __lim_handle_sme_start_bss_request(struct mac_context *mac_ctx, uint32_t *msg_bu
|
|||||||
|
|
||||||
/* Update the beacon/probe filter in mac_ctx */
|
/* Update the beacon/probe filter in mac_ctx */
|
||||||
lim_set_bcn_probe_filter(mac_ctx, session,
|
lim_set_bcn_probe_filter(mac_ctx, session,
|
||||||
&sme_start_bss_req->ssId,
|
|
||||||
channel_number);
|
channel_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -713,20 +705,6 @@ __lim_handle_sme_start_bss_request(struct mac_context *mac_ctx, uint32_t *msg_bu
|
|||||||
else
|
else
|
||||||
session->vdev_nss = vdev_type_nss->p2p_go;
|
session->vdev_nss = vdev_type_nss->p2p_go;
|
||||||
break;
|
break;
|
||||||
case eSIR_IBSS_MODE:
|
|
||||||
session->limSystemRole = eLIM_STA_IN_IBSS_ROLE;
|
|
||||||
lim_get_short_slot_from_phy_mode(mac_ctx, session,
|
|
||||||
session->gLimPhyMode,
|
|
||||||
&session->shortSlotTimeSupported);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* initialize to "OPEN".
|
|
||||||
* will be updated upon key installation
|
|
||||||
*/
|
|
||||||
session->encryptType = eSIR_ED_NONE;
|
|
||||||
session->vdev_nss = vdev_type_nss->ibss;
|
|
||||||
|
|
||||||
break;
|
|
||||||
case eSIR_NDI_MODE:
|
case eSIR_NDI_MODE:
|
||||||
session->limSystemRole = eLIM_NDI_ROLE;
|
session->limSystemRole = eLIM_NDI_ROLE;
|
||||||
break;
|
break;
|
||||||
@@ -800,9 +778,7 @@ __lim_handle_sme_start_bss_request(struct mac_context *mac_ctx, uint32_t *msg_bu
|
|||||||
lim_set_rs_nie_wp_aiefrom_sme_start_bss_req_message(mac_ctx,
|
lim_set_rs_nie_wp_aiefrom_sme_start_bss_req_message(mac_ctx,
|
||||||
&sme_start_bss_req->rsnIE, session);
|
&sme_start_bss_req->rsnIE, session);
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(session) ||
|
if (LIM_IS_AP_ROLE(session) || LIM_IS_NDI_ROLE(session)) {
|
||||||
LIM_IS_IBSS_ROLE(session) ||
|
|
||||||
LIM_IS_NDI_ROLE(session)) {
|
|
||||||
session->gLimProtectionControl =
|
session->gLimProtectionControl =
|
||||||
sme_start_bss_req->protEnabled;
|
sme_start_bss_req->protEnabled;
|
||||||
/*
|
/*
|
||||||
@@ -836,51 +812,7 @@ __lim_handle_sme_start_bss_request(struct mac_context *mac_ctx, uint32_t *msg_bu
|
|||||||
/* Fill PE session Id from the session Table */
|
/* Fill PE session Id from the session Table */
|
||||||
mlm_start_req->sessionId = session->peSessionId;
|
mlm_start_req->sessionId = session->peSessionId;
|
||||||
|
|
||||||
if (mlm_start_req->bssType == eSIR_INFRA_AP_MODE ||
|
sir_copy_mac_addr(mlm_start_req->bssId, session->bssId);
|
||||||
mlm_start_req->bssType == eSIR_NDI_MODE) {
|
|
||||||
/*
|
|
||||||
* Copy the BSSId from sessionTable to
|
|
||||||
* mlmStartReq struct
|
|
||||||
*/
|
|
||||||
sir_copy_mac_addr(mlm_start_req->bssId, session->bssId);
|
|
||||||
} else {
|
|
||||||
/* ibss mode */
|
|
||||||
mac_ctx->lim.gLimIbssCoalescingHappened = false;
|
|
||||||
auto_gen_bssid = mac_ctx->mlme_cfg->ibss.auto_bssid;
|
|
||||||
|
|
||||||
if (!auto_gen_bssid) {
|
|
||||||
/*
|
|
||||||
* We're not auto generating BSSID.
|
|
||||||
* Instead, get it from session entry
|
|
||||||
*/
|
|
||||||
sir_copy_mac_addr(mlm_start_req->bssId,
|
|
||||||
session->bssId);
|
|
||||||
/*
|
|
||||||
* Start IBSS group BSSID
|
|
||||||
* Auto Generating BSSID.
|
|
||||||
*/
|
|
||||||
auto_gen_bssid = ((mlm_start_req->bssId[0] &
|
|
||||||
0x01) ? true : false);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (auto_gen_bssid) {
|
|
||||||
/*
|
|
||||||
* if BSSID is not any uc id.
|
|
||||||
* then use locally generated BSSID.
|
|
||||||
* Autogenerate the BSSID
|
|
||||||
*/
|
|
||||||
lim_get_random_bssid(mac_ctx,
|
|
||||||
mlm_start_req->bssId);
|
|
||||||
mlm_start_req->bssId[0] = 0x02;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copy randomly generated BSSID
|
|
||||||
* to the session Table
|
|
||||||
*/
|
|
||||||
sir_copy_mac_addr(session->bssId,
|
|
||||||
mlm_start_req->bssId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* store the channel num in mlmstart req structure */
|
/* store the channel num in mlmstart req structure */
|
||||||
mlm_start_req->oper_ch_freq = session->curr_op_freq;
|
mlm_start_req->oper_ch_freq = session->curr_op_freq;
|
||||||
mlm_start_req->cbMode = sme_start_bss_req->cbMode;
|
mlm_start_req->cbMode = sme_start_bss_req->cbMode;
|
||||||
@@ -931,8 +863,7 @@ __lim_handle_sme_start_bss_request(struct mac_context *mac_ctx, uint32_t *msg_bu
|
|||||||
|
|
||||||
/* Initialize 11h Enable Flag */
|
/* Initialize 11h Enable Flag */
|
||||||
session->lim11hEnable = 0;
|
session->lim11hEnable = 0;
|
||||||
if (mlm_start_req->bssType != eSIR_IBSS_MODE &&
|
if ((CHAN_HOP_ALL_BANDS_ENABLE ||
|
||||||
(CHAN_HOP_ALL_BANDS_ENABLE ||
|
|
||||||
REG_BAND_5G == session->limRFBand)) {
|
REG_BAND_5G == session->limRFBand)) {
|
||||||
session->lim11hEnable =
|
session->lim11hEnable =
|
||||||
mac_ctx->mlme_cfg->gen.enabled_11h;
|
mac_ctx->mlme_cfg->gen.enabled_11h;
|
||||||
@@ -1313,7 +1244,6 @@ __lim_process_sme_join_req(struct mac_context *mac_ctx, void *msg_buf)
|
|||||||
}
|
}
|
||||||
/* Update the beacon/probe filter in mac_ctx */
|
/* Update the beacon/probe filter in mac_ctx */
|
||||||
lim_set_bcn_probe_filter(mac_ctx, session,
|
lim_set_bcn_probe_filter(mac_ctx, session,
|
||||||
&sme_join_req->ssId,
|
|
||||||
bss_chan_id);
|
bss_chan_id);
|
||||||
}
|
}
|
||||||
session->max_amsdu_num = sme_join_req->max_amsdu_num;
|
session->max_amsdu_num = sme_join_req->max_amsdu_num;
|
||||||
@@ -1580,11 +1510,6 @@ __lim_process_sme_join_req(struct mac_context *mac_ctx, void *msg_buf)
|
|||||||
mac_ctx->mlme_cfg->gen.enabled_11h;
|
mac_ctx->mlme_cfg->gen.enabled_11h;
|
||||||
else
|
else
|
||||||
session->lim11hEnable = 0;
|
session->lim11hEnable = 0;
|
||||||
/*
|
|
||||||
* To care of the scenario when STA transitions from
|
|
||||||
* IBSS to Infrastructure mode.
|
|
||||||
*/
|
|
||||||
mac_ctx->lim.gLimIbssCoalescingHappened = false;
|
|
||||||
|
|
||||||
session->limPrevSmeState = session->limSmeState;
|
session->limPrevSmeState = session->limSmeState;
|
||||||
session->limSmeState = eLIM_SME_WT_JOIN_STATE;
|
session->limSmeState = eLIM_SME_WT_JOIN_STATE;
|
||||||
@@ -2133,7 +2058,6 @@ static void __lim_process_sme_disassoc_req(struct mac_context *mac,
|
|||||||
/* Fall through */
|
/* Fall through */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case eLIM_STA_IN_IBSS_ROLE:
|
|
||||||
default:
|
default:
|
||||||
/* eLIM_UNKNOWN_ROLE */
|
/* eLIM_UNKNOWN_ROLE */
|
||||||
pe_err("received unexpected SME_DISASSOC_REQ for role %d",
|
pe_err("received unexpected SME_DISASSOC_REQ for role %d",
|
||||||
@@ -2270,8 +2194,6 @@ void __lim_process_sme_disassoc_cnf(struct mac_context *mac, uint32_t *msg_buf)
|
|||||||
case eLIM_AP_ROLE:
|
case eLIM_AP_ROLE:
|
||||||
/* Fall through */
|
/* Fall through */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case eLIM_STA_IN_IBSS_ROLE:
|
|
||||||
default: /* eLIM_UNKNOWN_ROLE */
|
default: /* eLIM_UNKNOWN_ROLE */
|
||||||
pe_err("received unexpected SME_DISASSOC_CNF role %d",
|
pe_err("received unexpected SME_DISASSOC_CNF role %d",
|
||||||
GET_LIM_SYSTEM_ROLE(pe_session));
|
GET_LIM_SYSTEM_ROLE(pe_session));
|
||||||
@@ -2466,16 +2388,6 @@ static void __lim_process_sme_deauth_req(struct mac_context *mac_ctx,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case eLIM_STA_IN_IBSS_ROLE:
|
|
||||||
pe_err("Deauth not allowed in IBSS");
|
|
||||||
if (mac_ctx->lim.gLimRspReqd) {
|
|
||||||
mac_ctx->lim.gLimRspReqd = false;
|
|
||||||
ret_code = eSIR_SME_INVALID_PARAMETERS;
|
|
||||||
deauth_trigger = eLIM_HOST_DEAUTH;
|
|
||||||
goto send_deauth;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
case eLIM_AP_ROLE:
|
case eLIM_AP_ROLE:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -2579,8 +2491,7 @@ void lim_delete_all_peers(struct pe_session *session)
|
|||||||
tSirMacAddr bc_addr = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
|
tSirMacAddr bc_addr = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
|
||||||
|
|
||||||
/* IBSS and NDI doesn't send Disassoc frame */
|
/* IBSS and NDI doesn't send Disassoc frame */
|
||||||
if (!LIM_IS_IBSS_ROLE(session) &&
|
if (!LIM_IS_NDI_ROLE(session)) {
|
||||||
!LIM_IS_NDI_ROLE(session)) {
|
|
||||||
pe_debug("stop_bss_reason: %d", session->stop_bss_reason);
|
pe_debug("stop_bss_reason: %d", session->stop_bss_reason);
|
||||||
if (session->stop_bss_reason == eSIR_SME_MIC_COUNTER_MEASURES)
|
if (session->stop_bss_reason == eSIR_SME_MIC_COUNTER_MEASURES)
|
||||||
__lim_counter_measures(mac_ctx, session);
|
__lim_counter_measures(mac_ctx, session);
|
||||||
@@ -2752,12 +2663,6 @@ __lim_handle_sme_stop_bss_request(struct mac_context *mac, uint32_t *msg_buf)
|
|||||||
qdf_mem_free(pe_session->add_ie_params.probeRespBCNData_buff);
|
qdf_mem_free(pe_session->add_ie_params.probeRespBCNData_buff);
|
||||||
pe_session->add_ie_params.probeRespBCNDataLen = 0;
|
pe_session->add_ie_params.probeRespBCNDataLen = 0;
|
||||||
pe_session->add_ie_params.probeRespBCNData_buff = NULL;
|
pe_session->add_ie_params.probeRespBCNData_buff = NULL;
|
||||||
|
|
||||||
/*
|
|
||||||
* lim_del_bss is also called as part of coalescing,
|
|
||||||
* when we send DEL BSS followed by Add Bss msg.
|
|
||||||
*/
|
|
||||||
mac->lim.gLimIbssCoalescingHappened = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lim_delete_peers_and_send_vdev_stop(pe_session);
|
lim_delete_peers_and_send_vdev_stop(pe_session);
|
||||||
@@ -2789,7 +2694,6 @@ void lim_process_sme_del_bss_rsp(struct mac_context *mac,
|
|||||||
struct pe_session *pe_session)
|
struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
SET_LIM_PROCESS_DEFD_MESGS(mac, true);
|
SET_LIM_PROCESS_DEFD_MESGS(mac, true);
|
||||||
lim_ibss_delete(mac, pe_session);
|
|
||||||
dph_hash_table_init(mac, &pe_session->dph.dphHashTable);
|
dph_hash_table_init(mac, &pe_session->dph.dphHashTable);
|
||||||
lim_delete_pre_auth_list(mac);
|
lim_delete_pre_auth_list(mac);
|
||||||
lim_send_sme_rsp(mac, eWNI_SME_STOP_BSS_RSP, eSIR_SME_SUCCESS,
|
lim_send_sme_rsp(mac, eWNI_SME_STOP_BSS_RSP, eSIR_SME_SUCCESS,
|
||||||
@@ -5046,85 +4950,6 @@ lim_update_add_ie_buffer(struct mac_context *mac,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QCA_IBSS_SUPPORT
|
|
||||||
/**
|
|
||||||
* lim_update_ibss_prop_add_ies() - update IBSS prop IE
|
|
||||||
* @mac : Pointer to Global MAC structure
|
|
||||||
* @pDstData_buff : A pointer to pointer of dst buffer
|
|
||||||
* @pDstDataLen : A pointer to pointer of dst buffer length
|
|
||||||
* @pModifyIE : A pointer to tSirModifyIE
|
|
||||||
*
|
|
||||||
* This function replaces previous ibss prop_ie with new ibss prop_ie.
|
|
||||||
*
|
|
||||||
* Return:
|
|
||||||
* True or false depending upon whether IE is updated or not
|
|
||||||
*/
|
|
||||||
static bool
|
|
||||||
lim_update_ibss_prop_add_ies(struct mac_context *mac, uint8_t **pDstData_buff,
|
|
||||||
uint16_t *pDstDataLen, tSirModifyIE *pModifyIE)
|
|
||||||
{
|
|
||||||
int32_t oui_length;
|
|
||||||
uint8_t *ibss_ie = NULL;
|
|
||||||
uint8_t *vendor_ie;
|
|
||||||
#define MAC_VENDOR_OUI "\x00\x16\x32"
|
|
||||||
#define MAC_VENDOR_SIZE 3
|
|
||||||
|
|
||||||
ibss_ie = pModifyIE->pIEBuffer;
|
|
||||||
oui_length = pModifyIE->oui_length;
|
|
||||||
|
|
||||||
if ((0 == oui_length) || (!ibss_ie)) {
|
|
||||||
pe_err("Invalid set IBSS vendor IE command length %d",
|
|
||||||
oui_length);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Why replace only beacon OUI data here:
|
|
||||||
* 1. other ie (such as wpa) shall not be overwritten here.
|
|
||||||
* 2. per spec, beacon oui ie might be set twice and original one
|
|
||||||
* shall be updated.
|
|
||||||
*/
|
|
||||||
vendor_ie = (uint8_t *)wlan_get_vendor_ie_ptr_from_oui(MAC_VENDOR_OUI,
|
|
||||||
MAC_VENDOR_SIZE, *pDstData_buff, *pDstDataLen);
|
|
||||||
if (vendor_ie) {
|
|
||||||
QDF_ASSERT((vendor_ie[1] + 2) == pModifyIE->ieBufferlength);
|
|
||||||
qdf_mem_copy(vendor_ie, pModifyIE->pIEBuffer,
|
|
||||||
pModifyIE->ieBufferlength);
|
|
||||||
} else {
|
|
||||||
uint16_t new_length;
|
|
||||||
uint8_t *new_ptr;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* check for uint16 overflow before using sum of two numbers as
|
|
||||||
* length of size to malloc
|
|
||||||
*/
|
|
||||||
if (USHRT_MAX - pModifyIE->ieBufferlength < *pDstDataLen) {
|
|
||||||
pe_err("U16 overflow due to %d + %d",
|
|
||||||
pModifyIE->ieBufferlength, *pDstDataLen);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
new_length = pModifyIE->ieBufferlength + *pDstDataLen;
|
|
||||||
new_ptr = qdf_mem_malloc(new_length);
|
|
||||||
if (!new_ptr)
|
|
||||||
return false;
|
|
||||||
qdf_mem_copy(new_ptr, *pDstData_buff, *pDstDataLen);
|
|
||||||
qdf_mem_copy(&new_ptr[*pDstDataLen], pModifyIE->pIEBuffer,
|
|
||||||
pModifyIE->ieBufferlength);
|
|
||||||
qdf_mem_free(*pDstData_buff);
|
|
||||||
*pDstDataLen = new_length;
|
|
||||||
*pDstData_buff = new_ptr;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static bool
|
|
||||||
lim_update_ibss_prop_add_ies(struct mac_context *mac, uint8_t **pDstData_buff,
|
|
||||||
uint16_t *pDstDataLen, tSirModifyIE *pModifyIE)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
/*
|
/*
|
||||||
* lim_process_modify_add_ies() - process modify additional IE req.
|
* lim_process_modify_add_ies() - process modify additional IE req.
|
||||||
*
|
*
|
||||||
@@ -5175,12 +5000,6 @@ static void lim_process_modify_add_ies(struct mac_context *mac_ctx,
|
|||||||
switch (modify_add_ies->updateType) {
|
switch (modify_add_ies->updateType) {
|
||||||
case eUPDATE_IE_PROBE_RESP:
|
case eUPDATE_IE_PROBE_RESP:
|
||||||
/* Probe resp */
|
/* Probe resp */
|
||||||
if (LIM_IS_IBSS_ROLE(session_entry)) {
|
|
||||||
lim_update_ibss_prop_add_ies(mac_ctx,
|
|
||||||
&add_ie_params->probeRespData_buff,
|
|
||||||
&add_ie_params->probeRespDataLen,
|
|
||||||
&modify_add_ies->modifyIE);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case eUPDATE_IE_ASSOC_RESP:
|
case eUPDATE_IE_ASSOC_RESP:
|
||||||
/* assoc resp IE */
|
/* assoc resp IE */
|
||||||
@@ -5194,12 +5013,6 @@ static void lim_process_modify_add_ies(struct mac_context *mac_ctx,
|
|||||||
break;
|
break;
|
||||||
case eUPDATE_IE_PROBE_BCN:
|
case eUPDATE_IE_PROBE_BCN:
|
||||||
/*probe beacon IE */
|
/*probe beacon IE */
|
||||||
if (LIM_IS_IBSS_ROLE(session_entry)) {
|
|
||||||
ret = lim_update_ibss_prop_add_ies(mac_ctx,
|
|
||||||
&add_ie_params->probeRespBCNData_buff,
|
|
||||||
&add_ie_params->probeRespBCNDataLen,
|
|
||||||
&modify_add_ies->modifyIE);
|
|
||||||
}
|
|
||||||
if (ret == true && modify_add_ies->modifyIE.notify) {
|
if (ret == true && modify_add_ies->modifyIE.notify) {
|
||||||
lim_handle_param_update(mac_ctx,
|
lim_handle_param_update(mac_ctx,
|
||||||
modify_add_ies->updateType);
|
modify_add_ies->updateType);
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -37,7 +37,6 @@
|
|||||||
#include "lim_ser_des_utils.h"
|
#include "lim_ser_des_utils.h"
|
||||||
#include "lim_admit_control.h"
|
#include "lim_admit_control.h"
|
||||||
#include "lim_send_messages.h"
|
#include "lim_send_messages.h"
|
||||||
#include "lim_ibss_peer_mgmt.h"
|
|
||||||
#include "lim_ft_defs.h"
|
#include "lim_ft_defs.h"
|
||||||
#include "lim_session.h"
|
#include "lim_session.h"
|
||||||
#include "lim_process_fils.h"
|
#include "lim_process_fils.h"
|
||||||
|
@@ -646,7 +646,6 @@ lim_send_probe_rsp_mgmt_frame(struct mac_context *mac_ctx,
|
|||||||
mac_ctx, &frm->DSParams,
|
mac_ctx, &frm->DSParams,
|
||||||
wlan_reg_freq_to_chan(mac_ctx->pdev,
|
wlan_reg_freq_to_chan(mac_ctx->pdev,
|
||||||
pe_session->curr_op_freq));
|
pe_session->curr_op_freq));
|
||||||
populate_dot11f_ibss_params(mac_ctx, &frm->IBSSParams, pe_session);
|
|
||||||
|
|
||||||
if (LIM_IS_AP_ROLE(pe_session)) {
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
if (pe_session->wps_state != SAP_WPS_DISABLED)
|
if (pe_session->wps_state != SAP_WPS_DISABLED)
|
||||||
|
@@ -41,7 +41,6 @@
|
|||||||
#include "lim_security_utils.h"
|
#include "lim_security_utils.h"
|
||||||
#include "lim_ser_des_utils.h"
|
#include "lim_ser_des_utils.h"
|
||||||
#include "lim_send_sme_rsp_messages.h"
|
#include "lim_send_sme_rsp_messages.h"
|
||||||
#include "lim_ibss_peer_mgmt.h"
|
|
||||||
#include "lim_session_utils.h"
|
#include "lim_session_utils.h"
|
||||||
#include "lim_types.h"
|
#include "lim_types.h"
|
||||||
#include "sir_api.h"
|
#include "sir_api.h"
|
||||||
@@ -1168,9 +1167,6 @@ lim_send_sme_wm_status_change_ntf(struct mac_context *mac_ctx,
|
|||||||
case eSIR_SME_AP_CAPS_CHANGED:
|
case eSIR_SME_AP_CAPS_CHANGED:
|
||||||
max_info_len = sizeof(struct ap_new_caps);
|
max_info_len = sizeof(struct ap_new_caps);
|
||||||
break;
|
break;
|
||||||
case eSIR_SME_JOINED_NEW_BSS:
|
|
||||||
max_info_len = sizeof(struct new_bss_info);
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
max_info_len = sizeof(wm_status_change_ntf->statusChangeInfo);
|
max_info_len = sizeof(wm_status_change_ntf->statusChangeInfo);
|
||||||
break;
|
break;
|
||||||
@@ -1414,40 +1410,6 @@ void lim_send_sme_pe_ese_tsm_rsp(struct mac_context *mac,
|
|||||||
|
|
||||||
#endif /* FEATURE_WLAN_ESE */
|
#endif /* FEATURE_WLAN_ESE */
|
||||||
|
|
||||||
#ifdef QCA_IBSS_SUPPORT
|
|
||||||
void
|
|
||||||
lim_send_sme_ibss_peer_ind(struct mac_context *mac,
|
|
||||||
tSirMacAddr peerMacAddr,
|
|
||||||
uint8_t *beacon,
|
|
||||||
uint16_t beaconLen, uint16_t msgType, uint8_t sessionId)
|
|
||||||
{
|
|
||||||
struct scheduler_msg mmhMsg = {0};
|
|
||||||
tSmeIbssPeerInd *pNewPeerInd;
|
|
||||||
|
|
||||||
pNewPeerInd = qdf_mem_malloc(sizeof(tSmeIbssPeerInd) + beaconLen);
|
|
||||||
if (!pNewPeerInd)
|
|
||||||
return;
|
|
||||||
|
|
||||||
qdf_mem_copy((uint8_t *) pNewPeerInd->peer_addr.bytes,
|
|
||||||
peerMacAddr, QDF_MAC_ADDR_SIZE);
|
|
||||||
pNewPeerInd->mesgLen = sizeof(tSmeIbssPeerInd) + beaconLen;
|
|
||||||
pNewPeerInd->mesgType = msgType;
|
|
||||||
pNewPeerInd->sessionId = sessionId;
|
|
||||||
|
|
||||||
if (beacon) {
|
|
||||||
qdf_mem_copy((void *)((uint8_t *) pNewPeerInd +
|
|
||||||
sizeof(tSmeIbssPeerInd)), (void *)beacon,
|
|
||||||
beaconLen);
|
|
||||||
}
|
|
||||||
|
|
||||||
mmhMsg.type = msgType;
|
|
||||||
mmhMsg.bodyptr = pNewPeerInd;
|
|
||||||
MTRACE(mac_trace(mac, TRACE_CODE_TX_SME_MSG, sessionId, mmhMsg.type));
|
|
||||||
lim_sys_process_mmh_msg_api(mac, &mmhMsg);
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* lim_process_csa_wbw_ie() - Process CSA Wide BW IE
|
* lim_process_csa_wbw_ie() - Process CSA Wide BW IE
|
||||||
* @mac_ctx: pointer to global adapter context
|
* @mac_ctx: pointer to global adapter context
|
||||||
@@ -1890,9 +1852,7 @@ void lim_handle_delete_bss_rsp(struct mac_context *mac,
|
|||||||
* not take the HO_FAIL path
|
* not take the HO_FAIL path
|
||||||
*/
|
*/
|
||||||
pe_session->process_ho_fail = false;
|
pe_session->process_ho_fail = false;
|
||||||
if (LIM_IS_IBSS_ROLE(pe_session))
|
if (LIM_IS_UNKNOWN_ROLE(pe_session))
|
||||||
lim_ibss_del_bss_rsp(mac, del_bss_rsp, pe_session);
|
|
||||||
else if (LIM_IS_UNKNOWN_ROLE(pe_session))
|
|
||||||
lim_process_sme_del_bss_rsp(mac, pe_session);
|
lim_process_sme_del_bss_rsp(mac, pe_session);
|
||||||
else if (LIM_IS_NDI_ROLE(pe_session))
|
else if (LIM_IS_NDI_ROLE(pe_session))
|
||||||
lim_ndi_del_bss_rsp(mac, del_bss_rsp, pe_session);
|
lim_ndi_del_bss_rsp(mac, del_bss_rsp, pe_session);
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -226,36 +226,6 @@ void lim_send_sme_delts_ind(struct mac_context *mac,
|
|||||||
void lim_send_sme_pe_ese_tsm_rsp(struct mac_context *mac, tAniGetTsmStatsRsp *pStats);
|
void lim_send_sme_pe_ese_tsm_rsp(struct mac_context *mac, tAniGetTsmStatsRsp *pStats);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef QCA_IBSS_SUPPORT
|
|
||||||
/*
|
|
||||||
* lim_send_sme_ibss_peer_ind() - API to send ibss peer ind to sme
|
|
||||||
* @mac_ctx: Global mac_ctx
|
|
||||||
* @peerMacAddr: peer mac address
|
|
||||||
* @staIndex: sta index
|
|
||||||
* @beacon: pionter to beacon
|
|
||||||
* @beaconLen: length of beacon buffer
|
|
||||||
* @msg_type: msg_type
|
|
||||||
* @sessionId: session id
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* Return: none
|
|
||||||
*/
|
|
||||||
void lim_send_sme_ibss_peer_ind(struct mac_context *mac, tSirMacAddr peerMacAddr,
|
|
||||||
uint8_t *beacon,
|
|
||||||
uint16_t beaconLen, uint16_t msgType,
|
|
||||||
uint8_t sessionId);
|
|
||||||
#else
|
|
||||||
static inline void
|
|
||||||
lim_send_sme_ibss_peer_ind(struct mac_context *mac,
|
|
||||||
tSirMacAddr peerMacAddr,
|
|
||||||
uint16_t staIndex,
|
|
||||||
uint8_t *beacon,
|
|
||||||
uint16_t beaconLen, uint16_t msgType,
|
|
||||||
uint8_t sessionId)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void lim_send_sme_max_assoc_exceeded_ntf(struct mac_context *mac, tSirMacAddr peerMacAddr,
|
void lim_send_sme_max_assoc_exceeded_ntf(struct mac_context *mac, tSirMacAddr peerMacAddr,
|
||||||
uint8_t smesessionId);
|
uint8_t smesessionId);
|
||||||
|
|
||||||
|
@@ -384,7 +384,6 @@ lim_get_peer_idxpool_size(uint16_t num_sta, enum bss_type bss_type)
|
|||||||
|
|
||||||
void lim_set_bcn_probe_filter(struct mac_context *mac_ctx,
|
void lim_set_bcn_probe_filter(struct mac_context *mac_ctx,
|
||||||
struct pe_session *session,
|
struct pe_session *session,
|
||||||
tSirMacSSid *ibss_ssid,
|
|
||||||
uint8_t sap_channel)
|
uint8_t sap_channel)
|
||||||
{
|
{
|
||||||
struct mgmt_beacon_probe_filter *filter;
|
struct mgmt_beacon_probe_filter *filter;
|
||||||
@@ -414,18 +413,6 @@ void lim_set_bcn_probe_filter(struct mac_context *mac_ctx,
|
|||||||
sir_copy_mac_addr(filter->sta_bssid[session_id], *bssid);
|
sir_copy_mac_addr(filter->sta_bssid[session_id], *bssid);
|
||||||
pe_debug("Set filter for STA Session %d bssid "QDF_MAC_ADDR_STR,
|
pe_debug("Set filter for STA Session %d bssid "QDF_MAC_ADDR_STR,
|
||||||
session_id, QDF_MAC_ADDR_ARRAY(*bssid));
|
session_id, QDF_MAC_ADDR_ARRAY(*bssid));
|
||||||
} else if (eSIR_IBSS_MODE == bss_type) {
|
|
||||||
if (!ibss_ssid) {
|
|
||||||
pe_err("IBSS Type with NULL SSID");
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
filter->num_ibss_sessions++;
|
|
||||||
filter->ibss_ssid[session_id].length = ibss_ssid->length;
|
|
||||||
qdf_mem_copy(&filter->ibss_ssid[session_id].ssId,
|
|
||||||
ibss_ssid->ssId,
|
|
||||||
ibss_ssid->length);
|
|
||||||
pe_debug("Set filter for IBSS session %d ssid %s",
|
|
||||||
session_id, ibss_ssid->ssId);
|
|
||||||
} else if (eSIR_INFRA_AP_MODE == bss_type) {
|
} else if (eSIR_INFRA_AP_MODE == bss_type) {
|
||||||
if (!sap_channel) {
|
if (!sap_channel) {
|
||||||
pe_err("SAP Type with invalid channel");
|
pe_err("SAP Type with invalid channel");
|
||||||
@@ -438,9 +425,8 @@ void lim_set_bcn_probe_filter(struct mac_context *mac_ctx,
|
|||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
pe_debug("sta %d ibss %d sap %d",
|
pe_debug("sta %d sap %d", filter->num_sta_sessions,
|
||||||
filter->num_sta_sessions, filter->num_ibss_sessions,
|
filter->num_sap_sessions);
|
||||||
filter->num_sap_sessions);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void lim_reset_bcn_probe_filter(struct mac_context *mac_ctx,
|
void lim_reset_bcn_probe_filter(struct mac_context *mac_ctx,
|
||||||
@@ -472,13 +458,6 @@ void lim_reset_bcn_probe_filter(struct mac_context *mac_ctx,
|
|||||||
qdf_mem_zero(&filter->sta_bssid[session_id],
|
qdf_mem_zero(&filter->sta_bssid[session_id],
|
||||||
sizeof(tSirMacAddr));
|
sizeof(tSirMacAddr));
|
||||||
pe_debug("Cleared STA Filter for session %d", session_id);
|
pe_debug("Cleared STA Filter for session %d", session_id);
|
||||||
} else if (eSIR_IBSS_MODE == bss_type) {
|
|
||||||
if (filter->num_ibss_sessions)
|
|
||||||
filter->num_ibss_sessions--;
|
|
||||||
filter->ibss_ssid[session_id].length = 0;
|
|
||||||
qdf_mem_zero(&filter->ibss_ssid[session_id].ssId,
|
|
||||||
WLAN_SSID_MAX_LEN);
|
|
||||||
pe_debug("Cleared IBSS Filter for session %d", session_id);
|
|
||||||
} else if (eSIR_INFRA_AP_MODE == bss_type) {
|
} else if (eSIR_INFRA_AP_MODE == bss_type) {
|
||||||
if (filter->num_sap_sessions)
|
if (filter->num_sap_sessions)
|
||||||
filter->num_sap_sessions--;
|
filter->num_sap_sessions--;
|
||||||
@@ -486,9 +465,8 @@ void lim_reset_bcn_probe_filter(struct mac_context *mac_ctx,
|
|||||||
pe_debug("Cleared SAP Filter for session %d", session_id);
|
pe_debug("Cleared SAP Filter for session %d", session_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
pe_debug("sta %d ibss %d sap %d",
|
pe_debug("sta %d sap %d", filter->num_sta_sessions,
|
||||||
filter->num_sta_sessions, filter->num_ibss_sessions,
|
filter->num_sap_sessions);
|
||||||
filter->num_sap_sessions);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void lim_update_bcn_probe_filter(struct mac_context *mac_ctx,
|
void lim_update_bcn_probe_filter(struct mac_context *mac_ctx,
|
||||||
@@ -524,9 +502,8 @@ void lim_update_bcn_probe_filter(struct mac_context *mac_ctx,
|
|||||||
bss_type, session_id);
|
bss_type, session_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
pe_debug("sta %d ibss %d sap %d",
|
pe_debug("sta %d sap %d", filter->num_sta_sessions,
|
||||||
filter->num_sta_sessions, filter->num_ibss_sessions,
|
filter->num_sap_sessions);
|
||||||
filter->num_sap_sessions);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct pe_session *pe_create_session(struct mac_context *mac,
|
struct pe_session *pe_create_session(struct mac_context *mac,
|
||||||
@@ -614,7 +591,7 @@ struct pe_session *pe_create_session(struct mac_context *mac,
|
|||||||
*sessionId, opmode, vdev_id, QDF_MAC_ADDR_ARRAY(bssid),
|
*sessionId, opmode, vdev_id, QDF_MAC_ADDR_ARRAY(bssid),
|
||||||
numSta);
|
numSta);
|
||||||
|
|
||||||
if (eSIR_INFRA_AP_MODE == bssType || eSIR_IBSS_MODE == bssType) {
|
if (bssType == eSIR_INFRA_AP_MODE) {
|
||||||
session_ptr->pSchProbeRspTemplate =
|
session_ptr->pSchProbeRspTemplate =
|
||||||
qdf_mem_malloc(SIR_MAX_PROBE_RESP_SIZE);
|
qdf_mem_malloc(SIR_MAX_PROBE_RESP_SIZE);
|
||||||
session_ptr->pSchBeaconFrameBegin =
|
session_ptr->pSchBeaconFrameBegin =
|
||||||
|
@@ -368,8 +368,6 @@ bool lim_is_sme_start_bss_req_valid(struct mac_context *mac_ctx,
|
|||||||
start_bss_req->bssType);
|
start_bss_req->bssType);
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
case eSIR_IBSS_MODE:
|
|
||||||
break;
|
|
||||||
case eSIR_INFRA_AP_MODE:
|
case eSIR_INFRA_AP_MODE:
|
||||||
break;
|
break;
|
||||||
case eSIR_NDI_MODE:
|
case eSIR_NDI_MODE:
|
||||||
@@ -384,13 +382,6 @@ bool lim_is_sme_start_bss_req_valid(struct mac_context *mac_ctx,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (start_bss_req->bssType == eSIR_IBSS_MODE
|
|
||||||
&& (!start_bss_req->ssId.length
|
|
||||||
|| start_bss_req->ssId.length > WLAN_SSID_MAX_LEN)) {
|
|
||||||
pe_warn("Invalid SSID length in eWNI_SME_START_BSS_REQ");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!lim_is_rsn_ie_valid_in_sme_req_message(mac_ctx,
|
if (!lim_is_rsn_ie_valid_in_sme_req_message(mac_ctx,
|
||||||
&start_bss_req->rsnIE))
|
&start_bss_req->rsnIE))
|
||||||
return false;
|
return false;
|
||||||
|
@@ -42,7 +42,6 @@
|
|||||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT
|
#ifdef FEATURE_WLAN_DIAG_SUPPORT
|
||||||
#include "host_diag_core_event.h"
|
#include "host_diag_core_event.h"
|
||||||
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
|
||||||
#include "lim_ibss_peer_mgmt.h"
|
|
||||||
#include "lim_session_utils.h"
|
#include "lim_session_utils.h"
|
||||||
#include "lim_ft_defs.h"
|
#include "lim_ft_defs.h"
|
||||||
#include "lim_session.h"
|
#include "lim_session.h"
|
||||||
@@ -1925,10 +1924,8 @@ void lim_disconnect_complete(struct pe_session *session, bool del_bss)
|
|||||||
wlan_vdev_mlme_sm_deliver_evt(session->vdev,
|
wlan_vdev_mlme_sm_deliver_evt(session->vdev,
|
||||||
WLAN_VDEV_SM_EV_DISCONNECT_COMPLETE,
|
WLAN_VDEV_SM_EV_DISCONNECT_COMPLETE,
|
||||||
sizeof(*session), session);
|
sizeof(*session), session);
|
||||||
if (!mac->lim.gLimIbssCoalescingHappened &&
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
QDF_IS_STATUS_ERROR(status)) {
|
|
||||||
lim_send_stop_bss_failure_resp(mac, session);
|
lim_send_stop_bss_failure_resp(mac, session);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void lim_process_channel_switch(struct mac_context *mac_ctx, uint8_t vdev_id)
|
void lim_process_channel_switch(struct mac_context *mac_ctx, uint8_t vdev_id)
|
||||||
@@ -3804,10 +3801,6 @@ void lim_update_sta_run_time_ht_switch_chnl_params(struct mac_context *mac,
|
|||||||
lim_delete_tdls_peers(mac, pe_session);
|
lim_delete_tdls_peers(mac, pe_session);
|
||||||
|
|
||||||
lim_ht_switch_chnl_req(pe_session);
|
lim_ht_switch_chnl_req(pe_session);
|
||||||
|
|
||||||
/* In case of IBSS, if STA should update HT Info IE in its beacons. */
|
|
||||||
if (LIM_IS_IBSS_ROLE(pe_session))
|
|
||||||
sch_set_fixed_beacon_fields(mac, pe_session);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} /* End limUpdateStaRunTimeHTParams. */
|
} /* End limUpdateStaRunTimeHTParams. */
|
||||||
@@ -4437,10 +4430,7 @@ void lim_set_tspec_uapsd_mask_per_session(struct mac_context *mac,
|
|||||||
void lim_handle_heart_beat_timeout_for_session(struct mac_context *mac_ctx,
|
void lim_handle_heart_beat_timeout_for_session(struct mac_context *mac_ctx,
|
||||||
struct pe_session *psession_entry)
|
struct pe_session *psession_entry)
|
||||||
{
|
{
|
||||||
if (psession_entry->valid == true) {
|
if (psession_entry->valid) {
|
||||||
if (psession_entry->bssType == eSIR_IBSS_MODE)
|
|
||||||
lim_ibss_heart_beat_handle(mac_ctx, psession_entry);
|
|
||||||
|
|
||||||
if ((psession_entry->bssType == eSIR_INFRASTRUCTURE_MODE) &&
|
if ((psession_entry->bssType == eSIR_INFRASTRUCTURE_MODE) &&
|
||||||
(LIM_IS_STA_ROLE(psession_entry)))
|
(LIM_IS_STA_ROLE(psession_entry)))
|
||||||
lim_handle_heart_beat_failure(mac_ctx, psession_entry);
|
lim_handle_heart_beat_failure(mac_ctx, psession_entry);
|
||||||
@@ -4487,9 +4477,7 @@ void lim_process_add_sta_rsp(struct mac_context *mac_ctx,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
session->csaOffloadEnable = add_sta_params->csaOffloadEnable;
|
session->csaOffloadEnable = add_sta_params->csaOffloadEnable;
|
||||||
if (LIM_IS_IBSS_ROLE(session))
|
if (LIM_IS_NDI_ROLE(session))
|
||||||
(void)lim_ibss_add_sta_rsp(mac_ctx, msg->bodyptr, session);
|
|
||||||
else if (LIM_IS_NDI_ROLE(session))
|
|
||||||
lim_ndp_add_sta_rsp(mac_ctx, session, msg->bodyptr);
|
lim_ndp_add_sta_rsp(mac_ctx, session, msg->bodyptr);
|
||||||
#ifdef FEATURE_WLAN_TDLS
|
#ifdef FEATURE_WLAN_TDLS
|
||||||
else if (add_sta_params->staType == STA_ENTRY_TDLS_PEER)
|
else if (add_sta_params->staType == STA_ENTRY_TDLS_PEER)
|
||||||
@@ -4515,9 +4503,7 @@ void lim_update_beacon(struct mac_context *mac_ctx)
|
|||||||
for (i = 0; i < mac_ctx->lim.maxBssId; i++) {
|
for (i = 0; i < mac_ctx->lim.maxBssId; i++) {
|
||||||
if (mac_ctx->lim.gpSession[i].valid != true)
|
if (mac_ctx->lim.gpSession[i].valid != true)
|
||||||
continue;
|
continue;
|
||||||
if (((mac_ctx->lim.gpSession[i].limSystemRole == eLIM_AP_ROLE)
|
if ((mac_ctx->lim.gpSession[i].limSystemRole == eLIM_AP_ROLE)
|
||||||
|| (mac_ctx->lim.gpSession[i].limSystemRole ==
|
|
||||||
eLIM_STA_IN_IBSS_ROLE))
|
|
||||||
&& (eLIM_SME_NORMAL_STATE ==
|
&& (eLIM_SME_NORMAL_STATE ==
|
||||||
mac_ctx->lim.gpSession[i].limSmeState)) {
|
mac_ctx->lim.gpSession[i].limSmeState)) {
|
||||||
|
|
||||||
@@ -4608,25 +4594,6 @@ void lim_handle_heart_beat_failure_timeout(struct mac_context *mac_ctx)
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QCA_IBSS_SUPPORT
|
|
||||||
/*
|
|
||||||
* This function assumes there will not be more than one IBSS session active at any time.
|
|
||||||
*/
|
|
||||||
struct pe_session *lim_is_ibss_session_active(struct mac_context *mac)
|
|
||||||
{
|
|
||||||
uint8_t i;
|
|
||||||
|
|
||||||
for (i = 0; i < mac->lim.maxBssId; i++) {
|
|
||||||
if ((mac->lim.gpSession[i].valid) &&
|
|
||||||
(mac->lim.gpSession[i].limSystemRole ==
|
|
||||||
eLIM_STA_IN_IBSS_ROLE))
|
|
||||||
return &mac->lim.gpSession[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct pe_session *lim_is_ap_session_active(struct mac_context *mac)
|
struct pe_session *lim_is_ap_session_active(struct mac_context *mac)
|
||||||
{
|
{
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
@@ -6118,7 +6085,6 @@ const char *lim_bss_type_to_string(const uint16_t bss_type)
|
|||||||
switch (bss_type) {
|
switch (bss_type) {
|
||||||
CASE_RETURN_STRING(eSIR_INFRASTRUCTURE_MODE);
|
CASE_RETURN_STRING(eSIR_INFRASTRUCTURE_MODE);
|
||||||
CASE_RETURN_STRING(eSIR_INFRA_AP_MODE);
|
CASE_RETURN_STRING(eSIR_INFRA_AP_MODE);
|
||||||
CASE_RETURN_STRING(eSIR_IBSS_MODE);
|
|
||||||
CASE_RETURN_STRING(eSIR_AUTO_MODE);
|
CASE_RETURN_STRING(eSIR_AUTO_MODE);
|
||||||
CASE_RETURN_STRING(eSIR_NDI_MODE);
|
CASE_RETURN_STRING(eSIR_NDI_MODE);
|
||||||
default:
|
default:
|
||||||
@@ -7041,7 +7007,7 @@ void lim_update_sta_he_capable(struct mac_context *mac,
|
|||||||
tpAddStaParams add_sta_params, tpDphHashNode sta_ds,
|
tpAddStaParams add_sta_params, tpDphHashNode sta_ds,
|
||||||
struct pe_session *session_entry)
|
struct pe_session *session_entry)
|
||||||
{
|
{
|
||||||
if (LIM_IS_AP_ROLE(session_entry) || LIM_IS_IBSS_ROLE(session_entry))
|
if (LIM_IS_AP_ROLE(session_entry))
|
||||||
add_sta_params->he_capable = sta_ds->mlmStaContext.he_capable &&
|
add_sta_params->he_capable = sta_ds->mlmStaContext.he_capable &&
|
||||||
session_entry->he_capable;
|
session_entry->he_capable;
|
||||||
#ifdef FEATURE_WLAN_TDLS
|
#ifdef FEATURE_WLAN_TDLS
|
||||||
@@ -8003,7 +7969,6 @@ QDF_STATUS lim_ap_mlme_vdev_start_send(struct vdev_mlme_obj *vdev_mlme,
|
|||||||
uint16_t data_len, void *data)
|
uint16_t data_len, void *data)
|
||||||
{
|
{
|
||||||
struct pe_session *session;
|
struct pe_session *session;
|
||||||
tSirResultCodes ret;
|
|
||||||
tpLimMlmStartReq start_req = (tLimMlmStartReq *)data;
|
tpLimMlmStartReq start_req = (tLimMlmStartReq *)data;
|
||||||
struct mac_context *mac_ctx;
|
struct mac_context *mac_ctx;
|
||||||
|
|
||||||
@@ -8025,17 +7990,7 @@ QDF_STATUS lim_ap_mlme_vdev_start_send(struct vdev_mlme_obj *vdev_mlme,
|
|||||||
return QDF_STATUS_E_INVAL;
|
return QDF_STATUS_E_INVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LIM_IS_IBSS_ROLE(session) &&
|
lim_process_mlm_start_req(session->mac_ctx, start_req);
|
||||||
session->mac_ctx->lim.gLimIbssCoalescingHappened) {
|
|
||||||
ibss_bss_add(session->mac_ctx, session);
|
|
||||||
ret = lim_mlm_add_bss(session->mac_ctx, start_req, session);
|
|
||||||
if (ret != eSIR_SME_SUCCESS) {
|
|
||||||
pe_err("AddBss failure");
|
|
||||||
return QDF_STATUS_E_INVAL;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
lim_process_mlm_start_req(session->mac_ctx, start_req);
|
|
||||||
}
|
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -8114,10 +8069,7 @@ QDF_STATUS lim_ap_mlme_vdev_disconnect_peers(struct vdev_mlme_obj *vdev_mlme,
|
|||||||
return QDF_STATUS_E_INVAL;
|
return QDF_STATUS_E_INVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LIM_IS_IBSS_ROLE(session))
|
lim_delete_all_peers(session);
|
||||||
lim_ibss_delete_all_peers(session->mac_ctx, session);
|
|
||||||
else
|
|
||||||
lim_delete_all_peers(session);
|
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -8133,11 +8085,7 @@ QDF_STATUS lim_ap_mlme_vdev_stop_send(struct vdev_mlme_obj *vdev_mlme,
|
|||||||
return QDF_STATUS_E_INVAL;
|
return QDF_STATUS_E_INVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LIM_IS_IBSS_ROLE(session) &&
|
status = lim_send_vdev_stop(session);
|
||||||
session->mac_ctx->lim.gLimIbssCoalescingHappened)
|
|
||||||
ibss_bss_delete(session->mac_ctx, session);
|
|
||||||
else
|
|
||||||
status = lim_send_vdev_stop(session);
|
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@@ -8232,9 +8180,7 @@ QDF_STATUS lim_get_capability_info(struct mac_context *mac, uint16_t *pcap,
|
|||||||
*pcap = 0;
|
*pcap = 0;
|
||||||
pcap_info = (tpSirMacCapabilityInfo)pcap;
|
pcap_info = (tpSirMacCapabilityInfo)pcap;
|
||||||
|
|
||||||
if (LIM_IS_IBSS_ROLE(pe_session))
|
if (LIM_IS_AP_ROLE(pe_session) ||
|
||||||
pcap_info->ibss = 1; /* IBSS bit */
|
|
||||||
else if (LIM_IS_AP_ROLE(pe_session) ||
|
|
||||||
LIM_IS_STA_ROLE(pe_session))
|
LIM_IS_STA_ROLE(pe_session))
|
||||||
pcap_info->ess = 1; /* ESS bit */
|
pcap_info->ess = 1; /* ESS bit */
|
||||||
else if (LIM_IS_P2P_DEVICE_ROLE(pe_session) ||
|
else if (LIM_IS_P2P_DEVICE_ROLE(pe_session) ||
|
||||||
@@ -8292,7 +8238,7 @@ QDF_STATUS lim_get_capability_info(struct mac_context *mac, uint16_t *pcap,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Spectrum Management bit */
|
/* Spectrum Management bit */
|
||||||
if (!LIM_IS_IBSS_ROLE(pe_session) && pe_session->lim11hEnable) {
|
if (pe_session->lim11hEnable) {
|
||||||
if (mac->mlme_cfg->gen.enabled_11h)
|
if (mac->mlme_cfg->gen.enabled_11h)
|
||||||
pcap_info->spectrumMgt = 1;
|
pcap_info->spectrumMgt = 1;
|
||||||
}
|
}
|
||||||
|
@@ -603,30 +603,6 @@ void lim_process_ap_mlm_del_sta_rsp(struct mac_context *mac,
|
|||||||
struct scheduler_msg *limMsgQ,
|
struct scheduler_msg *limMsgQ,
|
||||||
struct pe_session *pe_session);
|
struct pe_session *pe_session);
|
||||||
|
|
||||||
#ifdef QCA_IBSS_SUPPORT
|
|
||||||
/**
|
|
||||||
* lim_is_ibss_session_active() - API to check IBSS session active
|
|
||||||
* @mac: Pointer to Global MAC structure
|
|
||||||
*
|
|
||||||
* Return: Pointer to active IBSS pe_session else NULL
|
|
||||||
*/
|
|
||||||
struct pe_session *lim_is_ibss_session_active(struct mac_context *mac);
|
|
||||||
#else
|
|
||||||
/**
|
|
||||||
* lim_is_ibss_session_active() - API to check IBSS session active
|
|
||||||
* @mac: Pointer to Global MAC structure
|
|
||||||
*
|
|
||||||
* This function is dummy.
|
|
||||||
*
|
|
||||||
* Return: NULL
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
struct pe_session *lim_is_ibss_session_active(struct mac_context *mac)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ch_width_in_mhz() - API to get channel space in MHz
|
* ch_width_in_mhz() - API to get channel space in MHz
|
||||||
*
|
*
|
||||||
|
@@ -80,16 +80,11 @@ QDF_STATUS sch_send_beacon_req(struct mac_context *mac, uint8_t *beaconPayload,
|
|||||||
qdf_mem_copy(beaconParams->bssId, pe_session->bssId,
|
qdf_mem_copy(beaconParams->bssId, pe_session->bssId,
|
||||||
sizeof(pe_session->bssId));
|
sizeof(pe_session->bssId));
|
||||||
|
|
||||||
if (LIM_IS_IBSS_ROLE(pe_session)) {
|
|
||||||
beaconParams->timIeOffset = 0;
|
beaconParams->timIeOffset = pe_session->schBeaconOffsetBegin;
|
||||||
} else {
|
if (pe_session->dfsIncludeChanSwIe) {
|
||||||
beaconParams->timIeOffset = pe_session->schBeaconOffsetBegin;
|
beaconParams->csa_count_offset = mac->sch.csa_count_offset;
|
||||||
if (pe_session->dfsIncludeChanSwIe) {
|
beaconParams->ecsa_count_offset = mac->sch.ecsa_count_offset;
|
||||||
beaconParams->csa_count_offset =
|
|
||||||
mac->sch.csa_count_offset;
|
|
||||||
beaconParams->ecsa_count_offset =
|
|
||||||
mac->sch.ecsa_count_offset;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
beaconParams->vdev_id = pe_session->smeSessionId;
|
beaconParams->vdev_id = pe_session->smeSessionId;
|
||||||
|
@@ -306,7 +306,6 @@ sch_set_fixed_beacon_fields(struct mac_context *mac_ctx, struct pe_session *sess
|
|||||||
populate_dot11f_ds_params(mac_ctx, &bcn_1->DSParams,
|
populate_dot11f_ds_params(mac_ctx, &bcn_1->DSParams,
|
||||||
wlan_reg_freq_to_chan(
|
wlan_reg_freq_to_chan(
|
||||||
mac_ctx->pdev, session->curr_op_freq));
|
mac_ctx->pdev, session->curr_op_freq));
|
||||||
populate_dot11f_ibss_params(mac_ctx, &bcn_1->IBSSParams, session);
|
|
||||||
|
|
||||||
offset = sizeof(tAniBeaconStruct);
|
offset = sizeof(tAniBeaconStruct);
|
||||||
ptr = session->pSchBeaconFrameBegin + offset;
|
ptr = session->pSchBeaconFrameBegin + offset;
|
||||||
@@ -485,9 +484,9 @@ sch_set_fixed_beacon_fields(struct mac_context *mac_ctx, struct pe_session *sess
|
|||||||
&bcn_2->bss_color_change);
|
&bcn_2->bss_color_change);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (session->limSystemRole != eLIM_STA_IN_IBSS_ROLE)
|
|
||||||
populate_dot11f_ext_cap(mac_ctx, is_vht_enabled, &bcn_2->ExtCap,
|
populate_dot11f_ext_cap(mac_ctx, is_vht_enabled, &bcn_2->ExtCap,
|
||||||
session);
|
session);
|
||||||
|
|
||||||
populate_dot11f_ext_supp_rates(mac_ctx,
|
populate_dot11f_ext_supp_rates(mac_ctx,
|
||||||
POPULATE_DOT11F_RATES_OPERATIONAL,
|
POPULATE_DOT11F_RATES_OPERATIONAL,
|
||||||
@@ -590,8 +589,7 @@ sch_set_fixed_beacon_fields(struct mac_context *mac_ctx, struct pe_session *sess
|
|||||||
pe_debug("extcap not extracted");
|
pe_debug("extcap not extracted");
|
||||||
}
|
}
|
||||||
/* merge extcap IE */
|
/* merge extcap IE */
|
||||||
if (extcap_present &&
|
if (extcap_present)
|
||||||
session->limSystemRole != eLIM_STA_IN_IBSS_ROLE)
|
|
||||||
lim_merge_extcap_struct(&bcn_2->ExtCap,
|
lim_merge_extcap_struct(&bcn_2->ExtCap,
|
||||||
&extracted_extcap,
|
&extracted_extcap,
|
||||||
true);
|
true);
|
||||||
@@ -727,7 +725,6 @@ lim_update_probe_rsp_template_ie_bitmap_beacon1(struct mac_context *mac,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* IBSS params will not be present in the Beacons transmitted by AP */
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -736,8 +733,7 @@ void lim_update_probe_rsp_template_ie_bitmap_beacon2(struct mac_context *mac,
|
|||||||
uint32_t *DefProbeRspIeBitmap,
|
uint32_t *DefProbeRspIeBitmap,
|
||||||
tDot11fProbeResponse *prb_rsp)
|
tDot11fProbeResponse *prb_rsp)
|
||||||
{
|
{
|
||||||
/* IBSS parameter set - will not be present in probe response tx by AP */
|
|
||||||
/* country */
|
|
||||||
if (beacon2->Country.present) {
|
if (beacon2->Country.present) {
|
||||||
set_probe_rsp_ie_bitmap(DefProbeRspIeBitmap, WLAN_ELEMID_COUNTRY);
|
set_probe_rsp_ie_bitmap(DefProbeRspIeBitmap, WLAN_ELEMID_COUNTRY);
|
||||||
qdf_mem_copy((void *)&prb_rsp->Country,
|
qdf_mem_copy((void *)&prb_rsp->Country,
|
||||||
@@ -1074,18 +1070,6 @@ QDF_STATUS sch_process_pre_beacon_ind(struct mac_context *mac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (GET_LIM_SYSTEM_ROLE(pe_session)) {
|
switch (GET_LIM_SYSTEM_ROLE(pe_session)) {
|
||||||
|
|
||||||
case eLIM_STA_IN_IBSS_ROLE:
|
|
||||||
/* generate IBSS parameter set */
|
|
||||||
if (pe_session->statypeForBss == STA_ENTRY_SELF)
|
|
||||||
status =
|
|
||||||
write_beacon_to_memory(mac, (uint16_t) beaconSize,
|
|
||||||
(uint16_t) beaconSize,
|
|
||||||
pe_session, reason);
|
|
||||||
else
|
|
||||||
pe_err("can not send beacon for PEER session entry");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case eLIM_AP_ROLE: {
|
case eLIM_AP_ROLE: {
|
||||||
uint8_t *ptr =
|
uint8_t *ptr =
|
||||||
&pe_session->pSchBeaconFrameBegin[pe_session->
|
&pe_session->pSchBeaconFrameBegin[pe_session->
|
||||||
|
@@ -237,52 +237,6 @@ ap_beacon_process(struct mac_context *mac_ctx, uint8_t *rx_pkt_info,
|
|||||||
|
|
||||||
/* -------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------- */
|
||||||
|
|
||||||
/**
|
|
||||||
* __sch_beacon_process_no_session
|
|
||||||
*
|
|
||||||
* FUNCTION:
|
|
||||||
* Process the received beacon frame when
|
|
||||||
* -- Station is not scanning
|
|
||||||
* -- No corresponding session is found
|
|
||||||
*
|
|
||||||
* LOGIC:
|
|
||||||
* Following scenarios exist when Session Does not exist:
|
|
||||||
* * IBSS Beacons, when IBSS session already exists with same SSID,
|
|
||||||
* but from STA which has not yet joined and has a different BSSID.
|
|
||||||
* - invoke lim_handle_ibs_scoalescing with the session context of existing IBSS session.
|
|
||||||
*
|
|
||||||
* * IBSS Beacons when IBSS session does not exist, only Infra or BT-AMP session exists,
|
|
||||||
* then save the beacon in the scan results and throw it away.
|
|
||||||
*
|
|
||||||
* * Infra Beacons
|
|
||||||
* - beacons received when no session active
|
|
||||||
* should not come here, it should be handled as part of scanning,
|
|
||||||
* else they should not be getting received, should update scan results and drop it if that happens.
|
|
||||||
* - beacons received when IBSS session active:
|
|
||||||
* update scan results and drop it.
|
|
||||||
* - beacons received when Infra session(STA) is active:
|
|
||||||
* update scan results and drop it
|
|
||||||
* - beacons received when BT-STA session is active:
|
|
||||||
* update scan results and drop it.
|
|
||||||
* - beacons received when Infra/BT-STA or Infra/IBSS is active.
|
|
||||||
* update scan results and drop it.
|
|
||||||
*
|
|
||||||
|
|
||||||
*/
|
|
||||||
static void __sch_beacon_process_no_session(struct mac_context *mac,
|
|
||||||
tpSchBeaconStruct pBeacon,
|
|
||||||
uint8_t *pRxPacketInfo)
|
|
||||||
{
|
|
||||||
struct pe_session *pe_session = NULL;
|
|
||||||
|
|
||||||
pe_session = lim_is_ibss_session_active(mac);
|
|
||||||
if (pe_session) {
|
|
||||||
lim_handle_ibss_coalescing(mac, pBeacon, pRxPacketInfo,
|
|
||||||
pe_session);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get_operating_channel_width() - Get operating channel width
|
* get_operating_channel_width() - Get operating channel width
|
||||||
* @stads - station entry.
|
* @stads - station entry.
|
||||||
@@ -684,28 +638,13 @@ sch_bcn_update_opmode_change(struct mac_context *mac_ctx, tpDphHashNode sta_ds,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* sch_bcn_process_sta_ibss() - Process the received beacon frame
|
|
||||||
* for sta and ibss
|
|
||||||
* @mac_ctx: mac_ctx
|
|
||||||
* @bcn: beacon struct
|
|
||||||
* @rx_pkt_info: received packet info
|
|
||||||
* @session: pe session pointer
|
|
||||||
* @beaconParams: update beacon params
|
|
||||||
* @sendProbeReq: out flag to indicate if probe rsp is to be sent
|
|
||||||
* @pMh: mac header
|
|
||||||
*
|
|
||||||
* Process the received beacon frame for sta and ibss
|
|
||||||
*
|
|
||||||
* Return: void
|
|
||||||
*/
|
|
||||||
static void
|
static void
|
||||||
sch_bcn_process_sta_ibss(struct mac_context *mac_ctx,
|
sch_bcn_process_sta_opmode(struct mac_context *mac_ctx,
|
||||||
tpSchBeaconStruct bcn,
|
tpSchBeaconStruct bcn,
|
||||||
uint8_t *rx_pkt_info,
|
uint8_t *rx_pkt_info,
|
||||||
struct pe_session *session,
|
struct pe_session *session,
|
||||||
tUpdateBeaconParams *beaconParams,
|
tUpdateBeaconParams *beaconParams,
|
||||||
uint8_t *sendProbeReq, tpSirMacMgmtHdr pMh)
|
uint8_t *sendProbeReq, tpSirMacMgmtHdr pMh)
|
||||||
{
|
{
|
||||||
tpDphHashNode sta = NULL;
|
tpDphHashNode sta = NULL;
|
||||||
uint16_t aid;
|
uint16_t aid;
|
||||||
@@ -755,45 +694,6 @@ static void get_local_power_constraint_beacon(
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* __sch_beacon_process_for_session() - Process the received beacon frame when
|
|
||||||
* station is not scanning and corresponding session is found
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @mac_ctx: mac_ctx
|
|
||||||
* @bcn: beacon struct
|
|
||||||
* @rx_pkt_info: received packet info
|
|
||||||
* @session: pe session pointer
|
|
||||||
*
|
|
||||||
* Following scenarios exist when Session exists
|
|
||||||
* IBSS STA receiving beacons from IBSS Peers, who are part of IBSS.
|
|
||||||
* - call lim_handle_ibs_scoalescing with that session context.
|
|
||||||
* Infra STA receiving beacons from AP to which it is connected
|
|
||||||
* - call sch_beacon_processFromAP with that session's context.
|
|
||||||
* - call sch_beacon_processFromAP with that session's context.
|
|
||||||
* (here need to make sure BTAP creates session entry for BT STA)
|
|
||||||
* - just update the beacon count for heart beat purposes for now,
|
|
||||||
* for now, don't process the beacon.
|
|
||||||
* Infra/IBSS both active and receives IBSS beacon:
|
|
||||||
* - call lim_handle_ibs_scoalescing with that session context.
|
|
||||||
* Infra/IBSS both active and receives Infra beacon:
|
|
||||||
* - call sch_beacon_processFromAP with that session's context.
|
|
||||||
* any updates to EDCA parameters will be effective for IBSS as well,
|
|
||||||
* even though no WMM for IBSS ?? Need to figure out how to handle
|
|
||||||
* this scenario.
|
|
||||||
* Infra/BTSTA both active and receive Infra beacon.
|
|
||||||
* - change in EDCA parameters on Infra affect the BTSTA link.
|
|
||||||
* Update the same parameters on BT link
|
|
||||||
* Infra/BTSTA both active and receive BT-AP beacon.
|
|
||||||
* - update beacon cnt for heartbeat
|
|
||||||
* Infra/BTAP both active and receive Infra beacon.
|
|
||||||
* - BT-AP starts advertising BE parameters from Infra AP, if they get
|
|
||||||
* changed.
|
|
||||||
* Infra/BTAP both active and receive BTSTA beacon.
|
|
||||||
* - update beacon cnt for heartbeat
|
|
||||||
*
|
|
||||||
* Return: void
|
|
||||||
*/
|
|
||||||
static void __sch_beacon_process_for_session(struct mac_context *mac_ctx,
|
static void __sch_beacon_process_for_session(struct mac_context *mac_ctx,
|
||||||
tpSchBeaconStruct bcn,
|
tpSchBeaconStruct bcn,
|
||||||
uint8_t *rx_pkt_info,
|
uint8_t *rx_pkt_info,
|
||||||
@@ -809,9 +709,7 @@ static void __sch_beacon_process_for_session(struct mac_context *mac_ctx,
|
|||||||
qdf_mem_zero(&beaconParams, sizeof(tUpdateBeaconParams));
|
qdf_mem_zero(&beaconParams, sizeof(tUpdateBeaconParams));
|
||||||
beaconParams.paramChangeBitmap = 0;
|
beaconParams.paramChangeBitmap = 0;
|
||||||
|
|
||||||
if (LIM_IS_IBSS_ROLE(session)) {
|
if (LIM_IS_STA_ROLE(session)) {
|
||||||
lim_handle_ibss_coalescing(mac_ctx, bcn, rx_pkt_info, session);
|
|
||||||
} else if (LIM_IS_STA_ROLE(session)) {
|
|
||||||
if (false == sch_bcn_process_sta(mac_ctx, bcn, rx_pkt_info,
|
if (false == sch_bcn_process_sta(mac_ctx, bcn, rx_pkt_info,
|
||||||
session, &beaconParams,
|
session, &beaconParams,
|
||||||
&sendProbeReq, pMh))
|
&sendProbeReq, pMh))
|
||||||
@@ -824,15 +722,13 @@ static void __sch_beacon_process_for_session(struct mac_context *mac_ctx,
|
|||||||
*/
|
*/
|
||||||
if (!(session->vhtCapability && (bcn->OperatingMode.present ||
|
if (!(session->vhtCapability && (bcn->OperatingMode.present ||
|
||||||
bcn->VHTOperation.present)) && session->htCapability &&
|
bcn->VHTOperation.present)) && session->htCapability &&
|
||||||
bcn->HTInfo.present && !LIM_IS_IBSS_ROLE(session))
|
bcn->HTInfo.present)
|
||||||
lim_update_sta_run_time_ht_switch_chnl_params(mac_ctx,
|
lim_update_sta_run_time_ht_switch_chnl_params(mac_ctx,
|
||||||
&bcn->HTInfo, session);
|
&bcn->HTInfo, session);
|
||||||
|
|
||||||
if (LIM_IS_STA_ROLE(session)
|
if (LIM_IS_STA_ROLE(session))
|
||||||
|| LIM_IS_IBSS_ROLE(session))
|
sch_bcn_process_sta_opmode(mac_ctx, bcn, rx_pkt_info, session,
|
||||||
sch_bcn_process_sta_ibss(mac_ctx, bcn,
|
&beaconParams, &sendProbeReq, pMh);
|
||||||
rx_pkt_info, session,
|
|
||||||
&beaconParams, &sendProbeReq, pMh);
|
|
||||||
/* Obtain the Max Tx power for the current regulatory */
|
/* Obtain the Max Tx power for the current regulatory */
|
||||||
regMax = wlan_reg_get_channel_reg_power_for_freq(
|
regMax = wlan_reg_get_channel_reg_power_for_freq(
|
||||||
mac_ctx->pdev, session->curr_op_freq);
|
mac_ctx->pdev, session->curr_op_freq);
|
||||||
@@ -1113,6 +1009,8 @@ sch_beacon_process(struct mac_context *mac_ctx, uint8_t *rx_pkt_info,
|
|||||||
{
|
{
|
||||||
static tSchBeaconStruct bcn;
|
static tSchBeaconStruct bcn;
|
||||||
|
|
||||||
|
if (!session)
|
||||||
|
return;
|
||||||
/* Convert the beacon frame into a structure */
|
/* Convert the beacon frame into a structure */
|
||||||
if (sir_convert_beacon_frame2_struct(mac_ctx, (uint8_t *) rx_pkt_info,
|
if (sir_convert_beacon_frame2_struct(mac_ctx, (uint8_t *) rx_pkt_info,
|
||||||
&bcn) != QDF_STATUS_SUCCESS) {
|
&bcn) != QDF_STATUS_SUCCESS) {
|
||||||
@@ -1120,17 +1018,8 @@ sch_beacon_process(struct mac_context *mac_ctx, uint8_t *rx_pkt_info,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
sch_send_beacon_report(mac_ctx, &bcn, session);
|
||||||
* Now process the beacon in the context of the BSS which is
|
__sch_beacon_process_for_session(mac_ctx, &bcn, rx_pkt_info, session);
|
||||||
* transmitting the beacons, if one is found
|
|
||||||
*/
|
|
||||||
if (!session) {
|
|
||||||
__sch_beacon_process_no_session(mac_ctx, &bcn, rx_pkt_info);
|
|
||||||
} else {
|
|
||||||
sch_send_beacon_report(mac_ctx, &bcn, session);
|
|
||||||
__sch_beacon_process_for_session(mac_ctx, &bcn, rx_pkt_info,
|
|
||||||
session);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -495,8 +495,7 @@ get_wmm_local_params(struct mac_context *mac_ctx,
|
|||||||
*/
|
*/
|
||||||
void sch_edca_profile_update(struct mac_context *mac, struct pe_session *pe_session)
|
void sch_edca_profile_update(struct mac_context *mac, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (LIM_IS_AP_ROLE(pe_session) ||
|
if (LIM_IS_AP_ROLE(pe_session)) {
|
||||||
LIM_IS_IBSS_ROLE(pe_session)) {
|
|
||||||
sch_qos_update_local(mac, pe_session);
|
sch_qos_update_local(mac, pe_session);
|
||||||
sch_qos_update_broadcast(mac, pe_session);
|
sch_qos_update_broadcast(mac, pe_session);
|
||||||
}
|
}
|
||||||
|
@@ -228,8 +228,6 @@ uint8_t *mac_trace_get_sme_msg_string(uint16_t sme_msg)
|
|||||||
CASE_RETURN_STRING(eWNI_SME_DEAUTH_IND);
|
CASE_RETURN_STRING(eWNI_SME_DEAUTH_IND);
|
||||||
CASE_RETURN_STRING(eWNI_SME_DISCONNECT_DONE_IND);
|
CASE_RETURN_STRING(eWNI_SME_DISCONNECT_DONE_IND);
|
||||||
CASE_RETURN_STRING(eWNI_SME_WM_STATUS_CHANGE_NTF);
|
CASE_RETURN_STRING(eWNI_SME_WM_STATUS_CHANGE_NTF);
|
||||||
CASE_RETURN_STRING(eWNI_SME_IBSS_NEW_PEER_IND);
|
|
||||||
CASE_RETURN_STRING(eWNI_SME_IBSS_PEER_DEPARTED_IND);
|
|
||||||
CASE_RETURN_STRING(eWNI_SME_START_BSS_REQ);
|
CASE_RETURN_STRING(eWNI_SME_START_BSS_REQ);
|
||||||
CASE_RETURN_STRING(eWNI_SME_START_BSS_RSP);
|
CASE_RETURN_STRING(eWNI_SME_START_BSS_RSP);
|
||||||
CASE_RETURN_STRING(eWNI_SME_ASSOC_IND);
|
CASE_RETURN_STRING(eWNI_SME_ASSOC_IND);
|
||||||
@@ -559,7 +557,6 @@ uint8_t *mac_trace_get_wma_msg_string(uint16_t wma_msg)
|
|||||||
#endif
|
#endif
|
||||||
CASE_RETURN_STRING(WMA_RX_SCAN_EVENT);
|
CASE_RETURN_STRING(WMA_RX_SCAN_EVENT);
|
||||||
CASE_RETURN_STRING(WMA_RX_CHN_STATUS_EVENT);
|
CASE_RETURN_STRING(WMA_RX_CHN_STATUS_EVENT);
|
||||||
CASE_RETURN_STRING(WMA_IBSS_PEER_INACTIVITY_IND);
|
|
||||||
CASE_RETURN_STRING(WMA_DEL_PERIODIC_TX_PTRN_IND);
|
CASE_RETURN_STRING(WMA_DEL_PERIODIC_TX_PTRN_IND);
|
||||||
#ifdef FEATURE_WLAN_TDLS
|
#ifdef FEATURE_WLAN_TDLS
|
||||||
CASE_RETURN_STRING(WMA_TDLS_SHOULD_DISCOVER_CMD);
|
CASE_RETURN_STRING(WMA_TDLS_SHOULD_DISCOVER_CMD);
|
||||||
|
@@ -1340,17 +1340,6 @@ populate_dot11f_ht_info(struct mac_context *mac,
|
|||||||
|
|
||||||
} /* End populate_dot11f_ht_info. */
|
} /* End populate_dot11f_ht_info. */
|
||||||
|
|
||||||
void
|
|
||||||
populate_dot11f_ibss_params(struct mac_context *mac,
|
|
||||||
tDot11fIEIBSSParams *pDot11f,
|
|
||||||
struct pe_session *pe_session)
|
|
||||||
{
|
|
||||||
if (LIM_IS_IBSS_ROLE(pe_session)) {
|
|
||||||
pDot11f->atim = mac->mlme_cfg->ibss.atim_win_size;
|
|
||||||
pDot11f->present = 1;
|
|
||||||
}
|
|
||||||
} /* End populate_dot11f_ibss_params. */
|
|
||||||
|
|
||||||
#ifdef ANI_SUPPORT_11H
|
#ifdef ANI_SUPPORT_11H
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
populate_dot11f_measurement_report0(struct mac_context *mac,
|
populate_dot11f_measurement_report0(struct mac_context *mac,
|
||||||
@@ -1833,22 +1822,10 @@ void populate_dot11f_wmm(struct mac_context *mac,
|
|||||||
tDot11fIEWMMCaps *pCaps, struct pe_session *pe_session)
|
tDot11fIEWMMCaps *pCaps, struct pe_session *pe_session)
|
||||||
{
|
{
|
||||||
if (pe_session->limWmeEnabled) {
|
if (pe_session->limWmeEnabled) {
|
||||||
if (LIM_IS_IBSS_ROLE(pe_session)) {
|
populate_dot11f_wmm_params(mac, pParams,
|
||||||
/* if ( ! sirIsPropCapabilityEnabled( mac, SIR_MAC_PROP_CAPABILITY_WME ) ) */
|
pe_session);
|
||||||
{
|
if (pe_session->limWsmEnabled)
|
||||||
populate_dot11f_wmm_info_ap(mac, pInfo,
|
populate_dot11f_wmm_caps(pCaps);
|
||||||
pe_session);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
{
|
|
||||||
populate_dot11f_wmm_params(mac, pParams,
|
|
||||||
pe_session);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pe_session->limWsmEnabled) {
|
|
||||||
populate_dot11f_wmm_caps(pCaps);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} /* End populate_dot11f_wmm. */
|
} /* End populate_dot11f_wmm. */
|
||||||
|
|
||||||
@@ -1923,20 +1900,13 @@ void populate_dot11f_wmm_info_ap(struct mac_context *mac, tDot11fIEWMMInfoAp *pI
|
|||||||
{
|
{
|
||||||
pInfo->version = SIR_MAC_OUI_VERSION_1;
|
pInfo->version = SIR_MAC_OUI_VERSION_1;
|
||||||
|
|
||||||
/* WMM Specification 3.1.3, 3.2.3
|
/* WMM Specification 3.1.3, 3.2.3 */
|
||||||
* An IBSS station shall always use its default WMM parameters.
|
pInfo->param_set_count = (0xf & pe_session->gLimEdcaParamSetCount);
|
||||||
*/
|
if (LIM_IS_AP_ROLE(pe_session))
|
||||||
if (LIM_IS_IBSS_ROLE(pe_session)) {
|
pInfo->uapsd = (0x1 & pe_session->apUapsdEnable);
|
||||||
pInfo->param_set_count = 0;
|
else
|
||||||
pInfo->uapsd = 0;
|
pInfo->uapsd = (0x1 & mac->lim.gUapsdEnable);
|
||||||
} else {
|
|
||||||
pInfo->param_set_count =
|
|
||||||
(0xf & pe_session->gLimEdcaParamSetCount);
|
|
||||||
if (LIM_IS_AP_ROLE(pe_session)) {
|
|
||||||
pInfo->uapsd = (0x1 & pe_session->apUapsdEnable);
|
|
||||||
} else
|
|
||||||
pInfo->uapsd = (0x1 & mac->lim.gUapsdEnable);
|
|
||||||
}
|
|
||||||
pInfo->present = 1;
|
pInfo->present = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -116,7 +116,6 @@ typedef enum {
|
|||||||
eCSR_DOT11_MODE_11ac_ONLY = 0x0200,
|
eCSR_DOT11_MODE_11ac_ONLY = 0x0200,
|
||||||
/*
|
/*
|
||||||
* This is for WIFI test. It is same as eWNIAPI_MAC_PROTOCOL_ALL
|
* This is for WIFI test. It is same as eWNIAPI_MAC_PROTOCOL_ALL
|
||||||
* except when it starts IBSS in 11B of 2.4GHz
|
|
||||||
* It is for CSR internal use
|
* It is for CSR internal use
|
||||||
*/
|
*/
|
||||||
eCSR_DOT11_MODE_AUTO = 0x0400,
|
eCSR_DOT11_MODE_AUTO = 0x0400,
|
||||||
@@ -132,7 +131,7 @@ typedef enum {
|
|||||||
* @eCSR_BSS_TYPE_INFRASTRUCTURE: Infrastructure station
|
* @eCSR_BSS_TYPE_INFRASTRUCTURE: Infrastructure station
|
||||||
* @eCSR_BSS_TYPE_INFRA_AP: SoftAP
|
* @eCSR_BSS_TYPE_INFRA_AP: SoftAP
|
||||||
* @eCSR_BSS_TYPE_NDI: NAN datapath interface
|
* @eCSR_BSS_TYPE_NDI: NAN datapath interface
|
||||||
* @eCSR_BSS_TYPE_ANY: any BSS type (IBSS or Infrastructure)
|
* @eCSR_BSS_TYPE_ANY: any BSS type
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
eCSR_BSS_TYPE_INFRASTRUCTURE,
|
eCSR_BSS_TYPE_INFRASTRUCTURE,
|
||||||
@@ -474,7 +473,7 @@ typedef enum {
|
|||||||
} eCsrRoamDisconnectReason;
|
} eCsrRoamDisconnectReason;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
/* Not associated in Infra or participating in an IBSS/Ad-hoc */
|
/* Not associated in Infra or participating in an Ad-hoc */
|
||||||
eCSR_ASSOC_STATE_TYPE_NOT_CONNECTED,
|
eCSR_ASSOC_STATE_TYPE_NOT_CONNECTED,
|
||||||
/* Associated in an Infrastructure network. */
|
/* Associated in an Infrastructure network. */
|
||||||
eCSR_ASSOC_STATE_TYPE_INFRA_ASSOCIATED,
|
eCSR_ASSOC_STATE_TYPE_INFRA_ASSOCIATED,
|
||||||
|
@@ -5039,7 +5039,7 @@ QDF_STATUS csr_roam_stop_network(struct mac_context *mac, uint32_t sessionId,
|
|||||||
pBssConfig, pIes);
|
pBssConfig, pIes);
|
||||||
if (csr_is_conn_state_infra(mac, sessionId)) {
|
if (csr_is_conn_state_infra(mac, sessionId)) {
|
||||||
/*
|
/*
|
||||||
* the new Bss is an Ibss OR we are roaming from
|
* we are roaming from
|
||||||
* Infra to Infra across SSIDs
|
* Infra to Infra across SSIDs
|
||||||
* (roaming to a new SSID)...
|
* (roaming to a new SSID)...
|
||||||
* Not worry about WDS connection for now
|
* Not worry about WDS connection for now
|
||||||
@@ -6854,15 +6854,6 @@ static void csr_roam_process_start_bss_success(struct mac_context *mac_ctx,
|
|||||||
}
|
}
|
||||||
session = CSR_GET_SESSION(mac_ctx, session_id);
|
session = CSR_GET_SESSION(mac_ctx, session_id);
|
||||||
|
|
||||||
/*
|
|
||||||
* on the StartBss Response, LIM is returning the Bss Description that
|
|
||||||
* we are beaconing. Add this Bss Description to our scan results and
|
|
||||||
* chain the Profile to this Bss Description. On a Start BSS, there was
|
|
||||||
* no detected Bss description (no partner) so we issued the Start Bss
|
|
||||||
* to start the Ibss without any Bss description. Lim was kind enough
|
|
||||||
* to return the Bss Description that we start beaconing for the newly
|
|
||||||
* started Ibss.
|
|
||||||
*/
|
|
||||||
sme_debug("receives start BSS ok indication");
|
sme_debug("receives start BSS ok indication");
|
||||||
status = QDF_STATUS_E_FAILURE;
|
status = QDF_STATUS_E_FAILURE;
|
||||||
start_bss_rsp = (struct start_bss_rsp *) context;
|
start_bss_rsp = (struct start_bss_rsp *) context;
|
||||||
@@ -13045,23 +13036,6 @@ csr_compute_mode_and_band(struct mac_context *mac_ctx,
|
|||||||
*dot11_mode = eCSR_CFG_DOT11_MODE_11A;
|
*dot11_mode = eCSR_CFG_DOT11_MODE_11A;
|
||||||
}
|
}
|
||||||
} else if (WLAN_REG_IS_24GHZ_CH_FREQ(opr_ch_freq)) {
|
} else if (WLAN_REG_IS_24GHZ_CH_FREQ(opr_ch_freq)) {
|
||||||
/*
|
|
||||||
* WiFi tests require IBSS networks to start in 11b mode
|
|
||||||
* without any change to the default parameter settings
|
|
||||||
* on the adapter. We use ACU to start an IBSS through
|
|
||||||
* creation of a startIBSS profile. This startIBSS
|
|
||||||
* profile has Auto MACProtocol and the adapter property
|
|
||||||
* setting for dot11Mode is also AUTO. So in this case,
|
|
||||||
* let's start the IBSS network in 11b mode instead of
|
|
||||||
* 11g mode. So this is for Auto=profile->MacProtocol &&
|
|
||||||
* Auto=Global. dot11Mode && profile->channel is < 14,
|
|
||||||
* then start the IBSS in b mode.
|
|
||||||
*
|
|
||||||
* Note: we used to have this start as for
|
|
||||||
* best performance. now to specify that the user will
|
|
||||||
* have to set the do11Mode in the property page to 11g
|
|
||||||
* to force it.
|
|
||||||
*/
|
|
||||||
*dot11_mode = eCSR_CFG_DOT11_MODE_11B;
|
*dot11_mode = eCSR_CFG_DOT11_MODE_11B;
|
||||||
*band = REG_BAND_2G;
|
*band = REG_BAND_2G;
|
||||||
} else {
|
} else {
|
||||||
|
@@ -28,8 +28,6 @@
|
|||||||
#define IS_FEATURE_SUPPORTED_BY_FW(feat_enum_value) \
|
#define IS_FEATURE_SUPPORTED_BY_FW(feat_enum_value) \
|
||||||
wma_get_fw_wlan_feat_caps(feat_enum_value)
|
wma_get_fw_wlan_feat_caps(feat_enum_value)
|
||||||
|
|
||||||
#define IS_IBSS_HEARTBEAT_OFFLOAD_FEATURE_ENABLE 1
|
|
||||||
|
|
||||||
#define DPU_FEEDBACK_UNPROTECTED_ERROR 0x0F
|
#define DPU_FEEDBACK_UNPROTECTED_ERROR 0x0F
|
||||||
|
|
||||||
#define WMA_GET_RX_MAC_HEADER(pRxMeta) \
|
#define WMA_GET_RX_MAC_HEADER(pRxMeta) \
|
||||||
@@ -263,7 +261,6 @@
|
|||||||
#define WMA_UPDATE_CHAN_LIST_REQ SIR_HAL_UPDATE_CHAN_LIST_REQ
|
#define WMA_UPDATE_CHAN_LIST_REQ SIR_HAL_UPDATE_CHAN_LIST_REQ
|
||||||
#define WMA_RX_SCAN_EVENT SIR_HAL_RX_SCAN_EVENT
|
#define WMA_RX_SCAN_EVENT SIR_HAL_RX_SCAN_EVENT
|
||||||
#define WMA_RX_CHN_STATUS_EVENT SIR_HAL_RX_CHN_STATUS_EVENT
|
#define WMA_RX_CHN_STATUS_EVENT SIR_HAL_RX_CHN_STATUS_EVENT
|
||||||
#define WMA_IBSS_PEER_INACTIVITY_IND SIR_HAL_IBSS_PEER_INACTIVITY_IND
|
|
||||||
|
|
||||||
#define WMA_CLI_SET_CMD SIR_HAL_CLI_SET_CMD
|
#define WMA_CLI_SET_CMD SIR_HAL_CLI_SET_CMD
|
||||||
|
|
||||||
|
@@ -328,7 +328,6 @@ int wma_peer_sta_kickout_event_handler(void *handle, uint8_t *event,
|
|||||||
wmi_peer_sta_kickout_event_fixed_param *kickout_event = NULL;
|
wmi_peer_sta_kickout_event_fixed_param *kickout_event = NULL;
|
||||||
uint8_t vdev_id, macaddr[QDF_MAC_ADDR_SIZE];
|
uint8_t vdev_id, macaddr[QDF_MAC_ADDR_SIZE];
|
||||||
tpDeleteStaContext del_sta_ctx;
|
tpDeleteStaContext del_sta_ctx;
|
||||||
struct ibss_peer_inactivity_ind *inactivity;
|
|
||||||
uint8_t *addr, *bssid;
|
uint8_t *addr, *bssid;
|
||||||
struct wlan_objmgr_vdev *vdev;
|
struct wlan_objmgr_vdev *vdev;
|
||||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||||
@@ -364,15 +363,6 @@ int wma_peer_sta_kickout_event_handler(void *handle, uint8_t *event,
|
|||||||
|
|
||||||
switch (kickout_event->reason) {
|
switch (kickout_event->reason) {
|
||||||
case WMI_PEER_STA_KICKOUT_REASON_IBSS_DISCONNECT:
|
case WMI_PEER_STA_KICKOUT_REASON_IBSS_DISCONNECT:
|
||||||
inactivity = qdf_mem_malloc(sizeof(*inactivity));
|
|
||||||
if (!inactivity) {
|
|
||||||
WMA_LOGE("QDF MEM Alloc Failed for tSirIbssPeerInactivity");
|
|
||||||
return -ENOMEM;
|
|
||||||
}
|
|
||||||
qdf_mem_copy(inactivity->peer_addr.bytes, macaddr,
|
|
||||||
QDF_MAC_ADDR_SIZE);
|
|
||||||
wma_send_msg(wma, WMA_IBSS_PEER_INACTIVITY_IND,
|
|
||||||
inactivity, 0);
|
|
||||||
goto exit_handler;
|
goto exit_handler;
|
||||||
#ifdef FEATURE_WLAN_TDLS
|
#ifdef FEATURE_WLAN_TDLS
|
||||||
case WMI_PEER_STA_KICKOUT_REASON_TDLS_DISCONNECT:
|
case WMI_PEER_STA_KICKOUT_REASON_TDLS_DISCONNECT:
|
||||||
|
Reference in New Issue
Block a user