- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

# /space/home/slher/rel/Beken/v6_4_5/macsw/ip/umac/src/me/me_task.h

Go to the documentation of this file.

    00001
    00013 #ifndef _ME_TASK_H_
    00014 #define _ME_TASK_H_
    00015
    00016 #include "co_int.h"
    00017 // inclusion to retrieve the task index
    00018 #include "ke_task.h"
    00019 // for mac_addr and mac_ssid
    00020 #include "mac.h"
    00021 #include "scan.h"
    00022 // for RC statistics structure rc_rate_stats
    00023 #include "rc.h"
    00024
    00031
    00032 #define ME_IDX_MAX 1
    00033
    00035 enum
    00036 {
    00038     ME_IDLE,
    00040     ME_BUSY,
    00042     ME_STATE_MAX
    00043 };
    00044
    00046 enum
    00047 {
    00049     ME_CONFIG_REQ = KE_FIRST_MSG(TASK_ME),
    00051     ME_CONFIG_CFM,
    00053     ME_CHAN_CONFIG_REQ,
    00055     ME_CHAN_CONFIG_CFM,
    00057     ME_SET_CONTROL_PORT_REQ,
    00059     ME_SET_CONTROL_PORT_CFM,
    00061     ME_TKIP_MIC_FAILURE_IND,
    00063     ME_STA_ADD_REQ,
    00065     ME_STA_ADD_CFM,
    00067     ME_STA_DEL_REQ,
    00069     ME_STA_DEL_CFM,
    00071     ME_TX_CREDITS_UPDATE_IND,
    00073     ME_TRAFFIC_IND_REQ,
    00075     ME_TRAFFIC_IND_CFM,
    00077     ME_RC_STATS_REQ,
    00079     ME_RC_STATS_CFM,
    00081     ME_RC_SET_RATE_REQ,
    00083     ME_CONFIG_MONITOR_REQ,
    00085     ME_CONFIG_MONITOR_CFM,
    00087     ME_SET_PS_MODE_REQ,
    00089     ME_SET_PS_MODE_CFM,
    00090
    00091     /*
    00092      * Section of internal ME messages. No ME API messages should be defined below this point
    00093      */
    00095     ME_SET_ACTIVE_REQ,
    00097     ME_SET_ACTIVE_CFM,
    00099     ME_SET_PS_DISABLE_REQ,
    00101     ME_SET_PS_DISABLE_CFM,
    00102 };
    00103
    00105 struct me_config_req
    00106 {
    00108     struct mac_htcapability ht_cap;
    00110     struct mac_vhtcapability vht_cap;
    00112     struct mac_hecapability he_cap;
    00114     uint16_t tx_lft;
    00116     uint8_t phy_bw_max;
    00118     bool ht_supp;
    00120     bool vht_supp;
    00122     bool he_supp;
    00124     bool he_ul_on;
    00126     bool ps_on;
    00128     bool ant_div_on;
    00130     bool dpsm;
    00131 };
    00132
    00134 struct me_chan_config_req
    00135 {
    00137     struct mac_chan_def chan2G4[MAC_DOMAINCHANNEL_24G_MAX];
    00139     struct mac_chan_def chan5G[MAC_DOMAINCHANNEL_5G_MAX];
    00141     uint8_t chan2G4_cnt;
    00143     uint8_t chan5G_cnt;
    00144 };
    00145
    00147 struct me_set_control_port_req
    00148 {
    00150     uint8_t sta_idx;
    00152     bool control_port_open;
    00153 };
    00154
    00156 struct me_tkip_mic_failure_ind
    00157 {
    00159     struct mac_addr addr;
    00161     uint64_t tsc;
    00163     bool ga;
    00165     uint8_t keyid;
    00167     uint8_t vif_idx;
    00168 };
    00169
    00171 struct me_sta_add_req
    00172 {
    00174     struct mac_addr mac_addr;
    00176     struct mac_rateset rate_set;
    00178     struct mac_htcapability ht_cap;
    00180     struct mac_vhtcapability vht_cap;
    00182     struct mac_hecapability he_cap;
    00184     uint32_t flags;
    00186     uint16_t aid;
    00188     uint8_t uapsd_queues;
    00190     uint8_t max_sp_len;
    00193     uint8_t opmode;
    00195     uint8_t vif_idx;
    00197     bool tdls_sta;
    00199     bool tdls_initiator;
    00201     bool tdls_chsw_allowed;
    00202 };
    00203
    00205 struct me_sta_add_cfm
    00206 {
    00208     uint8_t sta_idx;
    00210     uint8_t status;
    00212     uint8_t pm_state;
    00213 };
    00214
    00216 struct me_sta_del_req
    00217 {
    00219     uint8_t sta_idx;
    00221     bool tdls_sta;
    00222 };
    00223
    00225 struct me_tx_credits_update_ind
    00226 {
    00228     uint8_t sta_idx;
    00230     uint8_t tid;
    00232     int8_t credits;
    00233 };
    00234
    00236 struct me_set_active_req
    00237 {
    00239     bool active;
    00241     uint8_t vif_idx;
    00242 };
    00243
    00245 struct me_set_ps_disable_req
    00246 {
    00248     bool ps_disable;
    00250     uint8_t vif_idx;
    00251 };
    00252
    00254 struct me_traffic_ind_req
    00255 {
    00257     uint8_t sta_idx;
    00259     uint8_t tx_avail;
    00261     bool uapsd;
    00262 };
    00263
    00265 struct me_rc_stats_req
    00266 {
    00268     uint8_t sta_idx;
    00269 };
    00270
    00272 struct me_rc_stats_cfm
    00273 {
    00275     uint8_t sta_idx;
    00277     uint16_t no_samples;
    00279     uint16_t ampdu_len;
    00281     uint16_t ampdu_packets;
    00283     uint32_t avg_ampdu_len;
    00285     uint8_t sw_retry_step;
    00287     uint8_t sample_wait;
    00289     uint16_t retry_step_idx[RATE_CONTROL_STEPS];
    00291     struct rc_rate_stats rate_stats[RC_MAX_N_SAMPLE + 1];
    00293     uint32_t tp[RC_MAX_N_SAMPLE + 1];
    00294 };
    00295
    00297 struct me_rc_set_rate_req
    00298 {
    00300     uint8_t sta_idx;
    00302     uint16_t fixed_rate_cfg;
    00303 };
    00304
    00306 struct me_config_monitor_req
    00307 {
    00309     struct mac_chan_op chan;
    00311     bool chan_set;
    00313     bool uf;
    00314 };
    00315
    00317 struct me_config_monitor_cfm
    00318 {
    00320     uint8_t chan_index;
    00322     struct mac_chan_op chan;
    00323 };
    00324
    00325 #if NX_POWERSAVE
    00327 struct me_set_ps_mode_req
    00328 {
    00330     uint8_t ps_state;
    00331 };
    00332 #endif
    00333
    00334 extern const struct ke_state_handler me_default_handler;
    00335
    00336 extern ke_state_t me_state[ME_IDX_MAX];
    00337
    00339
    00340 #endif // _ME_TASK_H_
    00341
    00342