1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2011-2019, 2021 The Linux Foundation. All rights reserved. 3*5113495bSYour Name * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. 4*5113495bSYour Name * 5*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for 6*5113495bSYour Name * any purpose with or without fee is hereby granted, provided that the 7*5113495bSYour Name * above copyright notice and this permission notice appear in all 8*5113495bSYour Name * copies. 9*5113495bSYour Name * 10*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11*5113495bSYour Name * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12*5113495bSYour Name * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13*5113495bSYour Name * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14*5113495bSYour Name * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15*5113495bSYour Name * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16*5113495bSYour Name * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17*5113495bSYour Name * PERFORMANCE OF THIS SOFTWARE. 18*5113495bSYour Name */ 19*5113495bSYour Name 20*5113495bSYour Name /* 21*5113495bSYour Name * 22*5113495bSYour Name * This file ani_system_defs.h contains definitions used by 23*5113495bSYour Name * various ANI entities 24*5113495bSYour Name * Author: Chandra Modumudi 25*5113495bSYour Name * Date: 09/18/2002 26*5113495bSYour Name * History:- 27*5113495bSYour Name * Date Modified by Modification Information 28*5113495bSYour Name * -------------------------------------------------------------------- 29*5113495bSYour Name */ 30*5113495bSYour Name 31*5113495bSYour Name #ifndef __ANI_SYSTEM_DEFS_H 32*5113495bSYour Name #define __ANI_SYSTEM_DEFS_H 33*5113495bSYour Name 34*5113495bSYour Name #include "sir_types.h" 35*5113495bSYour Name #include "sir_mac_prot_def.h" 36*5113495bSYour Name #include "wlan_crypto_global_def.h" 37*5113495bSYour Name 38*5113495bSYour Name /* This is to force compiler to use the maximum of an int for enum */ 39*5113495bSYour Name #define SIR_MAX_ENUM_SIZE 0x7FFFFFFF 40*5113495bSYour Name 41*5113495bSYour Name #ifndef false 42*5113495bSYour Name #undef false 43*5113495bSYour Name #define false 0 44*5113495bSYour Name #endif 45*5113495bSYour Name #ifndef true 46*5113495bSYour Name #undef true 47*5113495bSYour Name #define true 1 48*5113495bSYour Name #endif 49*5113495bSYour Name 50*5113495bSYour Name /* / Authentication type enum used with peer */ 51*5113495bSYour Name typedef enum eAniAuthType { 52*5113495bSYour Name eSIR_OPEN_SYSTEM, 53*5113495bSYour Name eSIR_SHARED_KEY, 54*5113495bSYour Name eSIR_FT_AUTH, 55*5113495bSYour Name eSIR_AUTH_TYPE_SAE = 3, 56*5113495bSYour Name #if defined FEATURE_WLAN_ESE 57*5113495bSYour Name eSIR_LEAP_AUTH = 0x80, 58*5113495bSYour Name #endif 59*5113495bSYour Name SIR_FILS_SK_WITHOUT_PFS = 4, 60*5113495bSYour Name SIR_FILS_SK_WITH_PFS = 5, 61*5113495bSYour Name SIR_FILS_PK_AUTH = 6, 62*5113495bSYour Name eSIR_AUTH_TYPE_PASN = 7, 63*5113495bSYour Name eSIR_AUTH_TYPE_OWE, 64*5113495bSYour Name eSIR_AUTO_SWITCH, 65*5113495bSYour Name eSIR_DONOT_USE_AUTH_TYPE = SIR_MAX_ENUM_SIZE 66*5113495bSYour Name } tAniAuthType; 67*5113495bSYour Name 68*5113495bSYour Name enum ani_akm_type { 69*5113495bSYour Name ANI_AKM_TYPE_NONE, 70*5113495bSYour Name ANI_AKM_TYPE_RSN, 71*5113495bSYour Name ANI_AKM_TYPE_RSN_PSK, 72*5113495bSYour Name ANI_AKM_TYPE_FT_RSN, 73*5113495bSYour Name ANI_AKM_TYPE_FT_RSN_PSK, 74*5113495bSYour Name ANI_AKM_TYPE_RSN_PSK_SHA256, 75*5113495bSYour Name ANI_AKM_TYPE_RSN_8021X_SHA256, 76*5113495bSYour Name ANI_AKM_TYPE_SAE, 77*5113495bSYour Name ANI_AKM_TYPE_FT_SAE, 78*5113495bSYour Name ANI_AKM_TYPE_SUITEB_EAP_SHA256, 79*5113495bSYour Name ANI_AKM_TYPE_SUITEB_EAP_SHA384, 80*5113495bSYour Name ANI_AKM_TYPE_FT_SUITEB_EAP_SHA384, 81*5113495bSYour Name ANI_AKM_TYPE_FILS_SHA256, 82*5113495bSYour Name ANI_AKM_TYPE_FILS_SHA384, 83*5113495bSYour Name ANI_AKM_TYPE_FT_FILS_SHA256, 84*5113495bSYour Name ANI_AKM_TYPE_FT_FILS_SHA384, 85*5113495bSYour Name ANI_AKM_TYPE_OWE, 86*5113495bSYour Name ANI_AKM_TYPE_CCKM, 87*5113495bSYour Name ANI_AKM_TYPE_OSEN, 88*5113495bSYour Name ANI_AKM_TYPE_DPP_RSN, 89*5113495bSYour Name ANI_AKM_TYPE_WPA, 90*5113495bSYour Name ANI_AKM_TYPE_WPA_PSK, 91*5113495bSYour Name ANI_AKM_TYPE_SAE_EXT_KEY, 92*5113495bSYour Name ANI_AKM_TYPE_FT_SAE_EXT_KEY, 93*5113495bSYour Name ANI_NUM_OF_SUPPORT_AKM_TYPE, 94*5113495bSYour Name ANI_AKM_TYPE_UNKNOWN = 0xff, 95*5113495bSYour Name }; 96*5113495bSYour Name 97*5113495bSYour Name /* / Encryption type enum used with peer */ 98*5113495bSYour Name typedef enum eAniEdType { 99*5113495bSYour Name eSIR_ED_NONE, 100*5113495bSYour Name eSIR_ED_WEP40, 101*5113495bSYour Name eSIR_ED_WEP104, 102*5113495bSYour Name eSIR_ED_TKIP, 103*5113495bSYour Name eSIR_ED_CCMP, 104*5113495bSYour Name #if defined(FEATURE_WLAN_WAPI) 105*5113495bSYour Name eSIR_ED_WPI, 106*5113495bSYour Name #endif 107*5113495bSYour Name /*DPU HW treats encryption mode 4 plus RMF bit set in TX BD as BIP. 108*5113495bSYour Name Thus while setting BIP encryption mode in corresponding DPU Desc 109*5113495bSYour Name eSIR_ED_AES_128_CMAC should be set to eSIR_ED_CCMP */ 110*5113495bSYour Name eSIR_ED_AES_128_CMAC, 111*5113495bSYour Name /* Firmware uses key length to find GCMP 128 or 256 */ 112*5113495bSYour Name eSIR_ED_GCMP, 113*5113495bSYour Name eSIR_ED_GCMP_256, 114*5113495bSYour Name eSIR_ED_AES_GMAC_128, 115*5113495bSYour Name eSIR_ED_AES_GMAC_256, 116*5113495bSYour Name eSIR_ED_NOT_IMPLEMENTED = SIR_MAX_ENUM_SIZE 117*5113495bSYour Name } tAniEdType; 118*5113495bSYour Name 119*5113495bSYour Name typedef struct sAniSSID { 120*5113495bSYour Name uint8_t length; 121*5113495bSYour Name uint8_t ssId[WLAN_SSID_MAX_LEN]; 122*5113495bSYour Name } tAniSSID, *tpAniSSID; 123*5113495bSYour Name 124*5113495bSYour Name /* / RSN IE information */ 125*5113495bSYour Name typedef struct sSirRSNie { 126*5113495bSYour Name uint16_t length; 127*5113495bSYour Name uint8_t rsnIEdata[WLAN_MAX_IE_LEN + 2]; 128*5113495bSYour Name } tSirRSNie, *tpSirRSNie; 129*5113495bSYour Name 130*5113495bSYour Name typedef struct sSirWAPIie { 131*5113495bSYour Name uint16_t length; 132*5113495bSYour Name uint8_t wapiIEdata[WLAN_MAX_IE_LEN + 2]; 133*5113495bSYour Name } tSirWAPIie, *tpSirWAPIie; 134*5113495bSYour Name /* / Additional IE information : */ 135*5113495bSYour Name /* / This can include WSC IE, P2P IE, and/or FTIE from upper layer. */ 136*5113495bSYour Name /* / MAC layer transparently convey these IE info between peer STA and upper layer, */ 137*5113495bSYour Name /* / but never requires to parse it. */ 138*5113495bSYour Name typedef struct sSirAddie { 139*5113495bSYour Name uint16_t length; 140*5113495bSYour Name uint8_t addIEdata[SIR_MAC_MAX_ADD_IE_LENGTH + 2]; 141*5113495bSYour Name } tSirAddie, *tpSirAddie; 142*5113495bSYour Name 143*5113495bSYour Name #define SIR_CIPHER_SEQ_CTR_SIZE 6 144*5113495bSYour Name /* / Definition for MIC failure indication */ 145*5113495bSYour Name typedef struct sSirMicFailureInfo { 146*5113495bSYour Name tSirMacAddr srcMacAddr; /* address used to compute MIC */ 147*5113495bSYour Name tSirMacAddr taMacAddr; /* transmitter address */ 148*5113495bSYour Name tSirMacAddr dstMacAddr; 149*5113495bSYour Name bool multicast; 150*5113495bSYour Name uint8_t IV1; /* first byte of IV */ 151*5113495bSYour Name uint8_t keyId; /* second byte of IV */ 152*5113495bSYour Name uint8_t TSC[SIR_CIPHER_SEQ_CTR_SIZE]; /* sequence number */ 153*5113495bSYour Name tSirMacAddr rxMacAddr; /* receive address */ 154*5113495bSYour Name 155*5113495bSYour Name } tSirMicFailureInfo, *tpSirMicFailureInfo; 156*5113495bSYour Name 157*5113495bSYour Name typedef struct sTrafStrmMetrics { 158*5113495bSYour Name uint8_t RoamingCount; 159*5113495bSYour Name uint16_t RoamingDly; 160*5113495bSYour Name } qdf_packed tTrafStrmMetrics, *tpTrafStrmMetrics; 161*5113495bSYour Name 162*5113495bSYour Name typedef struct sBcnReportFields { 163*5113495bSYour Name uint8_t ChanNum; 164*5113495bSYour Name uint8_t Spare; 165*5113495bSYour Name uint16_t MeasDuration; 166*5113495bSYour Name uint8_t PhyType; 167*5113495bSYour Name uint8_t RecvSigPower; 168*5113495bSYour Name tSirMacAddr Bssid; 169*5113495bSYour Name uint32_t ParentTsf; 170*5113495bSYour Name uint32_t TargetTsf[2]; 171*5113495bSYour Name uint16_t BcnInterval; 172*5113495bSYour Name uint16_t CapabilityInfo; 173*5113495bSYour Name } qdf_packed tBcnReportFields, *tpBcnReportFields; 174*5113495bSYour Name 175*5113495bSYour Name #endif /* __ANI_SYSTEM_DEFS_H */ 176