xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/wl_iapsta.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 
2 #ifndef _wl_iapsta_
3 #define _wl_iapsta_
4 typedef enum IFMODE {
5 	ISTA_MODE = 1,
6 	IAP_MODE,
7 	IGO_MODE,
8 	IGC_MODE,
9 	IMESH_MODE
10 } ifmode_t;
11 
12 enum wl_ext_status {
13 	WL_EXT_STATUS_DISCONNECTING = 0,
14 	WL_EXT_STATUS_DISCONNECTED,
15 	WL_EXT_STATUS_SCAN,
16 	WL_EXT_STATUS_SCANNING,
17 	WL_EXT_STATUS_SCAN_COMPLETE,
18 	WL_EXT_STATUS_CONNECTING,
19 	WL_EXT_STATUS_RECONNECT,
20 	WL_EXT_STATUS_CONNECTED,
21 	WL_EXT_STATUS_ADD_KEY,
22 	WL_EXT_STATUS_AP_ENABLING,
23 	WL_EXT_STATUS_AP_ENABLED,
24 	WL_EXT_STATUS_DELETE_STA,
25 	WL_EXT_STATUS_STA_DISCONNECTED,
26 	WL_EXT_STATUS_STA_CONNECTED,
27 	WL_EXT_STATUS_AP_DISABLING,
28 	WL_EXT_STATUS_AP_DISABLED
29 };
30 
31 extern int op_mode;
32 void wl_ext_update_conn_state(dhd_pub_t *dhd, int ifidx, uint conn_state);
33 #ifdef EAPOL_RESEND
34 void wl_ext_backup_eapol_txpkt(dhd_pub_t *dhd, int ifidx, void *pkt);
35 void wl_ext_release_eapol_txpkt(dhd_pub_t *dhd, int ifidx, bool rx);
36 #endif /* EAPOL_RESEND */
37 void wl_ext_iapsta_get_vif_macaddr(struct dhd_pub *dhd, int ifidx, u8 *mac_addr);
38 #ifdef WLDWDS
39 int wl_ext_iapsta_attach_dwds_netdev(struct net_device *net, int ifidx, uint8 bssidx);
40 int wl_ext_iapsta_dettach_dwds_netdev(struct net_device *net, int ifidx, uint8 bssidx);
41 #endif /* WLDWDS */
42 int wl_ext_iapsta_attach_netdev(struct net_device *net, int ifidx, uint8 bssidx);
43 int wl_ext_iapsta_attach_name(struct net_device *net, int ifidx);
44 int wl_ext_iapsta_dettach_netdev(struct net_device *net, int ifidx);
45 int wl_ext_iapsta_update_net_device(struct net_device *net, int ifidx);
46 int wl_ext_iapsta_alive_preinit(struct net_device *dev);
47 int wl_ext_iapsta_alive_postinit(struct net_device *dev);
48 int wl_ext_iapsta_attach(struct net_device *net);
49 void wl_ext_iapsta_dettach(struct net_device *net);
50 int wl_ext_iapsta_enable(struct net_device *dev, char *command, int total_len);
51 int wl_ext_iapsta_disable(struct net_device *dev, char *command, int total_len);
52 int wl_ext_isam_param(struct net_device *dev, char *command, int total_len);
53 int wl_ext_isam_status(struct net_device *dev, char *command, int total_len);
54 int wl_ext_isam_init(struct net_device *dev, char *command, int total_len);
55 int wl_ext_iapsta_config(struct net_device *dev, char *command, int total_len);
56 void wl_ext_add_remove_pm_enable_work(struct net_device *dev, bool add);
57 bool wl_ext_iapsta_other_if_enabled(struct net_device *net);
58 bool wl_ext_sta_connecting(struct net_device *dev);
59 void wl_iapsta_wait_event_complete(struct dhd_pub *dhd);
60 int wl_iapsta_suspend_resume(dhd_pub_t *dhd, int suspend);
61 #ifdef USE_IW
62 int wl_ext_in4way_sync_wext(struct net_device *dev, uint action,
63 	enum wl_ext_status status, void *context);
64 #endif /* USE_IW */
65 #ifdef WLMESH
66 int wl_ext_mesh_peer_status(struct net_device *dev, char *data, char *command,
67 	int total_len);
68 int wl_ext_isam_peer_path(struct net_device *dev, char *command, int total_len);
69 #endif
70 #ifdef WL_CFG80211
71 int wl_ext_in4way_sync(struct net_device *dev, uint action,
72 	enum wl_ext_status status, void *context);
73 void wl_ext_update_extsae_4way(struct net_device *dev,
74 	const struct ieee80211_mgmt *mgmt, bool tx);
75 u32 wl_ext_iapsta_update_channel(struct net_device *dev, u32 channel);
76 void wl_ext_iapsta_update_iftype(struct net_device *net, int wl_iftype);
77 bool wl_ext_iapsta_iftype_enabled(struct net_device *net, int wl_iftype);
78 void wl_ext_iapsta_enable_master_if(struct net_device *dev, bool post);
79 void wl_ext_iapsta_restart_master(struct net_device *dev);
80 void wl_ext_iapsta_ifadding(struct net_device *net, int ifidx);
81 bool wl_ext_iapsta_mesh_creating(struct net_device *net);
82 void wl_ext_fw_reinit_incsa(struct net_device *dev);
83 #ifdef STA_MGMT
84 bool wl_ext_del_sta_info(struct net_device *net, u8 *bssid);
85 bool wl_ext_add_sta_info(struct net_device *net, u8 *bssid);
86 #endif /* STA_MGMT */
87 #ifdef SCAN_SUPPRESS
88 uint16 wl_ext_scan_suppress(struct net_device *dev, void *scan_params, bool scan_v2,
89 	struct wl_chan_info *chan_info);
90 void wl_ext_reset_scan_busy(dhd_pub_t *dhd);
91 #endif /* SCAN_SUPPRESS */
92 #endif
93 #ifdef PROPTX_MAXCOUNT
94 int wl_ext_get_wlfc_maxcount(struct dhd_pub *dhd, int ifidx);
95 #endif /* PROPTX_MAXCOUNT */
96 #endif
97