1 /* 2 * Copyright (c) 2014-2019, 2021 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 #if !defined(__SMEQOSINTERNAL_H) 20 #define __SMEQOSINTERNAL_H 21 22 /** 23 * \file sme_qos_internal.h 24 * 25 * \brief prototype for SME QoS APIs 26 */ 27 28 /*-------------------------------------------------------------------------- 29 Include Files 30 ------------------------------------------------------------------------*/ 31 #include "qdf_lock.h" 32 #include "qdf_trace.h" 33 #include "qdf_mem.h" 34 #include "qdf_types.h" 35 #include "ani_global.h" 36 #include "sir_api.h" 37 #include "sme_qos_api.h" 38 #include "sme_internal.h" 39 40 /*-------------------------------------------------------------------------- 41 Type declarations 42 ------------------------------------------------------------------------*/ 43 #define SME_QOS_AP_SUPPORTS_APSD 0x80 44 45 /*--------------------------------------------------------------------------- 46 Enumeration of the various CSR event indication types that would be reported 47 by CSR 48 ---------------------------------------------------------------------------*/ 49 typedef enum { 50 SME_QOS_CSR_JOIN_REQ = 0, 51 SME_QOS_CSR_ASSOC_COMPLETE, 52 SME_QOS_CSR_REASSOC_REQ, 53 SME_QOS_CSR_REASSOC_COMPLETE, 54 SME_QOS_CSR_REASSOC_FAILURE, 55 SME_QOS_CSR_DISCONNECT_REQ, 56 SME_QOS_CSR_DISCONNECT_IND, 57 SME_QOS_CSR_HANDOFF_ASSOC_REQ, 58 SME_QOS_CSR_HANDOFF_COMPLETE, 59 SME_QOS_CSR_PREAUTH_SUCCESS_IND, 60 SME_QOS_CSR_SET_KEY_SUCCESS_IND, 61 SME_QOS_CSR_DISCONNECT_ROAM_COMPLETE, 62 } sme_qos_csr_event_indType; 63 64 #ifdef FEATURE_WLAN_DIAG_SUPPORT 65 typedef enum { 66 SME_QOS_DIAG_ADDTS_REQ = 0, 67 SME_QOS_DIAG_ADDTS_RSP, 68 SME_QOS_DIAG_DELTS 69 } sme_QosDiagQosEventSubtype; 70 71 typedef enum { 72 SME_QOS_DIAG_ADDTS_ADMISSION_ACCEPTED = 0, 73 SME_QOS_DIAG_ADDTS_INVALID_PARAMS, 74 SME_QOS_DIAG_ADDTS_RESERVED, 75 SME_QOS_DIAG_ADDTS_REFUSED, 76 SME_QOS_DIAG_USER_REQUESTED, 77 SME_QOS_DIAG_DELTS_IND_FROM_AP, 78 79 } sme_QosDiagQosEventReasonCode; 80 81 #endif /* FEATURE_WLAN_DIAG_SUPPORT */ 82 /*--------------------------------------------------------------------------- 83 The association information structure to be passed by CSR after assoc or 84 reassoc is done 85 ---------------------------------------------------------------------------*/ 86 typedef struct { 87 struct bss_description *bss_desc; 88 uint8_t uapsd_mask; 89 } sme_QosAssocInfo; 90 91 /*-------------------------------------------------------------------------- 92 External APIs for CSR - Internal to SME 93 ------------------------------------------------------------------------*/ 94 QDF_STATUS sme_qos_open(struct mac_context *mac); 95 QDF_STATUS sme_qos_close(struct mac_context *mac); 96 QDF_STATUS sme_qos_msg_processor(struct mac_context *mac, uint16_t msg_type, 97 void *msg_buf); 98 99 /*-------------------------------------------------------------------------- 100 Internal APIs for CSR 101 ------------------------------------------------------------------------*/ 102 QDF_STATUS sme_qos_csr_event_ind(struct mac_context *mac, 103 uint8_t sessionId, 104 sme_qos_csr_event_indType ind, void *pEvent_info); 105 uint8_t sme_qos_get_acm_mask(struct mac_context *mac, 106 struct bss_description *pSirBssDesc, tDot11fBeaconIEs *pIes); 107 #ifdef FEATURE_WLAN_ESE 108 uint8_t sme_qos_ese_retrieve_tspec_info(struct mac_context *mac, uint8_t sessionId, 109 tTspecInfo * pTspecInfo); 110 #endif 111 112 #endif /* #if !defined( __SMEQOSINTERNAL_H ) */ 113