qcacld-3.0: Cleanup IBSS in CSR layer

Cleanup IBSS related code from CSR/SME layer.

Change-Id: I4a15b0c59b55382ffb6a5c67049a6b24e3e00cbe
CRs-Fixed: 2685889
This commit is contained in:
gaurank kathpalia
2020-05-13 00:22:44 +05:30
committed by nshrivas
parent d280fe0dd0
commit 0907e9f8b3
17 changed files with 77 additions and 1378 deletions

View File

@@ -903,9 +903,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
hdd_ctx->psoc, false); hdd_ctx->psoc, false);
} }
sme_config->csr_config.isCoalesingInIBSSAllowed =
ibss_cfg.coalesing_enable;
/* Update maximum interfaces information */ /* Update maximum interfaces information */
sme_config->csr_config.max_intf_count = hdd_ctx->max_intf_count; sme_config->csr_config.max_intf_count = hdd_ctx->max_intf_count;

View File

@@ -773,7 +773,6 @@ struct mac_context {
struct csr_scanstruct scan; struct csr_scanstruct scan;
struct csr_roamstruct roam; struct csr_roamstruct roam;
tRrmContext rrm; tRrmContext rrm;
uint8_t isCoalesingInIBSSAllowed;
uint8_t beacon_offload; uint8_t beacon_offload;
bool pmf_offload; bool pmf_offload;
bool is_fils_roaming_supported; bool is_fils_roaming_supported;

View File

@@ -619,7 +619,6 @@ struct start_bss_req {
tAniAuthType authType; tAniAuthType authType;
uint32_t dtimPeriod; uint32_t dtimPeriod;
uint8_t wps_state; uint8_t wps_state;
uint8_t isCoalesingInIBSSAllowed; /* Coalesing on/off knob */
enum QDF_OPMODE bssPersona; enum QDF_OPMODE bssPersona;
uint8_t txLdpcIniFeatureEnabled; uint8_t txLdpcIniFeatureEnabled;

View File

@@ -397,8 +397,6 @@ struct pe_session {
int8_t rssi; int8_t rssi;
#endif #endif
uint8_t max_amsdu_num; uint8_t max_amsdu_num;
uint8_t isCoalesingInIBSSAllowed;
struct ht_config ht_config; struct ht_config ht_config;
struct sir_vht_config vht_config; struct sir_vht_config vht_config;
/* /*

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
@@ -361,30 +361,6 @@ static void ibss_coalesce_free(struct mac_context *mac)
mac->lim.ibss_info.beacon = NULL; mac->lim.ibss_info.beacon = NULL;
} }
/*
* save the beacon params for use when adding the bss
*/
static void
ibss_coalesce_save(struct mac_context *mac,
tpSirMacMgmtHdr pHdr, tpSchBeaconStruct pBeacon)
{
/* get rid of any saved info */
ibss_coalesce_free(mac);
mac->lim.ibss_info.mac_hdr = qdf_mem_malloc(sizeof(*pHdr));
if (!mac->lim.ibss_info.mac_hdr)
return;
mac->lim.ibss_info.beacon = qdf_mem_malloc(sizeof(*pBeacon));
if (!mac->lim.ibss_info.beacon) {
ibss_coalesce_free(mac);
return;
}
qdf_mem_copy(mac->lim.ibss_info.mac_hdr, pHdr, sizeof(*pHdr));
qdf_mem_copy(mac->lim.ibss_info.beacon, pBeacon, sizeof(*pBeacon));
}
static QDF_STATUS lim_ibss_add_bss( static QDF_STATUS lim_ibss_add_bss(
struct mac_context *mac, struct mac_context *mac,
struct pe_session *session, struct pe_session *session,
@@ -1283,20 +1259,6 @@ end:
} }
} }
static void lim_ibss_bss_delete(struct mac_context *mac,
struct pe_session *pe_session)
{
QDF_STATUS status;
status = wlan_vdev_mlme_sm_deliver_evt(
pe_session->vdev,
WLAN_VDEV_SM_EV_DOWN,
sizeof(*pe_session),
pe_session);
if (QDF_IS_STATUS_ERROR(status))
pe_err("Deliver WLAN_VDEV_SM_EV_DOWN failed");
}
QDF_STATUS QDF_STATUS
lim_ibss_coalesce(struct mac_context *mac, lim_ibss_coalesce(struct mac_context *mac,
tpSirMacMgmtHdr pHdr, tpSirMacMgmtHdr pHdr,
@@ -1318,49 +1280,6 @@ lim_ibss_coalesce(struct mac_context *mac,
QDF_MAC_ADDR_STR, QDF_MAC_ADDR_ARRAY(currentBssId), QDF_MAC_ADDR_STR, QDF_MAC_ADDR_ARRAY(currentBssId),
QDF_MAC_ADDR_ARRAY(pHdr->bssId)); QDF_MAC_ADDR_ARRAY(pHdr->bssId));
/* Check for IBSS Coalescing only if Beacon is from different BSS */
if (qdf_mem_cmp(currentBssId, pHdr->bssId, sizeof(tSirMacAddr))
&& pe_session->isCoalesingInIBSSAllowed) {
/*
* If STA entry is already available in the LIM hash table, then it is
* possible that the peer may have left and rejoined within the heartbeat
* timeout. In the offloaded case with 32 peers, the HB timeout is whopping
* 128 seconds. In that case, the FW will not let any frames come in until
* atleast the last sequence number is received before the peer is left
* Hence, if the coalescing peer is already there in the peer list and if
* the BSSID matches then, invoke delSta() to cleanup the entries. We will
* let the peer coalesce when we receive next beacon from the peer
*/
pPeerNode = ibss_peer_find(mac, pHdr->sa);
if (pPeerNode) {
lim_ibss_delete_peer(mac, pe_session,
pHdr->sa, true);
pe_warn("Peer attempting to reconnect before HB timeout, deleted");
return QDF_STATUS_E_INVAL;
}
if (!fTsfLater) { /* No Coalescing happened. */
pe_warn("No Coalescing happened");
return QDF_STATUS_E_INVAL;
}
/*
* IBSS Coalescing happened.
* save the received beacon, and delete the current BSS. The rest of the
* processing will be done in the delBss response processing
*/
mac->lim.gLimIbssCoalescingHappened = true;
ibss_coalesce_save(mac, pHdr, pBeacon);
pe_debug("IBSS Coalescing happened Delete BSSID :" QDF_MAC_ADDR_STR,
QDF_MAC_ADDR_ARRAY(currentBssId));
lim_ibss_bss_delete(mac, pe_session);
return QDF_STATUS_SUCCESS;
} else {
if (qdf_mem_cmp
(currentBssId, pHdr->bssId, sizeof(tSirMacAddr)))
return QDF_STATUS_E_INVAL;
}
/* STA in IBSS mode and SSID matches with ours */ /* STA in IBSS mode and SSID matches with ours */
pPeerNode = ibss_peer_find(mac, pHdr->sa); pPeerNode = ibss_peer_find(mac, pHdr->sa);
if (!pPeerNode) { if (!pPeerNode) {

View File

@@ -464,8 +464,6 @@ lim_configure_ap_start_bss_session(struct mac_context *mac_ctx,
sme_start_bss_req->vendor_vht_sap; sme_start_bss_req->vendor_vht_sap;
lim_get_short_slot_from_phy_mode(mac_ctx, session, session->gLimPhyMode, lim_get_short_slot_from_phy_mode(mac_ctx, session, session->gLimPhyMode,
&session->shortSlotTimeSupported); &session->shortSlotTimeSupported);
session->isCoalesingInIBSSAllowed =
sme_start_bss_req->isCoalesingInIBSSAllowed;
session->beacon_tx_rate = sme_start_bss_req->beacon_tx_rate; session->beacon_tx_rate = sme_start_bss_req->beacon_tx_rate;

View File

@@ -131,16 +131,12 @@ typedef enum {
* enum eCsrRoamBssType - BSS type in CSR operations * enum eCsrRoamBssType - BSS type in CSR operations
* @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_IBSS: IBSS network we'll not start
* @eCSR_BSS_TYPE_START_IBSS: IBSS network we'll start if no partners found
* @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 (IBSS or Infrastructure)
*/ */
typedef enum { typedef enum {
eCSR_BSS_TYPE_INFRASTRUCTURE, eCSR_BSS_TYPE_INFRASTRUCTURE,
eCSR_BSS_TYPE_INFRA_AP, eCSR_BSS_TYPE_INFRA_AP,
eCSR_BSS_TYPE_IBSS,
eCSR_BSS_TYPE_START_IBSS,
eCSR_BSS_TYPE_NDI, eCSR_BSS_TYPE_NDI,
eCSR_BSS_TYPE_ANY, eCSR_BSS_TYPE_ANY,
} eCsrRoamBssType; } eCsrRoamBssType;
@@ -321,8 +317,6 @@ typedef enum {
* to struct mic_failure_ind * to struct mic_failure_ind
*/ */
eCSR_ROAM_MIC_ERROR_IND, eCSR_ROAM_MIC_ERROR_IND,
/* IBSS indications. */
eCSR_ROAM_IBSS_IND,
/* /*
* Update the connection status, useful for IBSS: new peer added, * Update the connection status, useful for IBSS: new peer added,
* network is active etc. * network is active etc.
@@ -330,7 +324,6 @@ typedef enum {
eCSR_ROAM_CONNECT_STATUS_UPDATE, eCSR_ROAM_CONNECT_STATUS_UPDATE,
eCSR_ROAM_GEN_INFO, eCSR_ROAM_GEN_INFO,
eCSR_ROAM_SET_KEY_COMPLETE, eCSR_ROAM_SET_KEY_COMPLETE,
eCSR_ROAM_IBSS_LEAVE, /* IBSS indications. */
/* BSS in SoftAP mode status indication */ /* BSS in SoftAP mode status indication */
eCSR_ROAM_INFRA_IND, eCSR_ROAM_INFRA_IND,
eCSR_ROAM_WPS_PBC_PROBE_REQ_IND, eCSR_ROAM_WPS_PBC_PROBE_REQ_IND,
@@ -364,8 +357,6 @@ typedef enum {
eCSR_ROAM_UNPROT_MGMT_FRAME_IND, eCSR_ROAM_UNPROT_MGMT_FRAME_IND,
#endif #endif
eCSR_ROAM_IBSS_PEER_INFO_COMPLETE,
#ifdef FEATURE_WLAN_ESE #ifdef FEATURE_WLAN_ESE
eCSR_ROAM_TSM_IE_IND, eCSR_ROAM_TSM_IE_IND,
eCSR_ROAM_CCKM_PREAUTH_NOTIFY, eCSR_ROAM_CCKM_PREAUTH_NOTIFY,
@@ -411,39 +402,6 @@ typedef enum {
eCSR_ROAM_RESULT_DISASSOC_IND, eCSR_ROAM_RESULT_DISASSOC_IND,
eCSR_ROAM_RESULT_DEAUTH_IND, eCSR_ROAM_RESULT_DEAUTH_IND,
eCSR_ROAM_RESULT_CAP_CHANGED, eCSR_ROAM_RESULT_CAP_CHANGED,
/*
* This means we starts an IBSS struct csr_roam_info's
* bss_desc may pass back
*/
eCSR_ROAM_RESULT_IBSS_STARTED,
eCSR_ROAM_RESULT_IBSS_START_FAILED,
eCSR_ROAM_RESULT_IBSS_JOIN_SUCCESS,
eCSR_ROAM_RESULT_IBSS_JOIN_FAILED,
eCSR_ROAM_RESULT_IBSS_CONNECT,
eCSR_ROAM_RESULT_IBSS_INACTIVE,
/*
* If roamStatus is eCSR_ROAM_ASSOCIATION_COMPLETION struct
* csr_roam_info's bss_desc may pass back and the peer's MAC
* address in peerMacOrBssid. If roamStatus is
* eCSR_ROAM_IBSS_IND, the peer's MAC address in
* peerMacOrBssid and a beacon frame of the IBSS in pbFrames
*/
eCSR_ROAM_RESULT_IBSS_NEW_PEER,
/*
* Peer departed from IBSS, Callback may get a pointer tSmeIbssPeerInd
* in pIbssPeerInd
*/
eCSR_ROAM_RESULT_IBSS_PEER_DEPARTED,
/*
* Coalescing in the IBSS network (joined an IBSS network)
* Callback pass a BSSID in peerMacOrBssid
*/
eCSR_ROAM_RESULT_IBSS_COALESCED,
/*
* If roamStatus is eCSR_ROAM_ROAMING_START, callback may get a pointer
* to tCsrConnectedProfile used to connect.
*/
eCSR_ROAM_RESULT_IBSS_STOP,
eCSR_ROAM_RESULT_LOSTLINK, eCSR_ROAM_RESULT_LOSTLINK,
eCSR_ROAM_RESULT_MIC_ERROR_UNICAST, eCSR_ROAM_RESULT_MIC_ERROR_UNICAST,
eCSR_ROAM_RESULT_MIC_ERROR_GROUP, eCSR_ROAM_RESULT_MIC_ERROR_GROUP,
@@ -481,9 +439,6 @@ typedef enum {
eCSR_ROAM_RESULT_TDLS_SHOULD_TEARDOWN, eCSR_ROAM_RESULT_TDLS_SHOULD_TEARDOWN,
eCSR_ROAM_RESULT_TDLS_SHOULD_PEER_DISCONNECTED, eCSR_ROAM_RESULT_TDLS_SHOULD_PEER_DISCONNECTED,
eCSR_ROAM_RESULT_TDLS_CONNECTION_TRACKER_NOTIFICATION, eCSR_ROAM_RESULT_TDLS_CONNECTION_TRACKER_NOTIFICATION,
eCSR_ROAM_RESULT_IBSS_PEER_INFO_SUCCESS,
eCSR_ROAM_RESULT_IBSS_PEER_INFO_FAILED,
eCSR_ROAM_RESULT_DFS_RADAR_FOUND_IND, eCSR_ROAM_RESULT_DFS_RADAR_FOUND_IND,
eCSR_ROAM_RESULT_CHANNEL_CHANGE_SUCCESS, eCSR_ROAM_RESULT_CHANNEL_CHANGE_SUCCESS,
eCSR_ROAM_RESULT_CHANNEL_CHANGE_FAILURE, eCSR_ROAM_RESULT_CHANNEL_CHANGE_FAILURE,
@@ -514,7 +469,6 @@ typedef enum {
eCSR_DISCONNECT_REASON_DISASSOC, eCSR_DISCONNECT_REASON_DISASSOC,
eCSR_DISCONNECT_REASON_DEAUTH, eCSR_DISCONNECT_REASON_DEAUTH,
eCSR_DISCONNECT_REASON_HANDOFF, eCSR_DISCONNECT_REASON_HANDOFF,
eCSR_DISCONNECT_REASON_IBSS_LEAVE,
eCSR_DISCONNECT_REASON_STA_HAS_LEFT, eCSR_DISCONNECT_REASON_STA_HAS_LEFT,
eCSR_DISCONNECT_REASON_NDI_DELETE, eCSR_DISCONNECT_REASON_NDI_DELETE,
eCSR_DISCONNECT_REASON_ROAM_HO_FAIL, eCSR_DISCONNECT_REASON_ROAM_HO_FAIL,
@@ -525,10 +479,6 @@ typedef enum {
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,
/* Participating in IBSS network though disconnection */
eCSR_ASSOC_STATE_TYPE_IBSS_DISCONNECTED,
/* Participating in IBSS network with partner stations also present */
eCSR_ASSOC_STATE_TYPE_IBSS_CONNECTED,
/* Participating in WDS network in AP/STA mode but not connected yet */ /* Participating in WDS network in AP/STA mode but not connected yet */
eCSR_ASSOC_STATE_TYPE_WDS_DISCONNECTED, eCSR_ASSOC_STATE_TYPE_WDS_DISCONNECTED,
/* Participating in a WDS network and connected peer to peer */ /* Participating in a WDS network and connected peer to peer */
@@ -938,7 +888,6 @@ struct csr_config_params {
uint8_t fEnableDFSChnlScan; uint8_t fEnableDFSChnlScan;
bool send_smps_action; bool send_smps_action;
uint8_t isCoalesingInIBSSAllowed;
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
uint8_t cc_switch_mode; uint8_t cc_switch_mode;
#endif #endif
@@ -996,10 +945,6 @@ struct csr_roam_info {
bool fReassocReq; /* set to true if for re-association */ bool fReassocReq; /* set to true if for re-association */
bool fReassocRsp; /* set to true if for re-association */ bool fReassocRsp; /* set to true if for re-association */
struct qdf_mac_addr bssid; struct qdf_mac_addr bssid;
/*
* Only valid in IBSS. this is the peers MAC address for
* eCSR_ROAM_RESULT_IBSS_NEW_PEER or PEER_DEPARTED
*/
struct qdf_mac_addr peerMac; struct qdf_mac_addr peerMac;
tSirResultCodes status_code; tSirResultCodes status_code;
/* this'd be our own defined or sent from otherBSS(per 802.11spec) */ /* this'd be our own defined or sent from otherBSS(per 802.11spec) */
@@ -1291,12 +1236,6 @@ typedef QDF_STATUS (*csr_session_open_cb)(uint8_t session_id,
QDF_STATUS qdf_status); QDF_STATUS qdf_status);
typedef QDF_STATUS (*csr_session_close_cb)(uint8_t session_id); typedef QDF_STATUS (*csr_session_close_cb)(uint8_t session_id);
#define CSR_IS_START_IBSS(pProfile) (eCSR_BSS_TYPE_START_IBSS == \
(pProfile)->BSSType)
#define CSR_IS_JOIN_TO_IBSS(pProfile) (eCSR_BSS_TYPE_IBSS == \
(pProfile)->BSSType)
#define CSR_IS_IBSS(pProfile) (CSR_IS_START_IBSS(pProfile) || \
CSR_IS_JOIN_TO_IBSS(pProfile))
#define CSR_IS_INFRASTRUCTURE(pProfile) (eCSR_BSS_TYPE_INFRASTRUCTURE == \ #define CSR_IS_INFRASTRUCTURE(pProfile) (eCSR_BSS_TYPE_INFRASTRUCTURE == \
(pProfile)->BSSType) (pProfile)->BSSType)
#define CSR_IS_ANY_BSS_TYPE(pProfile) (eCSR_BSS_TYPE_ANY == \ #define CSR_IS_ANY_BSS_TYPE(pProfile) (eCSR_BSS_TYPE_ANY == \

View File

@@ -115,7 +115,6 @@ enum csr_roam_reason {
eCsrSmeIssuedDisassocForHandoff, eCsrSmeIssuedDisassocForHandoff,
/* will be issued by Handoff logic to join a new AP with same profile */ /* will be issued by Handoff logic to join a new AP with same profile */
eCsrSmeIssuedAssocToSimilarAP, eCsrSmeIssuedAssocToSimilarAP,
eCsrForcedIbssLeave,
eCsrStopBss, eCsrStopBss,
eCsrSmeIssuedFTReassoc, eCsrSmeIssuedFTReassoc,
eCsrForcedDisassocSta, eCsrForcedDisassocSta,
@@ -159,8 +158,6 @@ enum csr_roam_state {
enum csr_join_state { enum csr_join_state {
eCsrContinueRoaming, eCsrContinueRoaming,
eCsrStopRoaming, eCsrStopRoaming,
eCsrStartIbss,
eCsrStartIbssSameIbss,
eCsrReassocToSelfNoCapChange, eCsrReassocToSelfNoCapChange,
eCsrStopRoamingDueToConcurrency, eCsrStopRoamingDueToConcurrency,
@@ -356,7 +353,6 @@ struct csr_config {
bool doBMPSWorkaround; bool doBMPSWorkaround;
uint32_t nVhtChannelWidth; uint32_t nVhtChannelWidth;
bool send_smps_action; bool send_smps_action;
uint8_t isCoalesingInIBSSAllowed;
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
uint8_t cc_switch_mode; uint8_t cc_switch_mode;
#endif #endif
@@ -835,59 +831,6 @@ bool csr_is_conn_state_connected(struct mac_context *mac,
bool csr_is_conn_state_infra(struct mac_context *mac, bool csr_is_conn_state_infra(struct mac_context *mac,
uint32_t sessionId); uint32_t sessionId);
#ifdef QCA_IBSS_SUPPORT
/**
* csr_is_conn_state_ibss() - get the connection state for ibss session
* @mac_ctx: pointer to global mac structure
* @sessionId: session id
*
*
* Return: true if IBSS connected/disconnected state, else flase
*/
bool csr_is_conn_state_ibss(struct mac_context *mac, uint32_t sessionId);
/**
* csr_is_conn_state_connected_ibss() - get the connected state for ibss
* @mac_ctx: pointer to global mac structure
* @sessionId: session id
*
*
* Return: true if IBSS connected state, else false
*/
bool csr_is_conn_state_connected_ibss(struct mac_context *mac,
uint32_t sessionId);
/**
* csr_is_conn_state_connected_ibss() - get the connected state for ibss
* @mac_ctx: pointer to global mac structure
* @sessionId: session id
*
*
* Return: true if IBSS disconnected state, else false
*/
bool csr_is_conn_state_disconnected_ibss(struct mac_context *mac,
uint32_t sessionId);
#else
static inline bool
csr_is_conn_state_ibss(struct mac_context *mac, uint32_t sessionId)
{
return false;
}
static inline bool
csr_is_conn_state_connected_ibss(struct mac_context *mac, uint32_t sessionId)
{
return false;
}
static inline bool
csr_is_conn_state_disconnected_ibss(struct mac_context *mac,
uint32_t sessionId)
{
return false;
}
#endif
bool csr_is_conn_state_wds(struct mac_context *mac, uint32_t sessionId); bool csr_is_conn_state_wds(struct mac_context *mac, uint32_t sessionId);
bool csr_is_conn_state_connected_wds(struct mac_context *mac, bool csr_is_conn_state_connected_wds(struct mac_context *mac,
uint32_t sessionId); uint32_t sessionId);

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2011-2019 The Linux Foundation. All rights reserved. * Copyright (c) 2011-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
@@ -230,35 +230,6 @@ csr_get_qos_from_bss_desc(struct mac_context *mac_ctx,
bool csr_is_nullssid(uint8_t *pBssSsid, uint8_t len); bool csr_is_nullssid(uint8_t *pBssSsid, uint8_t len);
bool csr_is_infra_bss_desc(struct bss_description *pSirBssDesc); bool csr_is_infra_bss_desc(struct bss_description *pSirBssDesc);
#ifdef QCA_IBSS_SUPPORT
/**
* csr_is_ibss_bss_desc() - API to check bss desc of ibss type
* @pSirBssDesc: pointer to pSirBssDesc structure
*
* Return: true if bss desc of ibss type, else false
*/
bool csr_is_ibss_bss_desc(struct bss_description *pSirBssDesc);
/**
* csr_is_ibss_bss_desc() - API to check bss desc of ibss type
* @bssType: bss type
*
* Return: true if bss type is ibss type, else false
*/
bool csr_is_bss_type_ibss(eCsrRoamBssType bssType);
#else
static inline
bool csr_is_bss_type_ibss(eCsrRoamBssType bssType)
{
return false;
}
static inline
bool csr_is_ibss_bss_desc(struct bss_description *pSirBssDesc)
{
return false;
}
#endif
tSirResultCodes csr_get_de_auth_rsp_status_code(struct deauth_rsp *pSmeRsp); tSirResultCodes csr_get_de_auth_rsp_status_code(struct deauth_rsp *pSmeRsp);
uint32_t csr_get_frag_thresh(struct mac_context *mac_ctx); uint32_t csr_get_frag_thresh(struct mac_context *mac_ctx);
uint32_t csr_get_rts_thresh(struct mac_context *mac_ctx); uint32_t csr_get_rts_thresh(struct mac_context *mac_ctx);

View File

@@ -1212,34 +1212,6 @@ QDF_STATUS sme_send_rmc_action_period(mac_handle_t mac_handle,
uint32_t sessionId); uint32_t sessionId);
#endif #endif
#ifdef QCA_IBSS_SUPPORT
/*
* sme_request_ibss_peer_info() - request ibss peer info
* @mac_handle: Opaque handle to the global MAC context
* @cb_context: Pointer to user data
* @peer_info_cb: Peer info callback
* @allPeerInfoReqd: All peer info required or not
* @staIdx: sta index
*
* Return: QDF_STATUS
*/
QDF_STATUS sme_request_ibss_peer_info(mac_handle_t mac_handle,
void *cb_context,
ibss_peer_info_cb peer_info_cb,
bool allPeerInfoReqd,
uint8_t *mac_addr);
#else
static inline
QDF_STATUS sme_request_ibss_peer_info(mac_handle_t mac_handle,
void *cb_context,
ibss_peer_info_cb peer_info_cb,
bool allPeerInfoReqd,
uint8_t *mac_addr)
{
return QDF_STATUS_SUCCESS;
}
#endif
QDF_STATUS sme_send_cesium_enable_ind(mac_handle_t mac_handle, QDF_STATUS sme_send_cesium_enable_ind(mac_handle_t mac_handle,
uint32_t sessionId); uint32_t sessionId);

View File

@@ -71,16 +71,6 @@ typedef enum eSmeState {
#define SME_IS_START(mac) (SME_STATE_STOP != (mac)->sme.state) #define SME_IS_START(mac) (SME_STATE_STOP != (mac)->sme.state)
#define SME_IS_READY(mac) (SME_STATE_READY == (mac)->sme.state) #define SME_IS_READY(mac) (SME_STATE_READY == (mac)->sme.state)
/* HDD Callback function */
typedef void (*ibss_peer_info_cb)(void *cb_context,
tSirPeerInfoRspParams *infoParam);
/* Peer info */
struct ibss_peer_info_cb_info {
void *peer_info_cb_context;
ibss_peer_info_cb peer_info_cb;
};
/** /**
* struct stats_ext_event - stats_ext_event payload * struct stats_ext_event - stats_ext_event payload
* @vdev_id: ID of the vdev for the stats * @vdev_id: ID of the vdev for the stats
@@ -291,7 +281,6 @@ struct sme_context {
void **sme_cmd_buf_addr; void **sme_cmd_buf_addr;
tDblLinkList sme_cmd_freelist; /* preallocated roam cmd list */ tDblLinkList sme_cmd_freelist; /* preallocated roam cmd list */
enum QDF_OPMODE curr_device_mode; enum QDF_OPMODE curr_device_mode;
struct ibss_peer_info_cb_info peer_info_cb_info;
#ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR #ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR
host_event_wlan_status_payload_type eventPayload; host_event_wlan_status_payload_type eventPayload;
#endif #endif

View File

@@ -1837,94 +1837,6 @@ QDF_STATUS sme_get_roam_scan_ch(mac_handle_t mac_handle,
} }
#endif #endif
#ifdef QCA_IBSS_SUPPORT
/**
* sme_ibss_peer_info_response_handler() - Handler for ibss peer info
* @mac: Global MAC pointer
* @sme_ibss_peer_info_response_handler: ibss peer info params
*
* Return: QDF_STATUS
*/
static
QDF_STATUS sme_ibss_peer_info_response_handler(struct mac_context *mac,
tpSirIbssGetPeerInfoRspParams
pIbssPeerInfoParams)
{
struct ibss_peer_info_cb_info *cb_info;
if (!mac) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_FATAL,
"%s: mac is null", __func__);
return QDF_STATUS_E_FAILURE;
}
cb_info = &mac->sme.peer_info_cb_info;
if (!cb_info->peer_info_cb) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
"%s: HDD callback is null", __func__);
return QDF_STATUS_E_FAILURE;
}
cb_info->peer_info_cb(cb_info->peer_info_cb_context,
&pIbssPeerInfoParams->ibssPeerInfoRspParams);
return QDF_STATUS_SUCCESS;
}
QDF_STATUS sme_request_ibss_peer_info(mac_handle_t mac_handle, void *cb_context,
ibss_peer_info_cb peer_info_cb,
bool allPeerInfoReqd, uint8_t *mac_addr)
{
QDF_STATUS status = QDF_STATUS_E_FAILURE;
QDF_STATUS qdf_status = QDF_STATUS_E_FAILURE;
struct mac_context *mac = MAC_CONTEXT(mac_handle);
struct scheduler_msg message = {0};
tSirIbssGetPeerInfoReqParams *pIbssInfoReqParams;
struct ibss_peer_info_cb_info *cb_info;
status = sme_acquire_global_lock(&mac->sme);
if (status == QDF_STATUS_SUCCESS) {
cb_info = &mac->sme.peer_info_cb_info;
cb_info->peer_info_cb = peer_info_cb;
cb_info->peer_info_cb_context = cb_context;
pIbssInfoReqParams = (tSirIbssGetPeerInfoReqParams *)
qdf_mem_malloc(sizeof(tSirIbssGetPeerInfoReqParams));
if (!pIbssInfoReqParams) {
sme_release_global_lock(&mac->sme);
return QDF_STATUS_E_NOMEM;
}
pIbssInfoReqParams->allPeerInfoReqd = allPeerInfoReqd;
qdf_mem_copy(pIbssInfoReqParams->peer_mac.bytes, mac_addr,
QDF_MAC_ADDR_SIZE);
message.type = WMA_GET_IBSS_PEER_INFO_REQ;
message.bodyptr = pIbssInfoReqParams;
message.reserved = 0;
qdf_status = scheduler_post_message(QDF_MODULE_ID_SME,
QDF_MODULE_ID_WMA,
QDF_MODULE_ID_WMA,
&message);
if (qdf_status != QDF_STATUS_SUCCESS) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
"%s: Post WMA_GET_IBSS_PEER_INFO_REQ MSG failed",
__func__);
qdf_mem_free(pIbssInfoReqParams);
qdf_status = QDF_STATUS_E_FAILURE;
}
sme_release_global_lock(&mac->sme);
}
return qdf_status;
}
#else
static inline
QDF_STATUS sme_ibss_peer_info_response_handler(struct mac_context *mac,
tpSirIbssGetPeerInfoRspParams
pIbssPeerInfoParams)
{
return QDF_STATUS_SUCCESS;
}
#endif
/** /**
* sme_process_dual_mac_config_resp() - Process set Dual mac config response * sme_process_dual_mac_config_resp() - Process set Dual mac config response
* @mac: Global MAC pointer * @mac: Global MAC pointer
@@ -2192,15 +2104,6 @@ QDF_STATUS sme_process_msg(struct mac_context *mac, struct scheduler_msg *pMsg)
pMsg->bodyptr); pMsg->bodyptr);
qdf_mem_free(pMsg->bodyptr); qdf_mem_free(pMsg->bodyptr);
break; break;
case eWNI_SME_IBSS_PEER_INFO_RSP:
if (pMsg->bodyptr) {
sme_ibss_peer_info_response_handler(mac,
pMsg->bodyptr);
qdf_mem_free(pMsg->bodyptr);
} else {
sme_err("Empty message for: %d", pMsg->type);
}
break;
#ifdef WLAN_FEATURE_EXTWOW_SUPPORT #ifdef WLAN_FEATURE_EXTWOW_SUPPORT
case eWNI_SME_READY_TO_EXTWOW_IND: case eWNI_SME_READY_TO_EXTWOW_IND:
if (pMsg->bodyptr) { if (pMsg->bodyptr) {
@@ -4811,11 +4714,7 @@ QDF_STATUS sme_get_operation_channel(mac_handle_t mac_handle,
if ((pSession->connectedProfile.BSSType == if ((pSession->connectedProfile.BSSType ==
eCSR_BSS_TYPE_INFRASTRUCTURE) eCSR_BSS_TYPE_INFRASTRUCTURE)
|| (pSession->connectedProfile.BSSType == || (pSession->connectedProfile.BSSType ==
eCSR_BSS_TYPE_IBSS) eCSR_BSS_TYPE_INFRA_AP)) {
|| (pSession->connectedProfile.BSSType ==
eCSR_BSS_TYPE_INFRA_AP)
|| (pSession->connectedProfile.BSSType ==
eCSR_BSS_TYPE_START_IBSS)) {
*chan_freq = pSession->connectedProfile.op_freq; *chan_freq = pSession->connectedProfile.op_freq;
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }

File diff suppressed because it is too large Load Diff

View File

@@ -256,28 +256,7 @@ QDF_STATUS csr_scan_handle_search_for_ssid_failure(struct mac_context *mac_ctx,
profile = session->scan_info.profile; profile = session->scan_info.profile;
/*
* Check whether it is for start ibss. No need to do anything if it
* is a JOIN request
*/
if (profile && CSR_IS_START_IBSS(profile)) {
status = csr_roam_issue_connect(mac_ctx, session_id, profile, NULL,
eCsrHddIssued, session->scan_info.roam_id,
true, true);
if (!QDF_IS_STATUS_SUCCESS(status)) {
sme_err("failed to issue startIBSS, session_id %d status: 0x%08X roam id %d",
session_id, status, session->scan_info.roam_id);
csr_roam_call_callback(mac_ctx, session_id, NULL,
session->scan_info.roam_id, eCSR_ROAM_FAILED,
eCSR_ROAM_RESULT_FAILURE);
}
return status;
}
roam_result = eCSR_ROAM_RESULT_FAILURE; roam_result = eCSR_ROAM_RESULT_FAILURE;
if (profile && csr_is_bss_type_ibss(profile->BSSType)) {
roam_result = eCSR_ROAM_RESULT_IBSS_START_FAILED;
goto roam_completion;
}
roam_info = qdf_mem_malloc(sizeof(struct csr_roam_info)); roam_info = qdf_mem_malloc(sizeof(struct csr_roam_info));
if (!roam_info) if (!roam_info)

View File

@@ -61,7 +61,6 @@ enum csr_roamcomplete_result {
eCsrNothingToJoin, eCsrNothingToJoin,
eCsrStartBssSuccess, eCsrStartBssSuccess,
eCsrStartBssFailure, eCsrStartBssFailure,
eCsrSilentlyStopRoaming,
eCsrSilentlyStopRoamingSaveState, eCsrSilentlyStopRoamingSaveState,
eCsrJoinFailureDueToConcurrency, eCsrJoinFailureDueToConcurrency,
eCsrStopBssSuccess, eCsrStopBssSuccess,
@@ -590,17 +589,6 @@ void csr_get_vdev_type_nss(enum QDF_OPMODE dev_mode, uint8_t *nss_2g,
#define WLAN_SCAN_STATUS_FAILURE 1 #define WLAN_SCAN_STATUS_FAILURE 1
#define WLAN_SCAN_STATUS_ABORT 2 #define WLAN_SCAN_STATUS_ABORT 2
/* Ibss */
#define WLAN_IBSS_EVENT_START_IBSS_REQ 0
#define WLAN_IBSS_EVENT_START_IBSS_RSP 1
#define WLAN_IBSS_EVENT_JOIN_IBSS_REQ 2
#define WLAN_IBSS_EVENT_JOIN_IBSS_RSP 3
#define WLAN_IBSS_EVENT_COALESCING 4
#define WLAN_IBSS_EVENT_PEER_JOIN 5
#define WLAN_IBSS_EVENT_PEER_LEAVE 6
#define WLAN_IBSS_EVENT_STOP_REQ 7
#define WLAN_IBSS_EVENT_STOP_RSP 8
#define AUTO_PICK 0 #define AUTO_PICK 0
#define SPECIFIED 1 #define SPECIFIED 1

View File

@@ -402,9 +402,6 @@ csr_neighbor_roam_get_scan_filter_from_profile(struct mac_context *mac,
if (profile->BSSType == eCSR_BSS_TYPE_INFRASTRUCTURE) if (profile->BSSType == eCSR_BSS_TYPE_INFRASTRUCTURE)
filter->bss_type = WLAN_TYPE_BSS; filter->bss_type = WLAN_TYPE_BSS;
else if (profile->BSSType == eCSR_BSS_TYPE_IBSS ||
profile->BSSType == eCSR_BSS_TYPE_START_IBSS)
filter->bss_type = WLAN_TYPE_IBSS;
else else
filter->bss_type = WLAN_TYPE_ANY; filter->bss_type = WLAN_TYPE_ANY;

View File

@@ -254,11 +254,9 @@ const char *get_e_roam_cmd_status_str(eRoamCmdStatus val)
CASE_RETURN_STR(eCSR_ROAM_LOSTLINK); CASE_RETURN_STR(eCSR_ROAM_LOSTLINK);
CASE_RETURN_STR(eCSR_ROAM_LOSTLINK_DETECTED); CASE_RETURN_STR(eCSR_ROAM_LOSTLINK_DETECTED);
CASE_RETURN_STR(eCSR_ROAM_MIC_ERROR_IND); CASE_RETURN_STR(eCSR_ROAM_MIC_ERROR_IND);
CASE_RETURN_STR(eCSR_ROAM_IBSS_IND);
CASE_RETURN_STR(eCSR_ROAM_CONNECT_STATUS_UPDATE); CASE_RETURN_STR(eCSR_ROAM_CONNECT_STATUS_UPDATE);
CASE_RETURN_STR(eCSR_ROAM_GEN_INFO); CASE_RETURN_STR(eCSR_ROAM_GEN_INFO);
CASE_RETURN_STR(eCSR_ROAM_SET_KEY_COMPLETE); CASE_RETURN_STR(eCSR_ROAM_SET_KEY_COMPLETE);
CASE_RETURN_STR(eCSR_ROAM_IBSS_LEAVE);
CASE_RETURN_STR(eCSR_ROAM_INFRA_IND); CASE_RETURN_STR(eCSR_ROAM_INFRA_IND);
CASE_RETURN_STR(eCSR_ROAM_WPS_PBC_PROBE_REQ_IND); CASE_RETURN_STR(eCSR_ROAM_WPS_PBC_PROBE_REQ_IND);
CASE_RETURN_STR(eCSR_ROAM_FT_RESPONSE); CASE_RETURN_STR(eCSR_ROAM_FT_RESPONSE);
@@ -281,9 +279,6 @@ const char *get_e_roam_cmd_status_str(eRoamCmdStatus val)
#ifdef WLAN_FEATURE_11W #ifdef WLAN_FEATURE_11W
CASE_RETURN_STR(eCSR_ROAM_UNPROT_MGMT_FRAME_IND); CASE_RETURN_STR(eCSR_ROAM_UNPROT_MGMT_FRAME_IND);
#endif #endif
#ifdef WLAN_FEATURE_RMC
CASE_RETURN_STR(eCSR_ROAM_IBSS_PEER_INFO_COMPLETE);
#endif
#ifdef FEATURE_WLAN_ESE #ifdef FEATURE_WLAN_ESE
CASE_RETURN_STR(eCSR_ROAM_TSM_IE_IND); CASE_RETURN_STR(eCSR_ROAM_TSM_IE_IND);
CASE_RETURN_STR(eCSR_ROAM_CCKM_PREAUTH_NOTIFY); CASE_RETURN_STR(eCSR_ROAM_CCKM_PREAUTH_NOTIFY);
@@ -320,16 +315,6 @@ const char *get_e_csr_roam_result_str(eCsrRoamResult val)
CASE_RETURN_STR(eCSR_ROAM_RESULT_DISASSOC_IND); CASE_RETURN_STR(eCSR_ROAM_RESULT_DISASSOC_IND);
CASE_RETURN_STR(eCSR_ROAM_RESULT_DEAUTH_IND); CASE_RETURN_STR(eCSR_ROAM_RESULT_DEAUTH_IND);
CASE_RETURN_STR(eCSR_ROAM_RESULT_CAP_CHANGED); CASE_RETURN_STR(eCSR_ROAM_RESULT_CAP_CHANGED);
CASE_RETURN_STR(eCSR_ROAM_RESULT_IBSS_STARTED);
CASE_RETURN_STR(eCSR_ROAM_RESULT_IBSS_START_FAILED);
CASE_RETURN_STR(eCSR_ROAM_RESULT_IBSS_JOIN_SUCCESS);
CASE_RETURN_STR(eCSR_ROAM_RESULT_IBSS_JOIN_FAILED);
CASE_RETURN_STR(eCSR_ROAM_RESULT_IBSS_CONNECT);
CASE_RETURN_STR(eCSR_ROAM_RESULT_IBSS_INACTIVE);
CASE_RETURN_STR(eCSR_ROAM_RESULT_IBSS_NEW_PEER);
CASE_RETURN_STR(eCSR_ROAM_RESULT_IBSS_PEER_DEPARTED);
CASE_RETURN_STR(eCSR_ROAM_RESULT_IBSS_COALESCED);
CASE_RETURN_STR(eCSR_ROAM_RESULT_IBSS_STOP);
CASE_RETURN_STR(eCSR_ROAM_RESULT_LOSTLINK); CASE_RETURN_STR(eCSR_ROAM_RESULT_LOSTLINK);
CASE_RETURN_STR(eCSR_ROAM_RESULT_MIC_ERROR_UNICAST); CASE_RETURN_STR(eCSR_ROAM_RESULT_MIC_ERROR_UNICAST);
CASE_RETURN_STR(eCSR_ROAM_RESULT_MIC_ERROR_GROUP); CASE_RETURN_STR(eCSR_ROAM_RESULT_MIC_ERROR_GROUP);
@@ -359,8 +344,6 @@ const char *get_e_csr_roam_result_str(eCsrRoamResult val)
CASE_RETURN_STR(eCSR_ROAM_RESULT_TDLS_SHOULD_PEER_DISCONNECTED); CASE_RETURN_STR(eCSR_ROAM_RESULT_TDLS_SHOULD_PEER_DISCONNECTED);
CASE_RETURN_STR CASE_RETURN_STR
(eCSR_ROAM_RESULT_TDLS_CONNECTION_TRACKER_NOTIFICATION); (eCSR_ROAM_RESULT_TDLS_CONNECTION_TRACKER_NOTIFICATION);
CASE_RETURN_STR(eCSR_ROAM_RESULT_IBSS_PEER_INFO_SUCCESS);
CASE_RETURN_STR(eCSR_ROAM_RESULT_IBSS_PEER_INFO_FAILED);
CASE_RETURN_STR(eCSR_ROAM_RESULT_DFS_RADAR_FOUND_IND); CASE_RETURN_STR(eCSR_ROAM_RESULT_DFS_RADAR_FOUND_IND);
CASE_RETURN_STR(eCSR_ROAM_RESULT_CHANNEL_CHANGE_SUCCESS); CASE_RETURN_STR(eCSR_ROAM_RESULT_CHANNEL_CHANGE_SUCCESS);
CASE_RETURN_STR(eCSR_ROAM_RESULT_CHANNEL_CHANGE_FAILURE); CASE_RETURN_STR(eCSR_ROAM_RESULT_CHANNEL_CHANGE_FAILURE);
@@ -566,9 +549,8 @@ bool csr_is_conn_state_connected_infra(struct mac_context *mac_ctx,
bool csr_is_conn_state_connected(struct mac_context *mac, uint32_t sessionId) bool csr_is_conn_state_connected(struct mac_context *mac, uint32_t sessionId)
{ {
return csr_is_conn_state_connected_ibss(mac, sessionId) || return csr_is_conn_state_connected_infra(mac, sessionId) ||
csr_is_conn_state_connected_infra(mac, sessionId) || csr_is_conn_state_connected_wds(mac, sessionId);
csr_is_conn_state_connected_wds(mac, sessionId);
} }
bool csr_is_conn_state_infra(struct mac_context *mac, uint32_t sessionId) bool csr_is_conn_state_infra(struct mac_context *mac, uint32_t sessionId)
@@ -588,42 +570,6 @@ static tSirMacCapabilityInfo csr_get_bss_capabilities(struct bss_description *
return dot11Caps; return dot11Caps;
} }
#ifdef QCA_IBSS_SUPPORT
bool csr_is_conn_state_connected_ibss(struct mac_context *mac_ctx,
uint32_t session_id)
{
return csr_is_conn_state(mac_ctx, session_id,
eCSR_ASSOC_STATE_TYPE_IBSS_CONNECTED);
}
bool csr_is_conn_state_disconnected_ibss(struct mac_context *mac_ctx,
uint32_t session_id)
{
return csr_is_conn_state(mac_ctx, session_id,
eCSR_ASSOC_STATE_TYPE_IBSS_DISCONNECTED);
}
bool csr_is_conn_state_ibss(struct mac_context *mac, uint32_t sessionId)
{
return csr_is_conn_state_connected_ibss(mac, sessionId) ||
csr_is_conn_state_disconnected_ibss(mac, sessionId);
}
bool csr_is_bss_type_ibss(eCsrRoamBssType bssType)
{
return (bool)
(eCSR_BSS_TYPE_START_IBSS == bssType
|| eCSR_BSS_TYPE_IBSS == bssType);
}
bool csr_is_ibss_bss_desc(struct bss_description *pSirBssDesc)
{
tSirMacCapabilityInfo dot11Caps = csr_get_bss_capabilities(pSirBssDesc);
return (bool) dot11Caps.ibss;
}
#endif
bool csr_is_conn_state_connected_wds(struct mac_context *mac_ctx, bool csr_is_conn_state_connected_wds(struct mac_context *mac_ctx,
uint32_t session_id) uint32_t session_id)
{ {
@@ -672,7 +618,6 @@ bool csr_is_any_session_in_connect_state(struct mac_context *mac)
for (i = 0; i < WLAN_MAX_VDEVS; i++) { for (i = 0; i < WLAN_MAX_VDEVS; i++) {
if (CSR_IS_SESSION_VALID(mac, i) && if (CSR_IS_SESSION_VALID(mac, i) &&
(csr_is_conn_state_infra(mac, i) || (csr_is_conn_state_infra(mac, i) ||
csr_is_conn_state_ibss(mac, i) ||
csr_is_conn_state_ap(mac, i))) { csr_is_conn_state_ap(mac, i))) {
return true; return true;
} }
@@ -3577,10 +3522,6 @@ enum bss_type csr_translate_bsstype_to_mac_type(eCsrRoamBssType csrtype)
case eCSR_BSS_TYPE_INFRASTRUCTURE: case eCSR_BSS_TYPE_INFRASTRUCTURE:
ret = eSIR_INFRASTRUCTURE_MODE; ret = eSIR_INFRASTRUCTURE_MODE;
break; break;
case eCSR_BSS_TYPE_IBSS:
case eCSR_BSS_TYPE_START_IBSS:
ret = eSIR_IBSS_MODE;
break;
case eCSR_BSS_TYPE_INFRA_AP: case eCSR_BSS_TYPE_INFRA_AP:
ret = eSIR_INFRA_AP_MODE; ret = eSIR_INFRA_AP_MODE;
break; break;
@@ -3840,8 +3781,6 @@ const char *sme_bss_type_to_string(const uint8_t bss_type)
switch (bss_type) { switch (bss_type) {
CASE_RETURN_STRING(eCSR_BSS_TYPE_INFRASTRUCTURE); CASE_RETURN_STRING(eCSR_BSS_TYPE_INFRASTRUCTURE);
CASE_RETURN_STRING(eCSR_BSS_TYPE_INFRA_AP); CASE_RETURN_STRING(eCSR_BSS_TYPE_INFRA_AP);
CASE_RETURN_STRING(eCSR_BSS_TYPE_IBSS);
CASE_RETURN_STRING(eCSR_BSS_TYPE_START_IBSS);
CASE_RETURN_STRING(eCSR_BSS_TYPE_ANY); CASE_RETURN_STRING(eCSR_BSS_TYPE_ANY);
default: default:
return "unknown bss type"; return "unknown bss type";