1 /*
2  * Copyright (c) 2011-2014, 2016-2020 The Linux Foundation. All rights reserved.
3  * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for
6  * any purpose with or without fee is hereby granted, provided that the
7  * above copyright notice and this permission notice appear in all
8  * copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17  * PERFORMANCE OF THIS SOFTWARE.
18  */
19 
20 /*
21  *
22  * This file lim_timer_utils.h contains the utility definitions
23  * LIM uses for timer handling.
24  * Author:        Chandra Modumudi
25  * Date:          02/13/02
26  * History:-
27  * Date           Modified by    Modification Information
28  * --------------------------------------------------------------------
29  */
30 #ifndef __LIM_TIMER_UTILS_H
31 #define __LIM_TIMER_UTILS_H
32 
33 #include "lim_types.h"
34 
35 /* Timer related functions */
36 enum limtimertype {
37 	eLIM_MIN_CHANNEL_TIMER,
38 	eLIM_MAX_CHANNEL_TIMER,
39 	eLIM_JOIN_FAIL_TIMER,
40 	eLIM_AUTH_FAIL_TIMER,
41 	eLIM_AUTH_RESP_TIMER,
42 	eLIM_ASSOC_FAIL_TIMER,
43 	eLIM_REASSOC_FAIL_TIMER,
44 	eLIM_PRE_AUTH_CLEANUP_TIMER,
45 	eLIM_CNF_WAIT_TIMER,
46 	eLIM_AUTH_RSP_TIMER,
47 	eLIM_UPDATE_OLBC_CACHE_TIMER,
48 	eLIM_ADDTS_RSP_TIMER,
49 	eLIM_CHANNEL_SWITCH_TIMER,
50 	eLIM_WPS_OVERLAP_TIMER,
51 	eLIM_FT_PREAUTH_RSP_TIMER,
52 	eLIM_REMAIN_CHN_TIMER,
53 	eLIM_DISASSOC_ACK_TIMER,
54 	eLIM_DEAUTH_ACK_TIMER,
55 	eLIM_PERIODIC_JOIN_PROBE_REQ_TIMER,
56 	eLIM_INSERT_SINGLESHOT_NOA_TIMER,
57 	eLIM_AUTH_RETRY_TIMER,
58 	eLIM_AUTH_SAE_TIMER,
59 	eLIM_RRM_STA_STATS_RSP_TIMER
60 };
61 
62 #define LIM_DISASSOC_DEAUTH_ACK_TIMEOUT         500
63 
64 /* Timer Handler functions */
65 uint32_t lim_create_timers(struct mac_context *);
66 void lim_timer_handler(void *, uint32_t);
67 void lim_auth_response_timer_handler(void *, uint32_t);
68 void lim_assoc_failure_timer_handler(void *, uint32_t);
69 
70 void lim_deactivate_and_change_timer(struct mac_context *, uint32_t);
71 void lim_cnf_wait_tmer_handler(void *, uint32_t);
72 void lim_deactivate_and_change_per_sta_id_timer(struct mac_context *, uint32_t, uint16_t);
73 void lim_activate_cnf_timer(struct mac_context *, uint16_t, struct pe_session *);
74 void lim_activate_auth_rsp_timer(struct mac_context *, tLimPreAuthNode *);
75 void lim_update_olbc_cache_timer_handler(void *, uint32_t);
76 void lim_addts_response_timer_handler(void *, uint32_t);
77 #endif /* __LIM_TIMER_UTILS_H */
78