rtw_ap.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /******************************************************************************
  2. *
  3. * Copyright(c) 2007 - 2017 Realtek Corporation.
  4. *
  5. * This program is free software; you can redistribute it and/or modify it
  6. * under the terms of version 2 of the GNU General Public License as
  7. * published by the Free Software Foundation.
  8. *
  9. * This program is distributed in the hope that it will be useful, but WITHOUT
  10. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  12. * more details.
  13. *
  14. *****************************************************************************/
  15. #ifndef __RTW_AP_H_
  16. #define __RTW_AP_H_
  17. #ifdef CONFIG_AP_MODE
  18. /* external function */
  19. extern void rtw_indicate_sta_assoc_event(_adapter *padapter, struct sta_info *psta);
  20. extern void rtw_indicate_sta_disassoc_event(_adapter *padapter, struct sta_info *psta);
  21. void init_mlme_ap_info(_adapter *padapter);
  22. void free_mlme_ap_info(_adapter *padapter);
  23. u8 rtw_set_tim_ie(u8 dtim_cnt, u8 dtim_period
  24. , const u8 *tim_bmp, u8 tim_bmp_len, u8 *tim_ie);
  25. /* void update_BCNTIM(_adapter *padapter); */
  26. void rtw_add_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index, u8 *data, u8 len);
  27. void rtw_remove_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index);
  28. void _update_beacon(_adapter *padapter, u8 ie_id, u8 *oui, u8 tx, const char *tag);
  29. #define update_beacon(adapter, ie_id, oui, tx) _update_beacon((adapter), (ie_id), (oui), (tx), __func__)
  30. void rtw_ap_update_sta_ra_info(_adapter *padapter, struct sta_info *psta);
  31. void expire_timeout_chk(_adapter *padapter);
  32. void update_sta_info_apmode(_adapter *padapter, struct sta_info *psta);
  33. void rtw_start_bss_hdl_after_chbw_decided(_adapter *adapter);
  34. void start_bss_network(_adapter *padapter, struct createbss_parm *parm);
  35. int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len);
  36. void rtw_ap_restore_network(_adapter *padapter);
  37. #if CONFIG_RTW_MACADDR_ACL
  38. void rtw_macaddr_acl_init(_adapter *adapter, u8 period);
  39. void rtw_macaddr_acl_deinit(_adapter *adapter, u8 period);
  40. void rtw_macaddr_acl_clear(_adapter *adapter, u8 period);
  41. void rtw_set_macaddr_acl(_adapter *adapter, u8 period, int mode);
  42. int rtw_acl_add_sta(_adapter *adapter, u8 period, const u8 *addr);
  43. int rtw_acl_remove_sta(_adapter *adapter, u8 period, const u8 *addr);
  44. #endif /* CONFIG_RTW_MACADDR_ACL */
  45. u8 rtw_ap_set_sta_key(_adapter *adapter, const u8 *addr, u8 alg, const u8 *key, u8 keyid, u8 gk);
  46. u8 rtw_ap_set_pairwise_key(_adapter *padapter, struct sta_info *psta);
  47. int rtw_ap_set_group_key(_adapter *padapter, u8 *key, u8 alg, int keyid);
  48. int rtw_ap_set_wep_key(_adapter *padapter, u8 *key, u8 keylen, int keyid, u8 set_tx);
  49. #ifdef CONFIG_NATIVEAP_MLME
  50. void associated_clients_update(_adapter *padapter, u8 updated, u32 sta_info_type);
  51. void bss_cap_update_on_sta_join(_adapter *padapter, struct sta_info *psta);
  52. u8 bss_cap_update_on_sta_leave(_adapter *padapter, struct sta_info *psta);
  53. void sta_info_update(_adapter *padapter, struct sta_info *psta);
  54. void ap_sta_info_defer_update(_adapter *padapter, struct sta_info *psta);
  55. u8 ap_free_sta(_adapter *padapter, struct sta_info *psta, bool active, u16 reason, bool enqueue);
  56. int rtw_sta_flush(_adapter *padapter, bool enqueue);
  57. int rtw_ap_inform_ch_switch(_adapter *padapter, u8 new_ch, u8 ch_offset);
  58. void start_ap_mode(_adapter *padapter);
  59. void stop_ap_mode(_adapter *padapter);
  60. #endif
  61. void rtw_ap_update_bss_chbw(_adapter *adapter, WLAN_BSSID_EX *bss, u8 ch, u8 bw, u8 offset);
  62. u8 rtw_ap_chbw_decision(_adapter *adapter, u8 ifbmp, u8 excl_ifbmp
  63. , s16 req_ch, s8 req_bw, s8 req_offset, u8 *ch, u8 *bw, u8 *offset, u8 *chbw_allow);
  64. #ifdef CONFIG_AUTO_AP_MODE
  65. void rtw_auto_ap_rx_msg_dump(_adapter *padapter, union recv_frame *precv_frame, u8 *ehdr_pos);
  66. extern void rtw_start_auto_ap(_adapter *adapter);
  67. #endif /* CONFIG_AUTO_AP_MODE */
  68. void rtw_ap_parse_sta_capability(_adapter *adapter, struct sta_info *sta, u8 *cap);
  69. u16 rtw_ap_parse_sta_supported_rates(_adapter *adapter, struct sta_info *sta, u8 *tlv_ies, u16 tlv_ies_len);
  70. u16 rtw_ap_parse_sta_security_ie(_adapter *adapter, struct sta_info *sta, struct rtw_ieee802_11_elems *elems);
  71. void rtw_ap_parse_sta_wmm_ie(_adapter *adapter, struct sta_info *sta, u8 *tlv_ies, u16 tlv_ies_len);
  72. void rtw_ap_parse_sta_ht_ie(_adapter *adapter, struct sta_info *sta, struct rtw_ieee802_11_elems *elems);
  73. void rtw_ap_parse_sta_vht_ie(_adapter *adapter, struct sta_info *sta, struct rtw_ieee802_11_elems *elems);
  74. void update_bmc_sta(_adapter *padapter);
  75. #ifdef CONFIG_BMC_TX_RATE_SELECT
  76. void rtw_update_bmc_sta_tx_rate(_adapter *adapter);
  77. #endif
  78. void rtw_process_ht_action_smps(_adapter *padapter, u8 *ta, u8 ctrl_field);
  79. void rtw_process_public_act_bsscoex(_adapter *padapter, u8 *pframe, uint frame_len);
  80. #ifdef CONFIG_80211N_HT
  81. int rtw_ht_operation_update(_adapter *padapter);
  82. #endif /* CONFIG_80211N_HT */
  83. u8 rtw_ap_sta_states_check(_adapter *adapter);
  84. #ifdef CONFIG_FW_HANDLE_TXBCN
  85. #define rtw_ap_get_nums(adapter) (adapter_to_dvobj(adapter)->nr_ap_if)
  86. bool rtw_ap_nums_check(_adapter *adapter);
  87. #endif
  88. #ifdef CONFIG_SWTIMER_BASED_TXBCN
  89. void tx_beacon_handlder(struct dvobj_priv *pdvobj);
  90. void tx_beacon_timer_handlder(void *ctx);
  91. #endif /*CONFIG_SWTIMER_BASED_TXBCN*/
  92. #endif /* end of CONFIG_AP_MODE */
  93. #endif /*__RTW_AP_H_*/