xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/rtl8822be/include/rtw_ap.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /******************************************************************************
2  *
3  * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
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  * You should have received a copy of the GNU General Public License along with
15  * this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
17  *
18  *
19  ******************************************************************************/
20 #ifndef __RTW_AP_H_
21 	#define __RTW_AP_H_
22 
23 
24 	#ifdef CONFIG_AP_MODE
25 
26 		/* external function */
27 		extern void rtw_indicate_sta_assoc_event(_adapter *padapter, struct sta_info *psta);
28 		extern void rtw_indicate_sta_disassoc_event(_adapter *padapter, struct sta_info *psta);
29 
30 
31 		void init_mlme_ap_info(_adapter *padapter);
32 		void free_mlme_ap_info(_adapter *padapter);
33 		/* void update_BCNTIM(_adapter *padapter); */
34 		void rtw_add_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index, u8 *data, u8 len);
35 		void rtw_remove_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index);
36 		void _update_beacon(_adapter *padapter, u8 ie_id, u8 *oui, u8 tx, const char *tag);
37 		#define update_beacon(adapter, ie_id, oui, tx) _update_beacon((adapter), (ie_id), (oui), (tx), __func__)
38 		void add_RATid(_adapter *padapter, struct sta_info *psta, u8 rssi_level);
39 		void expire_timeout_chk(_adapter *padapter);
40 		void update_sta_info_apmode(_adapter *padapter, struct sta_info *psta);
41 		void rtw_start_bss_hdl_after_chbw_decided(_adapter *adapter);
42 		void start_bss_network(_adapter *padapter, struct createbss_parm *parm);
43 		int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf,  int len);
44 		void rtw_ap_restore_network(_adapter *padapter);
45 
46 		#if CONFIG_RTW_MACADDR_ACL
47 			void rtw_set_macaddr_acl(_adapter *adapter, int mode);
48 			int rtw_acl_add_sta(_adapter *adapter, const u8 *addr);
49 			int rtw_acl_remove_sta(_adapter *adapter, const u8 *addr);
50 		#endif /* CONFIG_RTW_MACADDR_ACL */
51 
52 		u8 rtw_ap_set_pairwise_key(_adapter *padapter, struct sta_info *psta);
53 		int rtw_ap_set_group_key(_adapter *padapter, u8 *key, u8 alg, int keyid);
54 		int rtw_ap_set_wep_key(_adapter *padapter, u8 *key, u8 keylen, int keyid, u8 set_tx);
55 
56 		#ifdef CONFIG_NATIVEAP_MLME
57 			void associated_clients_update(_adapter *padapter, u8 updated, u32 sta_info_type);
58 			void bss_cap_update_on_sta_join(_adapter *padapter, struct sta_info *psta);
59 			u8 bss_cap_update_on_sta_leave(_adapter *padapter, struct sta_info *psta);
60 			void sta_info_update(_adapter *padapter, struct sta_info *psta);
61 			void ap_sta_info_defer_update(_adapter *padapter, struct sta_info *psta);
62 			u8 ap_free_sta(_adapter *padapter, struct sta_info *psta, bool active, u16 reason, bool enqueue);
63 			int rtw_sta_flush(_adapter *padapter, bool enqueue);
64 			int rtw_ap_inform_ch_switch(_adapter *padapter, u8 new_ch, u8 ch_offset);
65 			void start_ap_mode(_adapter *padapter);
66 			void stop_ap_mode(_adapter *padapter);
67 		#endif
68 
69 		void rtw_ap_update_bss_chbw(_adapter *adapter, WLAN_BSSID_EX *bss, u8 ch, u8 bw, u8 offset);
70 		bool rtw_ap_chbw_decision(_adapter *adapter, s16 req_ch, s8 req_bw, s8 req_offset, u8 *ch, u8 *bw, u8 *offset, u8 *chbw_allow);
71 
72 		#ifdef CONFIG_AUTO_AP_MODE
73 			extern void rtw_start_auto_ap(_adapter *adapter);
74 		#endif /* CONFIG_AUTO_AP_MODE */
75 
76 	#endif /* end of CONFIG_AP_MODE */
77 
78 #endif
79 void update_bmc_sta(_adapter *padapter);
80 
81 void rtw_process_ht_action_smps(_adapter *padapter, u8 *ta, u8 ctrl_field);
82 void rtw_process_public_act_bsscoex(_adapter *padapter, u8 *pframe, uint frame_len);
83 
84 #ifdef CONFIG_SWTIMER_BASED_TXBCN
85 	void tx_beacon_handlder(struct dvobj_priv *pdvobj);
86 	void tx_beacon_timer_handlder(struct dvobj_priv *pdvobj);
87 #endif
88