xref: /wlan-dirver/qca-wifi-host-cmn/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_public_struct.h (revision 97f44cd39e4ff816eaa1710279d28cf6b9e65ad9)
1 /*
2  * Copyright (c) 2020, The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 /*
18  * DOC: contains interface manager structure definations
19  */
20 #ifndef __IF_MGR_PUBLIC_STRUCTS_H
21 #define __IF_MGR_PUBLIC_STRUCTS_H
22 
23 #include <scheduler_api.h>
24 #include <wlan_objmgr_psoc_obj.h>
25 #include <wlan_objmgr_pdev_obj.h>
26 #include <wlan_objmgr_vdev_obj.h>
27 #include <qdf_time.h>
28 #include <qdf_list.h>
29 #include <qdf_atomic.h>
30 
31 /**
32  * enum wlan_if_mgr_evt: interface manager events
33  * @WLAN_IF_MGR_EV_CONNECT_START:Event to handle connect start request
34  * @WLAN_IF_MGR_EV_CONNECT_COMPLETE:Event to handle connect start complete
35  * @WLAN_IF_MGR_EV_DISCONNECT_START:Event to handle disconnect start request
36  * @WLAN_IF_MGR_EV_DISCONNECT_COMPLETE:Event to handle disconnect start complete
37  * @WLAN_IF_MGR_EV_VALIDATE_CANDIDATE:Event to validate candidate
38  * @WLAN_IF_MGR_EV_AP_START_BSS:Event to handle start bss request
39  * @WLAN_IF_MGR_EV_AP_START_BSS_COMPLETE:Event to handle start bss complete
40  * @WLAN_IF_MGR_EV_AP_STOP_BSS:Event to handle stop bss request
41  * @WLAN_IF_MGR_EV_AP_STOP_BSS_COMPLETE:Event to stop bss complete
42  */
43 enum wlan_if_mgr_evt {
44 	WLAN_IF_MGR_EV_CONNECT_START = 0,
45 	WLAN_IF_MGR_EV_CONNECT_COMPLETE = 1,
46 	WLAN_IF_MGR_EV_DISCONNECT_START = 2,
47 	WLAN_IF_MGR_EV_DISCONNECT_COMPLETE = 3,
48 	WLAN_IF_MGR_EV_VALIDATE_CANDIDATE = 4,
49 	WLAN_IF_MGR_EV_AP_START_BSS = 5,
50 	WLAN_IF_MGR_EV_AP_START_BSS_COMPLETE = 6,
51 	WLAN_IF_MGR_EV_AP_STOP_BSS = 7,
52 	WLAN_IF_MGR_EV_AP_STOP_BSS_COMPLETE = 8,
53 	WLAN_IF_MGR_EV_MAX = 9,
54 };
55 
56 /**
57  * struct validate_bss_data - interface manager validate candidate data
58  * @peer_addr: MAC address of the BSS
59  * @chan_freq: Frequency of the potential BSS connection
60  */
61 struct validate_bss_data {
62 	struct qdf_mac_addr peer_addr;
63 	uint32_t chan_freq;
64 };
65 
66 /**
67  * struct if_mgr_event_data - interface manager event data
68  * @status: qdf status used to indicate if connect,disconnect,
69  *	    start bss,stop bss event is success/failure.
70  * @validate_bss_info: struct to hold the validate candidate information
71  */
72 struct if_mgr_event_data {
73 	QDF_STATUS status;
74 	struct validate_bss_data validate_bss_info;
75 };
76 
77 #endif
78