00001
00013 #ifndef _MAC_IE_H_
00014 #define _MAC_IE_H_
00015
00025
00026
00027
00028
00029
00030 #include "co_int.h"
00031 #include "co_bool.h"
00032 #include "compiler.h"
00033 #include "mac_frame.h"
00034 #include "co_utils.h"
00035
00036
00037
00038
00039
00050 __INLINE uint16_t mac_ie_len(uint32_t addr)
00051 {
00052 return ((uint16_t)co_read8p(addr + MAC_INFOELT_LEN_OFT) + MAC_INFOELT_INFO_OFT);
00053 }
00054
00067 uint32_t mac_ie_rates_find(uint32_t buffer, uint16_t buflen, uint8_t *ie_len);
00068
00081 uint32_t mac_ie_ext_rates_find(uint32_t buffer, uint16_t buflen, uint8_t *ie_len);
00082
00095 uint32_t mac_ie_ssid_find(uint32_t buffer, uint16_t buflen, uint8_t *ie_len);
00096
00109 uint32_t mac_ie_country_find(uint32_t buffer, uint16_t buflen, uint8_t *ie_len);
00110
00123 uint32_t mac_ie_rsn_find(uint32_t buffer, uint16_t buflen, uint8_t *ie_len);
00124
00139 uint32_t mac_ie_wpa_find(uint32_t buffer, uint16_t buflen, uint8_t *ie_len);
00140
00155 uint32_t mac_ie_wapi_find(uint32_t buffer, uint16_t buflen, uint8_t *ie_len);
00156
00169 uint32_t mac_ie_mesh_id_find(uint32_t buffer, uint16_t buflen, uint8_t *ie_len);
00170
00183 uint32_t mac_ie_mesh_peer_mgmt_find(uint32_t buffer, uint16_t buflen, uint8_t *ie_len);
00184
00196 uint32_t mac_ie_mesh_awake_win_find(uint32_t buffer, uint16_t buflen);
00197
00209 uint32_t mac_ie_mesh_conf_find(uint32_t buffer, uint16_t buflen);
00210
00222 uint32_t mac_ie_tim_find(uint32_t buffer, uint16_t buflen);
00223
00235 uint32_t mac_ie_csa_find(uint32_t buffer, uint16_t buflen);
00236
00248 uint32_t mac_ie_ecsa_find(uint32_t buffer, uint16_t buflen);
00249
00265 uint32_t mac_ie_sec_chnl_offset_find(uint32_t buffer, uint16_t buflen, bool *valid_len);
00266
00282 uint32_t mac_ie_wide_bw_chnl_find(uint32_t buffer, uint16_t buflen, bool *valid_len);
00283
00295 uint32_t mac_ie_ds_find(uint32_t buffer, uint16_t buflen);
00296
00308 uint32_t mac_ie_mgmt_mic_find(uint32_t buffer, uint16_t buflen);
00309
00321 uint32_t mac_ie_qos_capa_find(uint32_t buffer, uint16_t buflen);
00322
00334 uint32_t mac_ie_erp_find(uint32_t buffer, uint16_t buflen);
00335
00347 uint32_t mac_ie_op_mode_notif_find(uint32_t buffer, uint16_t buflen);
00348
00360 uint32_t mac_ie_power_constraint_find(uint32_t buffer, uint16_t buflen);
00361
00373 uint32_t mac_ie_mde_find(uint32_t buffer, uint16_t buflen);
00374
00386 uint32_t mac_ie_wmm_param_find(uint32_t buffer, uint16_t buflen);
00387
00399 uint32_t mac_ie_multi_bssid_find(uint32_t buffer, uint16_t buflen);
00400
00412 uint32_t mac_ie_sub_non_txed_bssid_find(uint32_t buffer, uint16_t buflen);
00413
00425 uint32_t mac_ie_non_txed_bssid_capa_find(uint32_t buffer, uint16_t buflen);
00426
00438 uint32_t mac_ie_multi_bssid_index_find(uint32_t buffer, uint16_t buflen);
00439
00451 uint32_t mac_ie_ht_capa_find(uint32_t buffer, uint16_t buflen);
00452
00464 uint32_t mac_ie_vht_capa_find(uint32_t buffer, uint16_t buflen);
00465
00478 uint32_t mac_ie_he_capa_find(uint32_t buffer, uint16_t buflen, uint8_t *ie_len);
00479
00491 uint32_t mac_ie_ht_oper_find(uint32_t buffer, uint16_t buflen);
00492
00504 uint32_t mac_ie_vht_oper_find(uint32_t buffer, uint16_t buflen);
00505
00518 uint32_t mac_ie_he_oper_find(uint32_t buffer, uint16_t buflen, uint8_t *ie_len);
00519
00531 uint32_t mac_ie_mu_edca_find(uint32_t buffer, uint16_t buflen);
00532
00544 uint32_t mac_ie_uora_find(uint32_t buffer, uint16_t buflen);
00545
00547 #endif // _MAC_IE_H_