xref: /wlan-driver/qcacld-3.0/components/mlme/dispatcher/inc/wlan_mlme_twt_public_struct.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
3*5113495bSYour Name  * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
4*5113495bSYour Name  *
5*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for any
6*5113495bSYour Name  * purpose with or without fee is hereby granted, provided that the above
7*5113495bSYour Name  * copyright notice and this permission notice appear in all copies.
8*5113495bSYour Name  *
9*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10*5113495bSYour Name  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11*5113495bSYour Name  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12*5113495bSYour Name  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13*5113495bSYour Name  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14*5113495bSYour Name  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15*5113495bSYour Name  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16*5113495bSYour Name  */
17*5113495bSYour Name 
18*5113495bSYour Name /**
19*5113495bSYour Name  * DOC: This file contains definitions for MLME TWT functionality.
20*5113495bSYour Name  */
21*5113495bSYour Name 
22*5113495bSYour Name #ifndef _WLAN_MLME_TWT_PUBLIC_STRUCT_H_
23*5113495bSYour Name #define _WLAN_MLME_TWT_PUBLIC_STRUCT_H_
24*5113495bSYour Name 
25*5113495bSYour Name #include <wlan_twt_public_structs.h>
26*5113495bSYour Name 
27*5113495bSYour Name #ifdef WLAN_SUPPORT_TWT
28*5113495bSYour Name /**
29*5113495bSYour Name  * struct twt_session_info  - TWT session related parameters
30*5113495bSYour Name  * @dialog_id: TWT session dialog id
31*5113495bSYour Name  * @state: TWT session state
32*5113495bSYour Name  * @setup_done: TWT session setup is complete
33*5113495bSYour Name  * @active_cmd: bitmap to indicate which command is
34*5113495bSYour Name  * in progress. Bits are provided by enum wlan_twt_commands.
35*5113495bSYour Name  */
36*5113495bSYour Name struct twt_session_info {
37*5113495bSYour Name 	uint8_t dialog_id;
38*5113495bSYour Name 	uint8_t state;
39*5113495bSYour Name 	bool setup_done;
40*5113495bSYour Name 	enum wlan_twt_commands active_cmd;
41*5113495bSYour Name };
42*5113495bSYour Name 
43*5113495bSYour Name /**
44*5113495bSYour Name  * struct twt_context  - TWT context
45*5113495bSYour Name  * @peer_capability: TWT peer capability bitmap. Refer enum
46*5113495bSYour Name  * wlan_twt_capabilities for representation.
47*5113495bSYour Name  * @num_twt_sessions: Maximum supported TWT sessions.
48*5113495bSYour Name  * @session_info: TWT session related parameters for each session
49*5113495bSYour Name  */
50*5113495bSYour Name struct twt_context {
51*5113495bSYour Name 	uint8_t peer_capability;
52*5113495bSYour Name 	uint8_t num_twt_sessions;
53*5113495bSYour Name 	struct twt_session_info session_info[WLAN_MAX_TWT_SESSIONS_PER_PEER];
54*5113495bSYour Name };
55*5113495bSYour Name 
56*5113495bSYour Name #ifdef FEATURE_SET
57*5113495bSYour Name /**
58*5113495bSYour Name  * struct wlan_twt_features  - TWT features info
59*5113495bSYour Name  * @enable_twt: Enable TWT
60*5113495bSYour Name  * @enable_twt_requester: Enable TWT requester
61*5113495bSYour Name  * @enable_twt_broadcast: Enable TWT broadcast
62*5113495bSYour Name  * @enable_twt_flexible: Enable flexible TWT
63*5113495bSYour Name  */
64*5113495bSYour Name struct wlan_twt_features {
65*5113495bSYour Name 	bool enable_twt;
66*5113495bSYour Name 	bool enable_twt_requester;
67*5113495bSYour Name 	bool enable_twt_broadcast;
68*5113495bSYour Name 	bool enable_twt_flexible;
69*5113495bSYour Name };
70*5113495bSYour Name #endif /* FEATURE_SET */
71*5113495bSYour Name #endif /* WLAN_SUPPORT_TWT */
72*5113495bSYour Name #endif /* _WLAN_MLME_TWT_PUBLIC_STRUCT_H_ */
73