# TASK_ME
[ME]

Declaration of all structures and functions used by the ME module. More...

Collaboration diagram for TASK_ME:

## Data Structures
struct | me_config_req
| Structure containing the parameters of the ME_CONFIG_REQ message. More...
struct | me_chan_config_req
| Structure containing the parameters of the ME_CHAN_CONFIG_REQ message. More...
struct | me_set_control_port_req
| Structure containing the parameters of the ME_SET_CONTROL_PORT_REQ message. More...
struct | me_tkip_mic_failure_ind
| Structure containing the parameters of the ME_TKIP_MIC_FAILURE_IND message. More...
struct | me_sta_add_req
| Structure containing the parameters of the ME_STA_ADD_REQ message. More...
struct | me_sta_add_cfm
| Structure containing the parameters of the ME_STA_ADD_CFM message. More...
struct | me_sta_del_req
| Structure containing the parameters of the ME_STA_DEL_REQ message. More...
struct | me_tx_credits_update_ind
| Structure containing the parameters of the ME_TX_CREDITS_UPDATE_IND message. More...
struct | me_set_active_req
| Structure containing the parameters of the ME_SET_ACTIVE_REQ message. More...
struct | me_set_ps_disable_req
| Structure containing the parameters of the ME_SET_PS_DISABLE_REQ message. More...
struct | me_traffic_ind_req
| Structure containing the parameters of the ME_TRAFFIC_IND_REQ message. More...
struct | me_rc_stats_req
| Structure containing the parameters of the ME_RC_STATS_REQ message. More...
struct | me_rc_stats_cfm
| Structure containing the parameters of the ME_RC_STATS_CFM message. More...
struct | me_rc_set_rate_req
| Structure containing the parameters of the ME_RC_SET_RATE_REQ message. More...
struct | me_config_monitor_req
| Structure containing the parameters of the ME_CONFIG_MONITOR_REQ message. More...
struct | me_config_monitor_cfm
| Structure containing the parameters of the ME_CONFIG_MONITOR_CFM message. More...
struct | me_set_ps_mode_req
| Structure containing the parameters of the ME_SET_PS_MODE_REQ message. More...
## Defines
#define | ME_IDX_MAX 1
| Task max index number.
## Enumerations
enum | { ME_IDLE, ME_BUSY, ME_STATE_MAX }
| Possible states of the task. More...
enum | { ME_CONFIG_REQ = KE_FIRST_MSG(TASK_ME), ME_CONFIG_CFM, ME_CHAN_CONFIG_REQ, ME_CHAN_CONFIG_CFM, ME_SET_CONTROL_PORT_REQ, ME_SET_CONTROL_PORT_CFM, ME_TKIP_MIC_FAILURE_IND, ME_STA_ADD_REQ, ME_STA_ADD_CFM, ME_STA_DEL_REQ, ME_STA_DEL_CFM, ME_TX_CREDITS_UPDATE_IND, ME_TRAFFIC_IND_REQ, ME_TRAFFIC_IND_CFM, ME_RC_STATS_REQ, ME_RC_STATS_CFM, ME_RC_SET_RATE_REQ, ME_CONFIG_MONITOR_REQ, ME_CONFIG_MONITOR_CFM, ME_SET_PS_MODE_REQ, ME_SET_PS_MODE_CFM, ME_SET_ACTIVE_REQ, ME_SET_ACTIVE_CFM, ME_SET_PS_DISABLE_REQ, ME_SET_PS_DISABLE_CFM }
| Messages that are logically related to the task. More...
## Functions
static int | me_config_req_handler (ke_msg_id_t const msgid, struct me_config_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| ME module message handler.
static int | me_chan_config_req_handler (ke_msg_id_t const msgid, struct me_chan_config_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| ME module message handler.
static int | me_set_control_port_req_handler (ke_msg_id_t const msgid, struct me_set_control_port_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| ME module message handler.
static int | me_sta_add_req_handler (ke_msg_id_t const msgid, struct me_sta_add_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| ME module message handler.
static int | me_sta_del_req_handler (ke_msg_id_t const msgid, struct me_sta_del_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| ME module message handler.
static int | me_traffic_ind_req_handler (ke_msg_id_t const msgid, struct me_traffic_ind_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| ME module message handler.
static int | me_set_active_req_handler (ke_msg_id_t const msgid, struct me_set_active_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| ME module message handler.
static int | mm_set_idle_cfm_handler (ke_msg_id_t const msgid, void const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| ME module message handler.
static int | me_set_ps_disable_req_handler (ke_msg_id_t const msgid, struct me_set_ps_disable_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| ME module message handler.
static int | me_set_ps_mode_req_handler (ke_msg_id_t const msgid, struct me_set_ps_mode_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| ME module message handler.
static int | mm_set_ps_mode_cfm_handler (ke_msg_id_t const msgid, void const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| ME module message handler.
static int | me_rc_stats_req_handler (ke_msg_id_t const msgid, struct me_rc_stats_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| RC module message handler.
static int | me_rc_set_rate_req_handler (ke_msg_id_t const msgid, struct me_rc_set_rate_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| RC module message handler.
static int | me_config_monitor_req_handler (ke_msg_id_t const msgid, struct me_config_monitor_req const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)
| ME module message handler.
## Variables
struct ke_msg_handler | me_default_state []
| DEFAULT handler definition.
struct ke_state_handler | me_default_handler = KE_STATE_HANDLER(me_default_state)
| Specifies the message handlers that are common to all states.
ke_state_t | me_state [ME_IDX_MAX]
| Defines the place holder for the states of all the task instances.
struct ke_state_handler | me_default_handler
| Specifies the message handlers that are common to all states.
ke_state_t | me_state [ME_IDX_MAX]
| Defines the place holder for the states of all the task instances.

## Detailed Description

Declaration of all structures and functions used by the ME module.

## Enumeration Type Documentation

anonymous enum

Possible states of the task.

Enumerator:

  ME_IDLE | Idle State.
  ME_BUSY | Busy State.
  ME_STATE_MAX | Max number of states.

Definition at line 35 of file me_task.h.

anonymous enum

Messages that are logically related to the task.

Enumerator:

  ME_CONFIG_REQ | Configuration request from host.
  ME_CONFIG_CFM | Configuration confirmation.
  ME_CHAN_CONFIG_REQ | Configuration request from host.
  ME_CHAN_CONFIG_CFM | Configuration confirmation.
  ME_SET_CONTROL_PORT_REQ | Set control port state for a station.
  ME_SET_CONTROL_PORT_CFM | Control port setting confirmation.
  ME_TKIP_MIC_FAILURE_IND | TKIP MIC failure indication.
  ME_STA_ADD_REQ | Add a station to the FW (AP mode).
  ME_STA_ADD_CFM | Confirmation of the STA addition.
  ME_STA_DEL_REQ | Delete a station from the FW (AP mode).
  ME_STA_DEL_CFM | Confirmation of the STA deletion.
  ME_TX_CREDITS_UPDATE_IND | Indication of a TX RA/TID queue credit update.
  ME_TRAFFIC_IND_REQ | Request indicating to the FW that there is traffic buffered on host.
  ME_TRAFFIC_IND_CFM | Confirmation that the ME_TRAFFIC_IND_REQ has been executed.
  ME_RC_STATS_REQ | Request RC statistics to a station.
  ME_RC_STATS_CFM | RC statistics confirmation.
  ME_RC_SET_RATE_REQ | Request RC fixed rate.
  ME_CONFIG_MONITOR_REQ | Configure monitor interface.
  ME_CONFIG_MONITOR_CFM | Configure monitor interface response.
  ME_SET_PS_MODE_REQ | Setting Power Save mode request from host.
  ME_SET_PS_MODE_CFM | Set Power Save mode confirmation.
  ME_SET_ACTIVE_REQ | Internal request to indicate that a VIF needs to get the HW going to ACTIVE or IDLE.
  ME_SET_ACTIVE_CFM | Confirmation that the switch to ACTIVE or IDLE has been executed.
  ME_SET_PS_DISABLE_REQ | Internal request to indicate that a VIF desires to de-activate/activate the Power-Save mode.
  ME_SET_PS_DISABLE_CFM | Confirmation that the PS state de-activate/activate has been executed.

Definition at line 46 of file me_task.h.

## Function Documentation

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

ME module message handler.

This function handles the ME_CHAN_CONFIG_REQ from host. This message provides the list of available channels.

Parameters:

  `[in]` | msgid | Id of the message received (probably unused)
  `[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 160 of file me_task.c.

References me_env_tag::chan, KE_MSG_CONSUMED, ke_msg_send_basic(), ME_CHAN_CONFIG_CFM, and me_env.

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

ME module message handler.

This function handles the ME_CONFIG_MONITOR_REQ message from the host. This message requests the ME module to configure the monitor interface context.

Parameters:

  `[in]` | msgid | Id of the message received (probably unused)
  `[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 936 of file me_task.c.

References ASSERT_ERR, me_config_monitor_cfm::chan, me_config_monitor_req::chan, mm_chan_ctxt_update_req::chan, vif_info_tag::chan_ctxt, CHAN_CTXT_UNUSED, mm_chan_ctxt_update_req::chan_index, me_config_monitor_cfm::chan_index, me_config_monitor_req::chan_set, chan_ctxt_tag::channel, co_list_cnt(), chan_ctxt_tag::idx, INVALID_VIF_IDX, KE_MSG_ALLOC, KE_MSG_CONSUMED, KE_MSG_SAVED, ke_msg_send(), ke_state_get(), ME_BUSY, ME_CONFIG_MONITOR_CFM, MM_CHAN_CTXT_UPDATE_REQ, vif_mgmt_env_tag::monitor_vif, phy_uf_enable(), phy_uf_supported(), TASK_ME, TASK_MM, me_config_monitor_req::uf, vif_mgmt_env_tag::used_list, vif_info_tab, and vif_mgmt_env.

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

ME module message handler.

This function handles the ME_CONFIG_REQ message from host. This message is sent once after FW reset, and provides fw configuration.

Parameters:

  `[in]` | msgid | Id of the message received (probably unused)
  `[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 45 of file me_task.c.

References me_config_req::ant_div_on, me_env_tag::capa_flags, me_config_req::dpsm, mm_ant_div_init_req::enable, me_config_req::he_cap, HE_PHY_CAPA_BIT_IS_SET, me_config_req::he_supp, me_config_req::he_ul_on, me_config_req::ht_cap, me_env_tag::ht_cap, me_config_req::ht_supp, KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), ke_msg_send_basic(), ke_state_set(), LOCAL_CAPA, LOCAL_CAPA_SET, ME_BUSY, ME_CONFIG_CFM, me_env, MM_ANT_DIV_INIT_REQ, MM_SET_PS_MODE_REQ, mm_set_ps_mode_req::new_state, me_config_req::phy_bw_max, me_env_tag::phy_bw_max, PHY_CHNL_BW_80, phy_get_nss(), me_env_tag::ps_mode, PS_MODE_ON, PS_MODE_ON_DYN, me_config_req::ps_on, me_env_tag::ps_on, me_env_tag::requester_id, me_env_tag::stbc_nss, TASK_ME, TASK_MM, me_config_req::tx_lft, me_env_tag::tx_lft, me_config_req::vht_cap, and me_config_req::vht_supp.

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

RC module message handler.

This function handles ME_RC_SET_RATE_REQ from host. This function sets fixed_rate_cfg in the RC structure.

Parameters:

  `[in]` | msgid | Id of the message received (probably unused)
  `[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 883 of file me_task.c.

References ASSERT_ERR, me_rc_set_rate_req::fixed_rate_cfg, rc_sta_stats::fixed_rate_cfg, rc_sta_stats::info, KE_MSG_CONSUMED, sta_info_tag::pol_tbl, rc_check_fixed_rate_config(), RC_FIX_RATE_REQ_MASK, RC_FIX_RATE_STATUS_MASK, RC_FIX_RATE_UPD_SS_REQ_MASK, RC_FIXED_RATE_NOT_SET, rc_update_sample_table(), me_rc_set_rate_req::sta_idx, sta_info_tab, and sta_pol_tbl_cntl::sta_stats.

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

RC module message handler.

This function handles the ME_RC_STATS_REQ message from host. This message asks fw for statistics about Rate Control module.

Parameters:

  `[in]` | msgid | Id of the message received (probably unused)
  `[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 809 of file me_task.c.

References rc_sta_stats::ampdu_len, me_rc_stats_cfm::ampdu_len, rc_sta_stats::ampdu_packets, me_rc_stats_cfm::ampdu_packets, rc_sta_stats::avg_ampdu_len, me_rc_stats_cfm::avg_ampdu_len, GLOBAL_INT_DISABLE, GLOBAL_INT_RESTORE, KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), ME_RC_STATS_CFM, rc_sta_stats::no_samples, me_rc_stats_cfm::no_samples, NX_HE, sta_info_tag::pol_tbl, rc_sta_stats::rate_stats, me_rc_stats_cfm::rate_stats, rc_calc_tp(), RC_HE_STATS_IDX, rc_sta_stats::retry_step_idx, me_rc_stats_cfm::retry_step_idx, rc_sta_stats::sample_wait, me_rc_stats_cfm::sample_wait, me_rc_stats_cfm::sta_idx, me_rc_stats_req::sta_idx, sta_info_tab, sta_pol_tbl_cntl::sta_stats, rc_sta_stats::sw_retry_step, me_rc_stats_cfm::sw_retry_step, and me_rc_stats_cfm::tp.

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

ME module message handler.

This function handles the ME_SET_ACTIVE_REQ message from STA, AP or MESH vif. This message requests the ME module to enable/disable the HW. If HW state is not the one asked, the request is forwarded to MM task.

Parameters:

  `[in]` | msgid | Id of the message received (probably unused)
  `[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 566 of file me_task.c.

References me_set_active_req::active, me_env_tag::active_vifs, CO_BIT, mm_set_idle_req::hw_idle, KE_MSG_ALLOC, KE_MSG_CONSUMED, KE_MSG_SAVED, ke_msg_send(), ke_msg_send_basic(), ke_state_get(), ke_state_set(), ME_BUSY, me_env, ME_SET_ACTIVE_CFM, MM_SET_IDLE_REQ, me_env_tag::requester_id, TASK_ME, TASK_MM, and me_set_active_req::vif_idx.

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

ME module message handler.

This function handles the ME_SET_CONTROL_PORT_REQ message from host. This message configures the status of a STA's port :

- OPEN: The sta can transmit any kind of data (e.g. after successful 4-way handshake)
- CONTROLLED: The sta can only transmit a specific kind of data (e.g. during 4-way handshake)
  Parameters:

    `[in]` | msgid | Id of the message received (probably unused)
    `[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 189 of file me_task.c.

References me_set_control_port_req::control_port_open, sta_info_tag::ctrl_port_state, sta_info_tag::inst_nbr, sta_info_tag::is_tdls, KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), ke_msg_send_basic(), ME_SET_CONTROL_PORT_CFM, ME_SET_PS_DISABLE_REQ, NX_TDLS, PORT_CONTROLED, PORT_OPEN, me_set_ps_disable_req::ps_disable, me_set_control_port_req::sta_idx, sta_info_tab, TASK_ME, TASK_SM, vif_info_tag::type, me_set_ps_disable_req::vif_idx, vif_info_tab, and VIF_STA.

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

ME module message handler.

This function handles the ME_SET_PS_DISABLE_REQ from STA, AP or MESH vif. This message requests the UMAC to disable or re-enable Power Save mode. If PS state is not the one asked, the request is forwarded to MM task.

Parameters:

  `[in]` | msgid | Id of the message received (probably unused)
  `[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 656 of file me_task.c.

References CO_BIT, KE_MSG_ALLOC, KE_MSG_CONSUMED, KE_MSG_SAVED, ke_msg_send(), ke_msg_send_basic(), ke_state_get(), ke_state_set(), ME_BUSY, me_env, ME_SET_PS_DISABLE_CFM, MM_SET_PS_MODE_REQ, mm_set_ps_mode_req::new_state, me_set_ps_disable_req::ps_disable, me_env_tag::ps_disable_vifs, me_env_tag::ps_mode, PS_MODE_OFF, me_env_tag::ps_on, me_env_tag::requester_id, TASK_ME, TASK_MM, and me_set_ps_disable_req::vif_idx.

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

ME module message handler.

This function handles the ME_SET_PS_MODE_REQ message from host. This message provides the new PS mode to set.

Parameters:

  `[in]` | msgid | Id of the message received (probably unused)
  `[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 727 of file me_task.c.

References KE_MSG_ALLOC, KE_MSG_CONSUMED, KE_MSG_SAVED, ke_msg_send(), ke_msg_send_basic(), ke_state_get(), ke_state_set(), ME_BUSY, me_env, ME_SET_PS_MODE_CFM, MM_SET_PS_MODE_REQ, mm_set_ps_mode_req::new_state, me_env_tag::ps_disable_vifs, me_env_tag::ps_mode, PS_MODE_OFF, me_env_tag::ps_on, me_set_ps_mode_req::ps_state, me_env_tag::requester_id, TASK_ME, and TASK_MM.

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

ME module message handler.

This function handles the ME_STA_ADD_REQ message host. This message provides information about a STA we will transmit data to (client of an AP, a TDLS peer or a peer Mesh STA (if Mesh Peering Management protocol is handled in userspace)).

Parameters:

  `[in]` | msgid | Id of the message received (probably unused)
  `[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 238 of file me_task.c.

References sta_info_tag::aid, me_sta_add_req::aid, mm_sta_add_req::ampdu_size_max_ht, mm_sta_add_req::ampdu_size_max_vht, mm_sta_add_req::ampdu_spacing_min, vif_info_tag::ap, vif_info_tag::bss_info, me_bss_info::bssid, mm_sta_add_req::bssid_index, CO_BIT, co_ntohs(), CO_OK, CONTROL_PORT_HOST, sta_info_tag::ctrl_port_ethertype, sta_info_tag::ctrl_port_state, vif_info_tag::flags, me_sta_add_req::flags, me_sta_add_req::he_cap, sta_capa_info::ht_cap, me_sta_add_req::ht_cap, vif_info_tag::index, sta_info_tag::info, mm_sta_add_req::inst_nbr, KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), LOCAL_CAPA, mm_sta_add_req::mac_addr, vif_info_tag::mac_addr, me_sta_add_req::mac_addr, MAC_OPMODE_BW_MSK, MAC_OPMODE_BW_OFT, MAC_OPMODE_RXNSS_MSK, MAC_OPMODE_RXNSS_OFT, MAC_OPMODE_RXNSS_TYPE_BIT, mac_paid_gid_ap_compute(), mac_paid_gid_sta_compute(), mm_sta_add_req::max_bssid_ind, me_sta_add_req::max_sp_len, sta_capa_info::max_sp_len, me_get_ampdu_params(), me_init_rate(), ME_SET_PS_DISABLE_REQ, me_set_sta_ht_vht_param(), ME_STA_ADD_CFM, me_sta_bw_nss_max_upd(), mm_ps_change_ind(), mm_sta_add(), me_sta_add_req::opmode, p2p_go_ps_state_update(), mm_sta_add_req::paid_gid, me_sta_add_cfm::pm_state, sta_info_tag::pol_tbl, PORT_CONTROLED, PORT_OPEN, PROF_PS_BCMC_STATE_CLR, PROF_PS_BCMC_STATE_SET, PROF_PS_STATE_VAL_SET, me_set_ps_disable_req::ps_disable, PS_MODE_ON, sta_info_tag::ps_state, me_sta_add_req::rate_set, sta_capa_info::rate_set, rxu_cntrl_get_pm(), STA_CAPA, STA_CAPA_SET, STA_HE_CAPA, STA_HT_CAPA, me_sta_add_cfm::sta_idx, sta_info_tab, STA_MFP_CAPA, STA_MGMT_POL_UPD_TX_POWER, STA_OPMOD_NOTIF, STA_QOS_CAPA, STA_VHT_CAPA, sta_info_tag::staid, me_sta_add_cfm::status, TASK_ME, TASK_SM, me_sta_add_req::tdls_chsw_allowed, mm_sta_add_req::tdls_chsw_allowed, me_sta_add_req::tdls_initiator, mm_sta_add_req::tdls_initiator, mm_sta_add_req::tdls_sta, me_sta_add_req::tdls_sta, vif_info_tag::type, vif_info_tag::u, me_sta_add_req::uapsd_queues, sta_capa_info::uapsd_queues, sta_pol_tbl_cntl::upd_field, me_sta_add_req::vht_cap, VIF_AP, me_set_ps_disable_req::vif_idx, me_sta_add_req::vif_idx, vif_info_tab, VIF_MESH_POINT, VIF_STA, and VIF_TO_BCMC_IDX.

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

ME module message handler.

This function handles the ME_STA_DEL_REQ message from host. This message deletes a STA added via ME_STA_ADD_REQ.

Parameters:

  `[in]` | msgid | Id of the message received (probably unused)
  `[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 457 of file me_task.c.

References bam_delete_all_ba_agg(), KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), ke_msg_send_basic(), ME_SET_PS_DISABLE_REQ, ME_STA_DEL_CFM, MM_STA_DEL_REQ, me_set_ps_disable_req::ps_disable, mm_sta_del_req::sta_idx, me_sta_del_req::sta_idx, sta_mgmt_get_vif_idx(), TASK_ME, TASK_MM, TASK_SM, me_sta_del_req::tdls_sta, and me_set_ps_disable_req::vif_idx.

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

ME module message handler.

This function handles the ME_TRAFFIC_IND_REQ from host. This message indicates if traffic is available or not for a sta.

Parameters:

  `[in]` | msgid | Id of the message received (probably unused)
  `[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 503 of file me_task.c.

References sta_info_tag::aid, mm_tim_update_req::aid, sta_info_tag::info, sta_info_tag::inst_nbr, mm_tim_update_req::inst_nbr, KE_MSG_ALLOC, KE_MSG_CONSUMED, ke_msg_send(), ke_msg_send_basic(), MAC_QOS_INFO_STA_UAPSD_ENABLED_ALL, ME_TRAFFIC_IND_CFM, MM_TIM_UPDATE_REQ, PS_TRAFFIC_HOST, me_traffic_ind_req::sta_idx, sta_info_tab, TASK_ME, TASK_MM, sta_info_tag::traffic_avail, mm_tim_update_req::tx_avail, me_traffic_ind_req::tx_avail, me_traffic_ind_req::uapsd, sta_capa_info::uapsd_queues, and UAPSD_TRAFFIC_HOST.

static int mm_set_idle_cfm_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]`

ME module message handler.

This function handles MM_SET_IDLE_CFM confirmation from MM task. Message sent by MM task once the HW reached the requested state (IDLE or ACTIVE).

Parameters:

  `[in]` | msgid | Id of the message received (probably unused)
  `[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 624 of file me_task.c.

References ASSERT_ERR, KE_MSG_CONSUMED, ke_msg_send_basic(), ke_state_get(), ke_state_set(), ME_BUSY, me_env, ME_IDLE, ME_SET_ACTIVE_CFM, and me_env_tag::requester_id.

static int mm_set_ps_mode_cfm_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]`

ME module message handler.

This function handles MM_SET_PS_MODE_CFM confirmation from the MM task. This message informs the ME module that the PS mode is the requested one.

Parameters:

  `[in]` | msgid | Id of the message received (probably unused)
  `[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 777 of file me_task.c.

References ASSERT_ERR, KE_MSG_CONSUMED, ke_msg_send_basic(), ke_state_get(), ke_state_set(), ME_BUSY, me_env, ME_IDLE, ME_SET_PS_DISABLE_CFM, and me_env_tag::requester_id.

## Variable Documentation

struct ke_msg_handler me_default_state[]

Initial value:

    {
        {ME_CONFIG_REQ, (ke_msg_func_t)me_config_req_handler},
        {ME_CHAN_CONFIG_REQ, (ke_msg_func_t)me_chan_config_req_handler},
        {ME_SET_CONTROL_PORT_REQ, (ke_msg_func_t)me_set_control_port_req_handler},
        {ME_STA_ADD_REQ, (ke_msg_func_t)me_sta_add_req_handler},
        {ME_STA_DEL_REQ, (ke_msg_func_t)me_sta_del_req_handler},
        {ME_SET_ACTIVE_REQ, (ke_msg_func_t)me_set_active_req_handler},
        {ME_SET_PS_DISABLE_REQ, (ke_msg_func_t)me_set_ps_disable_req_handler},
        {ME_TRAFFIC_IND_REQ, (ke_msg_func_t)me_traffic_ind_req_handler},
        {ME_SET_ACTIVE_CFM, ke_msg_discard},
        {MM_SET_IDLE_CFM, (ke_msg_func_t)mm_set_idle_cfm_handler},

        {ME_SET_PS_MODE_REQ, (ke_msg_func_t)me_set_ps_mode_req_handler},
        {MM_SET_PS_MODE_CFM, (ke_msg_func_t)mm_set_ps_mode_cfm_handler},

        {MM_STA_DEL_CFM, ke_msg_discard},
        {MM_CHAN_CTXT_UPDATE_CFM, ke_msg_discard},
        {MM_TIM_UPDATE_CFM, ke_msg_discard},
        {MM_SET_EDCA_CFM, ke_msg_discard},
        {MM_SET_MU_EDCA_CFM, ke_msg_discard},
        {MM_SET_UORA_CFM, ke_msg_discard},
        {MM_SET_TXOP_RTS_THRES_CFM, ke_msg_discard},
        {MM_SET_BSS_COLOR_CFM, ke_msg_discard},
        {ME_RC_STATS_REQ, (ke_msg_func_t)me_rc_stats_req_handler},
        {ME_RC_SET_RATE_REQ, (ke_msg_func_t)me_rc_set_rate_req_handler},
        {ME_CONFIG_MONITOR_REQ, (ke_msg_func_t)me_config_monitor_req_handler},
    }

DEFAULT handler definition.

Definition at line 997 of file me_task.c.