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:
gaurank kathpalia
2020-05-15 09:40:58 +05:30
committed by nshrivas
parent a196271737
commit 322d8eb806
48 changed files with 89 additions and 3238 deletions

8
Kbuild
View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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];
}; };

View File

@@ -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

View File

@@ -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,

View File

@@ -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

View File

@@ -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)

View File

@@ -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)
{ {

View File

@@ -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,

View File

@@ -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);
/** /**

View File

@@ -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:

View File

@@ -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;

View File

@@ -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,

View File

@@ -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

View File

@@ -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

View File

@@ -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);

View File

@@ -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

View File

@@ -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;
} }

View File

@@ -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;

View File

@@ -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,

View File

@@ -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);

View File

@@ -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,

View File

@@ -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 {

View File

@@ -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);
} }

View File

@@ -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);

View File

@@ -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);

View File

@@ -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"

View File

@@ -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)

View File

@@ -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);

View File

@@ -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);

View File

@@ -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 =

View File

@@ -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;

View File

@@ -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;
} }

View File

@@ -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
* *

View File

@@ -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;

View File

@@ -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->

View File

@@ -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);
}
} }
/** /**

View File

@@ -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);
} }

View File

@@ -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);

View File

@@ -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;
} }

View File

@@ -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,

View File

@@ -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 {

View File

@@ -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

View File

@@ -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: