# MM_TASK
[MM]

LMAC Management module task. More...

Collaboration diagram for MM_TASK:

## Data Structures
struct | mm_start_req
| Structure containing the parameters of the MM_START_REQ message. More...
struct | mm_set_channel_req
| Structure containing the parameters of the MM_SET_CHANNEL_REQ message. More...
struct | mm_set_channel_cfm
| Structure containing the parameters of the MM_SET_CHANNEL_CFM message. More...
struct | mm_set_dtim_req
| Structure containing the parameters of the MM_SET_DTIM_REQ message. More...
struct | mm_set_power_req
| Structure containing the parameters of the MM_SET_POWER_REQ message. More...
struct | mm_set_power_cfm
| Structure containing the parameters of the MM_SET_POWER_CFM message. More...
struct | mm_set_beacon_int_req
| Structure containing the parameters of the MM_SET_BEACON_INT_REQ message. More...
struct | mm_set_basic_rates_req
| Structure containing the parameters of the MM_SET_BASIC_RATES_REQ message. More...
struct | mm_set_bssid_req
| Structure containing the parameters of the MM_SET_BSSID_REQ message. More...
struct | mm_set_filter_req
| Structure containing the parameters of the MM_SET_FILTER_REQ message. More...
struct | mm_add_if_req
| Structure containing the parameters of the MM_ADD_IF_REQ message. More...
struct | mm_set_edca_req
| Structure containing the parameters of the MM_SET_EDCA_REQ message. More...
struct | mm_set_mu_edca_req
| Structure containing the parameters of the MM_SET_MU_EDCA_REQ message. More...
struct | mm_set_uora_req
| Structure containing the parameters of the MM_SET_UORA_REQ message. More...
struct | mm_set_txop_rts_thres_req
| Structure containing the parameters of the MM_SET_TXOP_RTS_THRES_REQ message. More...
struct | mm_set_bss_color_req
| Structure containing the parameters of the MM_SET_BSS_COLOR_REQ message. More...
struct | mm_set_slottime_req
| Structure containing the parameters of the MM_SET_SLOTTIME_REQ message. More...
struct | mm_set_mode_req
| Structure containing the parameters of the MM_SET_MODE_REQ message. More...
struct | mm_set_vif_state_req
| Structure containing the parameters of the MM_SET_VIF_STATE_REQ message. More...
struct | mm_add_if_cfm
| Structure containing the parameters of the MM_ADD_IF_CFM message. More...
struct | mm_remove_if_req
| Structure containing the parameters of the MM_REMOVE_IF_REQ message. More...
struct | mm_version_cfm
| Structure containing the parameters of the MM_VERSION_CFM message. More...
struct | mm_sta_add_req
| Structure containing the parameters of the MM_STA_ADD_REQ message. More...
struct | mm_sta_add_cfm
| Structure containing the parameters of the MM_STA_ADD_CFM message. More...
struct | mm_sta_del_req
| Structure containing the parameters of the MM_STA_DEL_REQ message. More...
struct | mm_sta_del_cfm
| Structure containing the parameters of the MM_STA_DEL_CFM message. More...
struct | mm_set_idle_req
| Structure containing the parameters of the MM_SET_IDLE_REQ message. More...
struct | mm_key_add_req
| Structure containing the parameters of the MM_KEY_ADD_REQ message. More...
struct | mm_key_add_cfm
| Structure containing the parameters of the MM_KEY_ADD_CFM message. More...
struct | mm_key_del_req
| Structure containing the parameters of the MM_KEY_DEL_REQ message. More...
struct | mm_ba_add_req
| Structure containing the parameters of the MM_BA_ADD_REQ message. More...
struct | mm_ba_add_cfm
| Structure containing the parameters of the MM_BA_ADD_CFM message. More...
struct | mm_ba_del_req
| Structure containing the parameters of the MM_BA_DEL_REQ message. More...
struct | mm_ba_del_cfm
| Structure containing the parameters of the MM_BA_DEL_CFM message. More...
struct | mm_channel_switch_ind
| Structure containing the parameters of the MM_CHANNEL_SWITCH_IND message. More...
struct | mm_channel_pre_switch_ind
| Structure containing the parameters of the MM_CHANNEL_PRE_SWITCH_IND message. More...
struct | mm_connection_loss_ind
| Structure containing the parameters of the MM_CONNECTION_LOSS_IND message. More...
struct | mm_dbg_trigger_req
| Structure containing the parameters of the MM_DBG_TRIGGER_REQ message. More...
struct | mm_set_ps_mode_req
| Structure containing the parameters of the MM_SET_PS_MODE_REQ message. More...
struct | mm_chan_ctxt_add_req
| Structure containing the parameters of the MM_CHAN_CTXT_ADD_REQ message. More...
struct | mm_chan_ctxt_add_cfm
| Structure containing the parameters of the MM_CHAN_CTXT_ADD_REQ message. More...
struct | mm_chan_ctxt_del_req
| Structure containing the parameters of the MM_CHAN_CTXT_DEL_REQ message. More...
struct | mm_chan_ctxt_link_req
| Structure containing the parameters of the MM_CHAN_CTXT_LINK_REQ message. More...
struct | mm_chan_ctxt_unlink_req
| Structure containing the parameters of the MM_CHAN_CTXT_UNLINK_REQ message. More...
struct | mm_chan_ctxt_update_req
| Structure containing the parameters of the MM_CHAN_CTXT_UPDATE_REQ message. More...
struct | mm_chan_ctxt_sched_req
| Structure containing the parameters of the MM_CHAN_CTXT_SCHED_REQ message. More...
struct | mm_bcn_change_req
| Structure containing the parameters of the MM_BCN_CHANGE_REQ message. More...
struct | mm_tim_update_req
| Structure containing the parameters of the MM_TIM_UPDATE_REQ message. More...
struct | mm_ps_change_ind
| Structure containing the parameters of the MM_PS_CHANGE_IND message. More...
struct | mm_p2p_vif_ps_change_ind
| Structure containing the parameters of the MM_P2P_VIF_PS_CHANGE_IND message. More...
struct | mm_traffic_req_ind
| Structure containing the parameters of the MM_TRAFFIC_REQ_IND message. More...
struct | mm_remain_on_channel_req
| Structure containing the parameters of the MM_REMAIN_ON_CHANNEL_REQ message. More...
struct | mm_remain_on_channel_cfm
| Structure containing the parameters of the MM_REMAIN_ON_CHANNEL_CFM message. More...
struct | mm_remain_on_channel_exp_ind
| Structure containing the parameters of the MM_REMAIN_ON_CHANNEL_EXP_IND message. More...
struct | mm_set_ps_options_req
| Structure containing the parameters of the MM_SET_PS_OPTIONS_REQ message. More...
struct | mm_csa_counter_ind
| Structure containing the parameters of the MM_CSA_COUNTER_IND message. More...
struct | mm_channel_survey_ind
| Structure containing the parameters of the MM_CHANNEL_SURVEY_IND message. More...
struct | mm_bfmer_enable_req
| Structure containing the parameters of the MM_BFMER_ENABLE_REQ message. More...
struct | mm_cfg_rssi_req
| Structure containing the parameters of the MM_CFG_RSSI_REQ message. More...
struct | mm_rssi_status_ind
| Structure containing the parameters of the MM_RSSI_STATUS_IND message. More...
struct | mm_pktloss_ind
| Structure containing the parameters of the MM_PKTLOSS_IND message. More...
struct | mm_csa_finish_ind
| Structure containing the parameters of the MM_CSA_FINISH_IND message. More...
struct | mm_csa_traffic_ind
| Structure containing the parameters of the MM_CSA_TRAFFIC_IND message. More...
struct | mm_force_idle_req
| Structure containing the parameters of the MM_FORCE_IDLE_REQ message. More...
struct | mm_tbtt_move_req
| Structure containing the parameters of the MM_TBTT_MOVE_REQ message. More...
struct | mm_set_p2p_noa_req
| Structure containing the parameters of the MM_SET_P2P_NOA_REQ message. More...
struct | mm_set_p2p_oppps_req
| Structure containing the parameters of the MM_SET_P2P_OPPPS_REQ message. More...
struct | mm_set_p2p_noa_cfm
| Structure containing the parameters of the MM_SET_P2P_NOA_CFM message. More...
struct | mm_set_p2p_oppps_cfm
| Structure containing the parameters of the MM_SET_P2P_OPPPS_CFM message. More...
struct | mm_p2p_noa_upd_ind
| Structure containing the parameters of the MM_P2P_NOA_UPD_IND message. More...
struct | mm_mu_group_update_req
| Structure containing the parameters of the MM_MU_GROUP_UPDATE_REQ message. More...
struct | mm_ant_div_init_req
| Structure containing the parameters of the MM_ANT_DIV_INIT_REQ message. More...
## Defines
#define | MM_IDX_MAX 1
| MM STA TASK Instance Max.
#define | BCN_MAX_CSA_CPT 2
| Maximum number of CSA counter in a BEACON (1 in CSA IE and 1 in ECSA IE).
## Typedefs
typedef void(* | cb_idle_func_ptr )(void)
| Pointer to callback function.
## Enumerations
enum | mm_state_tag { MM_IDLE, MM_ACTIVE, MM_GOING_TO_IDLE, MM_HOST_BYPASSED, MM_NO_IDLE, MM_STATE_MAX }
| Possible States of the MM STA Task. More...
enum | mm_remain_on_channel_op { MM_ROC_OP_START = 0, MM_ROC_OP_CANCEL, MM_ROC_OP_MAX }
| Remain on channel operation codes.
enum | mm_msg_tag { MM_RESET_REQ = KE_FIRST_MSG(TASK_MM), MM_RESET_CFM, MM_START_REQ, MM_START_CFM, MM_VERSION_REQ, MM_VERSION_CFM, MM_ADD_IF_REQ, MM_ADD_IF_CFM, MM_REMOVE_IF_REQ, MM_REMOVE_IF_CFM, MM_STA_ADD_REQ, MM_STA_ADD_CFM, MM_STA_DEL_REQ, MM_STA_DEL_CFM, MM_SET_FILTER_REQ, MM_SET_FILTER_CFM, MM_SET_CHANNEL_REQ, MM_SET_CHANNEL_CFM, MM_SET_DTIM_REQ, MM_SET_DTIM_CFM, MM_SET_BEACON_INT_REQ, MM_SET_BEACON_INT_CFM, MM_SET_BASIC_RATES_REQ, MM_SET_BASIC_RATES_CFM, MM_SET_BSSID_REQ, MM_SET_BSSID_CFM, MM_SET_EDCA_REQ, MM_SET_EDCA_CFM, MM_SET_MODE_REQ, MM_SET_MODE_CFM, MM_SET_VIF_STATE_REQ, MM_SET_VIF_STATE_CFM, MM_SET_SLOTTIME_REQ, MM_SET_SLOTTIME_CFM, MM_SET_IDLE_REQ, MM_SET_IDLE_CFM, MM_KEY_ADD_REQ, MM_KEY_ADD_CFM, MM_KEY_DEL_REQ, MM_KEY_DEL_CFM, MM_BA_ADD_REQ, MM_BA_ADD_CFM, MM_BA_DEL_REQ, MM_BA_DEL_CFM, MM_PRIMARY_TBTT_IND, MM_SECONDARY_TBTT_IND, MM_SET_POWER_REQ, MM_SET_POWER_CFM, MM_DBG_TRIGGER_REQ, MM_SET_PS_MODE_REQ, MM_SET_PS_MODE_CFM, MM_CHAN_CTXT_ADD_REQ, MM_CHAN_CTXT_ADD_CFM, MM_CHAN_CTXT_DEL_REQ, MM_CHAN_CTXT_DEL_CFM, MM_CHAN_CTXT_LINK_REQ, MM_CHAN_CTXT_LINK_CFM, MM_CHAN_CTXT_UNLINK_REQ, MM_CHAN_CTXT_UNLINK_CFM, MM_CHAN_CTXT_UPDATE_REQ, MM_CHAN_CTXT_UPDATE_CFM, MM_CHAN_CTXT_SCHED_REQ, MM_CHAN_CTXT_SCHED_CFM, MM_BCN_CHANGE_REQ, MM_BCN_CHANGE_CFM, MM_TIM_UPDATE_REQ, MM_TIM_UPDATE_CFM, MM_CONNECTION_LOSS_IND, MM_CHANNEL_SWITCH_IND, MM_CHANNEL_PRE_SWITCH_IND, MM_REMAIN_ON_CHANNEL_REQ, MM_REMAIN_ON_CHANNEL_CFM, MM_REMAIN_ON_CHANNEL_EXP_IND, MM_PS_CHANGE_IND, MM_TRAFFIC_REQ_IND, MM_SET_PS_OPTIONS_REQ, MM_SET_PS_OPTIONS_CFM, MM_P2P_VIF_PS_CHANGE_IND, MM_CSA_COUNTER_IND, MM_CHANNEL_SURVEY_IND, MM_BFMER_ENABLE_REQ, MM_SET_P2P_NOA_REQ, MM_SET_P2P_OPPPS_REQ, MM_SET_P2P_NOA_CFM, MM_SET_P2P_OPPPS_CFM, MM_P2P_NOA_UPD_IND, MM_CFG_RSSI_REQ, MM_RSSI_STATUS_IND, MM_CSA_FINISH_IND, MM_CSA_TRAFFIC_IND, MM_MU_GROUP_UPDATE_REQ, MM_MU_GROUP_UPDATE_CFM, MM_ANT_DIV_INIT_REQ, MM_ANT_DIV_STOP_REQ, MM_ANT_DIV_UPDATE_REQ, MM_SWITCH_ANTENNA_REQ, MM_PKTLOSS_IND, MM_SET_MU_EDCA_REQ, MM_SET_MU_EDCA_CFM, MM_SET_UORA_REQ, MM_SET_UORA_CFM, MM_SET_TXOP_RTS_THRES_REQ, MM_SET_TXOP_RTS_THRES_CFM, MM_SET_BSS_COLOR_REQ, MM_SET_BSS_COLOR_CFM, MM_FORCE_IDLE_REQ, MM_SCAN_CHANNEL_START_IND, MM_SCAN_CHANNEL_END_IND, MM_TBTT_MOVE_REQ, MM_MAX }
| List of messages related to the task. More...
## Functions
static int | mm_version_req_handler (ke_msg_id_t const msgid, void const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_VERSION_REQ message handler.
static int | mm_reset_req_handler (ke_msg_id_t const msgid, void const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_RESET_REQ message handler.
static int | mm_start_req_handler (ke_msg_id_t const msgid, struct mm_start_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_START_REQ message handler.
static int | mm_set_channel_req_handler (ke_msg_id_t const msgid, struct mm_set_channel_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_CHANNEL_REQ message handler.
static int | mm_set_dtim_req_handler (ke_msg_id_t const msgid, struct mm_set_dtim_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_DTIM_REQ message handler.
static int | mm_set_beacon_int_req_handler (ke_msg_id_t const msgid, struct mm_set_beacon_int_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_BEACON_INT_REQ message handler.
static int | mm_set_basic_rates_req_handler (ke_msg_id_t const msgid, struct mm_set_basic_rates_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_BASIC_RATES_REQ message handler.
static int | mm_set_filter_req_handler (ke_msg_id_t const msgid, struct mm_set_filter_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_FILTER_REQ message handler.
static int | mm_set_bssid_req_handler (ke_msg_id_t const msgid, struct mm_set_bssid_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_BSSID_REQ message handler.
static int | mm_set_edca_req_handler (ke_msg_id_t const msgid, struct mm_set_edca_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_EDCA_REQ message handler.
static int | mm_set_mu_edca_req_handler (ke_msg_id_t const msgid, struct mm_set_mu_edca_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_MU_EDCA_REQ message handler.
static int | mm_set_uora_req_handler (ke_msg_id_t const msgid, struct mm_set_uora_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_UORA_REQ message handler.
static int | mm_set_bss_color_req_handler (ke_msg_id_t const msgid, struct mm_set_bss_color_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_BSS_COLOR_REQ message handler.
static int | mm_set_txop_rts_thres_req_handler (ke_msg_id_t const msgid, struct mm_set_txop_rts_thres_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_TXOP_RTS_THRES_REQ message handler.
static int | mm_set_slottime_req_handler (ke_msg_id_t const msgid, struct mm_set_slottime_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_SLOTTIME_REQ message handler.
static int | mm_set_mode_req_handler (ke_msg_id_t const msgid, struct mm_set_mode_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_MODE_REQ message handler.
static int | mm_set_vif_state_req_handler (ke_msg_id_t const msgid, struct mm_set_vif_state_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_VIF_STATE_REQ message handler.
static int | mm_set_power_req_handler (ke_msg_id_t const msgid, struct mm_set_power_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_POWER_REQ message handler.
static int | mm_dbg_trigger_req_handler (ke_msg_id_t const msgid, struct mm_dbg_trigger_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_DBG_TRIGGER_REQ message handler.
static int | mm_add_if_req_handler (ke_msg_id_t const msgid, struct mm_add_if_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_ADD_IF_REQ message handler.
static int | mm_remove_if_req_handler (ke_msg_id_t const msgid, struct mm_remove_if_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_REMOVE_IF_REQ message handler.
static int | mm_set_idle_req_handler (ke_msg_id_t const msgid, struct mm_set_idle_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_IDLE_REQ message handler.
static int | mm_force_idle_req_handler (ke_msg_id_t const msgid, struct mm_force_idle_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_FORCE_IDLE_REQ message handler.
static int | mm_sta_add_req_handler (ke_msg_id_t const msgid, struct mm_sta_add_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_STA_ADD_REQ message handler.
static int | mm_sta_del_req_handler (ke_msg_id_t const msgid, struct mm_sta_del_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_STA_DEL_REQ message handler.
static int | mm_key_add_req_handler (ke_msg_id_t const msgid, struct mm_key_add_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_KEY_ADD_REQ message handler.
static int | mm_key_del_req_handler (ke_msg_id_t const msgid, struct mm_key_del_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_KEY_DEL_REQ message handler.
static int | mm_ba_add_req_handler (ke_msg_id_t const msgid, struct mm_ba_add_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_BA_ADD_REQ message handler.
static int | mm_ba_del_req_handler (ke_msg_id_t const msgid, struct mm_ba_del_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_BA_DEL_REQ message handler.
static int | mm_tbtt_move_req_handler (ke_msg_id_t const msgid, struct mm_tbtt_move_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_TBTT_MOVE_REQ message handler.
static int | mm_chan_ctxt_unlink_req_handler (ke_msg_id_t const msgid, struct mm_chan_ctxt_unlink_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_CHAN_CTXT_UNLINK_REQ message handler.
static int | mm_chan_ctxt_update_req_handler (ke_msg_id_t const msgid, struct mm_chan_ctxt_update_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_CHAN_CTXT_UPDATE_REQ message handler.
static int | mm_remain_on_channel_req_handler (ke_msg_id_t const msgid, struct mm_remain_on_channel_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_REMAIN_ON_CHANNEL_REQ message handler.
static int | mm_bcn_change_req_handler (ke_msg_id_t const msgid, struct mm_bcn_change_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_BCN_CHANGE_REQ message handler.
static int | mm_tim_update_req_handler (ke_msg_id_t const msgid, struct mm_tim_update_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_TIM_UPDATE_REQ message handler.
static int | mm_ant_div_init_req_handler (ke_msg_id_t const msgid, struct mm_ant_div_init_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_ANT_DIV_INIT_REQ message handler.
static int | mm_ant_div_stop_req_handler (ke_msg_id_t const msgid, void const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_ANT_DIV_STOP_REQ message handler.
static int | mm_ant_div_update_req_handler (ke_msg_id_t const msgid, void const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_ANT_DIV_UPDATE_REQ message handler.
static int | mm_switch_antenna_req_handler (ke_msg_id_t const msgid, void const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SWITCH_ANTENNA_REQ message handler.
static int | mm_hw_config_handler (ke_msg_id_t const msgid, void const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| Postpones message processing until HW reach IDLE state.
static int | mm_set_ps_mode_req_handler (ke_msg_id_t const msgid, struct mm_set_ps_mode_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_PS_MODE_REQ message handler.
static int | mm_set_ps_options_req_handler (ke_msg_id_t const msgid, struct mm_set_ps_options_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_PS_OPTIONS_REQ message handler.
static int | mm_set_p2p_noa_req_handler (ke_msg_id_t const msgid, struct mm_set_p2p_noa_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_P2P_NOA_REQ message handler.
static int | mm_set_p2p_oppps_req_handler (ke_msg_id_t const msgid, struct mm_set_p2p_oppps_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_SET_P2P_OPPPS_REQ message handler.
static int | mm_bfmer_enable_req_handler (ke_msg_id_t const msgid, struct mm_bfmer_enable_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_BFMER_ENABLE_REQ message handler.
static int | mm_mu_group_update_req_handler (ke_msg_id_t const msgid, struct mm_mu_group_update_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_MU_GROUP_UPDATE_REQ message handler.
static int | mm_cfg_rssi_req_handler (ke_msg_id_t const msgid, struct mm_cfg_rssi_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| MM module MM_CFG_RSSI_REQ message handler.
## Variables
struct ke_msg_handler | mm_default_state []
| Message handlers in state DEFAULT.
struct ke_state_handler | mm_state_handler [MM_STATE_MAX]
| Specifies the message handler structure for every input state of STA State Machine.
struct ke_state_handler | mm_default_handler
| Specifies the message handlers that are common to all states.
ke_state_t | mm_state [MM_IDX_MAX]
| Defines the placeholder for the states of all the task instances.
struct ke_state_handler | mm_state_handler [MM_STATE_MAX]
| Specifies the message handler structure for every input state of STA State Machine.
struct ke_state_handler | mm_default_handler
| Specifies the message handlers that are common to all states.
ke_state_t | mm_state [MM_IDX_MAX]
| Defines the placeholder for the states of all the task instances.

## Detailed Description

LMAC Management module task.

## Enumeration Type Documentation

enum mm_msg_tag

List of messages related to the task.

Enumerator:

  MM_RESET_REQ | RESET Request.
  MM_RESET_CFM | RESET Confirmation.
  MM_START_REQ | START Request.
  MM_START_CFM | START Confirmation.
  MM_VERSION_REQ | Read Version Request.
  MM_VERSION_CFM | Read Version Confirmation.
  MM_ADD_IF_REQ | ADD INTERFACE Request.
  MM_ADD_IF_CFM | ADD INTERFACE Confirmation.
  MM_REMOVE_IF_REQ | REMOVE INTERFACE Request.
  MM_REMOVE_IF_CFM | REMOVE INTERFACE Confirmation.
  MM_STA_ADD_REQ | STA ADD Request.
  MM_STA_ADD_CFM | STA ADD Confirm.
  MM_STA_DEL_REQ | STA DEL Request.
  MM_STA_DEL_CFM | STA DEL Confirm.
  MM_SET_FILTER_REQ | RX FILTER Configuration Request.
  MM_SET_FILTER_CFM | RX FILTER Configuration Confirmation.
  MM_SET_CHANNEL_REQ | CHANNEL Configuration Request.
  MM_SET_CHANNEL_CFM | CHANNEL Configuration Confirmation.
  MM_SET_DTIM_REQ | DTIM PERIOD Configuration Request.
  MM_SET_DTIM_CFM | DTIM PERIOD Configuration Confirmation.
  MM_SET_BEACON_INT_REQ | BEACON INTERVAL Configuration Request.
  MM_SET_BEACON_INT_CFM | BEACON INTERVAL Configuration Confirmation.
  MM_SET_BASIC_RATES_REQ | BASIC RATES Configuration Request.
  MM_SET_BASIC_RATES_CFM | BASIC RATES Configuration Confirmation.
  MM_SET_BSSID_REQ | BSSID Configuration Request.
  MM_SET_BSSID_CFM | BSSID Configuration Confirmation.
  MM_SET_EDCA_REQ | EDCA PARAMETERS Configuration Request.
  MM_SET_EDCA_CFM | EDCA PARAMETERS Configuration Confirmation.
  MM_SET_MODE_REQ | ABGN MODE Configuration Request.
  MM_SET_MODE_CFM | ABGN MODE Configuration Confirmation.
  MM_SET_VIF_STATE_REQ | Request setting the VIF active state (i.e associated or AP started).
  MM_SET_VIF_STATE_CFM | Confirmation of the MM_SET_VIF_STATE_REQ message.
  MM_SET_SLOTTIME_REQ | SLOT TIME PARAMETERS Configuration Request.
  MM_SET_SLOTTIME_CFM | SLOT TIME PARAMETERS Configuration Confirmation.
  MM_SET_IDLE_REQ | IDLE mode change Request.
  MM_SET_IDLE_CFM | IDLE mode change Confirm.
  MM_KEY_ADD_REQ | KEY ADD Request.
  MM_KEY_ADD_CFM | KEY ADD Confirm.
  MM_KEY_DEL_REQ | KEY DEL Request.
  MM_KEY_DEL_CFM | KEY DEL Confirm.
  MM_BA_ADD_REQ | Block Ack agreement info addition.
  MM_BA_ADD_CFM | Block Ack agreement info addition confirmation.
  MM_BA_DEL_REQ | Block Ack agreement info deletion.
  MM_BA_DEL_CFM | Block Ack agreement info deletion confirmation.
  MM_PRIMARY_TBTT_IND | Indication of the primary TBTT to the upper MAC. Upon the reception of this message the upper MAC has to push the beacon(s) to the beacon transmission queue.
  MM_SECONDARY_TBTT_IND | Indication of the secondary TBTT to the upper MAC. Upon the reception of this message the upper MAC has to push the beacon(s) to the beacon transmission queue.
  MM_SET_POWER_REQ | Request for changing the TX power.
  MM_SET_POWER_CFM | Confirmation of the TX power change.
  MM_DBG_TRIGGER_REQ | Request to the LMAC to trigger the embedded logic analyzer and forward the debug dump.
  MM_SET_PS_MODE_REQ | Set Power Save mode.
  MM_SET_PS_MODE_CFM | Set Power Save mode confirmation.
  MM_CHAN_CTXT_ADD_REQ | Request to add a channel context.
  MM_CHAN_CTXT_ADD_CFM | Confirmation of the channel context addition.
  MM_CHAN_CTXT_DEL_REQ | Request to delete a channel context.
  MM_CHAN_CTXT_DEL_CFM | Confirmation of the channel context deletion.
  MM_CHAN_CTXT_LINK_REQ | Request to link a channel context to a VIF.
  MM_CHAN_CTXT_LINK_CFM | Confirmation of the channel context link.
  MM_CHAN_CTXT_UNLINK_REQ | Request to unlink a channel context from a VIF.
  MM_CHAN_CTXT_UNLINK_CFM | Confirmation of the channel context unlink.
  MM_CHAN_CTXT_UPDATE_REQ | Request to update a channel context.
  MM_CHAN_CTXT_UPDATE_CFM | Confirmation of the channel context update.
  MM_CHAN_CTXT_SCHED_REQ | Request to schedule a channel context.
  MM_CHAN_CTXT_SCHED_CFM | Confirmation of the channel context scheduling.
  MM_BCN_CHANGE_REQ | Request to change the beacon template in LMAC.
  MM_BCN_CHANGE_CFM | Confirmation of the beacon change.
  MM_TIM_UPDATE_REQ | Request to update the TIM in the beacon (i.e to indicate traffic bufferized at AP).
  MM_TIM_UPDATE_CFM | Confirmation of the TIM update.
  MM_CONNECTION_LOSS_IND | Connection loss indication.
  MM_CHANNEL_SWITCH_IND | Channel context switch indication to the upper layers.
  MM_CHANNEL_PRE_SWITCH_IND | Channel context pre-switch indication to the upper layers.
  MM_REMAIN_ON_CHANNEL_REQ | Request to remain on channel or cancel remain on channel.
  MM_REMAIN_ON_CHANNEL_CFM | Confirmation of the (cancel) remain on channel request.
  MM_REMAIN_ON_CHANNEL_EXP_IND | Remain on channel expired indication.
  MM_PS_CHANGE_IND | Indication of a PS state change of a peer device.
  MM_TRAFFIC_REQ_IND | Indication that some buffered traffic should be sent to the peer device.
  MM_SET_PS_OPTIONS_REQ | Request to modify the STA Power-save mode options.
  MM_SET_PS_OPTIONS_CFM | Confirmation of the PS options setting.
  MM_P2P_VIF_PS_CHANGE_IND | Indication of PS state change for a P2P VIF.
  MM_CSA_COUNTER_IND | Indication that CSA counter has been updated.
  MM_CHANNEL_SURVEY_IND | Message containing channel information.
  MM_BFMER_ENABLE_REQ | Message containing Beamformer information.
  MM_SET_P2P_NOA_REQ | Request to Start/Stop NOA - GO Only.
  MM_SET_P2P_OPPPS_REQ | Request to Start/Stop Opportunistic PS - GO Only.
  MM_SET_P2P_NOA_CFM | Start/Stop NOA Confirmation.
  MM_SET_P2P_OPPPS_CFM | Start/Stop Opportunistic PS Confirmation.
  MM_P2P_NOA_UPD_IND | P2P NoA Update Indication - GO Only.
  MM_CFG_RSSI_REQ | Request to set RSSI threshold and RSSI hysteresis.
  MM_RSSI_STATUS_IND | Indication that RSSI is below or above the threshold.
  MM_CSA_FINISH_IND | Indication that CSA is done.
  MM_CSA_TRAFFIC_IND | Indication that CSA is in prorgess (resp. done) and traffic must be stopped (resp. restarted).
  MM_MU_GROUP_UPDATE_REQ | Request to update the group information of a station.
  MM_MU_GROUP_UPDATE_CFM | Confirmation of the MM_MU_GROUP_UPDATE_REQ message.
  MM_ANT_DIV_INIT_REQ | Request to initialize the antenna diversity algorithm.
  MM_ANT_DIV_STOP_REQ | Request to stop the antenna diversity algorithm.
  MM_ANT_DIV_UPDATE_REQ | Request to update the antenna switch status.
  MM_SWITCH_ANTENNA_REQ | Request to switch the antenna connected to path_0.
  MM_PKTLOSS_IND | Indication that a packet loss has occurred.
  MM_SET_MU_EDCA_REQ | MU EDCA PARAMETERS Configuration Request.
  MM_SET_MU_EDCA_CFM | MU EDCA PARAMETERS Configuration Confirmation.
  MM_SET_UORA_REQ | UORA PARAMETERS Configuration Request.
  MM_SET_UORA_CFM | UORA PARAMETERS Configuration Confirmation.
  MM_SET_TXOP_RTS_THRES_REQ | TXOP RTS THRESHOLD Configuration Request.
  MM_SET_TXOP_RTS_THRES_CFM | TXOP RTS THRESHOLD Configuration Confirmation.
  MM_SET_BSS_COLOR_REQ | HE BSS Color Configuration Request.
  MM_SET_BSS_COLOR_CFM | HE BSS Color Configuration Confirmation.
  MM_FORCE_IDLE_REQ | Internal request to force the HW going to IDLE.
  MM_SCAN_CHANNEL_START_IND | Message indicating that the switch to the scan channel is done.
  MM_SCAN_CHANNEL_END_IND | Message indicating that the scan on the channel is finished.
  MM_TBTT_MOVE_REQ | Internal request to move the AP TBTT by an offset.
  MM_MAX | MAX number of messages.

Definition at line 72 of file mm_task.h.

enum mm_state_tag

Possible States of the MM STA Task.

Enumerator:

  MM_IDLE | MAC IDLE State.
  MM_ACTIVE | MAC ACTIVE State.
  MM_GOING_TO_IDLE | MAC is going to IDLE.
  MM_HOST_BYPASSED | IDLE state internally controlled.
  MM_NO_IDLE | IDLE state temporarily disallowed.
  MM_STATE_MAX | MAC Max Number of states.

Definition at line 46 of file mm_task.h.

## Function Documentation

static int mm_add_if_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_add_if_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_ADD_IF_REQ message handler.

Sent by host.
It creates a new interface.

Message MM_ADD_IF_CFM is sent when completed.

Note:
  : Message MM_ADD_IF_REQ is "delayed" by function mm_hw_config_handler until HW is in IDLE state.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1191 of file mm_task.c.

References mm_add_if_req::addr, mm_add_if_cfm::inst_nbr, KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), MM_ADD_IF_CFM, mm_add_if_req::p2p, mm_add_if_cfm::status, mm_add_if_req::type, and vif_mgmt_register().

Referenced by mm_hw_config_handler().

static int mm_ant_div_init_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_ant_div_init_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_ANT_DIV_INIT_REQ message handler.

Sent by UMAC.
It initializes the antenna diversity algorithm.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 2081 of file mm_task.c.

References mm_ant_div_init_req::enable, KE_MSG_CONSUMED, and mm_ant_div_init().

static int mm_ant_div_stop_req_handler | ( | ke_msg_id_t const | msgid,
|  | void const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_ANT_DIV_STOP_REQ message handler.

Sent by UMAC.
It stops the antenna diversity algorithm.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 2108 of file mm_task.c.

References KE_MSG_CONSUMED, and mm_ant_div_switch_and_stop().

static int mm_ant_div_update_req_handler | ( | ke_msg_id_t const | msgid,
|  | void const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_ANT_DIV_UPDATE_REQ message handler.

Sent by UMAC.
It updates the antenna diversity parameters.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 2136 of file mm_task.c.

References KE_MSG_CONSUMED, and mm_ant_div_update().

static int mm_ba_add_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_ba_add_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_BA_ADD_REQ message handler.

Sent by UMAC.
It registers the received BA agreement details (tid, ssn, buffer size) for the appropriate STA.

Message MM_BA_ADD_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1570 of file mm_task.c.

References BA_AGMT_ALREADY_EXISTS, BA_AGMT_ESTABLISHED, BA_AGMT_NO_MORE_BA_AGMT, BA_AGMT_NOT_SUPPORTED, BA_AGMT_TX, mm_ba_add_req::bufsz, KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), mac_tid2ac, MM_BA_ADD_CFM, mm_ba_agmt_tx_exists(), nx_txdesc_cnt, rxu_cntrl_reord_create(), mm_ba_add_req::ssn, mm_ba_add_cfm::sta_idx, mm_ba_add_req::sta_idx, sta_info_tab, sta_mgmt_set_tx_buff_size(), sta_mgmt_set_tx_ssn(), mm_ba_add_cfm::status, mm_key_add_cfm::status, mm_ba_add_cfm::tid, mm_ba_add_req::tid, and mm_ba_add_req::type.

Referenced by mm_hw_config_handler().

static int mm_ba_del_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_ba_del_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_BA_DEL_REQ message handler.

Sent by UMAC.
It unregisters the BA agreement information from the STA info table.

Message MM_BA_DEL_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1664 of file mm_task.c.

References BA_AGMT_DELETED, BA_AGMT_DOESNT_EXIST, BA_AGMT_NOT_SUPPORTED, BA_AGMT_TX, KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), mm_ba_agmt_rx_exists(), mm_ba_agmt_tx_exists(), MM_BA_DEL_CFM, rxu_cntrl_reord_delete(), mm_ba_del_cfm::sta_idx, mm_ba_del_req::sta_idx, sta_info_tab, sta_mgmt_set_tx_buff_size(), sta_mgmt_set_tx_ssn(), mm_ba_del_cfm::status, mm_ba_add_cfm::status, mm_ba_del_cfm::tid, mm_ba_del_req::tid, and mm_ba_del_req::type.

static int mm_bcn_change_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_bcn_change_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_BCN_CHANGE_REQ message handler.

Sent by UMAC or MESH modules.
It updates (or set) content of the beacon frame for one interface

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 2025 of file mm_task.c.

References KE_MSG_NO_FREE, and mm_bcn_change().

static int mm_bfmer_enable_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_bfmer_enable_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_BFMER_ENABLE_REQ message handler.

Sent by Host.
It enables beamformed transmission with a specifc STA.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 2507 of file mm_task.c.

References mm_bfmer_enable_req::aid, bfr_add_sta_ind(), bfr_is_enabled(), mm_bfmer_enable_req::host_bfr_addr, mm_bfmer_enable_req::host_bfr_size, INVALID_STA_IDX, KE_MSG_CONSUMED, mm_bfmer_enable_req::rx_nss, mm_bfmer_enable_req::sta_idx, sta_info_tab, sta_info_tag::staid, and mm_bfmer_enable_req::vht_mu_bfmee.

static int mm_cfg_rssi_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_cfg_rssi_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_CFG_RSSI_REQ message handler.

Sent by Host.
It configures connection quality monitor RSSI threshold.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 2565 of file mm_task.c.

References ASSERT_ERR, KE_MSG_CONSUMED, mm_cfg_rssi_req::rssi_hyst, mm_cfg_rssi_req::rssi_thold, vif_info_tag::sta, vif_info_tag::type, vif_info_tag::u, mm_cfg_rssi_req::vif_index, vif_info_tab, and VIF_STA.

static int mm_chan_ctxt_unlink_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_chan_ctxt_unlink_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_CHAN_CTXT_UNLINK_REQ message handler.

Sent by Host.
It unlinks a vif from a channel context.

Message MM_CHAN_CTXT_UNLINK_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1914 of file mm_task.c.

References chan_ctxt_unlink(), KE_MSG_CONSUMED, ke_msg_send_basic(), MM_CHAN_CTXT_UNLINK_CFM, and mm_chan_ctxt_unlink_req::vif_index.

static int mm_chan_ctxt_update_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_chan_ctxt_update_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_CHAN_CTXT_UPDATE_REQ message handler.

Sent by UMAC.
It updates the channel configuration contained in a channel context.

Message MM_CHAN_CTXT_UPDATE_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1946 of file mm_task.c.

References chan_ctxt_update(), KE_MSG_CONSUMED, ke_msg_send_basic(), and MM_CHAN_CTXT_UPDATE_CFM.

Referenced by mm_hw_config_handler().

static int mm_dbg_trigger_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_dbg_trigger_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_DBG_TRIGGER_REQ message handler.

Sent by Host.
It forces firmware to upload debug dump.

Note:
  : Message MM_DBG_TRIGGER_REQ is "delayed" by function mm_hw_config_handler until HW is in IDLE state.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1159 of file mm_task.c.

References dbg_force_trigger(), mm_dbg_trigger_req::error, and KE_MSG_CONSUMED.

Referenced by mm_hw_config_handler().

static int mm_force_idle_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_force_idle_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_FORCE_IDLE_REQ message handler.

Sent by P2P or CHAN modules.
It requests the MM task to set MACHW in idle state and to execute callback provided in message parameters once IDLE state is reached.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1350 of file mm_task.c.

References ASSERT_ERR, mm_force_idle_req::cb, hal_machw_idle_req(), HW_IDLE, KE_MSG_CONSUMED, KE_MSG_SAVED, ke_state_get(), ke_state_set(), MM_GOING_TO_IDLE, MM_HOST_BYPASSED, MM_IDLE, and MM_NO_IDLE.

static int mm_hw_config_handler | ( | ke_msg_id_t const | msgid,
|  | void const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

Postpones message processing until HW reach IDLE state.

It is used as handler for the following messages: MM_SET_CHANNEL_REQ, MM_SET_FILTER_REQ, MM_ADD_IF_REQ, MM_REMOVE_IF_REQ, MM_SET_BASIC_RATES_REQ, MM_SET_BEACON_INT_REQ, MM_SET_DTIM_REQ, MM_SET_BSSID_REQ, MM_SET_EDCA_REQ, MM_SET_SLOTTIME_REQ, MM_SET_MODE_REQ, MM_SET_VIF_STATE_REQ, MM_BA_ADD_REQ, MM_CHAN_CTXT_UPDATE_REQ, MM_DBG_TRIGGER_REQ, MM_SWITCH_ANTENNA_REQ,

When the message is received,

- If HW is already in IDLE state then the corresponding handler function is executed immediately.
- Otherwise, it will first move HW to IDLE state and call handler function when IDLE state is reached.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 2202 of file mm_task.c.

References ASSERT_ERR, hal_machw_idle_req(), HW_IDLE, KE_MSG_SAVED, ke_state_get(), ke_state_set(), MM_ADD_IF_REQ, mm_add_if_req_handler(), MM_BA_ADD_REQ, mm_ba_add_req_handler(), MM_CHAN_CTXT_UPDATE_REQ, mm_chan_ctxt_update_req_handler(), MM_DBG_TRIGGER_REQ, mm_dbg_trigger_req_handler(), mm_env, MM_GOING_TO_IDLE, MM_HOST_BYPASSED, MM_IDLE, MM_NO_IDLE, MM_REMOVE_IF_REQ, mm_remove_if_req_handler(), MM_SET_BASIC_RATES_REQ, mm_set_basic_rates_req_handler(), MM_SET_BEACON_INT_REQ, mm_set_beacon_int_req_handler(), MM_SET_BSSID_REQ, mm_set_bssid_req_handler(), MM_SET_CHANNEL_REQ, mm_set_channel_req_handler(), MM_SET_DTIM_REQ, mm_set_dtim_req_handler(), MM_SET_FILTER_REQ, mm_set_filter_req_handler(), MM_SET_MODE_REQ, mm_set_mode_req_handler(), MM_SET_SLOTTIME_REQ, mm_set_slottime_req_handler(), MM_SET_VIF_STATE_REQ, mm_set_vif_state_req_handler(), MM_SWITCH_ANTENNA_REQ, mm_switch_antenna_req_handler(), MM_TBTT_MOVE_REQ, mm_tbtt_move_req_handler(), mm_env_tag::prev_hw_state, mm_env_tag::prev_mm_state, and mm_remain_on_channel_cfm::status.

static int mm_key_add_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_key_add_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_KEY_ADD_REQ message handler.

Sent by Host.
It adds a key used for encryption in the hardware.

Message MM_KEY_ADD_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1477 of file mm_task.c.

References ASSERT_ERR, mm_key_add_req::cipher_suite, CO_OK, mm_key_add_cfm::hw_key_idx, KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), mm_key_add_req::key, mm_key_add_req::key_idx, mac_sec_key::length, MAC_CIPHER_BIP_CMAC_128, MAC_DEFAULT_KEY_COUNT, MAC_DEFAULT_MFP_KEY_COUNT, MAC_SEC_KEY_LEN, MM_KEY_ADD_CFM, mm_sec_machwkey_wr(), and mm_key_add_cfm::status.

static int mm_key_del_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_key_del_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_KEY_DEL_REQ message handler.

Sent by Host.
It removes an encryption key from the hardware.

Message MM_KEY_DEL_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1530 of file mm_task.c.

References ASSERT_ERR, mm_key_del_req::hw_key_idx, KE_MSG_CONSUMED, ke_msg_send_basic(), MM_KEY_DEL_CFM, mm_sec_machwkey_del(), MM_SEC_MAX_KEY_NBR, and MM_SEC_MAX_MFP_KEY_NBR.

static int mm_mu_group_update_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_mu_group_update_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_MU_GROUP_UPDATE_REQ message handler.

Sent by Host.
It updates the list of MU groups.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 2538 of file mm_task.c.

References bfr_group_update_req(), and KE_MSG_NO_FREE.

static int mm_remain_on_channel_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_remain_on_channel_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_REMAIN_ON_CHANNEL_REQ message handler.

Sent by UMAC, CHAN and TDLS modules.
It starts a "Remain On Channel" procedure.

Message MM_REMAIN_ON_CHANNEL_CFM is sent when completed (except if the requester task is MM or TDLS).

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1979 of file mm_task.c.

References mm_remain_on_channel_cfm::chan_ctxt_index, CHAN_ROC_CTXT_IDX, chan_roc_req(), KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), MM_REMAIN_ON_CHANNEL_CFM, mm_remain_on_channel_req::op_code, mm_remain_on_channel_cfm::op_code, mm_remain_on_channel_cfm::status, mm_chan_ctxt_add_cfm::status, TASK_MM, and TASK_TDLS.

static int mm_remove_if_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_remove_if_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_REMOVE_IF_REQ message handler.

Sent by host.
It deletes a existing interface.

Message MM_REMOVE_IF_CFM is sent when completed.

Note:
  : Message MM_REMOVE_IF_REQ is "delayed" by function mm_hw_config_handler until HW is in IDLE state.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1231 of file mm_task.c.

References co_list_is_empty(), hal_machw_monitor_mode(), mm_remove_if_req::inst_nbr, KE_MSG_CONSUMED, ke_msg_send_basic(), MM_REMOVE_IF_CFM, NX_VIRT_DEV_MAX, vif_mgmt_env_tag::used_list, vif_mgmt_env, and vif_mgmt_unregister().

Referenced by mm_hw_config_handler().

static int mm_reset_req_handler | ( | ke_msg_id_t const | msgid,
|  | void const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_RESET_REQ message handler.

Sent by host.
It

- Resets all data structure and variables
- Programs MAC HW register for Reset
- Initializes all other contexts and modules.

After RESET procedure is completed it sends the MM_RESET_CFM message.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 235 of file mm_task.c.

References GLOBAL_INT_DISABLE, GLOBAL_INT_RESTORE, hal_machw_stop(), KE_MSG_CONSUMED, ke_msg_send_basic(), ke_state_set(), ke_timer_reset(), me_init(), MM_IDLE, mm_init(), MM_RESET_CFM, phy_stop(), and TASK_MM.

static int mm_set_basic_rates_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_basic_rates_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_BASIC_RATES_REQ message handler.

Sent by UAMC.
It configures the basic rates allowed in the dedicated HW registers.

Message MM_SET_BASIC_RATES_CFM is sent when completed.

Note:
  : Message MM_SET_BASIC_RATES_REQ is "delayed" by function mm_hw_config_handler until HW is in IDLE state.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 557 of file mm_task.c.

References mac_chan_op::band, mm_set_basic_rates_req::band, mm_env_tag::basic_rates, chan_env, chan_ctxt_tag::channel, chan_env_tag::current_ctxt, KE_MSG_CONSUMED, ke_msg_send_basic(), mm_env, MM_SET_BASIC_RATES_CFM, and mm_set_basic_rates_req::rates.

Referenced by mm_hw_config_handler().

static int mm_set_beacon_int_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_beacon_int_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_BEACON_INT_REQ message handler.

Sent by UMAC.
It configures the beacon period in the dedicated HW registers.

Message MM_SET_BEACON_INT_CFM is sent when completed.

Note:
  : Message MM_SET_BEACON_INT_REQ is "delayed" by function mm_hw_config_handler until HW is in IDLE state.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 495 of file mm_task.c.

References sta_info_tag::bcn_int, mm_set_beacon_int_req::beacon_int, mm_set_beacon_int_req::inst_nbr, INVALID_STA_IDX, KE_MSG_CONSUMED, ke_msg_send_basic(), MM_SET_BEACON_INT_CFM, vif_info_tag::sta, sta_info_tab, TU_DURATION, vif_info_tag::type, vif_info_tag::u, vif_info_tab, vif_mgmt_set_ap_bcn_int(), and VIF_STA.

Referenced by mm_hw_config_handler().

static int mm_set_bss_color_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_bss_color_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_BSS_COLOR_REQ message handler.

Sent by UMAC.
It configures the BSS color register of the MAC HW.

Message MM_SET_BSS_COLOR_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 829 of file mm_task.c.

References mm_set_bss_color_req::bss_color, KE_MSG_CONSUMED, ke_msg_send_basic(), and MM_SET_BSS_COLOR_CFM.

static int mm_set_bssid_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_bssid_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_BSSID_REQ message handler.

Sent by UMAC.
It configures the BSSID in the dedicated HW registers.

Message MM_SET_BSSID_CFM is sent when completed.

Note:
  : Message MM_SET_BSSID_REQ is "delayed" by function mm_hw_config_handler until HW is in IDLE state.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 640 of file mm_task.c.

References mac_addr::array, mm_set_bssid_req::bssid, vif_info_tag::bssid, mm_set_bssid_req::inst_nbr, KE_MSG_CONSUMED, ke_msg_send_basic(), MM_SET_BSSID_CFM, vif_info_tab, and vif_mgmt_used_cnt().

Referenced by mm_hw_config_handler().

static int mm_set_channel_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_channel_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_CHANNEL_REQ message handler.

Send by host.
It configures the channel used at PHY level.
If Channel context is used (NX_CHNL_CTXT), this function can only be used on secondary channel.

Message MM_SET_CHANNEL_CFM is sent when completed.

Note:
  : Message MM_SET_CHANNEL_REQ is "delayed" by function mm_hw_config_handler until HW is in IDLE state.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 412 of file mm_task.c.

References mm_set_channel_req::chan, mm_set_channel_req::index, KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), MM_SET_CHANNEL_CFM, PHY_PRIM, phy_set_channel(), PROF_MM_SET_CHANNEL_CLR, and PROF_MM_SET_CHANNEL_SET.

Referenced by mm_hw_config_handler().

static int mm_set_dtim_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_dtim_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_DTIM_REQ message handler.

Sent by host.
It configures the dtim period in the dedicated HW registers.

Message MM_SET_DTIM_CFM is sent when completed.

Note:
  : Message MM_SET_DTIM_REQ is "delayed" by function mm_hw_config_handler until HW is in IDLE state.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 459 of file mm_task.c.

References mm_set_dtim_req::dtim_period, KE_MSG_CONSUMED, ke_msg_send_basic(), and MM_SET_DTIM_CFM.

Referenced by mm_hw_config_handler().

static int mm_set_edca_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_edca_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_EDCA_REQ message handler.

Sent by UMAC.
It configures the EDCA parameters in the dedicated HW registers.

Message MM_SET_EDCA_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 696 of file mm_task.c.

References AC_BE, AC_BK, mm_set_edca_req::ac_param, AC_VI, vif_info_tag::active, mm_set_edca_req::hw_queue, mm_set_edca_req::inst_nbr, KE_MSG_CONSUMED, ke_msg_send_basic(), mm_env_max_ampdu_duration_set(), MM_SET_EDCA_CFM, ps_uapsd_set(), vif_info_tag::txq_params, vif_info_tag::type, mm_set_edca_req::uapsd, vif_info_tab, and VIF_STA.

static int mm_set_filter_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_filter_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_FILTER_REQ message handler.

Sent by host.
It configures the RX filter in the dedicated HW registers.

Message MM_SET_FILTER_CFM is sent when completed.

Note:
  : Message MM_SET_FILTER_REQ is "delayed" by function mm_hw_config_handler until HW is in IDLE state.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 605 of file mm_task.c.

References mm_set_filter_req::filter, KE_MSG_CONSUMED, ke_msg_send_basic(), mm_rx_filter_umac_set(), and MM_SET_FILTER_CFM.

Referenced by mm_hw_config_handler().

static int mm_set_idle_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_idle_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_IDLE_REQ message handler.

Sent by Host or ME task.
Request MM task to set MACHW in idle state.

Message MM_SET_IDLE_CFM is sent when IDLE set is reached.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1270 of file mm_task.c.

References ASSERT_ERR, hal_machw_idle_req(), mm_env_tag::host_idle, HW_IDLE, mm_set_idle_req::hw_idle, KE_MSG_CONSUMED, KE_MSG_SAVED, ke_msg_send_basic(), ke_state_get(), ke_state_set(), mm_active(), mm_env, MM_GOING_TO_IDLE, MM_HOST_BYPASSED, MM_IDLE, MM_NO_IDLE, MM_SET_IDLE_CFM, mm_env_tag::prev_hw_state, and mm_env_tag::prev_mm_state.

static int mm_set_mode_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_mode_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_MODE_REQ message handler.

Sent by Host.
It configures the 802.11 mode in the dedicated HW registers.

Message MM_SET_MODE_CFM is sent when completed.

Note:
  : Message MM_SET_MODE_REQ is "delayed" by function mm_hw_config_handler until HW is in IDLE state.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 941 of file mm_task.c.

References mm_set_mode_req::abgnmode, KE_MSG_CONSUMED, ke_msg_send_basic(), and MM_SET_MODE_CFM.

Referenced by mm_hw_config_handler().

static int mm_set_mu_edca_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_mu_edca_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_MU_EDCA_REQ message handler.

Sent by UMAC.
It configures the MU EDCA parameters to the TX HE module.

Message MM_SET_MU_EDCA_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 762 of file mm_task.c.

References KE_MSG_CONSUMED, ke_msg_send_basic(), and MM_SET_MU_EDCA_CFM.

static int mm_set_p2p_noa_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_p2p_noa_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_P2P_NOA_REQ message handler.

Sent by Host.
It configures Notice of Absence on a P2P GO interface.

Message MM_SET_P2P_NOA_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 2392 of file mm_task.c.

References vif_info_tag::ap, CO_FAIL, CO_OK, mm_set_p2p_noa_req::count, mm_set_p2p_noa_req::duration_us, mm_set_p2p_noa_req::dyn_noa, mm_set_p2p_noa_req::interval_us, KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), ke_time(), MM_SET_P2P_NOA_CFM, mm_set_p2p_noa_req::noa_inst_nb, NX_VIRT_DEV_MAX, vif_info_tag::p2p, p2p_go_noa_start(), p2p_go_noa_stop(), P2P_INVALID_IDX, mm_set_p2p_noa_req::start_offset, mm_set_p2p_noa_cfm::status, TASK_MM, vif_info_tag::u, mm_set_p2p_noa_req::vif_index, and vif_info_tab.

static int mm_set_p2p_oppps_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_p2p_oppps_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_P2P_OPPPS_REQ message handler.

Sent by host.
It configures P2P Opportunistic Power Save on a P2P GO interface.

Message MM_SET_P2P_OPPPS_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 2457 of file mm_task.c.

References CO_FAIL, CO_OK, mm_set_p2p_oppps_req::ctwindow, KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), MM_SET_P2P_OPPPS_CFM, NX_VIRT_DEV_MAX, vif_info_tag::p2p, p2p_go_oppps_start(), p2p_go_oppps_stop(), mm_set_p2p_oppps_cfm::status, TASK_MM, mm_set_p2p_oppps_req::vif_index, and vif_info_tab.

static int mm_set_power_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_power_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_POWER_REQ message handler.

Sent by host.
It configures the tx power to use on a vif. If power asked is outside of what is allowed by regulatory set power to maxumum allowed value.

Message MM_SET_POWER_CFM is sent when completed with the actual power configured.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1113 of file mm_task.c.

References vif_info_tag::index, mm_set_power_req::inst_nbr, KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), MM_SET_POWER_CFM, mm_set_power_cfm::power, mm_set_power_req::power, mm_set_power_cfm::radio_idx, tpc_get_vif_tx_power(), tpc_set_vif_tx_power(), tpc_update_vif_tx_power(), TRACE_LMAC, vif_info_tag::tx_power, vif_info_tag::user_tx_power, and vif_info_tab.

static int mm_set_ps_mode_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_ps_mode_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_PS_MODE_REQ message handler.

Sent by UMAC.
It indicates LMAC whether PowerSave should be enabled or disabled.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 2326 of file mm_task.c.

References KE_MSG_CONSUMED, mm_set_ps_mode_req::new_state, and ps_set_mode().

static int mm_set_ps_options_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_ps_options_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_PS_OPTIONS_REQ message handler.

Sent by UMAC or SM module.
It configures the power save mode for STATION interfaces.

Message MM_SET_PS_OPTIONS_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 2354 of file mm_task.c.

References ASSERT_ERR, mm_set_ps_options_req::dont_listen_bc_mc, KE_MSG_CONSUMED, ke_msg_send_basic(), mm_set_ps_options_req::listen_interval, MM_SET_PS_OPTIONS_CFM, vif_info_tag::sta, vif_info_tag::type, vif_info_tag::u, mm_set_ps_options_req::vif_index, vif_info_tab, and VIF_STA.

static int mm_set_slottime_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_slottime_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_SLOTTIME_REQ message handler.

Sent by Host.
It configures the slot time in the dedicated HW registers.

Message MM_SET_SLOTTIME_CFM is sent when completed.

Note:
  : Message MM_SET_SLOTTIME_REQ is "delayed" by function mm_hw_config_handler until HW is in IDLE state.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 901 of file mm_task.c.

References KE_MSG_CONSUMED, ke_msg_send_basic(), MM_SET_SLOTTIME_CFM, and mm_set_slottime_req::slottime.

Referenced by mm_hw_config_handler().

static int mm_set_txop_rts_thres_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_txop_rts_thres_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_TXOP_RTS_THRES_REQ message handler.

Sent by UMAC.
It configures the TXOP duration RTS threshold to the indicated VIF.

Message MM_SET_TXOP_RTS_THRES_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 863 of file mm_task.c.

References mm_set_txop_rts_thres_req::inst_nbr, KE_MSG_CONSUMED, ke_msg_send_basic(), MM_SET_TXOP_RTS_THRES_CFM, mm_set_txop_rts_thres_req::txop_dur_rts_thres, and vif_info_tab.

static int mm_set_uora_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_uora_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_UORA_REQ message handler.

Sent by UMAC.
It configures the UORA parameters to the TX HE module.

Message MM_SET_UORA_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 796 of file mm_task.c.

References KE_MSG_CONSUMED, ke_msg_send_basic(), and MM_SET_UORA_CFM.

static int mm_set_vif_state_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_set_vif_state_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SET_VIF_STATE_REQ message handler.

Sent by UMAC or MESH module.
It changes state of the the specified interface. When STA interface become active it also start beacon/connection monitoring.

Message MM_SET_VIF_STATE_CFM is sent when completed.

Note:
  : Message MM_SET_VIF_STATE_REQ is "delayed" by function mm_hw_config_handler until HW is in IDLE state.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 977 of file mm_task.c.

References AC_BE, AC_BK, AC_VI, AC_VO, mm_set_vif_state_req::active, vif_info_tag::active, mm_set_vif_state_req::aid, sta_info_tag::aid, sta_info_tag::bcn_int, chan_bcn_detect_start(), sta_info_tag::drift, hal_machw_he_support(), mm_set_vif_state_req::inst_nbr, KE_MSG_CONSUMED, ke_msg_send_basic(), ke_time(), mm_env_tag::lp_clk_accuracy, mm_ant_div_restore(), MM_AP_CLK_ACCURACY, mm_env, mm_env_max_ampdu_duration_set(), MM_SET_VIF_STATE_CFM, mm_timer_clear(), mm_timer_set(), p2p_set_vif_state(), phy_set_aid(), vif_info_tag::prevent_sleep, PS_VIF_WAITING_BCN, vif_info_tag::sta, sta_info_tab, vif_info_tag::tbtt_timer, vif_info_tag::txq_params, vif_info_tag::type, vif_info_tag::u, vif_info_tab, vif_mgmt_set_bssid_mask(), and VIF_STA.

Referenced by mm_hw_config_handler().

static int mm_sta_add_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_sta_add_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_STA_ADD_REQ message handler.

Sent from UMAC or MESH modules.
It allocates and initializes a STA entry from the `free_sta_list` in sta_info_env.

Message MM_STA_ADD_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1411 of file mm_task.c.

References mm_sta_add_cfm::hw_sta_idx, KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), mm_sta_add(), MM_STA_ADD_CFM, mm_sta_add_cfm::sta_idx, and mm_sta_add_cfm::status.

static int mm_sta_del_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_sta_del_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_STA_DEL_REQ message handler.

Sent from UMAC or MESH modules.
It removes a STA entry.

Message MM_STA_DEL_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1446 of file mm_task.c.

References KE_MSG_CONSUMED, ke_msg_send_basic(), mm_sta_del(), MM_STA_DEL_CFM, and mm_sta_del_req::sta_idx.

static int mm_start_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_start_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_START_REQ message handler.

Sent by host.
It starts the PHY and MACHW.

Message MM_START_CFM is sent when completed.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Save local LP clock accuracy (in ppm)

Definition at line 295 of file mm_task.c.

References ASSERT_ERR, mac_chan_op::band, mac_chan_op::center1_freq, mac_chan_op::center2_freq, mac_chan_op::flags, hal_machw_idle_req(), KE_MSG_CONSUMED, ke_msg_send_basic(), ke_state_get(), ke_state_set(), MILLI2MICRO, mm_active(), MM_DEFAULT_TX_POWER, MM_GOING_TO_IDLE, MM_IDLE, MM_START_CFM, PHY_BAND_2G4, mm_start_req::phy_cfg, PHY_CHNL_BW_20, phy_init(), PHY_PRIM, phy_set_channel(), mac_chan_op::prim20_freq, ps_env, tpc_update_tx_power(), mac_chan_op::type, mm_start_req::uapsd_timeout, and ps_env_tag::uapsd_timeout.

static int mm_switch_antenna_req_handler | ( | ke_msg_id_t const | msgid,
|  | void const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_SWITCH_ANTENNA_REQ message handler.

Sent by UMAC or MM task.
It switches the antenna connected to path_0.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 2163 of file mm_task.c.

References KE_MSG_CONSUMED, and mm_ant_div_switch_antenna().

Referenced by mm_hw_config_handler().

static int mm_tbtt_move_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_tbtt_move_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_TBTT_MOVE_REQ message handler.

It calls the MAC HW API that moves the TSF.

Note:
  : Message MM_TBTT_MOVE_REQ is "delayed" by function mm_hw_config_handler until HW is in IDLE state.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 1743 of file mm_task.c.

References hal_machw_tsf_move(), KE_MSG_CONSUMED, mm_ap_tbtt_move(), mm_env, mm_tbtt_move_req::offset, and mm_env_tag::tbtt_move_ongoing.

Referenced by mm_hw_config_handler().

static int mm_tim_update_req_handler | ( | ke_msg_id_t const | msgid,
|  | struct mm_tim_update_req const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_TIM_UPDATE_REQ message handler.

Sent by UMAC.
It provides information to update the TIM IE in the beacon frame.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 2052 of file mm_task.c.

References KE_MSG_NO_FREE, and mm_tim_update().

static int mm_version_req_handler | ( | ke_msg_id_t const | msgid,
|  | void const * | param,
|  | ke_task_id_t const | dest_id,
|  | ke_task_id_t const | src_id |
| ) |  |  | `[static]`

MM module MM_VERSION_REQ message handler.

Sent by host.
It reads the FW and HW versions and reports them to the requester in a MM_VERSION_CFM message.

Parameters:

  `[in]` | msgid | Id of the message received.
  `[in]` | param | Pointer to the parameters of the message.
  `[in]` | dest_id | TaskId of the receiving task.
  `[in]` | src_id | TaskId of the sending task.

Returns:
  Whether the message was consumed or not.

Definition at line 80 of file mm_task.c.

References CO_BIT, mm_version_cfm::features, hal_machw_bfmee_support(), hal_machw_he_support(), hal_machw_mu_mimo_rx_support(), KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), mm_version_cfm::max_sta_nb, mm_version_cfm::max_vif_nb, MM_AMSDU_MAX_SIZE_BIT0, MM_FEAT_AMPDU_BIT, MM_FEAT_AMSDU_BIT, MM_FEAT_ANT_DIV_BIT, MM_FEAT_AUTOBCN_BIT, MM_FEAT_BCN_BIT, MM_FEAT_BFMEE_BIT, MM_FEAT_BFMER_BIT, MM_FEAT_CHNL_CTXT_BIT, MM_FEAT_CMON_BIT, MM_FEAT_DPSM_BIT, MM_FEAT_HE_BIT, MM_FEAT_HWSCAN_BIT, MM_FEAT_MESH_BIT, MM_FEAT_MFP_BIT, MM_FEAT_MON_DATA_BIT, MM_FEAT_MROLE_BIT, MM_FEAT_MU_MIMO_RX_BIT, MM_FEAT_MU_MIMO_TX_BIT, MM_FEAT_P2P_BIT, MM_FEAT_P2P_GO_BIT, MM_FEAT_PS_BIT, MM_FEAT_RADAR_BIT, MM_FEAT_REORD_BIT, MM_FEAT_TDLS_BIT, MM_FEAT_UAPSD_BIT, MM_FEAT_UF_BIT, MM_FEAT_UMAC_BIT, MM_FEAT_VHT_BIT, MM_FEAT_WAPI_BIT, MM_VERSION_CFM, NX_REMOTE_STA_MAX, NX_VERSION, NX_VIRT_DEV_MAX, phy_get_version(), phy_uf_supported(), phy_vht_supported(), mm_version_cfm::version_lmac, mm_version_cfm::version_machw_1, mm_version_cfm::version_machw_2, mm_version_cfm::version_phy_1, and mm_version_cfm::version_phy_2.

## Variable Documentation

struct ke_state_handler mm_default_handler

Initial value:

        KE_STATE_HANDLER(mm_default_state)

Specifies the message handlers that are common to all states.

Definition at line 2728 of file mm_task.c.

struct ke_state_handler mm_state_handler[MM_STATE_MAX]

Initial value:

    {

        [MM_IDLE] = KE_STATE_HANDLER_NONE,

        [MM_ACTIVE] = KE_STATE_HANDLER_NONE,
    }

Specifies the message handler structure for every input state of STA State Machine.

Definition at line 2719 of file mm_task.c.