xref: /wlan-driver/qcacld-3.0/core/mac/src/pe/include/lim_admit_control.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2011-2012, 2014-2019 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 /*
20  *
21  * Author:      Dinesh Upadhyay
22  * Date:        10/24/06
23  * History:-
24  * Date            Modified by    Modification Information
25  * --------------------------------------------------------------------
26  *
27  */
28 
29 #ifndef __LIM_ADMIT_CONTROL_H__
30 #define __LIM_ADMIT_CONTROL_H__
31 
32 #include "sir_common.h"
33 #include "sir_mac_prot_def.h"
34 
35 #include "ani_global.h"
36 
37 QDF_STATUS
38 lim_tspec_find_by_assoc_id(struct mac_context *, uint16_t,
39 			   struct mac_tspec_ie *,
40 			   tpLimTspecInfo, tpLimTspecInfo *);
41 
42 /* Add TSPEC in lim local table */
43 QDF_STATUS lim_tspec_add(struct mac_context *mac,
44 			    uint8_t *pAddr,
45 			    uint16_t assocId,
46 			    struct mac_tspec_ie *pTspec,
47 			    uint32_t interval, tpLimTspecInfo *ppInfo);
48 
49 /* admit control interface */
50 QDF_STATUS lim_admit_control_add_ts(struct mac_context *mac,
51 				    uint8_t *pAddr, tSirAddtsReqInfo *addts,
52 				    tSirMacQosCapabilityStaIE *qos,
53 				    uint16_t assocId, uint8_t alloc,
54 				    tSirMacScheduleIE *pSch,
55 				    /* index to the lim tspec table. */
56 				    uint8_t *pTspecIdx,
57 				    struct pe_session *pe_session);
58 
59 static inline QDF_STATUS
lim_admit_control_add_sta(struct mac_context * mac,uint8_t * staAddr,uint8_t alloc)60 lim_admit_control_add_sta(struct mac_context *mac, uint8_t *staAddr, uint8_t alloc)
61 {
62 	return QDF_STATUS_SUCCESS;
63 }
64 
65 QDF_STATUS
66 lim_admit_control_delete_sta(struct mac_context *mac, uint16_t assocId);
67 
68 QDF_STATUS
69 lim_admit_control_delete_ts(struct mac_context *mac,
70 			    uint16_t assocId,
71 			    struct mac_ts_info *tsinfo,
72 			    uint8_t *tsStatus, uint8_t *tspecIdx);
73 
74 QDF_STATUS lim_admit_control_init(struct mac_context *mac);
75 #ifdef FEATURE_WLAN_ESE
76 QDF_STATUS lim_send_hal_msg_add_ts(struct mac_context *mac,
77 				      uint8_t tspecIdx,
78 				      struct mac_tspec_ie tspecIE,
79 				      uint8_t sessionId, uint16_t tsm_interval);
80 #else
81 QDF_STATUS lim_send_hal_msg_add_ts(struct mac_context *mac,
82 				      uint8_t tspecIdx,
83 				      struct mac_tspec_ie tspecIE,
84 				      uint8_t sessionId);
85 #endif
86 
87 QDF_STATUS lim_send_hal_msg_del_ts(struct mac_context *mac,
88 				      uint8_t tspecIdx,
89 				      struct delts_req_info delts,
90 				      uint8_t sessionId, uint8_t *bssId);
91 void lim_process_hal_add_ts_rsp(struct mac_context *mac,
92 				struct scheduler_msg *limMsg);
93 
94 #endif
95