- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

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

Go to the documentation of this file.

    00001
    00013 #ifndef _ME_UTILS_H_
    00014 #define _ME_UTILS_H_
    00015
    00022 // standard includes
    00023 #include "co_int.h"
    00024 #include "co_bool.h"
    00025
    00026 #include "tx_swdesc.h"
    00027
    00028 // forward declarations
    00029 struct mac_mcsset;
    00030 struct mac_rateset;
    00031 struct mac_rates;
    00032 struct sta_info_tag;
    00033 struct txdesc;
    00034 struct me_bss_info;
    00035
    00046 __INLINE uint8_t me_phy2mac_bw(uint8_t phy_bw)
    00047 {
    00048     return((phy_bw == PHY_CHNL_BW_80P80) ? BW_160MHZ : phy_bw);
    00049 }
    00050
    00065 __INLINE uint8_t me_get_sta_bw(uint8_t sta_phy_bw, uint8_t bss_phy_bw)
    00066 {
    00067     // Handle specific case where BSS is 80+80 whereas we don't support
    00068     if ((bss_phy_bw == PHY_CHNL_BW_80P80) && (sta_phy_bw < PHY_CHNL_BW_80P80))
    00069     {
    00070         bss_phy_bw = PHY_CHNL_BW_80;
    00071     }
    00072     return (co_min(bss_phy_bw, sta_phy_bw));
    00073 }
    00074
    00087 bool me_set_sta_ht_vht_param(struct sta_info_tag *sta, struct me_bss_info *bss);
    00088
    00102 uint16_t me_legacy_rate_bitfield_build(struct mac_rateset const *rateset, bool basic_only);
    00103
    00113 uint16_t me_rate_bitfield_vht_build(uint16_t mcs_map_1, uint16_t mcs_map_2);
    00114
    00124 uint16_t me_build_capability(uint8_t vap_idx);
    00125
    00135 uint32_t me_build_bss_color_reg(struct me_bss_info *bss);
    00136
    00144 void me_init_rate(struct sta_info_tag *sta);
    00145
    00153 void me_init_bcmc_rate(struct sta_info_tag *sta);
    00154
    00165 struct txl_buffer_control *me_update_buffer_control(struct sta_info_tag *sta);
    00166
    00178 void me_bw_check(uint32_t ht_op_addr, uint32_t vht_op_addr, struct me_bss_info *bss);
    00179
    00192 void me_beacon_check(uint8_t vif_idx, uint16_t length, uint32_t bcn_addr);
    00193
    00206 void me_sta_bw_nss_max_upd(uint8_t sta_idx, uint8_t bw, uint8_t nss);
    00207
    00218 uint16_t me_tx_cfm_amsdu(struct txdesc *txdesc);
    00219
    00227 uint8_t me_11ac_mcs_max(uint16_t mcs_map);
    00228
    00236 uint8_t me_11ax_mcs_max(uint16_t mcs_map);
    00237
    00245 uint8_t me_11ac_nss_max(uint16_t mcs_map);
    00246
    00254 uint8_t me_11n_nss_max(uint8_t *mcs_set);
    00255
    00256
    00264 uint8_t me_legacy_ridx_min(uint16_t rate_map);
    00265
    00273 uint8_t me_legacy_ridx_max(uint16_t rate_map);
    00274
    00288 void me_get_ampdu_params(struct mac_htcapability const *ht_cap,
    00289                          struct mac_vhtcapability const *vht_cap,
    00290                          struct mac_hecapability const *he_cap,
    00291                          uint16_t *ampdu_size_max_ht,
    00292                          uint32_t *ampdu_size_max_vht,
    00293                          uint32_t *ampdu_size_max_he,
    00294                          uint8_t *ampdu_spacing_min);
    00295
    00313 void me_vht_bandwidth_parse(uint8_t width, uint8_t center0, uint8_t center1,
    00314                             struct mac_chan_op *chan);
    00316
    00317 #endif  // _ME_UTILS_H_