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