qcacld-3.0: Cleanup SAP flow in CSR

Remove redundant structures in CSR for SAP functionality
and add a new flow to post SAP requests from SAP module to
LIM.

Change-Id: If3339cf138140ea148bbd263960907fb3a01de43
CRs-Fixed: 3123072
Este commit está contenido en:
Surya Prakash Sivaraj
2022-01-20 13:57:53 +05:30
cometido por Madan Koyyalamudi
padre eed1953b12
commit 08bdec292e
Se han modificado 18 ficheros con 675 adiciones y 44 borrados

Ver fichero

@@ -22178,7 +22178,12 @@ static int __wlan_hdd_cfg80211_set_mon_ch(struct wiphy *wiphy,
QDF_STATUS status; QDF_STATUS status;
mac_handle_t mac_handle; mac_handle_t mac_handle;
struct qdf_mac_addr bssid; struct qdf_mac_addr bssid;
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
struct csr_roam_profile roam_profile; struct csr_roam_profile roam_profile;
#else
struct channel_change_req *req;
#endif
struct ch_params ch_params = {0}; struct ch_params ch_params = {0};
int ret; int ret;
enum channel_state chan_freq_state; enum channel_state chan_freq_state;
@@ -22232,10 +22237,13 @@ static int __wlan_hdd_cfg80211_set_mon_ch(struct wiphy *wiphy,
} }
sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter); sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter);
ch_info = &sta_ctx->ch_info; ch_info = &sta_ctx->ch_info;
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
roam_profile.ChannelInfo.freq_list = &ch_info->freq; roam_profile.ChannelInfo.freq_list = &ch_info->freq;
roam_profile.ChannelInfo.numOfChannels = 1; roam_profile.ChannelInfo.numOfChannels = 1;
roam_profile.phyMode = ch_info->phy_mode; roam_profile.phyMode = ch_info->phy_mode;
roam_profile.ch_params.ch_width = ch_width; roam_profile.ch_params.ch_width = ch_width;
#endif
if (WLAN_REG_IS_24GHZ_CH_FREQ(chandef->chan->center_freq) && if (WLAN_REG_IS_24GHZ_CH_FREQ(chandef->chan->center_freq) &&
chandef->width == NL80211_CHAN_WIDTH_40 && chandef->width == NL80211_CHAN_WIDTH_40 &&
chandef->center_freq1) { chandef->center_freq1) {
@@ -22246,8 +22254,11 @@ static int __wlan_hdd_cfg80211_set_mon_ch(struct wiphy *wiphy,
} }
hdd_debug("set mon ch:width=%d, freq %d sec_ch_2g_freq=%d", hdd_debug("set mon ch:width=%d, freq %d sec_ch_2g_freq=%d",
chandef->width, chandef->chan->center_freq, sec_ch_2g_freq); chandef->width, chandef->chan->center_freq, sec_ch_2g_freq);
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
hdd_select_cbmode(adapter, chandef->chan->center_freq, sec_ch_2g_freq, hdd_select_cbmode(adapter, chandef->chan->center_freq, sec_ch_2g_freq,
&roam_profile.ch_params); &roam_profile.ch_params);
#endif
qdf_mem_copy(bssid.bytes, adapter->mac_addr.bytes, qdf_mem_copy(bssid.bytes, adapter->mac_addr.bytes,
QDF_MAC_ADDR_SIZE); QDF_MAC_ADDR_SIZE);
@@ -22273,11 +22284,13 @@ static int __wlan_hdd_cfg80211_set_mon_ch(struct wiphy *wiphy,
return qdf_status_to_os_return(status); return qdf_status_to_os_return(status);
} }
adapter->monitor_mode_vdev_up_in_progress = true; adapter->monitor_mode_vdev_up_in_progress = true;
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
status = sme_roam_channel_change_req(mac_handle, bssid, status = sme_roam_channel_change_req(mac_handle, bssid,
adapter->vdev_id, adapter->vdev_id,
&roam_profile.ch_params, &roam_profile.ch_params,
&roam_profile); &roam_profile);
#endif
if (status) { if (status) {
hdd_err_rl("Failed to set sme_RoamChannel for monitor mode status: %d", hdd_err_rl("Failed to set sme_RoamChannel for monitor mode status: %d",
status); status);

Ver fichero

@@ -8689,7 +8689,10 @@ int wlan_hdd_set_mon_chan(struct hdd_adapter *adapter, qdf_freq_t freq,
struct hdd_mon_set_ch_info *ch_info = &sta_ctx->ch_info; struct hdd_mon_set_ch_info *ch_info = &sta_ctx->ch_info;
QDF_STATUS status; QDF_STATUS status;
struct qdf_mac_addr bssid; struct qdf_mac_addr bssid;
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
struct csr_roam_profile roam_profile; struct csr_roam_profile roam_profile;
#endif
struct ch_params ch_params; struct ch_params ch_params;
enum phy_ch_width max_fw_bw; enum phy_ch_width max_fw_bw;
enum phy_ch_width ch_width; enum phy_ch_width ch_width;
@@ -8732,12 +8735,15 @@ int wlan_hdd_set_mon_chan(struct hdd_adapter *adapter, qdf_freq_t freq,
} }
hdd_debug("Set monitor mode frequency %d", freq); hdd_debug("Set monitor mode frequency %d", freq);
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
qdf_mem_zero(&roam_profile, sizeof(roam_profile)); qdf_mem_zero(&roam_profile, sizeof(roam_profile));
roam_profile.ChannelInfo.freq_list = &ch_info->freq; roam_profile.ChannelInfo.freq_list = &ch_info->freq;
roam_profile.ChannelInfo.numOfChannels = 1; roam_profile.ChannelInfo.numOfChannels = 1;
roam_profile.phyMode = ch_info->phy_mode; roam_profile.phyMode = ch_info->phy_mode;
roam_profile.ch_params.ch_width = bandwidth; roam_profile.ch_params.ch_width = bandwidth;
hdd_select_cbmode(adapter, freq, 0, &roam_profile.ch_params); hdd_select_cbmode(adapter, freq, 0, &roam_profile.ch_params);
#endif
qdf_mem_copy(bssid.bytes, adapter->mac_addr.bytes, qdf_mem_copy(bssid.bytes, adapter->mac_addr.bytes,
QDF_MAC_ADDR_SIZE); QDF_MAC_ADDR_SIZE);
@@ -8766,11 +8772,13 @@ int wlan_hdd_set_mon_chan(struct hdd_adapter *adapter, qdf_freq_t freq,
return qdf_status_to_os_return(status); return qdf_status_to_os_return(status);
} }
adapter->monitor_mode_vdev_up_in_progress = true; adapter->monitor_mode_vdev_up_in_progress = true;
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
status = sme_roam_channel_change_req(hdd_ctx->mac_handle, status = sme_roam_channel_change_req(hdd_ctx->mac_handle,
bssid, adapter->vdev_id, bssid, adapter->vdev_id,
&roam_profile.ch_params, &roam_profile.ch_params,
&roam_profile); &roam_profile);
#endif
if (status) { if (status) {
hdd_err("Status: %d Failed to set sme_roam Channel for monitor mode", hdd_err("Status: %d Failed to set sme_roam Channel for monitor mode",
status); status);

Ver fichero

@@ -332,16 +332,22 @@ static int hdd_ndi_start_bss(struct hdd_adapter *adapter)
{ {
QDF_STATUS status; QDF_STATUS status;
uint32_t roam_id; uint32_t roam_id;
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
struct csr_roam_profile *roam_profile; struct csr_roam_profile *roam_profile;
#endif
mac_handle_t mac_handle; mac_handle_t mac_handle;
uint8_t wmm_mode = 0;
struct hdd_context *hdd_ctx; struct hdd_context *hdd_ctx;
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
uint8_t wmm_mode = 0;
uint8_t value = 0; uint8_t value = 0;
#endif
hdd_enter(); hdd_enter();
roam_profile = hdd_roam_profile(adapter);
hdd_ctx = WLAN_HDD_GET_CTX(adapter); hdd_ctx = WLAN_HDD_GET_CTX(adapter);
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
roam_profile = hdd_roam_profile(adapter);
status = ucfg_mlme_get_wmm_mode(hdd_ctx->psoc, &wmm_mode); status = ucfg_mlme_get_wmm_mode(hdd_ctx->psoc, &wmm_mode);
if (!QDF_IS_STATUS_SUCCESS(status)) { if (!QDF_IS_STATUS_SUCCESS(status)) {
@@ -382,6 +388,7 @@ static int hdd_ndi_start_bss(struct hdd_adapter *adapter)
mac_handle = hdd_adapter_get_mac_handle(adapter); mac_handle = hdd_adapter_get_mac_handle(adapter);
status = sme_bss_start(mac_handle, adapter->vdev_id, status = sme_bss_start(mac_handle, adapter->vdev_id,
roam_profile, &roam_id); roam_profile, &roam_id);
#endif
if (QDF_IS_STATUS_ERROR(status)) { if (QDF_IS_STATUS_ERROR(status)) {
hdd_err("NDI sme_RoamConnect session %d failed with status %d -> NotConnected", hdd_err("NDI sme_RoamConnect session %d failed with status %d -> NotConnected",
adapter->vdev_id, status); adapter->vdev_id, status);
@@ -391,11 +398,12 @@ static int hdd_ndi_start_bss(struct hdd_adapter *adapter)
} else { } else {
hdd_info("sme_RoamConnect issued successfully for NDI"); hdd_info("sme_RoamConnect issued successfully for NDI");
} }
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
qdf_mem_free(roam_profile->ChannelInfo.freq_list); qdf_mem_free(roam_profile->ChannelInfo.freq_list);
roam_profile->ChannelInfo.freq_list = NULL; roam_profile->ChannelInfo.freq_list = NULL;
roam_profile->ChannelInfo.numOfChannels = 0; roam_profile->ChannelInfo.numOfChannels = 0;
#endif
hdd_exit(); hdd_exit();
return 0; return 0;

Ver fichero

@@ -688,6 +688,7 @@ struct add_ie_params {
uint8_t *probeRespBCNData_buff; uint8_t *probeRespBCNData_buff;
}; };
#ifndef SAP_CP_CLEANUP
/* / Definition for kick starting BSS */ /* / Definition for kick starting BSS */
/* / ---> MAC */ /* / ---> MAC */
/** /**
@@ -732,7 +733,7 @@ struct start_bss_req {
uint32_t dfs_regdomain; uint32_t dfs_regdomain;
}; };
#endif
#define GET_IE_LEN_IN_BSS(lenInBss) (lenInBss + sizeof(lenInBss) - \ #define GET_IE_LEN_IN_BSS(lenInBss) (lenInBss + sizeof(lenInBss) - \
((uintptr_t)OFFSET_OF(struct bss_description,\ ((uintptr_t)OFFSET_OF(struct bss_description,\
ieFields))) ieFields)))
@@ -807,6 +808,10 @@ struct start_bss_rsp {
uint16_t messageType; /* eWNI_SME_START_BSS_RSP */ uint16_t messageType; /* eWNI_SME_START_BSS_RSP */
uint16_t length; uint16_t length;
uint8_t sessionId; uint8_t sessionId;
/* To be removed after SAP CSR cleanup changes */
#ifdef SAP_CP_CLEANUP
uint32_t cmd_id;
#endif
tSirResultCodes status_code; tSirResultCodes status_code;
enum bss_type bssType; /* Add new type for WDS mode */ enum bss_type bssType; /* Add new type for WDS mode */
uint16_t beaconInterval; /* Beacon Interval for both type */ uint16_t beaconInterval; /* Beacon Interval for both type */
@@ -2250,6 +2255,7 @@ typedef struct sSirSmeDfsChannelList {
uint8_t channels[SIR_DFS_MAX_20M_SUB_CH]; uint8_t channels[SIR_DFS_MAX_20M_SUB_CH];
} tSirSmeDfsChannelList, *tpSirSmeDfsChannelList; } tSirSmeDfsChannelList, *tpSirSmeDfsChannelList;
#ifndef SAP_CP_CLEANUP
typedef struct sSirChanChangeRequest { typedef struct sSirChanChangeRequest {
uint16_t messageType; uint16_t messageType;
uint16_t messageLen; uint16_t messageLen;
@@ -2266,6 +2272,7 @@ typedef struct sSirChanChangeRequest {
uint32_t cac_duration_ms; uint32_t cac_duration_ms;
uint32_t dfs_regdomain; uint32_t dfs_regdomain;
} tSirChanChangeRequest, *tpSirChanChangeRequest; } tSirChanChangeRequest, *tpSirChanChangeRequest;
#endif
typedef struct sSirChanChangeResponse { typedef struct sSirChanChangeResponse {
uint8_t sessionId; uint8_t sessionId;
@@ -5237,4 +5244,91 @@ struct sir_update_session_txq_edca_param {
uint8_t vdev_id; uint8_t vdev_id;
tSirMacEdcaParamRecord txq_edca_params; tSirMacEdcaParamRecord txq_edca_params;
}; };
#ifdef SAP_CP_CLEANUP
/* struct channel_change_req - Change channel
* request for SAP
* @vdev_id: vdev id
* @target_chan_freq: New channel frequency
* @sec_ch_offset: second channel offset
* @center_freq_seg0: channel center freq 0
* @center_freq_seg1: channel center freq 1
* @dot11mode: dot11 mode
* @nw_type: nw type
* @cac_duration_ms: cac duration in ms
* @dfs_regdomain: dfs regdomain
* @opr_rates: operational rates
* @ext_rates: extended rates
*/
struct channel_change_req {
uint8_t vdev_id;
uint32_t target_chan_freq;
uint8_t sec_ch_offset;
enum phy_ch_width ch_width;
uint8_t center_freq_seg0;
uint8_t center_freq_seg1;
uint32_t dot11mode;
tSirNwType nw_type;
uint32_t cac_duration_ms;
uint32_t dfs_regdomain;
tSirMacRateSet opr_rates;
tSirMacRateSet ext_rates;
};
/* struct start_bss_config - Start BSS
* request configurations
* @vdev_id: vdev id
* @cmd_id: serialization command id
* @ssid: ssid
* @dtim_period: dtim period
* @hidden_ssid: hidden ssid parameter
* @privacy: ssid privacy
* @auth_type: authentication type
* @rsnie: RSN IE of the AP
* @add_ie_params: additional IEs
* @oper_ch_freq: operating frequency
* @channel_width: channel width
* @center_freq_seg0: channel center freq 0
* @center_freq_seg1: channel center freq 1
* @sec_ch_offset: secondary channel offset
* @wps_state: wps config
* @dot11mode: dot11 mode
* @nw_type: nw type
* @opr_rates: operational rates
* @ext_rates: extended rates
* @beacon_tx_rate: Tx rate for beacon
* @cac_duration_ms: cac duration in ms
* @dfs_regdomain: dfs regdomain
*/
struct start_bss_config {
uint8_t vdev_id;
uint32_t cmd_id;
tSirMacSSid ssid;
uint16_t bcn_int;
uint32_t dtim_period;
uint8_t hidden_ssid;
uint8_t privacy;
tAniAuthType auth_type;
tSirRSNie rsn_ie;
struct add_ie_params add_ie_params;
uint32_t oper_ch_freq;
uint8_t channel_width;
uint8_t center_freq_seg0;
uint8_t center_freq_seg1;
uint8_t sec_ch_offset;
uint8_t wps_state;
uint8_t dot11mode;
tSirNwType nw_type;
tSirMacRateSet opr_rates;
tSirMacRateSet ext_rates;
uint16_t beacon_tx_rate;
uint32_t cac_duration_ms;
uint32_t dfs_regdomain;
};
#endif
#endif /* __SIR_API_H */ #endif /* __SIR_API_H */

Ver fichero

@@ -230,7 +230,11 @@ struct pe_session {
tLimSystemRole limSystemRole; tLimSystemRole limSystemRole;
enum bss_type bssType; enum bss_type bssType;
tSirNwType nwType; tSirNwType nwType;
#ifndef SAP_CP_CLEANUP
struct start_bss_req *pLimStartBssReq; /* handle to start bss req */ struct start_bss_req *pLimStartBssReq; /* handle to start bss req */
#else
struct start_bss_config *lim_start_bss_req;
#endif
struct join_req *lim_join_req; /* handle to sme join req */ struct join_req *lim_join_req; /* handle to sme join req */
struct join_req *pLimReAssocReq; /* handle to sme reassoc req */ struct join_req *pLimReAssocReq; /* handle to sme reassoc req */
tpLimMlmJoinReq pLimMlmJoinReq; /* handle to MLM join Req */ tpLimMlmJoinReq pLimMlmJoinReq; /* handle to MLM join Req */

Ver fichero

@@ -445,10 +445,17 @@ static bool __lim_process_sme_sys_ready_ind(struct mac_context *mac,
* *
* Return: None. * Return: None.
*/ */
#ifndef SAP_CP_CLEANUP
static void static void
lim_configure_ap_start_bss_session(struct mac_context *mac_ctx, lim_configure_ap_start_bss_session(struct mac_context *mac_ctx,
struct pe_session *session, struct pe_session *session,
struct start_bss_req *sme_start_bss_req) struct start_bss_req *sme_start_bss_req)
#else
static void
lim_configure_ap_start_bss_session(struct mac_context *mac_ctx,
struct pe_session *session,
struct start_bss_config *sme_start_bss_req)
#endif
{ {
bool sap_uapsd; bool sap_uapsd;
uint16_t ht_cap = cfg_default(CFG_AP_PROTECTION_MODE); uint16_t ht_cap = cfg_default(CFG_AP_PROTECTION_MODE);
@@ -759,7 +766,12 @@ __lim_handle_sme_start_bss_request(struct mac_context *mac_ctx, uint32_t *msg_bu
uint32_t val = 0; uint32_t val = 0;
tSirMacChanNum channel_number; tSirMacChanNum channel_number;
tLimMlmStartReq *mlm_start_req = NULL; tLimMlmStartReq *mlm_start_req = NULL;
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
struct start_bss_req *sme_start_bss_req = NULL; struct start_bss_req *sme_start_bss_req = NULL;
#else
struct start_bss_config *sme_start_bss_req = NULL;
#endif
tSirResultCodes ret_code = eSIR_SME_SUCCESS; tSirResultCodes ret_code = eSIR_SME_SUCCESS;
uint8_t session_id; uint8_t session_id;
struct pe_session *session = NULL; struct pe_session *session = NULL;
@@ -8072,7 +8084,12 @@ static void lim_change_channel(
static void lim_process_sme_channel_change_request(struct mac_context *mac_ctx, static void lim_process_sme_channel_change_request(struct mac_context *mac_ctx,
uint32_t *msg_buf) uint32_t *msg_buf)
{ {
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
tpSirChanChangeRequest ch_change_req; tpSirChanChangeRequest ch_change_req;
#else
struct channel_change_req *ch_change_req;
#endif
struct pe_session *session_entry; struct pe_session *session_entry;
uint8_t session_id; /* PE session_id */ uint8_t session_id; /* PE session_id */
int8_t max_tx_pwr; int8_t max_tx_pwr;
@@ -8083,19 +8100,22 @@ static void lim_process_sme_channel_change_request(struct mac_context *mac_ctx,
pe_err("msg_buf is NULL"); pe_err("msg_buf is NULL");
return; return;
} }
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
ch_change_req = (tpSirChanChangeRequest)msg_buf; ch_change_req = (tpSirChanChangeRequest)msg_buf;
#endif
target_freq = ch_change_req->target_chan_freq; target_freq = ch_change_req->target_chan_freq;
max_tx_pwr = wlan_reg_get_channel_reg_power_for_freq( max_tx_pwr = wlan_reg_get_channel_reg_power_for_freq(
mac_ctx->pdev, target_freq); mac_ctx->pdev, target_freq);
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
if ((ch_change_req->messageType != eWNI_SME_CHANNEL_CHANGE_REQ) || if ((ch_change_req->messageType != eWNI_SME_CHANNEL_CHANGE_REQ) ||
(max_tx_pwr == WMA_MAX_TXPOWER_INVALID)) { (max_tx_pwr == WMA_MAX_TXPOWER_INVALID)) {
pe_err("Invalid Request/max_tx_pwr"); pe_err("Invalid Request/max_tx_pwr");
return; return;
} }
#endif
session_entry = pe_find_session_by_bssid(mac_ctx, session_entry = pe_find_session_by_bssid(mac_ctx,
ch_change_req->bssid, &session_id); ch_change_req->bssid, &session_id);
if (!session_entry) { if (!session_entry) {

Ver fichero

@@ -275,13 +275,21 @@ lim_set_rs_nie_wp_aiefrom_sme_start_bss_req_message(struct mac_context *mac_ctx,
return true; return true;
} }
#ifndef SAP_CP_CLEANUP
bool lim_is_sme_start_bss_req_valid(struct mac_context *mac_ctx, bool lim_is_sme_start_bss_req_valid(struct mac_context *mac_ctx,
struct start_bss_req *start_bss_req, struct start_bss_req *start_bss_req,
enum bss_type bss_type) enum bss_type bss_type)
#else
bool lim_is_sme_start_bss_req_valid(struct mac_context *mac_ctx,
struct start_bss_config *start_bss_req,
enum bss_type bss_type)
#endif
{ {
uint8_t i = 0; uint8_t i = 0;
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
tSirMacRateSet *opr_rates = &start_bss_req->operationalRateSet; tSirMacRateSet *opr_rates = &start_bss_req->operationalRateSet;
#endif
switch (bss_type) { switch (bss_type) {
case eSIR_INFRASTRUCTURE_MODE: case eSIR_INFRASTRUCTURE_MODE:
/** /**

Ver fichero

@@ -46,10 +46,15 @@
* Return: true when received SME_START_BSS_REQ is formatted correctly false * Return: true when received SME_START_BSS_REQ is formatted correctly false
* otherwise * otherwise
*/ */
#ifndef SAP_CP_CLEANUP
bool lim_is_sme_start_bss_req_valid(struct mac_context *mac_ctx, bool lim_is_sme_start_bss_req_valid(struct mac_context *mac_ctx,
struct start_bss_req *start_bss_req, struct start_bss_req *start_bss_req,
enum bss_type bss_type); enum bss_type bss_type);
#else
bool lim_is_sme_start_bss_req_valid(struct mac_context *mac_ctx,
struct start_bss_config *start_bss_req,
enum bss_type bss_type);
#endif
uint8_t lim_set_rs_nie_wp_aiefrom_sme_start_bss_req_message(struct mac_context *, uint8_t lim_set_rs_nie_wp_aiefrom_sme_start_bss_req_message(struct mac_context *,
tpSirRSNie, struct pe_session *); tpSirRSNie, struct pe_session *);

Ver fichero

@@ -1459,7 +1459,10 @@ QDF_STATUS sap_clear_session_param(mac_handle_t mac_handle,
mac_ctx->sap.sapCtxList[sapctx->sessionId].sapPersona = mac_ctx->sap.sapCtxList[sapctx->sessionId].sapPersona =
QDF_MAX_NO_OF_MODE; QDF_MAX_NO_OF_MODE;
sap_clear_global_dfs_param(mac_handle, sapctx); sap_clear_global_dfs_param(mac_handle, sapctx);
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
sap_free_roam_profile(&sapctx->csr_roamProfile); sap_free_roam_profile(&sapctx->csr_roamProfile);
#endif
sap_err("Set sapCtxList null for session %d", sapctx->sessionId); sap_err("Set sapCtxList null for session %d", sapctx->sessionId);
qdf_mem_zero(sapctx, sizeof(*sapctx)); qdf_mem_zero(sapctx, sizeof(*sapctx));
sapctx->sessionId = WLAN_UMAC_VDEV_ID_MAX; sapctx->sessionId = WLAN_UMAC_VDEV_ID_MAX;
@@ -1592,7 +1595,10 @@ static QDF_STATUS sap_goto_stopping(struct sap_context *sap_ctx)
} }
sap_update_mcs_rate(sap_ctx, false); sap_update_mcs_rate(sap_ctx, false);
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
sap_free_roam_profile(&sap_ctx->csr_roamProfile); sap_free_roam_profile(&sap_ctx->csr_roamProfile);
#endif
status = sme_roam_stop_bss(MAC_HANDLE(mac_ctx), sap_ctx->sessionId); status = sme_roam_stop_bss(MAC_HANDLE(mac_ctx), sap_ctx->sessionId);
if (status != QDF_STATUS_SUCCESS) { if (status != QDF_STATUS_SUCCESS) {
sap_err("Calling sme_roam_stop_bss status = %d", status); sap_err("Calling sme_roam_stop_bss status = %d", status);
@@ -2840,11 +2846,17 @@ static void sap_validate_chanmode_and_chwidth(struct mac_context *mac_ctx,
if (WLAN_REG_IS_5GHZ_CH_FREQ(sap_ctx->chan_freq) && if (WLAN_REG_IS_5GHZ_CH_FREQ(sap_ctx->chan_freq) &&
(sap_ctx->phyMode == eCSR_DOT11_MODE_11g || (sap_ctx->phyMode == eCSR_DOT11_MODE_11g ||
sap_ctx->phyMode == eCSR_DOT11_MODE_11g_ONLY)) { sap_ctx->phyMode == eCSR_DOT11_MODE_11g_ONLY)) {
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
sap_ctx->csr_roamProfile.phyMode = eCSR_DOT11_MODE_11a; sap_ctx->csr_roamProfile.phyMode = eCSR_DOT11_MODE_11a;
#endif
sap_ctx->phyMode = eCSR_DOT11_MODE_11a; sap_ctx->phyMode = eCSR_DOT11_MODE_11a;
} else if (WLAN_REG_IS_24GHZ_CH_FREQ(sap_ctx->chan_freq) && } else if (WLAN_REG_IS_24GHZ_CH_FREQ(sap_ctx->chan_freq) &&
(sap_ctx->phyMode == eCSR_DOT11_MODE_11a)) { (sap_ctx->phyMode == eCSR_DOT11_MODE_11a)) {
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
sap_ctx->csr_roamProfile.phyMode = eCSR_DOT11_MODE_11g; sap_ctx->csr_roamProfile.phyMode = eCSR_DOT11_MODE_11g;
#endif
sap_ctx->phyMode = eCSR_DOT11_MODE_11g; sap_ctx->phyMode = eCSR_DOT11_MODE_11g;
} }
@@ -2941,6 +2953,8 @@ static QDF_STATUS sap_goto_starting(struct sap_context *sap_ctx,
"SAP_INIT", "SAP_STARTING", sap_ctx->phyMode, "SAP_INIT", "SAP_STARTING", sap_ctx->phyMode,
sap_ctx->ch_params.ch_width); sap_ctx->ch_params.ch_width);
/* Specify the channel */ /* Specify the channel */
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
sap_ctx->csr_roamProfile.ChannelInfo.numOfChannels = sap_ctx->csr_roamProfile.ChannelInfo.numOfChannels =
1; 1;
sap_ctx->csr_roamProfile.ChannelInfo.freq_list = sap_ctx->csr_roamProfile.ChannelInfo.freq_list =
@@ -2957,6 +2971,7 @@ static QDF_STATUS sap_goto_starting(struct sap_context *sap_ctx,
!!sap_ctx->csr_roamProfile.cac_duration_ms); !!sap_ctx->csr_roamProfile.cac_duration_ms);
sap_ctx->csr_roamProfile.beacon_tx_rate = sap_ctx->csr_roamProfile.beacon_tx_rate =
sap_ctx->beacon_tx_rate; sap_ctx->beacon_tx_rate;
#endif
sap_debug("notify hostapd about chan freq selection: %d", sap_debug("notify hostapd about chan freq selection: %d",
sap_ctx->chan_freq); sap_ctx->chan_freq);
sap_signal_hdd_event(sap_ctx, NULL, sap_signal_hdd_event(sap_ctx, NULL,
@@ -2970,9 +2985,12 @@ static QDF_STATUS sap_goto_starting(struct sap_context *sap_ctx,
sap_debug("session: %d", sap_ctx->sessionId); sap_debug("session: %d", sap_ctx->sessionId);
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
qdf_status = sme_bss_start(mac_handle, sap_ctx->sessionId, qdf_status = sme_bss_start(mac_handle, sap_ctx->sessionId,
&sap_ctx->csr_roamProfile, &sap_ctx->csr_roamProfile,
&sap_ctx->csr_roamId); &sap_ctx->csr_roamId);
#endif
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) if (!QDF_IS_STATUS_SUCCESS(qdf_status))
sap_err("Failed to issue sme_roam_connect"); sap_err("Failed to issue sme_roam_connect");
@@ -3593,6 +3611,7 @@ QDF_STATUS sap_fsm(struct sap_context *sap_ctx, struct sap_sm_event *sap_event)
return qdf_status; return qdf_status;
} }
#ifndef SAP_CP_CLEANUP
eSapStatus eSapStatus
sapconvert_to_csr_profile(struct sap_config *config, eCsrRoamBssType bssType, sapconvert_to_csr_profile(struct sap_config *config, eCsrRoamBssType bssType,
struct csr_roam_profile *profile) struct csr_roam_profile *profile)
@@ -3745,6 +3764,7 @@ void sap_free_roam_profile(struct csr_roam_profile *profile)
profile->pRSNReqIE = NULL; profile->pRSNReqIE = NULL;
} }
} }
#endif
void sap_sort_mac_list(struct qdf_mac_addr *macList, uint16_t size) void sap_sort_mac_list(struct qdf_mac_addr *macList, uint16_t size)
{ {
@@ -4577,3 +4597,21 @@ bool sap_is_conc_sap_doing_scc_dfs(mac_handle_t mac_handle,
return false; return false;
} }
#ifdef SAP_CP_CLEANUP
/**
* sap_build_start_bss_config() - Fill the start bss request for SAP
* @sap_bss_cfg: start bss config
* @config: sap config
*
* This function fills the start bss request for SAP
*
* Return: None
*/
void
sap_build_start_bss_config(struct start_bss_config *sap_bss_cfg,
struct sap_config *config)
{
return;
}
#endif

Ver fichero

@@ -139,9 +139,12 @@ struct sap_context {
/* Include the associations MAC addresses */ /* Include the associations MAC addresses */
uint8_t self_mac_addr[CDS_MAC_ADDRESS_LEN]; uint8_t self_mac_addr[CDS_MAC_ADDRESS_LEN];
#ifndef SAP_CP_CLEANUP
/* Include the SME(CSR) context here */ /* Include the SME(CSR) context here */
struct csr_roam_profile csr_roamProfile; struct csr_roam_profile csr_roamProfile;
#else
struct start_bss_config sap_bss_cfg;
#endif
uint32_t csr_roamId; uint32_t csr_roamId;
/* SAP event Callback to hdd */ /* SAP event Callback to hdd */
@@ -325,12 +328,14 @@ sap_signal_hdd_event(struct sap_context *sap_ctx,
QDF_STATUS sap_fsm(struct sap_context *sap_ctx, struct sap_sm_event *sap_event); QDF_STATUS sap_fsm(struct sap_context *sap_ctx, struct sap_sm_event *sap_event);
#ifndef SAP_CP_CLEANUP
eSapStatus eSapStatus
sapconvert_to_csr_profile(struct sap_config *config, sapconvert_to_csr_profile(struct sap_config *config,
eCsrRoamBssType bssType, eCsrRoamBssType bssType,
struct csr_roam_profile *profile); struct csr_roam_profile *profile);
void sap_free_roam_profile(struct csr_roam_profile *profile); void sap_free_roam_profile(struct csr_roam_profile *profile);
#endif
QDF_STATUS QDF_STATUS
sap_is_peer_mac_allowed(struct sap_context *sap_ctx, uint8_t *peerMac); sap_is_peer_mac_allowed(struct sap_context *sap_ctx, uint8_t *peerMac);
@@ -503,4 +508,10 @@ bool
sap_chan_bond_dfs_sub_chan(struct sap_context *sap_context, sap_chan_bond_dfs_sub_chan(struct sap_context *sap_context,
qdf_freq_t channel_freq, qdf_freq_t channel_freq,
ePhyChanBondState bond_state); ePhyChanBondState bond_state);
#ifdef SAP_CP_CLEANUP
void
sap_build_start_bss_config(struct start_bss_config *sap_bss_cfg,
struct sap_config *config);
#endif
#endif #endif

Ver fichero

@@ -306,7 +306,8 @@ QDF_STATUS sap_init_ctx(struct sap_context *sap_ctx,
sap_err("Invalid SAP pointer"); sap_err("Invalid SAP pointer");
return QDF_STATUS_E_FAULT; return QDF_STATUS_E_FAULT;
} }
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
/* Now configure the roaming profile links. To SSID and bssid.*/ /* Now configure the roaming profile links. To SSID and bssid.*/
/* We have room for two SSIDs. */ /* We have room for two SSIDs. */
sap_ctx->csr_roamProfile.SSIDs.numOfSSIDs = 1; /* This is true for now. */ sap_ctx->csr_roamProfile.SSIDs.numOfSSIDs = 1; /* This is true for now. */
@@ -316,9 +317,10 @@ QDF_STATUS sap_init_ctx(struct sap_context *sap_ctx,
sap_ctx->SSIDList[0].ssidHidden; sap_ctx->SSIDList[0].ssidHidden;
sap_ctx->csr_roamProfile.BSSIDs.numOfBSSIDs = 1; /* This is true for now. */ sap_ctx->csr_roamProfile.BSSIDs.numOfBSSIDs = 1; /* This is true for now. */
sap_ctx->csa_reason = CSA_REASON_UNKNOWN;
sap_ctx->csr_roamProfile.BSSIDs.bssid = &sap_ctx->bssid; sap_ctx->csr_roamProfile.BSSIDs.bssid = &sap_ctx->bssid;
sap_ctx->csr_roamProfile.csrPersona = mode; sap_ctx->csr_roamProfile.csrPersona = mode;
#endif
sap_ctx->csa_reason = CSA_REASON_UNKNOWN;
qdf_mem_copy(sap_ctx->self_mac_addr, addr, QDF_MAC_ADDR_SIZE); qdf_mem_copy(sap_ctx->self_mac_addr, addr, QDF_MAC_ADDR_SIZE);
mac = sap_get_mac_context(); mac = sap_get_mac_context();
@@ -376,7 +378,10 @@ QDF_STATUS sap_deinit_ctx(struct sap_context *sap_ctx)
sap_ctx->freq_list = NULL; sap_ctx->freq_list = NULL;
sap_ctx->num_of_channel = 0; sap_ctx->num_of_channel = 0;
} }
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
sap_free_roam_profile(&sap_ctx->csr_roamProfile); sap_free_roam_profile(&sap_ctx->csr_roamProfile);
#endif
if (sap_ctx->sessionId != WLAN_UMAC_VDEV_ID_MAX) { if (sap_ctx->sessionId != WLAN_UMAC_VDEV_ID_MAX) {
/* empty queues/lists/pkts if any */ /* empty queues/lists/pkts if any */
sap_clear_session_param(MAC_HANDLE(mac), sap_ctx, sap_clear_session_param(MAC_HANDLE(mac), sap_ctx,
@@ -534,7 +539,8 @@ wlansap_set_scan_acs_channel_params(struct sap_config *config,
psap_ctx->acs_cfg = &config->acs_cfg; psap_ctx->acs_cfg = &config->acs_cfg;
psap_ctx->ch_width_orig = config->acs_cfg.ch_width; psap_ctx->ch_width_orig = config->acs_cfg.ch_width;
psap_ctx->sec_ch_freq = config->sec_ch_freq; psap_ctx->sec_ch_freq = config->sec_ch_freq;
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
/* /*
* Set the BSSID to your "self MAC Addr" read * Set the BSSID to your "self MAC Addr" read
* the mac address from Configuation ITEM received * the mac address from Configuation ITEM received
@@ -545,6 +551,7 @@ wlansap_set_scan_acs_channel_params(struct sap_config *config,
/* Save a copy to SAP context */ /* Save a copy to SAP context */
qdf_mem_copy(psap_ctx->csr_roamProfile.BSSIDs.bssid, qdf_mem_copy(psap_ctx->csr_roamProfile.BSSIDs.bssid,
config->self_macaddr.bytes, QDF_MAC_ADDR_SIZE); config->self_macaddr.bytes, QDF_MAC_ADDR_SIZE);
#endif
qdf_mem_copy(psap_ctx->self_mac_addr, qdf_mem_copy(psap_ctx->self_mac_addr,
config->self_macaddr.bytes, QDF_MAC_ADDR_SIZE); config->self_macaddr.bytes, QDF_MAC_ADDR_SIZE);
@@ -757,6 +764,8 @@ QDF_STATUS wlansap_start_bss(struct sap_context *sap_ctx,
sap_ctx->phyMode = config->SapHw_mode; sap_ctx->phyMode = config->SapHw_mode;
sap_ctx->csa_reason = CSA_REASON_UNKNOWN; sap_ctx->csa_reason = CSA_REASON_UNKNOWN;
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
/* Set the BSSID to your "self MAC Addr" read the mac address /* Set the BSSID to your "self MAC Addr" read the mac address
from Configuation ITEM received from HDD */ from Configuation ITEM received from HDD */
sap_ctx->csr_roamProfile.BSSIDs.numOfBSSIDs = 1; sap_ctx->csr_roamProfile.BSSIDs.numOfBSSIDs = 1;
@@ -766,13 +775,13 @@ QDF_STATUS wlansap_start_bss(struct sap_context *sap_ctx,
/* Save a copy to SAP context */ /* Save a copy to SAP context */
qdf_mem_copy(sap_ctx->csr_roamProfile.BSSIDs.bssid, qdf_mem_copy(sap_ctx->csr_roamProfile.BSSIDs.bssid,
config->self_macaddr.bytes, QDF_MAC_ADDR_SIZE); config->self_macaddr.bytes, QDF_MAC_ADDR_SIZE);
qdf_mem_copy(sap_ctx->self_mac_addr,
config->self_macaddr.bytes, QDF_MAC_ADDR_SIZE);
/* copy the configuration items to csrProfile */ /* copy the configuration items to csrProfile */
sapconvert_to_csr_profile(config, eCSR_BSS_TYPE_INFRA_AP, sapconvert_to_csr_profile(config, eCSR_BSS_TYPE_INFRA_AP,
&sap_ctx->csr_roamProfile); &sap_ctx->csr_roamProfile);
#endif
qdf_mem_copy(sap_ctx->self_mac_addr,
config->self_macaddr.bytes, QDF_MAC_ADDR_SIZE);
/* /*
* Set the DFS Test Mode setting * Set the DFS Test Mode setting
* Set beacon channel count before chanel switch * Set beacon channel count before chanel switch
@@ -835,9 +844,11 @@ QDF_STATUS wlansap_start_bss(struct sap_context *sap_ctx,
/* Handle event */ /* Handle event */
qdf_status = sap_fsm(sap_ctx, &sap_event); qdf_status = sap_fsm(sap_ctx, &sap_event);
fail: fail:
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
if (QDF_IS_STATUS_ERROR(qdf_status)) if (QDF_IS_STATUS_ERROR(qdf_status))
sap_free_roam_profile(&sap_ctx->csr_roamProfile); sap_free_roam_profile(&sap_ctx->csr_roamProfile);
#endif
return qdf_status; return qdf_status;
} /* wlansap_start_bss */ } /* wlansap_start_bss */
@@ -1746,6 +1757,24 @@ void wlansap_get_sec_channel(uint8_t sec_ch_offset,
} }
} }
#ifdef SAP_CP_CLEANUP
/**
* wlansap_fill_channel_change_request() - Fills the channel change request
* @sap_ctx: sap context
* @req: pointer to change channel request
*
* This function fills the channel change request for SAP
*
* Return: None
*/
static void
wlansap_fill_channel_change_request(struct sap_context *sap_ctx,
struct channel_change_req *req)
{
return;
}
#endif
QDF_STATUS wlansap_channel_change_request(struct sap_context *sap_ctx, QDF_STATUS wlansap_channel_change_request(struct sap_context *sap_ctx,
uint32_t target_chan_freq) uint32_t target_chan_freq)
{ {
@@ -1780,16 +1809,20 @@ QDF_STATUS wlansap_channel_change_request(struct sap_context *sap_ctx,
else if (WLAN_REG_IS_24GHZ_CH_FREQ(target_chan_freq) && else if (WLAN_REG_IS_24GHZ_CH_FREQ(target_chan_freq) &&
(phy_mode == eCSR_DOT11_MODE_11a)) (phy_mode == eCSR_DOT11_MODE_11a))
phy_mode = eCSR_DOT11_MODE_11g; phy_mode = eCSR_DOT11_MODE_11g;
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
sap_ctx->csr_roamProfile.phyMode = phy_mode; sap_ctx->csr_roamProfile.phyMode = phy_mode;
#endif
sap_ctx->phyMode = phy_mode; sap_ctx->phyMode = phy_mode;
if (!sap_ctx->chan_freq) { if (!sap_ctx->chan_freq) {
sap_err("Invalid channel list"); sap_err("Invalid channel list");
return QDF_STATUS_E_FAULT; return QDF_STATUS_E_FAULT;
} }
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
sap_ctx->csr_roamProfile.ChannelInfo.freq_list[0] = target_chan_freq; sap_ctx->csr_roamProfile.ChannelInfo.freq_list[0] = target_chan_freq;
#endif
/* /*
* We are getting channel bonding mode from sapDfsInfor structure * We are getting channel bonding mode from sapDfsInfor structure
* because we've implemented channel width fallback mechanism for DFS * because we've implemented channel width fallback mechanism for DFS
@@ -1806,9 +1839,13 @@ QDF_STATUS wlansap_channel_change_request(struct sap_context *sap_ctx,
sap_ctx->chan_freq = target_chan_freq; sap_ctx->chan_freq = target_chan_freq;
wlansap_get_sec_channel(ch_params->sec_ch_offset, sap_ctx->chan_freq, wlansap_get_sec_channel(ch_params->sec_ch_offset, sap_ctx->chan_freq,
&sap_ctx->sec_ch_freq); &sap_ctx->sec_ch_freq);
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
sap_ctx->csr_roamProfile.ch_params = *ch_params; sap_ctx->csr_roamProfile.ch_params = *ch_params;
#endif
sap_dfs_set_current_channel(sap_ctx); sap_dfs_set_current_channel(sap_ctx);
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
sap_get_cac_dur_dfs_region(sap_ctx, sap_get_cac_dur_dfs_region(sap_ctx,
&sap_ctx->csr_roamProfile.cac_duration_ms, &sap_ctx->csr_roamProfile.cac_duration_ms,
&sap_ctx->csr_roamProfile.dfs_regdomain, &sap_ctx->csr_roamProfile.dfs_regdomain,
@@ -1821,7 +1858,7 @@ QDF_STATUS wlansap_channel_change_request(struct sap_context *sap_ctx,
sap_ctx->sessionId, sap_ctx->sessionId,
ch_params, ch_params,
&sap_ctx->csr_roamProfile); &sap_ctx->csr_roamProfile);
#endif
sap_debug("chan_freq:%d phy_mode %d width:%d offset:%d seg0:%d seg1:%d", sap_debug("chan_freq:%d phy_mode %d width:%d offset:%d seg0:%d seg1:%d",
sap_ctx->chan_freq, phy_mode, ch_params->ch_width, sap_ctx->chan_freq, phy_mode, ch_params->ch_width,
ch_params->sec_ch_offset, ch_params->center_freq_seg0, ch_params->sec_ch_offset, ch_params->center_freq_seg0,
@@ -2467,7 +2504,10 @@ QDF_STATUS wlansap_acs_chselect(struct sap_context *sap_context,
sap_context->acs_cfg = &config->acs_cfg; sap_context->acs_cfg = &config->acs_cfg;
sap_context->ch_width_orig = config->acs_cfg.ch_width; sap_context->ch_width_orig = config->acs_cfg.ch_width;
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
sap_context->csr_roamProfile.phyMode = config->acs_cfg.hw_mode; sap_context->csr_roamProfile.phyMode = config->acs_cfg.hw_mode;
#endif
sap_context->phyMode = config->acs_cfg.hw_mode; sap_context->phyMode = config->acs_cfg.hw_mode;
/* /*

Ver fichero

@@ -741,6 +741,32 @@ struct csr_del_sta_params {
uint8_t subtype; uint8_t subtype;
}; };
#ifdef SAP_CP_CLEANUP
/* Struct bss_dot11_config - Dot11 parameters for
* SAP operation
* @vdev_id: vdev id
* @privacy: privacy config
* @phy_mode: phy mode
* @bss_op_ch_freq: operational frequency
* @dot11_mode: dot11 mode
* @nw_type: network type
* @p_band: operating band
* @opr_rates: operational rates
* @ext_rates: extended rates
*/
struct bss_dot11_config {
uint8_t vdev_id;
uint8_t privacy;
eCsrPhyMode phy_mode;
uint32_t bss_op_ch_freq;
uint8_t dot11_mode;
tSirNwType nw_type;
enum reg_wifi_band p_band;
tSirMacRateSet opr_rates;
tSirMacRateSet ext_rates;
};
#endif
typedef QDF_STATUS (*csr_roam_complete_cb)(struct wlan_objmgr_psoc *psoc, typedef QDF_STATUS (*csr_roam_complete_cb)(struct wlan_objmgr_psoc *psoc,
uint8_t session_id, uint8_t session_id,
struct csr_roam_info *param, struct csr_roam_info *param,
@@ -956,4 +982,18 @@ void csr_handle_sap_mlo_sta_concurrency(struct wlan_objmgr_vdev *vdev,
* Return: concurrent frequency * Return: concurrent frequency
*/ */
qdf_freq_t csr_mlme_get_concurrent_operation_freq(void); qdf_freq_t csr_mlme_get_concurrent_operation_freq(void);
#ifdef SAP_CP_CLEANUP
/*
* csr_roam_get_phy_mode_band_for_bss() - CSR API to get phy mode and
* band for particular dot11 config
* @mac : mac context
* @dot11_cfg : pointer to the dot11 config
*
* Return : Void
*/
enum csr_cfgdot11mode
csr_roam_get_phy_mode_band_for_bss(struct mac_context *mac,
struct bss_dot11_config *dot11_cfg);
#endif
#endif #endif

Ver fichero

@@ -82,9 +82,11 @@ enum csr_cfgdot11mode {
}; };
enum csr_roam_reason { enum csr_roam_reason {
#ifndef SAP_CP_CLEANUP
eCsrNoConnection, eCsrNoConnection,
eCsrStartBss, eCsrStartBss,
eCsrStopBss, eCsrStopBss,
#endif
eCsrForcedDisassocSta, eCsrForcedDisassocSta,
eCsrForcedDeauthSta, eCsrForcedDeauthSta,
}; };
@@ -128,6 +130,7 @@ struct bss_config_param {
tSirMacCapabilityInfo BssCap; tSirMacCapabilityInfo BssCap;
}; };
#ifndef SAP_CP_CLEANUP
struct csr_roamstart_bssparams { struct csr_roamstart_bssparams {
tSirMacSSid ssId; tSirMacSSid ssId;
@@ -153,12 +156,26 @@ struct csr_roamstart_bssparams {
uint32_t cac_duration_ms; uint32_t cac_duration_ms;
uint32_t dfs_regdomain; uint32_t dfs_regdomain;
}; };
#else
/* struct csr_roamstart_bssparams: csr bss parameters
* @cb_mode: channel bonding mode
* @bcn_int: beacon interval
* @update_bcn_int: updated beacon interval
*/
struct csr_roamstart_bssparams {
ePhyChanBondState cb_mode;
uint16_t bcn_int;
bool update_bcn_int;
};
#endif
struct roam_cmd { struct roam_cmd {
uint32_t roamId; uint32_t roamId;
enum csr_roam_reason roamReason; enum csr_roam_reason roamReason;
#ifndef SAP_CP_CLEANUP
struct csr_roam_profile roamProfile; struct csr_roam_profile roamProfile;
bool fReleaseProfile; /* whether to free roamProfile */ bool fReleaseProfile; /* whether to free roamProfile */
#endif
tSirMacAddr peerMac; tSirMacAddr peerMac;
enum wlan_reason_code reason; enum wlan_reason_code reason;
}; };
@@ -548,6 +565,7 @@ QDF_STATUS csr_get_tsm_stats(struct mac_context *mac,
void *pContext, uint8_t tid); void *pContext, uint8_t tid);
#endif #endif
#ifndef SAP_CP_CLEANUP
/** /**
* csr_roam_channel_change_req() - Post channel change request to LIM * csr_roam_channel_change_req() - Post channel change request to LIM
* @mac: mac context * @mac: mac context
@@ -565,6 +583,19 @@ QDF_STATUS csr_roam_channel_change_req(struct mac_context *mac,
uint8_t vdev_id, uint8_t vdev_id,
struct ch_params *ch_params, struct ch_params *ch_params,
struct csr_roam_profile *profile); struct csr_roam_profile *profile);
#else
/**
* csr_sap_channel_change_req() - Post channel change request to LIM
* @mac : mac context
* @req : channel change request
*
* This API is primarily used to post Channel Change Req for SAP
*
* Return: QDF_STATUS
*/
QDF_STATUS csr_sap_channel_change_req(struct mac_context *mac,
struct channel_change_req *req);
#endif
/* Post Beacon Tx Start Indication */ /* Post Beacon Tx Start Indication */
QDF_STATUS csr_roam_start_beacon_req(struct mac_context *mac, QDF_STATUS csr_roam_start_beacon_req(struct mac_context *mac,

Ver fichero

@@ -546,6 +546,7 @@ tCsrScanResultInfo *sme_scan_result_get_next(mac_handle_t,
tScanResultHandle hScanResult); tScanResultHandle hScanResult);
QDF_STATUS sme_scan_result_purge(tScanResultHandle hScanResult); QDF_STATUS sme_scan_result_purge(tScanResultHandle hScanResult);
#ifndef SAP_CP_CLEANUP
/** /**
* sme_bss_start() - A wrapper function to request CSR to inititiate start bss * sme_bss_start() - A wrapper function to request CSR to inititiate start bss
* @mac_handle: mac handle * @mac_handle: mac handle
@@ -557,7 +558,7 @@ QDF_STATUS sme_scan_result_purge(tScanResultHandle hScanResult);
*/ */
QDF_STATUS sme_bss_start(mac_handle_t mac_handle, uint8_t vdev_id, QDF_STATUS sme_bss_start(mac_handle_t mac_handle, uint8_t vdev_id,
struct csr_roam_profile *profile, uint32_t *roam_id); struct csr_roam_profile *profile, uint32_t *roam_id);
#endif
/** /**
* sme_roam_ndi_stop() - API to request stop ndi * sme_roam_ndi_stop() - API to request stop ndi
* @mac_handle: Opaque handle to the global MAC context * @mac_handle: Opaque handle to the global MAC context
@@ -1296,6 +1297,7 @@ QDF_STATUS sme_set_auto_shutdown_timer(mac_handle_t mac_handle,
uint32_t timer_value); uint32_t timer_value);
#endif #endif
#ifndef SAP_CP_CLEANUP
/** /**
* sme_roam_channel_change_req() - Channel change to new target channel * sme_roam_channel_change_req() - Channel change to new target channel
* @mac_handle: handle returned by mac_open * @mac_handle: handle returned by mac_open
@@ -1313,7 +1315,7 @@ QDF_STATUS sme_roam_channel_change_req(mac_handle_t mac_handle,
uint8_t vdev_id, uint8_t vdev_id,
struct ch_params *ch_params, struct ch_params *ch_params,
struct csr_roam_profile *profile); struct csr_roam_profile *profile);
#endif
QDF_STATUS sme_roam_start_beacon_req(mac_handle_t mac_handle, QDF_STATUS sme_roam_start_beacon_req(mac_handle_t mac_handle,
struct qdf_mac_addr bssid, struct qdf_mac_addr bssid,
uint8_t dfsCacWaitStatus); uint8_t dfsCacWaitStatus);
@@ -4530,4 +4532,69 @@ QDF_STATUS sme_update_vdev_mac_addr(struct wlan_objmgr_psoc *psoc,
bool update_sta_self_peer, int req_status); bool update_sta_self_peer, int req_status);
#endif #endif
#ifdef SAP_CP_CLEANUP
/**
* sme_get_network_params() - SME API to get dot11 config for SAP
* functionality
*@mac_ctx: mac context
*@dot11_cfg : pointer to dot11 config
*
* Return : QDF_STATUS
*/
QDF_STATUS
sme_get_network_params(struct mac_context *mac_ctx,
struct bss_dot11_config *dot11_cfg);
/**
* sme_start_bss() -A wrapper function to request CSR to
* inititiate start bss
* @mac_handle: mac hancle
* @vdev_id: vdev id
* @bss_config: pointer to start bss config
* @roam_id: pointer to roam id
*
* Return: QDF_STATUS
*/
QDF_STATUS sme_start_bss(mac_handle_t mac_handle, uint8_t vdev_id,
struct start_bss_config *bss_config,
uint32_t *roam_id);
/**
* sme_sap_ser_callback() - callback from serialization module
* @cmd: serialization command
* @reason: reason why serialization module has given this callback
*
* Serialization module will give callback to SME for why it triggered
* the callback
*
* Return: QDF_STATUS
*/
QDF_STATUS sme_sap_ser_callback(struct wlan_serialization_command *cmd,
enum wlan_serialization_cb_reason reason);
/**
*sme_fill_channel_change_request() - SME API to fill the channel
* change request for monitor mode
* @mac_handle: mac handle
* @req: pointer to change channel request message
* @phy_mode: phy mode of the vdev
*
* Return: QDF_STATUS
*/
void
sme_fill_channel_change_request(mac_handle_t mac_handle,
struct channel_change_req *req,
eCsrPhyMode phy_mode);
/**
* sme_sap_channel_change_req() - SME API to post channel change
* request to LIM
* @mac_handle: mac handle
* @req: pointer to change channel request message
*
* Return: QDF_STATUS
*/
QDF_STATUS sme_sap_channel_change_req(mac_handle_t mac_handle,
struct channel_change_req *req);
#endif
#endif /* #if !defined( __SME_API_H ) */ #endif /* #if !defined( __SME_API_H ) */

Ver fichero

@@ -1,5 +1,6 @@
/* /*
* Copyright (c) 2016-2019, 2021 The Linux Foundation. All rights reserved. * Copyright (c) 2016-2019, 2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. 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
@@ -28,10 +29,11 @@
#include "csr_inside_api.h" #include "csr_inside_api.h"
#ifdef WLAN_FEATURE_NAN #ifdef WLAN_FEATURE_NAN
#ifndef SAP_CP_CLEANUP
/* Start NDI BSS */ /* Start NDI BSS */
QDF_STATUS csr_roam_start_ndi(struct mac_context *mac_ctx, uint32_t session_id, QDF_STATUS csr_roam_start_ndi(struct mac_context *mac_ctx, uint32_t session_id,
struct csr_roam_profile *profile); struct csr_roam_profile *profile);
#endif
void csr_roam_update_ndp_return_params(struct mac_context *mac_ctx, void csr_roam_update_ndp_return_params(struct mac_context *mac_ctx,
uint32_t result, uint32_t result,
uint32_t *roam_status, uint32_t *roam_status,
@@ -39,6 +41,7 @@ void csr_roam_update_ndp_return_params(struct mac_context *mac_ctx,
struct csr_roam_info *roam_info); struct csr_roam_info *roam_info);
#else /* WLAN_FEATURE_NAN */ #else /* WLAN_FEATURE_NAN */
#ifndef SAP_CP_CLEANUP
/* Start NDI BSS */ /* Start NDI BSS */
static inline QDF_STATUS csr_roam_start_ndi(struct mac_context *mac_ctx, static inline QDF_STATUS csr_roam_start_ndi(struct mac_context *mac_ctx,
uint32_t session_id, uint32_t session_id,
@@ -46,7 +49,7 @@ static inline QDF_STATUS csr_roam_start_ndi(struct mac_context *mac_ctx,
{ {
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
#endif
static inline void csr_roam_update_ndp_return_params(struct mac_context *mac_ctx, static inline void csr_roam_update_ndp_return_params(struct mac_context *mac_ctx,
uint32_t result, uint32_t result,
uint32_t *roam_status, uint32_t *roam_status,

Ver fichero

@@ -3235,6 +3235,7 @@ eCsrPhyMode sme_get_phy_mode(mac_handle_t mac_handle)
return mac->roam.configParam.phyMode; return mac->roam.configParam.phyMode;
} }
#ifndef SAP_CP_CLEANUP
QDF_STATUS sme_bss_start(mac_handle_t mac_handle, uint8_t vdev_id, QDF_STATUS sme_bss_start(mac_handle_t mac_handle, uint8_t vdev_id,
struct csr_roam_profile *profile, struct csr_roam_profile *profile,
uint32_t *roam_id) uint32_t *roam_id)
@@ -3261,7 +3262,20 @@ QDF_STATUS sme_bss_start(mac_handle_t mac_handle, uint8_t vdev_id,
return status; return status;
} }
#else
QDF_STATUS sme_get_network_params(struct mac_context *mac,
struct bss_dot11_config *dot11_cfg)
{
return QDF_STATUS_SUCCESS;
}
QDF_STATUS sme_start_bss(mac_handle_t mac_handle, uint8_t vdev_id,
struct start_bss_config *bss_config,
uint32_t *roam_id)
{
return QDF_STATUS_SUCCESS;
}
#endif
/* /*
* sme_set_phy_mode() - * sme_set_phy_mode() -
* Changes the PhyMode. * Changes the PhyMode.
@@ -8491,6 +8505,7 @@ QDF_STATUS sme_set_mas(uint32_t val)
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
#ifndef SAP_CP_CLEANUP
QDF_STATUS sme_roam_channel_change_req(mac_handle_t mac_handle, QDF_STATUS sme_roam_channel_change_req(mac_handle_t mac_handle,
struct qdf_mac_addr bssid, struct qdf_mac_addr bssid,
uint8_t vdev_id, uint8_t vdev_id,
@@ -8509,6 +8524,13 @@ QDF_STATUS sme_roam_channel_change_req(mac_handle_t mac_handle,
} }
return status; return status;
} }
#else
QDF_STATUS sme_sap_channel_change_req(mac_handle_t mac_handle,
struct channel_change_req *req)
{
return QDF_STATUS_SUCCESS;
}
#endif
/* /*
* sme_process_channel_change_resp() - * sme_process_channel_change_resp() -
@@ -16253,3 +16275,34 @@ void sme_roam_events_deregister_callback(mac_handle_t mac_handle)
} }
#endif #endif
#ifdef SAP_CP_CLEANUP
static QDF_STATUS sme_send_start_bss_msg(struct mac_context *mac,
struct start_bss_config *cfg)
{
return QDF_STATUS_SUCCESS;
}
static QDF_STATUS sme_send_stop_bss_msg(struct mac_context *mac,
uint32_t vdev_id)
{
return QDF_STATUS_SUCCESS;
}
static QDF_STATUS sme_sap_activate_cmd(struct wlan_serialization_command *cmd)
{
return QDF_STATUS_SUCCESS;
}
QDF_STATUS sme_sap_ser_callback(struct wlan_serialization_command *cmd,
enum wlan_serialization_cb_reason reason)
{
return QDF_STATUS_SUCCESS;
}
void sme_fill_channel_change_request(mac_handle_t mac_handle,
struct channel_change_req *req,
eCsrPhyMode phy_mode)
{
return;
}
#endif

Ver fichero

@@ -171,9 +171,10 @@ static void init_config_param(struct mac_context *mac);
static bool csr_roam_process_results(struct mac_context *mac, tSmeCmd *pCommand, static bool csr_roam_process_results(struct mac_context *mac, tSmeCmd *pCommand,
enum csr_roamcomplete_result Result, enum csr_roamcomplete_result Result,
void *Context); void *Context);
#ifndef SAP_CP_CLEANUP
static void csr_roaming_state_config_cnf_processor(struct mac_context *mac, static void csr_roaming_state_config_cnf_processor(struct mac_context *mac,
tSmeCmd *pCommand, uint8_t session_id); tSmeCmd *pCommand, uint8_t session_id);
#endif
static QDF_STATUS csr_roam_open(struct mac_context *mac); static QDF_STATUS csr_roam_open(struct mac_context *mac);
static QDF_STATUS csr_roam_close(struct mac_context *mac); static QDF_STATUS csr_roam_close(struct mac_context *mac);
static QDF_STATUS csr_init11d_info(struct mac_context *mac, tCsr11dinfo *ps11dinfo); static QDF_STATUS csr_init11d_info(struct mac_context *mac, tCsr11dinfo *ps11dinfo);
@@ -182,6 +183,7 @@ static QDF_STATUS csr_init_channel_power_list(struct mac_context *mac,
static QDF_STATUS csr_roam_free_connected_info(struct mac_context *mac, static QDF_STATUS csr_roam_free_connected_info(struct mac_context *mac,
struct csr_roam_connectedinfo * struct csr_roam_connectedinfo *
pConnectedInfo); pConnectedInfo);
#ifndef SAP_CP_CLEANUP
static enum csr_cfgdot11mode static enum csr_cfgdot11mode
csr_roam_get_phy_mode_band_for_bss(struct mac_context *mac, csr_roam_get_phy_mode_band_for_bss(struct mac_context *mac,
uint8_t vdev_id, uint8_t vdev_id,
@@ -191,6 +193,7 @@ csr_roam_get_phy_mode_band_for_bss(struct mac_context *mac,
static QDF_STATUS csr_roam_start_wds(struct mac_context *mac, static QDF_STATUS csr_roam_start_wds(struct mac_context *mac,
uint32_t sessionId, uint32_t sessionId,
struct csr_roam_profile *pProfile); struct csr_roam_profile *pProfile);
#endif
static void csr_init_session(struct mac_context *mac, uint32_t sessionId); static void csr_init_session(struct mac_context *mac, uint32_t sessionId);
static void csr_init_operating_classes(struct mac_context *mac); static void csr_init_operating_classes(struct mac_context *mac);
@@ -2532,6 +2535,7 @@ QDF_STATUS csr_roam_issue_deauth_sta_cmd(struct mac_context *mac,
return status; return status;
} }
#ifndef SAP_CP_CLEANUP
QDF_STATUS csr_roam_prepare_bss_config_from_profile(struct mac_context *mac, QDF_STATUS csr_roam_prepare_bss_config_from_profile(struct mac_context *mac,
struct csr_roam_profile *pProfile, struct csr_roam_profile *pProfile,
uint8_t vdev_id, uint8_t vdev_id,
@@ -2777,7 +2781,7 @@ static QDF_STATUS csr_start_bss(struct mac_context *mac, tSmeCmd *pCommand)
return status; return status;
} }
#endif
/** /**
* csr_get_peer_stats_cb - Peer stats callback * csr_get_peer_stats_cb - Peer stats callback
* @ev: stats event * @ev: stats event
@@ -2899,13 +2903,15 @@ QDF_STATUS csr_roam_process_command(struct mac_context *mac, tSmeCmd *pCommand)
pCommand->u.roamCmd.roamReason, sessionId); pCommand->u.roamCmd.roamReason, sessionId);
switch (pCommand->u.roamCmd.roamReason) { switch (pCommand->u.roamCmd.roamReason) {
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
case eCsrStopBss: case eCsrStopBss:
csr_roam_state_change(mac, eCSR_ROAMING_STATE_JOINING, csr_roam_state_change(mac, eCSR_ROAMING_STATE_JOINING,
sessionId); sessionId);
status = csr_roam_issue_stop_bss(mac, sessionId, status = csr_roam_issue_stop_bss(mac, sessionId,
eCSR_ROAM_SUBSTATE_STOP_BSS_REQ); eCSR_ROAM_SUBSTATE_STOP_BSS_REQ);
break; break;
#endif
case eCsrForcedDisassocSta: case eCsrForcedDisassocSta:
case eCsrForcedDeauthSta: case eCsrForcedDeauthSta:
csr_roam_state_change(mac, eCSR_ROAMING_STATE_JOINING, csr_roam_state_change(mac, eCSR_ROAMING_STATE_JOINING,
@@ -2929,6 +2935,8 @@ QDF_STATUS csr_roam_process_command(struct mac_context *mac, tSmeCmd *pCommand)
*/ */
csr_get_peer_stats(mac, sessionId, peer_mac); csr_get_peer_stats(mac, sessionId, peer_mac);
break; break;
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
case eCsrStartBss: case eCsrStartBss:
/* for success case */ /* for success case */
/* fallthrough */ /* fallthrough */
@@ -2940,16 +2948,20 @@ QDF_STATUS csr_roam_process_command(struct mac_context *mac, tSmeCmd *pCommand)
sme_warn("csr_roam() failed with status = 0x%08X", sme_warn("csr_roam() failed with status = 0x%08X",
status); status);
break; break;
#endif
} }
return status; return status;
} }
void csr_reinit_roam_cmd(struct mac_context *mac, tSmeCmd *pCommand) void csr_reinit_roam_cmd(struct mac_context *mac, tSmeCmd *pCommand)
{ {
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
if (pCommand->u.roamCmd.fReleaseProfile) { if (pCommand->u.roamCmd.fReleaseProfile) {
csr_release_profile(mac, &pCommand->u.roamCmd.roamProfile); csr_release_profile(mac, &pCommand->u.roamCmd.roamProfile);
pCommand->u.roamCmd.fReleaseProfile = false; pCommand->u.roamCmd.fReleaseProfile = false;
} }
#endif
/* Because u.roamCmd is union and share with scanCmd and StatusChange */ /* Because u.roamCmd is union and share with scanCmd and StatusChange */
qdf_mem_zero(&pCommand->u.roamCmd, sizeof(struct roam_cmd)); qdf_mem_zero(&pCommand->u.roamCmd, sizeof(struct roam_cmd));
} }
@@ -3033,11 +3045,14 @@ static void csr_roam_process_results_default(struct mac_context *mac_ctx,
} }
switch (cmd->u.roamCmd.roamReason) { switch (cmd->u.roamCmd.roamReason) {
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
case eCsrStopBss: case eCsrStopBss:
csr_roam_call_callback(mac_ctx, session_id, NULL, csr_roam_call_callback(mac_ctx, session_id, NULL,
cmd->u.roamCmd.roamId, eCSR_ROAM_INFRA_IND, cmd->u.roamCmd.roamId, eCSR_ROAM_INFRA_IND,
eCSR_ROAM_RESULT_INFRA_STOPPED); eCSR_ROAM_RESULT_INFRA_STOPPED);
break; break;
#endif
case eCsrForcedDisassocSta: case eCsrForcedDisassocSta:
case eCsrForcedDeauthSta: case eCsrForcedDeauthSta:
roam_info->rssi = mac_ctx->peer_rssi; roam_info->rssi = mac_ctx->peer_rssi;
@@ -3250,6 +3265,7 @@ static bool csr_roam_process_results(struct mac_context *mac_ctx, tSmeCmd *cmd,
return release_cmd; return release_cmd;
} }
#ifndef SAP_CP_CLEANUP
QDF_STATUS csr_roam_copy_profile(struct mac_context *mac, QDF_STATUS csr_roam_copy_profile(struct mac_context *mac,
struct csr_roam_profile *pDstProfile, struct csr_roam_profile *pDstProfile,
struct csr_roam_profile *pSrcProfile, struct csr_roam_profile *pSrcProfile,
@@ -3395,6 +3411,7 @@ QDF_STATUS csr_issue_bss_start(struct mac_context *mac, uint8_t vdev_id,
return status; return status;
} }
#endif
static void csr_flush_pending_start_bss_cmd(struct mac_context *mac_ctx, static void csr_flush_pending_start_bss_cmd(struct mac_context *mac_ctx,
uint8_t vdev_id) uint8_t vdev_id)
@@ -3421,6 +3438,7 @@ static void csr_flush_pending_start_bss_cmd(struct mac_context *mac_ctx,
wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_SME_ID); wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_SME_ID);
} }
#ifndef SAP_CP_CLEANUP
QDF_STATUS csr_bss_start(struct mac_context *mac, uint32_t vdev_id, QDF_STATUS csr_bss_start(struct mac_context *mac, uint32_t vdev_id,
struct csr_roam_profile *profile, uint32_t *roam_id) struct csr_roam_profile *profile, uint32_t *roam_id)
{ {
@@ -3468,6 +3486,7 @@ QDF_STATUS csr_bss_start(struct mac_context *mac, uint32_t vdev_id,
return status; return status;
} }
#endif
bool cm_csr_is_ss_wait_for_key(uint8_t vdev_id) bool cm_csr_is_ss_wait_for_key(uint8_t vdev_id)
{ {
@@ -3555,6 +3574,7 @@ void cm_csr_set_ss_none(uint8_t vdev_id)
vdev_id); vdev_id);
} }
#ifndef SAP_CP_CLEANUP
QDF_STATUS csr_roam_issue_stop_bss_cmd(struct mac_context *mac, uint8_t vdev_id, QDF_STATUS csr_roam_issue_stop_bss_cmd(struct mac_context *mac, uint8_t vdev_id,
eCsrRoamBssType bss_type, eCsrRoamBssType bss_type,
bool high_priority) bool high_priority)
@@ -3585,6 +3605,7 @@ QDF_STATUS csr_roam_issue_stop_bss_cmd(struct mac_context *mac, uint8_t vdev_id,
return status; return status;
} }
#endif
QDF_STATUS csr_roam_ndi_stop(struct mac_context *mac_ctx, uint8_t vdev_id) QDF_STATUS csr_roam_ndi_stop(struct mac_context *mac_ctx, uint8_t vdev_id)
{ {
@@ -3626,6 +3647,7 @@ csr_fill_single_pmk(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
{} {}
#endif #endif
#ifndef SAP_CP_CLEANUP
static void static void
csr_roaming_state_config_cnf_processor(struct mac_context *mac_ctx, csr_roaming_state_config_cnf_processor(struct mac_context *mac_ctx,
tSmeCmd *cmd, uint8_t vdev_id) tSmeCmd *cmd, uint8_t vdev_id)
@@ -3659,6 +3681,7 @@ csr_roaming_state_config_cnf_processor(struct mac_context *mac_ctx,
return; return;
} }
} }
#endif
static void csr_roam_roaming_state_stop_bss_rsp_processor(struct mac_context *mac, static void csr_roam_roaming_state_stop_bss_rsp_processor(struct mac_context *mac,
tSirSmeRsp *pSmeRsp) tSirSmeRsp *pSmeRsp)
@@ -3675,7 +3698,10 @@ static void csr_roam_roaming_state_stop_bss_rsp_processor(struct mac_context *ma
if (pSmeRsp->status_code != eSIR_SME_SUCCESS) if (pSmeRsp->status_code != eSIR_SME_SUCCESS)
result_code = eCsrStopBssFailure; result_code = eCsrStopBssFailure;
} }
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
csr_roam_complete(mac, result_code, NULL, pSmeRsp->vdev_id); csr_roam_complete(mac, result_code, NULL, pSmeRsp->vdev_id);
#endif
} }
} }
@@ -3726,8 +3752,11 @@ csr_roam_roaming_state_start_bss_rsp_processor(struct mac_context *mac,
/* Let csr_roam_complete decide what to do */ /* Let csr_roam_complete decide what to do */
result = eCsrStartBssFailure; result = eCsrStartBssFailure;
} }
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
csr_roam_complete(mac, result, pSmeStartBssRsp, csr_roam_complete(mac, result, pSmeStartBssRsp,
pSmeStartBssRsp->sessionId); pSmeStartBssRsp->sessionId);
#endif
} }
/** /**
@@ -5309,12 +5338,18 @@ csr_compute_mode_and_band(struct mac_context *mac_ctx,
* *
* Return: dot11mode * Return: dot11mode
*/ */
#ifndef SAP_CP_CLEANUP
static enum csr_cfgdot11mode static enum csr_cfgdot11mode
csr_roam_get_phy_mode_band_for_bss(struct mac_context *mac_ctx, csr_roam_get_phy_mode_band_for_bss(struct mac_context *mac_ctx,
uint8_t vdev_id, uint8_t vdev_id,
struct csr_roam_profile *profile, struct csr_roam_profile *profile,
uint32_t bss_op_ch_freq, uint32_t bss_op_ch_freq,
enum reg_wifi_band *p_band) enum reg_wifi_band *p_band)
#else
enum csr_cfgdot11mode
csr_roam_get_phy_mode_band_for_bss(struct mac_context *mac_ctx,
struct bss_dot11_config *dot11_cfg)
#endif
{ {
enum reg_wifi_band band = REG_BAND_2G; enum reg_wifi_band band = REG_BAND_2G;
qdf_freq_t opr_freq = 0; qdf_freq_t opr_freq = 0;
@@ -5398,6 +5433,7 @@ csr_roam_get_phy_mode_band_for_bss(struct mac_context *mac_ctx,
return cfg_dot11_mode; return cfg_dot11_mode;
} }
#ifndef SAP_CP_CLEANUP
QDF_STATUS csr_roam_issue_stop_bss(struct mac_context *mac, QDF_STATUS csr_roam_issue_stop_bss(struct mac_context *mac,
uint32_t sessionId, enum csr_roam_substate NewSubstate) uint32_t sessionId, enum csr_roam_substate NewSubstate)
{ {
@@ -5420,6 +5456,7 @@ QDF_STATUS csr_roam_issue_stop_bss(struct mac_context *mac,
} }
return status; return status;
} }
#endif
QDF_STATUS csr_get_cfg_valid_channels(struct mac_context *mac, QDF_STATUS csr_get_cfg_valid_channels(struct mac_context *mac,
qdf_freq_t *ch_freq_list, qdf_freq_t *ch_freq_list,
@@ -5443,6 +5480,7 @@ QDF_STATUS csr_get_cfg_valid_channels(struct mac_context *mac,
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
#ifndef SAP_CP_CLEANUP
/** /**
* csr_populate_basic_rates() - populates OFDM or CCK rates * csr_populate_basic_rates() - populates OFDM or CCK rates
* @rates: rate struct to populate * @rates: rate struct to populate
@@ -5460,6 +5498,7 @@ csr_populate_basic_rates(tSirMacRateSet *rate_set, bool is_ofdm_rates,
{ {
wlan_populate_basic_rates(rate_set, is_ofdm_rates, is_basic_rates); wlan_populate_basic_rates(rate_set, is_ofdm_rates, is_basic_rates);
} }
#endif
/** /**
* csr_convert_mode_to_nw_type() - convert mode into network type * csr_convert_mode_to_nw_type() - convert mode into network type
@@ -5493,6 +5532,7 @@ csr_convert_mode_to_nw_type(enum csr_cfgdot11mode dot11_mode,
return eSIR_DONOT_USE_NW_TYPE; return eSIR_DONOT_USE_NW_TYPE;
} }
#ifndef SAP_CP_CLEANUP
/** /**
* csr_populate_supported_rates_from_hostapd() - populates operational * csr_populate_supported_rates_from_hostapd() - populates operational
* and extended rates. * and extended rates.
@@ -5542,7 +5582,6 @@ static void csr_populate_supported_rates_from_hostapd(tSirMacRateSet *opr_rates,
FL("Extended Rate is %2x"), ext_rates->rate[i]); FL("Extended Rate is %2x"), ext_rates->rate[i]);
} }
} }
/** /**
* csr_roam_get_bss_start_parms() - get bss start param from profile * csr_roam_get_bss_start_parms() - get bss start param from profile
* @mac: mac global context * @mac: mac global context
@@ -5777,7 +5816,7 @@ void csr_roam_prepare_bss_params(struct mac_context *mac, uint32_t sessionId,
} }
} }
#endif
#ifdef WLAN_FEATURE_ROAM_OFFLOAD #ifdef WLAN_FEATURE_ROAM_OFFLOAD
void csr_get_pmk_info(struct mac_context *mac_ctx, uint8_t session_id, void csr_get_pmk_info(struct mac_context *mac_ctx, uint8_t session_id,
struct wlan_crypto_pmksa *pmk_cache) struct wlan_crypto_pmksa *pmk_cache)
@@ -5949,6 +5988,7 @@ void csr_clear_sae_single_pmk(struct wlan_objmgr_psoc *psoc,
} }
#endif #endif
#ifndef SAP_CP_CLEANUP
static QDF_STATUS csr_roam_start_wds(struct mac_context *mac, uint32_t sessionId, static QDF_STATUS csr_roam_start_wds(struct mac_context *mac, uint32_t sessionId,
struct csr_roam_profile *pProfile) struct csr_roam_profile *pProfile)
{ {
@@ -5983,7 +6023,7 @@ static QDF_STATUS csr_roam_start_wds(struct mac_context *mac, uint32_t sessionId
return status; return status;
} }
#endif
#ifdef FEATURE_WLAN_ESE #ifdef FEATURE_WLAN_ESE
void csr_update_prev_ap_info(struct csr_roam_session *session, void csr_update_prev_ap_info(struct csr_roam_session *session,
struct wlan_objmgr_vdev *vdev) struct wlan_objmgr_vdev *vdev)
@@ -7020,6 +7060,7 @@ QDF_STATUS csr_send_assoc_cnf_msg(struct mac_context *mac,
return status; return status;
} }
#ifndef SAP_CP_CLEANUP
QDF_STATUS csr_send_mb_start_bss_req_msg(struct mac_context *mac, uint32_t QDF_STATUS csr_send_mb_start_bss_req_msg(struct mac_context *mac, uint32_t
sessionId, eCsrRoamBssType bssType, sessionId, eCsrRoamBssType bssType,
struct csr_roamstart_bssparams *pParam) struct csr_roamstart_bssparams *pParam)
@@ -7108,7 +7149,7 @@ QDF_STATUS csr_send_mb_stop_bss_req_msg(struct mac_context *mac,
return umac_send_mb_message_to_mac(pMsg); return umac_send_mb_message_to_mac(pMsg);
} }
#endif
/** /**
* csr_store_oce_cfg_flags_in_vdev() - fill OCE flags from ini * csr_store_oce_cfg_flags_in_vdev() - fill OCE flags from ini
* @mac: mac_context. * @mac: mac_context.
@@ -7668,12 +7709,15 @@ static enum wlan_serialization_cmd_type csr_get_roam_cmd_type(
enum wlan_serialization_cmd_type cmd_type = WLAN_SER_CMD_MAX; enum wlan_serialization_cmd_type cmd_type = WLAN_SER_CMD_MAX;
switch (sme_cmd->u.roamCmd.roamReason) { switch (sme_cmd->u.roamCmd.roamReason) {
/* To be removed after SAP CSR cleanup changes */
#ifndef SAP_CP_CLEANUP
case eCsrStartBss: case eCsrStartBss:
cmd_type = WLAN_SER_CMD_VDEV_START_BSS; cmd_type = WLAN_SER_CMD_VDEV_START_BSS;
break; break;
case eCsrStopBss: case eCsrStopBss:
cmd_type = WLAN_SER_CMD_VDEV_STOP_BSS; cmd_type = WLAN_SER_CMD_VDEV_STOP_BSS;
break; break;
#endif
case eCsrForcedDisassocSta: case eCsrForcedDisassocSta:
cmd_type = WLAN_SER_CMD_FORCE_DISASSOC_STA; cmd_type = WLAN_SER_CMD_FORCE_DISASSOC_STA;
break; break;
@@ -7890,6 +7934,7 @@ QDF_STATUS csr_roam_update_config(struct mac_context *mac_ctx, uint8_t session_i
return status; return status;
} }
#ifndef SAP_CP_CLEANUP
QDF_STATUS csr_roam_channel_change_req(struct mac_context *mac, QDF_STATUS csr_roam_channel_change_req(struct mac_context *mac,
struct qdf_mac_addr bssid, struct qdf_mac_addr bssid,
uint8_t vdev_id, uint8_t vdev_id,
@@ -7949,7 +7994,13 @@ QDF_STATUS csr_roam_channel_change_req(struct mac_context *mac,
return status; return status;
} }
#else
QDF_STATUS csr_sap_channel_change_req(struct mac_context *mac,
struct channel_change_req *req)
{
return QDF_STATUS_SUCCESS;
}
#endif
/* /*
* Post Beacon Tx Start request to LIM * Post Beacon Tx Start request to LIM
* immediately after SAP CAC WAIT is * immediately after SAP CAC WAIT is
@@ -8706,3 +8757,84 @@ QDF_STATUS csr_update_owe_info(struct mac_context *mac,
return status; return status;
} }
#ifdef SAP_CP_CLEANUP
/**
* csr_set_sap_ser_params() - API to fill serialization parameters for
* SAP requests
* @cmd : Serialization command
* @cmd_type: Type of serialization command
*
* Return: Void
*/
static void csr_set_sap_ser_params(struct wlan_serialization_command *cmd,
enum wlan_serialization_cmd_type cmd_type)
{
return;
}
QDF_STATUS csr_bss_start(struct mac_context *mac, uint32_t vdev_id,
struct start_bss_config *bss_config,
uint32_t *roam_id)
{
return QDF_STATUS_SUCCESS;
}
QDF_STATUS csr_roam_issue_stop_bss_cmd(struct mac_context *mac,
uint8_t vdev_id,
eCsrRoamBssType bss_type,
bool high_priority)
{
return QDF_STATUS_SUCCESS;
}
/**
* csr_process_sap_defaults() - API to process the default response
* for SAP from LIM
* @mac_ctx: mac context
* @req: Serialization command posted by SAP
* @vdev_id : vdev id
*
* Return: void
*/
static void csr_process_sap_defaults(struct mac_context *mac_ctx,
struct wlan_serialization_command *req,
uint32_t vdev_id)
{
return;
}
/**
* csr_process_sap_results() - API to process the LIM response for
* the messages posted by SAP module
* @mac_ctx: mac context
* @req: Serialization command posted by SAP
* @rsp: Response from LIM
* @result: Result from LIM
* @vdev_id : vdev id
*
* Return: void
*/
static bool csr_process_sap_results(struct mac_context *mac_ctx,
struct wlan_serialization_command *req,
void *rsp,
enum csr_roamcomplete_result result,
uint8_t vdev_id)
{
return true;
}
void csr_dequeue_sap_cmd(struct mac_context *mac_ctx,
struct wlan_serialization_command *req,
uint32_t vdev_id)
{
return;
}
void csr_process_sap_response(struct mac_context *mac_ctx,
enum csr_roamcomplete_result result,
void *rsp, uint8_t vdev_id)
{
return;
}
#endif

Ver fichero

@@ -78,11 +78,12 @@ void csr_roam_joined_state_msg_processor(struct mac_context *mac,
void csr_release_command_roam(struct mac_context *mac, tSmeCmd *pCommand); void csr_release_command_roam(struct mac_context *mac, tSmeCmd *pCommand);
void csr_release_command_wm_status_change(struct mac_context *mac, void csr_release_command_wm_status_change(struct mac_context *mac,
tSmeCmd *pCommand); tSmeCmd *pCommand);
#ifndef SAP_CP_CLEANUP
QDF_STATUS csr_roam_copy_profile(struct mac_context *mac, QDF_STATUS csr_roam_copy_profile(struct mac_context *mac,
struct csr_roam_profile *pDstProfile, struct csr_roam_profile *pDstProfile,
struct csr_roam_profile *pSrcProfile, struct csr_roam_profile *pSrcProfile,
uint8_t vdev_id); uint8_t vdev_id);
#endif
QDF_STATUS csr_scan_open(struct mac_context *mac); QDF_STATUS csr_scan_open(struct mac_context *mac);
QDF_STATUS csr_scan_close(struct mac_context *mac); QDF_STATUS csr_scan_close(struct mac_context *mac);
@@ -93,9 +94,15 @@ QDF_STATUS csr_roam_call_callback(struct mac_context *mac, uint32_t sessionId,
struct csr_roam_info *roam_info, struct csr_roam_info *roam_info,
uint32_t roamId, uint32_t roamId,
eRoamCmdStatus u1, eCsrRoamResult u2); eRoamCmdStatus u1, eCsrRoamResult u2);
#ifndef SAP_CP_CLEANUP
QDF_STATUS csr_issue_bss_start(struct mac_context *mac, uint8_t vdev_id, QDF_STATUS csr_issue_bss_start(struct mac_context *mac, uint8_t vdev_id,
struct csr_roam_profile *pProfile, struct csr_roam_profile *pProfile,
uint32_t roamId); uint32_t roamId);
#else
QDF_STATUS csr_issue_bss_start(struct mac_context *mac, uint8_t vdev_id,
struct start_bss_config *bss_config,
uint32_t roam_id);
#endif
void csr_roam_complete(struct mac_context *mac, enum csr_roamcomplete_result Result, void csr_roam_complete(struct mac_context *mac, enum csr_roamcomplete_result Result,
void *Context, uint8_t session_id); void *Context, uint8_t session_id);
@@ -123,13 +130,14 @@ csr_issue_set_context_req_helper(struct mac_context *mac,
uint8_t *key); uint8_t *key);
void csr_roam_check_for_link_status_change(struct mac_context *mac, void csr_roam_check_for_link_status_change(struct mac_context *mac,
tSirSmeRsp *pSirMsg); tSirSmeRsp *pSirMsg);
#ifndef SAP_CP_CLEANUP
QDF_STATUS csr_roam_issue_start_bss(struct mac_context *mac, uint32_t sessionId, QDF_STATUS csr_roam_issue_start_bss(struct mac_context *mac, uint32_t sessionId,
struct csr_roamstart_bssparams *pParam, struct csr_roamstart_bssparams *pParam,
struct csr_roam_profile *pProfile, struct csr_roam_profile *pProfile,
uint32_t roamId); uint32_t roamId);
QDF_STATUS csr_roam_issue_stop_bss(struct mac_context *mac, uint32_t sessionId, QDF_STATUS csr_roam_issue_stop_bss(struct mac_context *mac, uint32_t sessionId,
enum csr_roam_substate NewSubstate); enum csr_roam_substate NewSubstate);
#endif
QDF_STATUS csr_send_mb_disassoc_req_msg(struct mac_context *mac, uint32_t sessionId, QDF_STATUS csr_send_mb_disassoc_req_msg(struct mac_context *mac, uint32_t sessionId,
tSirMacAddr bssId, uint16_t reasonCode); tSirMacAddr bssId, uint16_t reasonCode);
QDF_STATUS csr_send_mb_deauth_req_msg(struct mac_context *mac, uint32_t sessionId, QDF_STATUS csr_send_mb_deauth_req_msg(struct mac_context *mac, uint32_t sessionId,
@@ -142,13 +150,14 @@ QDF_STATUS csr_send_assoc_cnf_msg(struct mac_context *mac,
struct assoc_ind *pAssocInd, struct assoc_ind *pAssocInd,
QDF_STATUS status, QDF_STATUS status,
enum wlan_status_code mac_status_code); enum wlan_status_code mac_status_code);
#ifndef SAP_CP_CLEANUP
QDF_STATUS csr_send_mb_start_bss_req_msg(struct mac_context *mac, QDF_STATUS csr_send_mb_start_bss_req_msg(struct mac_context *mac,
uint32_t sessionId, uint32_t sessionId,
eCsrRoamBssType bssType, eCsrRoamBssType bssType,
struct csr_roamstart_bssparams *pParam); struct csr_roamstart_bssparams *pParam);
QDF_STATUS csr_send_mb_stop_bss_req_msg(struct mac_context *mac, QDF_STATUS csr_send_mb_stop_bss_req_msg(struct mac_context *mac,
uint32_t sessionId); uint32_t sessionId);
#endif
/** /**
* csr_get_cfg_valid_channels() - Get valid channel frequency list * csr_get_cfg_valid_channels() - Get valid channel frequency list
* @mac: mac context * @mac: mac context
@@ -162,10 +171,13 @@ QDF_STATUS csr_send_mb_stop_bss_req_msg(struct mac_context *mac,
QDF_STATUS csr_get_cfg_valid_channels(struct mac_context *mac, QDF_STATUS csr_get_cfg_valid_channels(struct mac_context *mac,
uint32_t *ch_freq_list, uint32_t *ch_freq_list,
uint32_t *num_ch_freq); uint32_t *num_ch_freq);
#ifndef SAP_CP_CLEANUP
/* to free memory allocated inside the profile structure */ /* to free memory allocated inside the profile structure */
void csr_release_profile(struct mac_context *mac, void csr_release_profile(struct mac_context *mac,
struct csr_roam_profile *pProfile); struct csr_roam_profile *pProfile);
#else
void csr_clear_start_bss_config(struct start_bss_config *sap_config);
#endif
enum csr_cfgdot11mode enum csr_cfgdot11mode
csr_get_cfg_dot11_mode_from_csr_phy_mode(bool is_ap, eCsrPhyMode phyMode); csr_get_cfg_dot11_mode_from_csr_phy_mode(bool is_ap, eCsrPhyMode phyMode);
@@ -352,7 +364,7 @@ QDF_STATUS csr_scan_result_purge(struct mac_context *mac,
tScanResultHandle hScanResult); tScanResultHandle hScanResult);
/* /////////////////////////////////////////Common Scan ends */ /* /////////////////////////////////////////Common Scan ends */
#ifndef SAP_CP_CLEANUP
/** /**
* csr_bss_start() - A wrapper function to request CSR to inititiate start bss * csr_bss_start() - A wrapper function to request CSR to inititiate start bss
* @mac: mac ctx * @mac: mac ctx
@@ -364,6 +376,21 @@ QDF_STATUS csr_scan_result_purge(struct mac_context *mac,
*/ */
QDF_STATUS csr_bss_start(struct mac_context *mac, uint32_t vdev_id, QDF_STATUS csr_bss_start(struct mac_context *mac, uint32_t vdev_id,
struct csr_roam_profile *profile, uint32_t *roam_id); struct csr_roam_profile *profile, uint32_t *roam_id);
#else
/**
* csr_bss_start() - CSR API to post the start bss request to serialization
* module.
* @mac: mac context
* @vdev_id: vdev id
* @bss_config: start bss config
* @roam_id : pointer to roam id
*
* Return: QDF_STATUS
*/
QDF_STATUS csr_bss_start(struct mac_context *mac, uint32_t vdev_id,
struct start_bss_config *bss_config,
uint32_t *roam_id);
#endif
#ifdef WLAN_FEATURE_ROAM_OFFLOAD #ifdef WLAN_FEATURE_ROAM_OFFLOAD
/* /*
@@ -528,12 +555,13 @@ QDF_STATUS csr_sta_continue_csa(struct mac_context *mac_ctx,
QDF_STATUS csr_set_ht2040_mode(struct mac_context *mac, uint32_t sessionId, QDF_STATUS csr_set_ht2040_mode(struct mac_context *mac, uint32_t sessionId,
ePhyChanBondState cbMode, bool obssEnabled); ePhyChanBondState cbMode, bool obssEnabled);
#endif #endif
#ifndef SAP_CP_CLEANUP
QDF_STATUS QDF_STATUS
csr_roam_prepare_bss_config_from_profile(struct mac_context *mac_ctx, csr_roam_prepare_bss_config_from_profile(struct mac_context *mac_ctx,
struct csr_roam_profile *profile, struct csr_roam_profile *profile,
uint8_t vdev_id, uint8_t vdev_id,
struct bss_config_param *bss_cfg); struct bss_config_param *bss_cfg);
#endif
void void
csr_roam_prepare_bss_params(struct mac_context *mac_ctx, uint32_t session_id, csr_roam_prepare_bss_params(struct mac_context *mac_ctx, uint32_t session_id,
struct csr_roam_profile *profile, struct csr_roam_profile *profile,
@@ -632,4 +660,32 @@ void csr_cm_get_sta_cxn_info(struct mac_context *mac_ctx, uint8_t vdev_id,
#endif #endif
#endif #endif
#ifdef SAP_CP_CLEANUP
/**
* csr_dequeue_sap_cmd() - API to dequeue the active/pending
* command posted by SAP from the serialization queues
* @mac_ctx: mac context
* @req: Serialization command to be dequeued
* @vdev_id: vdev ida
*
* Return: None
*/
void csr_dequeue_sap_cmd(struct mac_context *mac_ctx,
struct wlan_serialization_command *req,
uint32_t vdev_id);
/**
* csr_process_sap_response() - Wrapper API to process the SAP
* response from LIM
* @mac_ctx: mac context
* @result: Result of LIM processing
* @rsp: Response from LIM
* @vdev_id: vdev id
*
* Return: void
*/
void csr_process_sap_response(struct mac_context *mac,
enum csr_roamcomplete_result result,
void *context, uint8_t session_id);
#endif
#endif /* CSR_INSIDE_API_H__ */ #endif /* CSR_INSIDE_API_H__ */