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