1
0

qcacld-3.0: Add RSO logic to send roam trigger from target if

Add RSO logic to send roam trigger from target if along with
some optimization to move old logic in ROAM_OFFLOAD_V1.

Change-Id: I38e7fb4f8873328097df7e3a25d6c709f8d69b33
CRs-Fixed: 2765155
Este cometimento está contido em:
gaurank kathpalia
2020-08-28 12:32:03 +05:30
cometido por snandini
ascendente 907cddf3c5
cometimento 0ea2611649
28 ficheiros modificados com 199 adições e 175 eliminações

Ver ficheiro

@@ -199,15 +199,21 @@ target_if_cm_roam_reason_vsie(wmi_unified_t wmi_handle,
}
/* target_if_cm_roam_triggers(): send roam triggers to WMI
* @wmi_handle: handle to WMI
* @vdev: vdev
* @req: roam triggers parameters
*
* Return: QDF status
*/
static QDF_STATUS
target_if_cm_roam_triggers(wmi_unified_t wmi_handle,
target_if_cm_roam_triggers(struct wlan_objmgr_vdev *vdev,
struct wlan_roam_triggers *req)
{
wmi_unified_t wmi_handle;
wmi_handle = target_if_cm_roam_get_wmi_handle_from_vdev(vdev);
if (!wmi_handle)
return QDF_STATUS_E_FAILURE;
if (!target_if_is_vdev_valid(req->vdev_id))
return QDF_STATUS_E_INVAL;
@@ -322,7 +328,7 @@ target_if_cm_roam_reason_vsie(wmi_unified_t wmi_handle,
}
static QDF_STATUS
target_if_cm_roam_triggers(wmi_unified_t wmi_handle,
target_if_cm_roam_triggers(struct wlan_objmgr_vdev *vdev,
struct wlan_roam_triggers *req)
{
return QDF_STATUS_E_NOSUPPORT;
@@ -870,7 +876,7 @@ target_if_cm_roam_send_start(struct wlan_objmgr_vdev *vdev,
target_if_cm_roam_reason_vsie(wmi_handle, &req->reason_vsie_enable);
target_if_cm_roam_triggers(wmi_handle, &req->roam_triggers);
target_if_cm_roam_triggers(vdev, &req->roam_triggers);
/* Opportunistic scan runs on a timer, value set by
* empty_scan_refresh_period. Age out the entries after 3 such
@@ -1055,7 +1061,7 @@ target_if_cm_roam_send_stop(struct wlan_objmgr_vdev *vdev,
if (mode == WMI_ROAM_SCAN_MODE_NONE) {
req->roam_triggers.vdev_id = vdev_id;
req->roam_triggers.trigger_bitmap = 0;
target_if_cm_roam_triggers(wmi_handle, &req->roam_triggers);
target_if_cm_roam_triggers(vdev, &req->roam_triggers);
}
end:
return status;
@@ -1140,7 +1146,7 @@ target_if_cm_roam_send_update_config(struct wlan_objmgr_vdev *vdev,
target_if_cm_roam_idle_params(
wmi_handle, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
&req->idle_params);
target_if_cm_roam_triggers(wmi_handle, &req->roam_triggers);
target_if_cm_roam_triggers(vdev, &req->roam_triggers);
}
end:
return status;
@@ -1209,6 +1215,7 @@ target_if_cm_roam_register_rso_req_ops(struct wlan_cm_roam_tx_ops *tx_ops)
tx_ops->send_roam_update_config = target_if_cm_roam_send_update_config;
tx_ops->send_roam_abort = target_if_cm_roam_abort;
tx_ops->send_roam_per_config = target_if_cm_roam_per_config;
tx_ops->send_roam_triggers = target_if_cm_roam_triggers;
}
#else
static void

Ver ficheiro

@@ -259,6 +259,33 @@ cm_roam_init_req(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id, bool enable)
return wlan_cm_tgt_send_roam_offload_init(psoc, vdev_id, enable);
}
QDF_STATUS cm_rso_set_roam_trigger(struct wlan_objmgr_pdev *pdev,
uint8_t vdev_id,
struct wlan_roam_triggers *trigger)
{
QDF_STATUS status;
uint8_t reason = REASON_SUPPLICANT_DE_INIT_ROAMING;
struct wlan_objmgr_psoc *psoc = wlan_pdev_get_psoc(pdev);
if (!psoc)
return QDF_STATUS_E_INVAL;
mlme_set_roam_trigger_bitmap(psoc, trigger->vdev_id,
trigger->trigger_bitmap);
if (trigger->trigger_bitmap)
reason = REASON_SUPPLICANT_INIT_ROAMING;
status = cm_roam_state_change(pdev, vdev_id,
trigger->trigger_bitmap ? WLAN_ROAM_RSO_ENABLED :
WLAN_ROAM_DEINIT,
reason);
if (QDF_IS_STATUS_ERROR(status))
return status;
return wlan_cm_tgt_send_roam_triggers(psoc, vdev_id, trigger);
}
static void cm_roam_set_roam_reason_better_ap(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id, bool set)
{

Ver ficheiro

@@ -63,6 +63,19 @@ QDF_STATUS cm_roam_send_rso_cmd(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id, uint8_t rso_command,
uint8_t reason);
/**
* cm_rso_set_roam_trigger() - Send roam trigger bitmap firmware
* @pdev: Pointer to pdev
* @vdev_id: vdev id
* @triggers: Carries pointer of the object containing vdev id and
* roam_trigger_bitmap.
*
* Return: QDF_STATUS
*/
QDF_STATUS cm_rso_set_roam_trigger(struct wlan_objmgr_pdev *pdev,
uint8_t vdev_id,
struct wlan_roam_triggers *trigger);
/**
* cm_roam_stop_req() - roam stop request handling
* @psoc: psoc pointer

Ver ficheiro

@@ -162,16 +162,17 @@ char
*cm_roam_get_requestor_string(enum wlan_cm_rso_control_requestor requestor);
/**
* ucfg_cm_rso_init_deinit() - Init or Deinit roaming module at firmware
* wlan_cm_rso_set_roam_trigger() - Send roam trigger bitmap firmware
* @pdev: Pointer to pdev
* @vdev_id: vdev id
* @enable: true: Send RSO init and RSO enable
* false: Send RSO stop
* @triggers: Carries pointer of the object containing vdev id and
* roam_trigger_bitmap.
*
* Return: QDF_STATUS
*/
QDF_STATUS wlan_cm_rso_init_deinit(struct wlan_objmgr_pdev *pdev,
uint8_t vdev_id, bool enable);
QDF_STATUS
wlan_cm_rso_set_roam_trigger(struct wlan_objmgr_pdev *pdev, uint8_t vdev_id,
struct wlan_roam_triggers *trigger_data);
/**
* wlan_cm_disable_rso() - Disable roam scan offload to firmware

Ver ficheiro

@@ -1228,6 +1228,8 @@ struct wlan_cm_roam_tx_ops {
QDF_STATUS (*send_roam_per_config)(
struct wlan_objmgr_vdev *vdev,
struct wlan_per_roam_config_req *req);
QDF_STATUS (*send_roam_triggers)(struct wlan_objmgr_vdev *vdev,
struct wlan_roam_triggers *req);
#endif
};

Ver ficheiro

@@ -55,19 +55,19 @@ QDF_STATUS ucfg_cm_abort_roam_scan(struct wlan_objmgr_pdev *pdev,
uint8_t vdev_id);
/**
* ucfg_cm_rso_init_deinit() - Init or Deinit roaming module at firmware
* ucfg_cm_rso_set_roam_trigger() - Send roam trigger bitmap firmware
* @pdev: Pointer to pdev
* @vdev_id: vdev id
* @enable: true: Send RSO init and RSO enable
* false: Send RSO stop
* @trigger: Carries pointer of the object containing vdev id and
* roam_trigger_bitmap.
*
* Return: QDF_STATUS
*/
static inline QDF_STATUS
ucfg_cm_rso_init_deinit(struct wlan_objmgr_pdev *pdev, uint8_t vdev_id,
bool enable)
ucfg_cm_rso_set_roam_trigger(struct wlan_objmgr_pdev *pdev, uint8_t vdev_id,
struct wlan_roam_triggers *trigger)
{
return wlan_cm_rso_init_deinit(pdev, vdev_id, enable);
return wlan_cm_rso_set_roam_trigger(pdev, vdev_id, trigger);
}
/**

Ver ficheiro

@@ -119,6 +119,17 @@ QDF_STATUS wlan_cm_tgt_send_roam_per_config(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id,
struct wlan_per_roam_config_req *req);
/**
* wlan_cm_tgt_send_roam_triggers() - Send roam trigger command to FW
* @psoc: psoc pointer
* @vdev_id: vdev id
* @req: roam trigger parameter
*
* Return: QDF_STATUS
*/
QDF_STATUS wlan_cm_tgt_send_roam_triggers(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id,
struct wlan_roam_triggers *req);
#endif
#endif
#endif /* CM_TGT_IF_TX_API_H__ */

Ver ficheiro

@@ -98,23 +98,17 @@ char *cm_roam_get_requestor_string(enum wlan_cm_rso_control_requestor requestor)
}
QDF_STATUS
wlan_cm_rso_init_deinit(struct wlan_objmgr_pdev *pdev, uint8_t vdev_id,
bool enable)
wlan_cm_rso_set_roam_trigger(struct wlan_objmgr_pdev *pdev, uint8_t vdev_id,
struct wlan_roam_triggers *trigger)
{
uint8_t reason = REASON_SUPPLICANT_DE_INIT_ROAMING;
QDF_STATUS status;
status = cm_roam_acquire_lock();
if (QDF_IS_STATUS_ERROR(status))
return QDF_STATUS_E_FAILURE;
if (enable)
reason = REASON_SUPPLICANT_INIT_ROAMING;
status = cm_rso_set_roam_trigger(pdev, vdev_id, trigger);
status = cm_roam_state_change(
pdev, vdev_id,
enable ? WLAN_ROAM_RSO_ENABLED : WLAN_ROAM_DEINIT,
reason);
cm_roam_release_lock();
return status;

Ver ficheiro

@@ -174,7 +174,7 @@ QDF_STATUS wlan_cm_tgt_send_roam_offload_init(struct wlan_objmgr_psoc *psoc,
status = roam_tx_ops.send_roam_offload_init_req(vdev, &init_msg);
if (QDF_IS_STATUS_ERROR(status))
mlme_debug("CM_RSO: vdev%d fail to send rso init", vdev_id);
mlme_err("CM_RSO: vdev%d fail to send rso init", vdev_id);
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID);
@@ -204,7 +204,7 @@ QDF_STATUS wlan_cm_tgt_send_roam_start_req(struct wlan_objmgr_psoc *psoc,
status = roam_tx_ops.send_roam_start_req(vdev, req);
if (QDF_IS_STATUS_ERROR(status))
mlme_debug("CM_RSO: vdev %d fail to send roam start", vdev_id);
mlme_err("CM_RSO: vdev %d fail to send roam start", vdev_id);
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID);
@@ -234,7 +234,7 @@ QDF_STATUS wlan_cm_tgt_send_roam_stop_req(struct wlan_objmgr_psoc *psoc,
status = roam_tx_ops.send_roam_stop_offload(vdev, req);
if (QDF_IS_STATUS_ERROR(status))
mlme_debug("CM_RSO: vdev %d fail to send roam stop", vdev_id);
mlme_err("CM_RSO: vdev %d fail to send roam stop", vdev_id);
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID);
@@ -264,7 +264,7 @@ QDF_STATUS wlan_cm_tgt_send_roam_update_req(struct wlan_objmgr_psoc *psoc,
status = roam_tx_ops.send_roam_update_config(vdev, req);
if (QDF_IS_STATUS_ERROR(status))
mlme_debug("CM_RSO: vdev %d fail to send roam update", vdev_id);
mlme_err("CM_RSO: vdev %d fail to send roam update", vdev_id);
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID);
@@ -292,7 +292,7 @@ QDF_STATUS wlan_cm_tgt_send_roam_abort_req(struct wlan_objmgr_psoc *psoc,
status = roam_tx_ops.send_roam_abort(vdev, vdev_id);
if (QDF_IS_STATUS_ERROR(status))
mlme_debug("CM_RSO: vdev %d fail to send roam abort", vdev_id);
mlme_err("CM_RSO: vdev %d fail to send roam abort", vdev_id);
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID);
@@ -322,7 +322,37 @@ QDF_STATUS wlan_cm_tgt_send_roam_per_config(struct wlan_objmgr_psoc *psoc,
status = roam_tx_ops.send_roam_per_config(vdev, req);
if (QDF_IS_STATUS_ERROR(status))
mlme_debug("CM_RSO: vdev %d fail to send per config", vdev_id);
mlme_err("CM_RSO: vdev %d fail to send per config", vdev_id);
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID);
return status;
}
QDF_STATUS wlan_cm_tgt_send_roam_triggers(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id,
struct wlan_roam_triggers *req)
{
QDF_STATUS status;
struct wlan_cm_roam_tx_ops roam_tx_ops;
struct wlan_objmgr_vdev *vdev;
vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc, vdev_id,
WLAN_MLME_NB_ID);
if (!vdev)
return QDF_STATUS_E_INVAL;
roam_tx_ops = GET_CM_ROAM_TX_OPS_FROM_VDEV(vdev);
if (!roam_tx_ops.send_roam_triggers) {
mlme_err("CM_RSO: vdev %d send_roam_triggers is NULL",
vdev_id);
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID);
return QDF_STATUS_E_INVAL;
}
status = roam_tx_ops.send_roam_triggers(vdev, req);
if (QDF_IS_STATUS_ERROR(status))
mlme_err("CM_RSO: vdev %d fail to send roamtrigger", vdev_id);
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID);

Ver ficheiro

@@ -4692,7 +4692,13 @@ hdd_send_roam_triggers_to_sme(struct hdd_context *hdd_ctx,
triggers.trigger_bitmap =
wlan_hdd_convert_control_roam_trigger_bitmap(roam_trigger_bitmap);
#ifdef ROAM_OFFLOAD_V1
status = ucfg_cm_rso_set_roam_trigger(hdd_ctx->pdev, vdev_id,
&triggers);
#else
/* temp change, This will be removed with ROAM_OFFLOAD_V1 enabled */
status = sme_set_roam_triggers(hdd_ctx->mac_handle, &triggers);
#endif
if (QDF_IS_STATUS_ERROR(status))
hdd_err("Failed to set roam control trigger bitmap");

Ver ficheiro

@@ -211,7 +211,9 @@ enum eWniMsgTypes {
eWNI_SME_UPDATE_ACCESS_POLICY_VENDOR_IE = SIR_SME_MSG_TYPES_BEGIN + 130,
eWNI_SME_DEFAULT_SCAN_IE = SIR_SME_MSG_TYPES_BEGIN + 131,
eWNI_SME_ROAM_INVOKE = SIR_SME_MSG_TYPES_BEGIN + 132,
#ifndef ROAM_OFFLOAD_V1
eWNI_SME_ROAM_SCAN_OFFLOAD_REQ = SIR_SME_MSG_TYPES_BEGIN + 133,
#endif
eWNI_SME_LOST_LINK_INFO_IND = SIR_SME_MSG_TYPES_BEGIN + 134,
eWNI_SME_DEL_ALL_TDLS_PEERS = SIR_SME_MSG_TYPES_BEGIN + 135,
eWNI_SME_RSO_CMD_STATUS_IND = SIR_SME_MSG_TYPES_BEGIN + 136,
@@ -246,7 +248,9 @@ enum eWniMsgTypes {
eWNI_SME_MONITOR_MODE_VDEV_UP = SIR_SME_MSG_TYPES_BEGIN + 161,
eWNI_SME_UPDATE_SESSION_EDCA_TXQ_PARAMS = SIR_SME_MSG_TYPES_BEGIN + 162,
eWNI_SME_ROAM_SEND_SET_PCL_REQ = SIR_SME_MSG_TYPES_BEGIN + 163,
#ifndef ROAM_OFFLOAD_V1
eWNI_SME_ROAM_DISABLE_CFG = SIR_SME_MSG_TYPES_BEGIN + 164,
#endif
eWNI_SME_MSG_TYPES_END = SIR_SME_MSG_TYPES_BEGIN + 165
};

Ver ficheiro

@@ -348,7 +348,9 @@ struct sir_cfg_action_frm_tb_ppdu {
/* (SIR_HAL_ITC_MSG_TYPES_BEGIN + 136) is unused */
/* (SIR_HAL_ITC_MSG_TYPES_BEGIN + 137) is unused */
#ifndef ROAM_OFFLOAD_V1
#define SIR_HAL_ROAM_SCAN_OFFLOAD_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 138)
#endif
#define SIR_HAL_ROAM_PRE_AUTH_STATUS_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 139)
#define SIR_HAL_TRAFFIC_STATS_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 141)
@@ -593,8 +595,8 @@ struct sir_cfg_action_frm_tb_ppdu {
#ifndef ROAM_OFFLOAD_V1
#define SIR_HAL_INIT_ROAM_OFFLOAD_PARAM (SIR_HAL_ITC_MSG_TYPES_BEGIN + 380)
#endif
#define SIR_HAL_INIT_ROAM_DISABLE_CFG (SIR_HAL_ITC_MSG_TYPES_BEGIN + 381)
#endif
/*
* Unused SIR_HAL_ITC_MSG_TYPES_BEGIN + 382 to

Ver ficheiro

@@ -1760,12 +1760,12 @@ static void lim_process_messages(struct mac_context *mac_ctx,
case eWNI_SME_EXT_CHANGE_CHANNEL:
case eWNI_SME_ROAM_INVOKE:
/* fall through */
case eWNI_SME_ROAM_SCAN_OFFLOAD_REQ:
case eWNI_SME_ROAM_SEND_SET_PCL_REQ:
#ifndef ROAM_OFFLOAD_V1
case eWNI_SME_ROAM_INIT_PARAM:
case eWNI_SME_ROAM_DISABLE_CFG:
case eWNI_SME_ROAM_SEND_PER_REQ:
case eWNI_SME_ROAM_SCAN_OFFLOAD_REQ:
#endif
case eWNI_SME_SET_ADDBA_ACCEPT:
case eWNI_SME_UPDATE_EDCA_PROFILE:

Ver ficheiro

@@ -4672,15 +4672,15 @@ bool lim_process_sme_req_messages(struct mac_context *mac,
case eWNI_SME_SESSION_UPDATE_PARAM:
__lim_process_sme_session_update(mac, msg_buf);
break;
case eWNI_SME_ROAM_SCAN_OFFLOAD_REQ:
__lim_process_roam_scan_offload_req(mac, msg_buf);
bufConsumed = false;
break;
case eWNI_SME_ROAM_SEND_SET_PCL_REQ:
lim_send_roam_set_pcl(mac, (struct set_pcl_req *)msg_buf);
bufConsumed = false;
break;
#ifndef ROAM_OFFLOAD_V1
case eWNI_SME_ROAM_SCAN_OFFLOAD_REQ:
__lim_process_roam_scan_offload_req(mac, msg_buf);
bufConsumed = false;
break;
case eWNI_SME_ROAM_INIT_PARAM:
lim_send_roam_offload_init(mac, msg_buf);
bufConsumed = false;

Ver ficheiro

@@ -349,8 +349,8 @@ uint8_t *mac_trace_get_sme_msg_string(uint16_t sme_msg)
CASE_RETURN_STRING(eWNI_SME_SEND_DISASSOC_FRAME);
CASE_RETURN_STRING(eWNI_SME_UPDATE_ACCESS_POLICY_VENDOR_IE);
CASE_RETURN_STRING(eWNI_SME_DEFAULT_SCAN_IE);
CASE_RETURN_STRING(eWNI_SME_ROAM_SCAN_OFFLOAD_REQ);
#ifndef ROAM_OFFLOAD_V1
CASE_RETURN_STRING(eWNI_SME_ROAM_SCAN_OFFLOAD_REQ);
CASE_RETURN_STRING(eWNI_SME_ROAM_INIT_PARAM);
#endif
CASE_RETURN_STRING(eWNI_SME_LOST_LINK_INFO_IND);
@@ -451,7 +451,9 @@ uint8_t *mac_trace_get_wma_msg_string(uint16_t wma_msg)
CASE_RETURN_STRING(WMA_MSG_TYPES_END);
CASE_RETURN_STRING(WMA_AGGR_QOS_REQ);
CASE_RETURN_STRING(WMA_AGGR_QOS_RSP);
#ifndef ROAM_OFFLOAD_V1
CASE_RETURN_STRING(WMA_ROAM_SCAN_OFFLOAD_REQ);
#endif
CASE_RETURN_STRING(WMA_ROAM_PRE_AUTH_STATUS);
#ifdef WLAN_FEATURE_PACKET_FILTERING
CASE_RETURN_STRING(WMA_8023_MULTICAST_LIST_REQ);

Ver ficheiro

@@ -1415,6 +1415,7 @@ QDF_STATUS
csr_send_roam_offload_init_msg(struct mac_context *mac, uint32_t vdev_id,
bool enable);
#ifndef ROAM_OFFLOAD_V1
/**
* csr_send_roam_disable_cfg_msg() - Send roam module enable/disable cfg to fw
* @mac: mac context
@@ -1425,6 +1426,7 @@ csr_send_roam_offload_init_msg(struct mac_context *mac, uint32_t vdev_id,
*/
QDF_STATUS csr_send_roam_disable_cfg_msg(struct mac_context *mac,
uint32_t vdev_id, uint8_t cfg);
#endif
typedef void (*csr_ani_callback)(int8_t *ani, void *context);

Ver ficheiro

@@ -228,6 +228,7 @@ QDF_STATUS csr_post_roam_state_change(struct mac_context *mac, uint8_t vdev_id,
enum roam_offload_state state,
uint8_t reason);
#ifndef ROAM_OFFLOAD_V1
/**
* csr_post_rso_stop() - Post RSO stop message to WMA
* @mac: mac context
@@ -238,7 +239,7 @@ QDF_STATUS csr_post_roam_state_change(struct mac_context *mac, uint8_t vdev_id,
*/
QDF_STATUS
csr_post_rso_stop(struct mac_context *mac, uint8_t vdev_id, uint16_t reason);
#endif
/**
* csr_enable_roaming_on_connected_sta() - Enable roaming on other connected
* sta vdev
@@ -276,11 +277,13 @@ QDF_STATUS csr_post_roam_state_change(struct mac_context *mac, uint8_t vdev_id,
return QDF_STATUS_E_NOSUPPORT;
}
#ifndef ROAM_OFFLOAD_V1
static inline
csr_post_rso_stop(struct mac_context *mac, uint8_t vdev_id, uint16_t reason)
{
return QDF_STATUS_E_NOSUPPORT;
}
#endif
static inline QDF_STATUS
csr_enable_roaming_on_connected_sta(struct mac_context *mac, uint8_t vdev_id)

Ver ficheiro

@@ -4096,6 +4096,7 @@ void sme_chan_to_freq_list(
const uint8_t *chan_list,
uint32_t chan_list_len);
#ifndef ROAM_OFFLOAD_V1
/**
* sme_set_roam_triggers() - Send roam trigger bitmap to WMA
* @mac_handle: Opaque handle to the MAC context
@@ -4110,6 +4111,7 @@ void sme_chan_to_freq_list(
*/
QDF_STATUS sme_set_roam_triggers(mac_handle_t mac_handle,
struct wlan_roam_triggers *triggers);
#endif
/**
* sme_set_roam_config_enable() - Cache roam config status in SME

Ver ficheiro

@@ -16119,24 +16119,7 @@ void sme_chan_to_freq_list(
wlan_reg_chan_to_freq(pdev, (uint32_t)chan_list[count]);
}
#ifdef ROAM_OFFLOAD_V1
static inline
QDF_STATUS sme_rso_init_deinit(struct mac_context *mac,
struct wlan_roam_triggers *triggers)
{
QDF_STATUS status;
if (!triggers->trigger_bitmap)
status = wlan_cm_rso_init_deinit(mac->pdev, triggers->vdev_id,
false);
else
status = wlan_cm_rso_init_deinit(mac->pdev, triggers->vdev_id,
true);
return status;
}
#else
#ifndef ROAM_OFFLOAD_V1
static QDF_STATUS sme_enable_roaming(struct mac_context *mac, uint32_t vdev_id,
bool enable)
{
@@ -16181,7 +16164,6 @@ QDF_STATUS sme_rso_init_deinit(struct mac_context *mac,
return status;
}
#endif
QDF_STATUS sme_set_roam_triggers(mac_handle_t mac_handle,
struct wlan_roam_triggers *triggers)
@@ -16225,6 +16207,7 @@ QDF_STATUS sme_set_roam_triggers(mac_handle_t mac_handle,
return status;
}
#endif
QDF_STATUS
sme_send_vendor_btm_params(mac_handle_t mac_handle, uint8_t vdev_id)

Ver ficheiro

@@ -18016,6 +18016,7 @@ QDF_STATUS csr_invoke_neighbor_report_request(
return QDF_STATUS_SUCCESS;
}
#ifndef ROAM_OFFLOAD_V1
/*
* csr_roam_send_rso_cmd() - API to send RSO command to PE
* @mac_ctx: Pointer to global MAC structure
@@ -18046,7 +18047,6 @@ csr_roam_send_rso_cmd(struct mac_context *mac_ctx,
return status;
}
#ifndef ROAM_OFFLOAD_V1
/**
* csr_append_assoc_ies() - Append specific IE to assoc IE's buffer
* @mac_ctx: Pointer to global mac context
@@ -18555,6 +18555,7 @@ csr_is_adaptive_11r_roam_supported(struct mac_context *mac_ctx,
}
#endif
#ifndef ROAM_OFFLOAD_V1
QDF_STATUS
csr_post_rso_stop(struct mac_context *mac, uint8_t vdev_id, uint16_t reason)
{
@@ -18609,7 +18610,6 @@ csr_post_rso_stop(struct mac_context *mac, uint8_t vdev_id, uint16_t reason)
return status;
}
#ifndef ROAM_OFFLOAD_V1
static QDF_STATUS
csr_roam_switch_to_init(struct mac_context *mac, uint8_t vdev_id,
uint8_t reason)
@@ -22537,7 +22537,6 @@ csr_send_roam_offload_init_msg(struct mac_context *mac, uint32_t vdev_id,
return status;
}
#endif
QDF_STATUS csr_send_roam_disable_cfg_msg(struct mac_context *mac,
uint32_t vdev_id, uint8_t cfg)
@@ -22564,6 +22563,7 @@ QDF_STATUS csr_send_roam_disable_cfg_msg(struct mac_context *mac,
return status;
}
#endif
QDF_STATUS
csr_roam_update_cfg(struct mac_context *mac, uint8_t vdev_id, uint8_t reason)

Ver ficheiro

@@ -625,7 +625,12 @@ static void csr_roam_restore_default_config(struct mac_context *mac_ctx,
triggers.vdev_id = vdev_id;
triggers.trigger_bitmap = wlan_mlme_get_roaming_triggers(mac_ctx->psoc);
sme_debug("Reset roam trigger bitmap to 0x%x", triggers.trigger_bitmap);
#ifdef ROAM_OFFLOAD_V1
wlan_cm_rso_set_roam_trigger(mac_ctx->pdev, vdev_id, &triggers);
#else
/* temp change, This will be removed with ROAM_OFFLOAD_V1 enabled */
sme_set_roam_triggers(MAC_HANDLE(mac_ctx), &triggers);
#endif
sme_roam_control_restore_default_config(MAC_HANDLE(mac_ctx),
vdev_id);
}

Ver ficheiro

@@ -2035,6 +2035,7 @@ void wma_vdev_clear_pause_bit(uint8_t vdev_id, wmi_tx_pause_type bit_pos)
iface->pause_bitmap &= ~(1 << bit_pos);
}
#ifndef ROAM_OFFLOAD_V1
/**
* wma_process_roaming_config() - process roam request
* @wma_handle: wma handle
@@ -2046,7 +2047,7 @@ void wma_vdev_clear_pause_bit(uint8_t vdev_id, wmi_tx_pause_type bit_pos)
*/
QDF_STATUS wma_process_roaming_config(tp_wma_handle wma_handle,
struct roam_offload_scan_req *roam_req);
#endif
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
/**
* wma_send_roam_preauth_status() - Send the preauth status to wmi

Ver ficheiro

@@ -827,7 +827,6 @@ int wma_wlm_stats_rsp(void *wma_ctx, uint8_t *event, uint32_t len);
*/
void wma_update_roam_offload_flag(void *handle,
struct roam_init_params *params);
#endif
/**
* wma_set_roam_disable_cfg() - Set roam module disable cfg to fw
* @wma: wma handle
@@ -836,6 +835,7 @@ void wma_update_roam_offload_flag(void *handle,
* Return: none
*/
void wma_set_roam_disable_cfg(void *handle, struct roam_disable_cfg *params);
#endif
/**
* wma_self_peer_create() - create self peer in objmgr

Ver ficheiro

@@ -364,94 +364,15 @@ QDF_STATUS wma_roam_scan_fill_self_caps(tp_wma_handle wma_handle,
struct roam_offload_scan_req *roam_req);
#endif
#ifndef ROAM_OFFLOAD_V1
QDF_STATUS wma_roam_scan_offload_mode(tp_wma_handle wma_handle,
wmi_start_scan_cmd_fixed_param *
scan_cmd_fp,
struct roam_offload_scan_req *roam_req,
uint32_t mode, uint32_t vdev_id);
#else
static inline QDF_STATUS wma_roam_scan_offload_mode(tp_wma_handle wma_handle,
wmi_start_scan_cmd_fixed_param *
scan_cmd_fp,
struct roam_offload_scan_req *roam_req,
uint32_t mode, uint32_t vdev_id)
{
return QDF_STATUS_SUCCESS;
}
#endif
/**
* wma_roam_scan_mawc_params() - send roam scan mode request to fw
* @wma_handle: wma handle
* @roam_req: roam request param
*
* Fill the MAWC roaming parameters and send
* WMI_ROAM_CONFIGURE_MAWC_CMDID TLV to firmware.
*
* Return: QDF status
*/
QDF_STATUS wma_roam_scan_mawc_params(tp_wma_handle wma_handle,
struct roam_offload_scan_req *roam_req);
/**
* wma_roam_scan_offload_rssi_threshold() - set scan offload rssi threashold
* @wma_handle: wma handle
* @roam_req: Roaming request buffer
*
* Send WMI_ROAM_SCAN_RSSI_THRESHOLD TLV to firmware
*
* Return: QDF status
*/
QDF_STATUS
wma_roam_scan_offload_rssi_thresh(tp_wma_handle wma_handle,
struct roam_offload_scan_req *roam_req);
QDF_STATUS
wma_roam_scan_offload_scan_period(tp_wma_handle wma_handle,
struct roam_offload_scan_req *roam_req);
#ifndef ROAM_OFFLOAD_V1
QDF_STATUS wma_roam_scan_offload_rssi_change(tp_wma_handle wma_handle,
uint32_t vdev_id,
int32_t rssi_change_thresh,
uint32_t bcn_rssi_weight,
uint32_t hirssi_delay_btw_scans);
#else
static inline
QDF_STATUS wma_roam_scan_offload_rssi_change(tp_wma_handle wma_handle,
uint32_t vdev_id,
int32_t rssi_change_thresh,
uint32_t bcn_rssi_weight,
uint32_t hirssi_delay_btw_scans)
{
return QDF_STATUS_E_NOSUPPORT;
}
#endif
QDF_STATUS wma_roam_scan_offload_chan_list(tp_wma_handle wma_handle,
uint8_t chan_count,
uint32_t *chan_freq_list,
uint8_t list_type, uint32_t vdev_id);
A_UINT32 e_csr_auth_type_to_rsn_authmode(enum csr_akm_type authtype,
eCsrEncryptionType encr);
A_UINT32 e_csr_encryption_type_to_rsn_cipherset(eCsrEncryptionType encr);
void wma_roam_scan_fill_scan_params(tp_wma_handle wma_handle,
struct mac_context *mac,
struct roam_offload_scan_req *roam_req,
wmi_start_scan_cmd_fixed_param *
scan_params);
QDF_STATUS wma_roam_scan_bmiss_cnt(tp_wma_handle wma_handle,
A_INT32 first_bcnt,
A_UINT32 final_bcnt, uint32_t vdev_id);
QDF_STATUS wma_roam_scan_offload_command(tp_wma_handle wma_handle,
uint32_t command, uint32_t vdev_id);
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
void wma_set_ric_req(tp_wma_handle wma, void *msg, uint8_t is_add_ts);
#endif

Ver ficheiro

@@ -219,7 +219,9 @@
#define WMA_SET_PLM_REQ SIR_HAL_SET_PLM_REQ
#endif
#ifndef ROAM_OFFLOAD_V1
#define WMA_ROAM_SCAN_OFFLOAD_REQ SIR_HAL_ROAM_SCAN_OFFLOAD_REQ
#endif
#define WMA_ROAM_PRE_AUTH_STATUS SIR_HAL_ROAM_PRE_AUTH_STATUS_IND
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
@@ -431,14 +433,14 @@
#ifdef WLAN_MWS_INFO_DEBUGFS
#define WMA_GET_MWS_COEX_INFO_REQ SIR_HAL_GET_MWS_COEX_INFO_REQ
#endif
#define WMA_SET_ROAM_TRIGGERS SIR_HAL_SET_ROAM_TRIGGERS
#ifndef ROAM_OFFLOAD_V1
#define WMA_SET_ROAM_TRIGGERS SIR_HAL_SET_ROAM_TRIGGERS
#define WMA_ROAM_INIT_PARAM SIR_HAL_INIT_ROAM_OFFLOAD_PARAM
#define WMA_ROAM_DISABLE_CFG SIR_HAL_INIT_ROAM_DISABLE_CFG
#endif
#define WMA_DATA_STALL_TRIGGER 6
#define WMA_ROAM_DISABLE_CFG SIR_HAL_INIT_ROAM_DISABLE_CFG
/* Bit 6 will be used to control BD rate for Management frames */
#define HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME 0x40

Ver ficheiro

@@ -8473,10 +8473,12 @@ static QDF_STATUS wma_mc_process_msg(struct scheduler_msg *msg)
(tpSirRcvFltMcAddrList) msg->bodyptr);
qdf_mem_free(msg->bodyptr);
break;
#ifndef ROAM_OFFLOAD_V1
/* this is temp will be removed once ROAM_OFFLOAD_V1 is enabled */
case WMA_ROAM_SCAN_OFFLOAD_REQ:
wma_process_roaming_config(wma_handle, msg->bodyptr);
break;
#endif
case WMA_ROAM_PRE_AUTH_STATUS:
wma_send_roam_preauth_status(wma_handle, msg->bodyptr);
qdf_mem_free(msg->bodyptr);
@@ -8954,20 +8956,21 @@ static QDF_STATUS wma_mc_process_msg(struct scheduler_msg *msg)
qdf_mem_free(msg->bodyptr);
break;
#endif
#ifndef ROAM_OFFLOAD_V1
/* This code will be removed once ROAM_OFFLOAD_V1 is enabled */
case WMA_SET_ROAM_TRIGGERS:
wma_set_roam_triggers(wma_handle, msg->bodyptr);
qdf_mem_free(msg->bodyptr);
break;
#ifndef ROAM_OFFLOAD_V1
case WMA_ROAM_INIT_PARAM:
wma_update_roam_offload_flag(wma_handle, msg->bodyptr);
qdf_mem_free(msg->bodyptr);
break;
#endif
case WMA_ROAM_DISABLE_CFG:
wma_set_roam_disable_cfg(wma_handle, msg->bodyptr);
qdf_mem_free(msg->bodyptr);
break;
#endif
case WMA_ROAM_SCAN_CH_REQ:
wma_get_roam_scan_ch(wma_handle->wmi_handle, msg->bodyval);
break;

Ver ficheiro

@@ -224,7 +224,8 @@ QDF_STATUS wma_update_channel_list(WMA_HANDLE handle,
return qdf_status;
}
QDF_STATUS wma_roam_scan_mawc_params(tp_wma_handle wma_handle,
#ifndef ROAM_OFFLOAD_V1
static QDF_STATUS wma_roam_scan_mawc_params(tp_wma_handle wma_handle,
struct roam_offload_scan_req *roam_req)
{
struct wlan_roam_mawc_params *params;
@@ -261,6 +262,7 @@ QDF_STATUS wma_roam_scan_mawc_params(tp_wma_handle wma_handle,
return status;
}
#endif
#ifdef WLAN_FEATURE_FILS_SK
#ifndef ROAM_OFFLOAD_V1
@@ -472,7 +474,7 @@ static void wma_roam_scan_offload_set_params(
*
* Return: QDF status
*/
QDF_STATUS wma_roam_scan_offload_mode(tp_wma_handle wma_handle,
static QDF_STATUS wma_roam_scan_offload_mode(tp_wma_handle wma_handle,
wmi_start_scan_cmd_fixed_param *
scan_cmd_fp,
struct roam_offload_scan_req *roam_req,
@@ -535,7 +537,7 @@ QDF_STATUS wma_roam_scan_offload_mode(tp_wma_handle wma_handle,
return status;
}
QDF_STATUS
static QDF_STATUS
wma_roam_scan_offload_rssi_thresh(tp_wma_handle wma_handle,
struct roam_offload_scan_req *roam_req)
{
@@ -716,7 +718,7 @@ wma_roam_scan_offload_rssi_thresh(tp_wma_handle wma_handle,
*
* Return: QDF status
*/
QDF_STATUS
static QDF_STATUS
wma_roam_scan_offload_scan_period(tp_wma_handle wma_handle,
struct roam_offload_scan_req *roam_req)
{
@@ -755,7 +757,7 @@ wma_roam_scan_offload_scan_period(tp_wma_handle wma_handle,
*
* Return: QDF status
*/
QDF_STATUS wma_roam_scan_offload_rssi_change(tp_wma_handle wma_handle,
static QDF_STATUS wma_roam_scan_offload_rssi_change(tp_wma_handle wma_handle,
uint32_t vdev_id,
int32_t rssi_change_thresh,
uint32_t bcn_rssi_weight,
@@ -771,21 +773,6 @@ QDF_STATUS wma_roam_scan_offload_rssi_change(tp_wma_handle wma_handle,
vdev_id, rssi_change_thresh,
bcn_rssi_weight, hirssi_delay_btw_scans);
}
#else
QDF_STATUS
wma_roam_scan_offload_rssi_thresh(tp_wma_handle wma_handle,
struct roam_offload_scan_req *roam_req)
{
return QDF_STATUS_E_NOSUPPORT;
}
QDF_STATUS
wma_roam_scan_offload_scan_period(tp_wma_handle wma_handle,
struct roam_offload_scan_req *roam_req)
{
return QDF_STATUS_E_NOSUPPORT;
}
#endif
/**
* wma_roam_scan_offload_chan_list() - set roam offload channel list
@@ -799,7 +786,7 @@ wma_roam_scan_offload_scan_period(tp_wma_handle wma_handle,
*
* Return: QDF status
*/
QDF_STATUS wma_roam_scan_offload_chan_list(tp_wma_handle wma_handle,
static QDF_STATUS wma_roam_scan_offload_chan_list(tp_wma_handle wma_handle,
uint8_t chan_count,
uint32_t *chan_freq_list,
uint8_t list_type, uint32_t vdev_id)
@@ -849,6 +836,7 @@ QDF_STATUS wma_roam_scan_offload_chan_list(tp_wma_handle wma_handle,
return status;
}
#endif
/**
* e_csr_auth_type_to_rsn_authmode() - map csr auth type to rsn authmode
@@ -973,6 +961,7 @@ A_UINT32 e_csr_encryption_type_to_rsn_cipherset(eCsrEncryptionType encr)
}
}
#ifndef ROAM_OFFLOAD_V1
/**
* wma_convert_gp_mgmt_cipher_to_target_cipher_type() - map csr ani group mgmt
* enc type to RSN cipher
@@ -1032,6 +1021,7 @@ uint32_t wma_roam_scan_get_cckm_mode(struct roam_offload_scan_req *roam_req,
return WMI_AUTH_CCKM;
}
#endif
/**
* wma_roam_scan_fill_ap_profile() - fill ap_profile
* @roam_req: roam offload scan request
@@ -1098,7 +1088,7 @@ wma_roam_scan_fill_ap_profile(struct roam_offload_scan_req *roam_req,
profile->flags |= WMI_AP_PROFILE_FLAG_PMF;
#endif
}
#endif
/**
* wma_process_set_pdev_ie_req() - process the pdev set IE req
* @wma: Pointer to wma handle
@@ -1223,6 +1213,8 @@ void wma_process_set_pdev_vht_ie_req(tp_wma_handle wma,
wmi_buf_free(buf);
}
#ifndef ROAM_OFFLOAD_V1
/**
* wma_roam_scan_scan_params() - fill roam scan params
* @wma_handle: wma handle
@@ -1235,7 +1227,7 @@ void wma_process_set_pdev_vht_ie_req(tp_wma_handle wma,
*
* Return: none
*/
void wma_roam_scan_fill_scan_params(tp_wma_handle wma_handle,
static void wma_roam_scan_fill_scan_params(tp_wma_handle wma_handle,
struct mac_context *mac,
struct roam_offload_scan_req *roam_req,
wmi_start_scan_cmd_fixed_param *
@@ -1566,6 +1558,7 @@ static QDF_STATUS wma_roam_scan_filter(tp_wma_handle wma_handle,
qdf_mem_free(params);
return status;
}
#endif
/**
* wma_roam_scan_bmiss_cnt() - set bmiss count to fw
@@ -1607,6 +1600,8 @@ QDF_STATUS wma_roam_scan_bmiss_cnt(tp_wma_handle wma_handle,
return status;
}
#ifndef ROAM_OFFLOAD_V1
/**
* wma_roam_scan_offload_command() - set roam offload command
* @wma_handle: wma handle
@@ -1617,7 +1612,7 @@ QDF_STATUS wma_roam_scan_bmiss_cnt(tp_wma_handle wma_handle,
*
* Return: QDF status
*/
QDF_STATUS wma_roam_scan_offload_command(tp_wma_handle wma_handle,
static QDF_STATUS wma_roam_scan_offload_command(tp_wma_handle wma_handle,
uint32_t command, uint32_t vdev_id)
{
if (!wma_is_vdev_valid(vdev_id)) {
@@ -1752,8 +1747,10 @@ QDF_STATUS wma_send_offload_11k_params(WMA_HANDLE handle,
return status;
}
#endif
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
#ifndef ROAM_OFFLOAD_V1
/**
* wma_send_disconnect_roam_params() - Send the disconnect roam parameters
* to wmi
@@ -1839,6 +1836,7 @@ wma_send_idle_roam_params(tp_wma_handle wma_handle,
if (QDF_IS_STATUS_ERROR(status))
wma_err("failed to send idle roam parameters");
}
#endif
void
wma_send_roam_preauth_status(tp_wma_handle wma_handle,
@@ -1858,6 +1856,7 @@ wma_send_roam_preauth_status(tp_wma_handle wma_handle,
}
#else
#ifndef ROAM_OFFLOAD_V1
static inline void
wma_send_disconnect_roam_params(tp_wma_handle wma_handle,
struct roam_offload_scan_req *roam_req)
@@ -1868,7 +1867,9 @@ wma_send_idle_roam_params(tp_wma_handle wma_handle,
struct roam_offload_scan_req *roam_req)
{}
#endif
#endif
#ifndef ROAM_OFFLOAD_V1
/* wma_set_vdev_roam_reason_vsie: set vdev param
*WMI_VDEV_PARAM_ENABLE_DISABLE_ROAM_REASON_VSIE
*
@@ -2313,7 +2314,6 @@ QDF_STATUS wma_process_roaming_config(tp_wma_handle wma_handle,
return qdf_status;
}
#ifndef ROAM_OFFLOAD_V1
void wma_update_per_roam_config(WMA_HANDLE handle,
struct wlan_per_roam_config_req *req_buf)
{
@@ -6602,6 +6602,7 @@ int wma_handle_btm_blacklist_event(void *handle, uint8_t *cmd_param_info,
}
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
#ifndef ROAM_OFFLOAD_V1
QDF_STATUS wma_set_roam_triggers(tp_wma_handle wma,
struct wlan_roam_triggers *triggers)
{
@@ -6610,7 +6611,7 @@ QDF_STATUS wma_set_roam_triggers(tp_wma_handle wma,
return wmi_unified_set_roam_triggers(wma->wmi_handle, triggers);
}
#endif
#ifdef WLAN_FEATURE_FIPS
void wma_register_pmkid_req_event_handler(tp_wma_handle wma_handle)
{
@@ -6710,9 +6711,11 @@ int wma_roam_pmkid_request_event_handler(void *handle, uint8_t *event,
}
#endif /* WLAN_FEATURE_FIPS */
#else
#ifndef ROAM_OFFLOAD_V1
inline QDF_STATUS
wma_set_roam_triggers(tp_wma_handle wma, struct wlan_roam_triggers *triggers)
{
return QDF_STATUS_E_NOSUPPORT;
}
#endif
#endif

Ver ficheiro

@@ -3887,7 +3887,6 @@ void wma_update_roam_offload_flag(void *handle,
wma_set_roam_offload_flag(wma, params->vdev_id, params->enable);
}
#endif
void wma_set_roam_disable_cfg(void *handle, struct roam_disable_cfg *params)
{
@@ -3913,6 +3912,7 @@ void wma_set_roam_disable_cfg(void *handle, struct roam_disable_cfg *params)
if (QDF_IS_STATUS_ERROR(status))
wma_err("Failed to set WMI_VDEV_PARAM_ROAM_11KV_CTRL");
}
#endif
QDF_STATUS wma_send_vdev_down_to_fw(t_wma_handle *wma, uint8_t vdev_id)
{