1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2014-2019, 2021 The Linux Foundation. All rights reserved. 3*5113495bSYour Name * 4*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for 5*5113495bSYour Name * any purpose with or without fee is hereby granted, provided that the 6*5113495bSYour Name * above copyright notice and this permission notice appear in all 7*5113495bSYour Name * copies. 8*5113495bSYour Name * 9*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 10*5113495bSYour Name * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 11*5113495bSYour Name * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 12*5113495bSYour Name * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 13*5113495bSYour Name * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 14*5113495bSYour Name * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 15*5113495bSYour Name * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16*5113495bSYour Name * PERFORMANCE OF THIS SOFTWARE. 17*5113495bSYour Name */ 18*5113495bSYour Name 19*5113495bSYour Name #if !defined(__SMEQOSINTERNAL_H) 20*5113495bSYour Name #define __SMEQOSINTERNAL_H 21*5113495bSYour Name 22*5113495bSYour Name /** 23*5113495bSYour Name * \file sme_qos_internal.h 24*5113495bSYour Name * 25*5113495bSYour Name * \brief prototype for SME QoS APIs 26*5113495bSYour Name */ 27*5113495bSYour Name 28*5113495bSYour Name /*-------------------------------------------------------------------------- 29*5113495bSYour Name Include Files 30*5113495bSYour Name ------------------------------------------------------------------------*/ 31*5113495bSYour Name #include "qdf_lock.h" 32*5113495bSYour Name #include "qdf_trace.h" 33*5113495bSYour Name #include "qdf_mem.h" 34*5113495bSYour Name #include "qdf_types.h" 35*5113495bSYour Name #include "ani_global.h" 36*5113495bSYour Name #include "sir_api.h" 37*5113495bSYour Name #include "sme_qos_api.h" 38*5113495bSYour Name #include "sme_internal.h" 39*5113495bSYour Name 40*5113495bSYour Name /*-------------------------------------------------------------------------- 41*5113495bSYour Name Type declarations 42*5113495bSYour Name ------------------------------------------------------------------------*/ 43*5113495bSYour Name #define SME_QOS_AP_SUPPORTS_APSD 0x80 44*5113495bSYour Name 45*5113495bSYour Name /*--------------------------------------------------------------------------- 46*5113495bSYour Name Enumeration of the various CSR event indication types that would be reported 47*5113495bSYour Name by CSR 48*5113495bSYour Name ---------------------------------------------------------------------------*/ 49*5113495bSYour Name typedef enum { 50*5113495bSYour Name SME_QOS_CSR_JOIN_REQ = 0, 51*5113495bSYour Name SME_QOS_CSR_ASSOC_COMPLETE, 52*5113495bSYour Name SME_QOS_CSR_REASSOC_REQ, 53*5113495bSYour Name SME_QOS_CSR_REASSOC_COMPLETE, 54*5113495bSYour Name SME_QOS_CSR_REASSOC_FAILURE, 55*5113495bSYour Name SME_QOS_CSR_DISCONNECT_REQ, 56*5113495bSYour Name SME_QOS_CSR_DISCONNECT_IND, 57*5113495bSYour Name SME_QOS_CSR_HANDOFF_ASSOC_REQ, 58*5113495bSYour Name SME_QOS_CSR_HANDOFF_COMPLETE, 59*5113495bSYour Name SME_QOS_CSR_PREAUTH_SUCCESS_IND, 60*5113495bSYour Name SME_QOS_CSR_SET_KEY_SUCCESS_IND, 61*5113495bSYour Name SME_QOS_CSR_DISCONNECT_ROAM_COMPLETE, 62*5113495bSYour Name } sme_qos_csr_event_indType; 63*5113495bSYour Name 64*5113495bSYour Name #ifdef FEATURE_WLAN_DIAG_SUPPORT 65*5113495bSYour Name typedef enum { 66*5113495bSYour Name SME_QOS_DIAG_ADDTS_REQ = 0, 67*5113495bSYour Name SME_QOS_DIAG_ADDTS_RSP, 68*5113495bSYour Name SME_QOS_DIAG_DELTS 69*5113495bSYour Name } sme_QosDiagQosEventSubtype; 70*5113495bSYour Name 71*5113495bSYour Name typedef enum { 72*5113495bSYour Name SME_QOS_DIAG_ADDTS_ADMISSION_ACCEPTED = 0, 73*5113495bSYour Name SME_QOS_DIAG_ADDTS_INVALID_PARAMS, 74*5113495bSYour Name SME_QOS_DIAG_ADDTS_RESERVED, 75*5113495bSYour Name SME_QOS_DIAG_ADDTS_REFUSED, 76*5113495bSYour Name SME_QOS_DIAG_USER_REQUESTED, 77*5113495bSYour Name SME_QOS_DIAG_DELTS_IND_FROM_AP, 78*5113495bSYour Name 79*5113495bSYour Name } sme_QosDiagQosEventReasonCode; 80*5113495bSYour Name 81*5113495bSYour Name #endif /* FEATURE_WLAN_DIAG_SUPPORT */ 82*5113495bSYour Name /*--------------------------------------------------------------------------- 83*5113495bSYour Name The association information structure to be passed by CSR after assoc or 84*5113495bSYour Name reassoc is done 85*5113495bSYour Name ---------------------------------------------------------------------------*/ 86*5113495bSYour Name typedef struct { 87*5113495bSYour Name struct bss_description *bss_desc; 88*5113495bSYour Name uint8_t uapsd_mask; 89*5113495bSYour Name } sme_QosAssocInfo; 90*5113495bSYour Name 91*5113495bSYour Name /*-------------------------------------------------------------------------- 92*5113495bSYour Name External APIs for CSR - Internal to SME 93*5113495bSYour Name ------------------------------------------------------------------------*/ 94*5113495bSYour Name QDF_STATUS sme_qos_open(struct mac_context *mac); 95*5113495bSYour Name QDF_STATUS sme_qos_close(struct mac_context *mac); 96*5113495bSYour Name QDF_STATUS sme_qos_msg_processor(struct mac_context *mac, uint16_t msg_type, 97*5113495bSYour Name void *msg_buf); 98*5113495bSYour Name 99*5113495bSYour Name /*-------------------------------------------------------------------------- 100*5113495bSYour Name Internal APIs for CSR 101*5113495bSYour Name ------------------------------------------------------------------------*/ 102*5113495bSYour Name QDF_STATUS sme_qos_csr_event_ind(struct mac_context *mac, 103*5113495bSYour Name uint8_t sessionId, 104*5113495bSYour Name sme_qos_csr_event_indType ind, void *pEvent_info); 105*5113495bSYour Name uint8_t sme_qos_get_acm_mask(struct mac_context *mac, 106*5113495bSYour Name struct bss_description *pSirBssDesc, tDot11fBeaconIEs *pIes); 107*5113495bSYour Name #ifdef FEATURE_WLAN_ESE 108*5113495bSYour Name uint8_t sme_qos_ese_retrieve_tspec_info(struct mac_context *mac, uint8_t sessionId, 109*5113495bSYour Name tTspecInfo * pTspecInfo); 110*5113495bSYour Name #endif 111*5113495bSYour Name 112*5113495bSYour Name #endif /* #if !defined( __SMEQOSINTERNAL_H ) */ 113