root/drivers/staging/rtl8723bs/include/wlan_bssdef.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. get_wlan_bssid_ex_sz

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /******************************************************************************
   3  *
   4  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
   5  *
   6  ******************************************************************************/
   7 #ifndef __WLAN_BSSDEF_H__
   8 #define __WLAN_BSSDEF_H__
   9 
  10 
  11 #define MAX_IE_SZ       768
  12 
  13 
  14 #define NDIS_802_11_LENGTH_SSID         32
  15 #define NDIS_802_11_LENGTH_RATES        8
  16 #define NDIS_802_11_LENGTH_RATES_EX     16
  17 
  18 typedef unsigned char   NDIS_802_11_MAC_ADDRESS[6];
  19 typedef unsigned char   NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES];        /*  Set of 8 data rates */
  20 typedef unsigned char   NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX];  /*  Set of 16 data rates */
  21 
  22 struct ndis_802_11_ssid {
  23         u32  SsidLength;
  24         u8  Ssid[32];
  25 };
  26 
  27 enum NDIS_802_11_NETWORK_TYPE {
  28         Ndis802_11FH,
  29         Ndis802_11DS,
  30         Ndis802_11OFDM5,
  31         Ndis802_11OFDM24,
  32         Ndis802_11NetworkTypeMax    /*  not a real type, defined as an upper bound */
  33 };
  34 
  35 struct ndis_802_11_conf_fh {
  36         u32 Length;             /*  Length of structure */
  37         u32 HopPattern;         /*  As defined by 802.11, MSB set */
  38         u32 HopSet;             /*  to one if non-802.11 */
  39         u32 DwellTime;          /*  units are Kusec */
  40 };
  41 
  42 /*
  43         FW will only save the channel number in DSConfig.
  44         ODI Handler will convert the channel number to freq. number.
  45 */
  46 struct ndis_802_11_conf {
  47         u32 Length;             /*  Length of structure */
  48         u32 BeaconPeriod;       /*  units are Kusec */
  49         u32 ATIMWindow;         /*  units are Kusec */
  50         u32 DSConfig;           /*  Frequency, units are kHz */
  51         struct ndis_802_11_conf_fh    FHConfig;
  52 };
  53 
  54 enum NDIS_802_11_NETWORK_INFRASTRUCTURE {
  55         Ndis802_11IBSS,
  56         Ndis802_11Infrastructure,
  57         Ndis802_11AutoUnknown,
  58         Ndis802_11InfrastructureMax,     /*  Not a real value, defined as upper bound */
  59         Ndis802_11APMode,
  60 };
  61 
  62 struct ndis_802_11_fix_ie {
  63         u8  Timestamp[8];
  64         u16  BeaconInterval;
  65         u16  Capabilities;
  66 };
  67 
  68 struct ndis_80211_var_ie {
  69         u8  ElementID;
  70         u8  Length;
  71         u8  data[1];
  72 };
  73 
  74 /* Length is the 4 bytes multiples of the sum of
  75  * sizeof (NDIS_802_11_MAC_ADDRESS) + 2 +
  76  * sizeof (struct ndis_802_11_ssid) + sizeof (u32) +
  77  * sizeof (long) + sizeof (enum NDIS_802_11_NETWORK_TYPE) +
  78  * sizeof (struct ndis_802_11_conf) + sizeof (NDIS_802_11_RATES_EX) + IELength
  79  *
  80  * Except for IELength, all other fields are fixed length. Therefore, we can
  81  * define a macro to present the partial sum.
  82  */
  83 enum NDIS_802_11_AUTHENTICATION_MODE {
  84         Ndis802_11AuthModeOpen,
  85         Ndis802_11AuthModeShared,
  86         Ndis802_11AuthModeAutoSwitch,
  87         Ndis802_11AuthModeWPA,
  88         Ndis802_11AuthModeWPAPSK,
  89         Ndis802_11AuthModeWPANone,
  90         Ndis802_11AuthModeWAPI,
  91         Ndis802_11AuthModeMax   /*  Not a real mode, defined as upper bound */
  92 };
  93 
  94 enum NDIS_802_11_WEP_STATUS {
  95         Ndis802_11WEPEnabled,
  96         Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled,
  97         Ndis802_11WEPDisabled,
  98         Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled,
  99         Ndis802_11WEPKeyAbsent,
 100         Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent,
 101         Ndis802_11WEPNotSupported,
 102         Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported,
 103         Ndis802_11Encryption2Enabled,
 104         Ndis802_11Encryption2KeyAbsent,
 105         Ndis802_11Encryption3Enabled,
 106         Ndis802_11Encryption3KeyAbsent,
 107         Ndis802_11_EncrypteionWAPI
 108 };
 109 
 110 #define NDIS_802_11_AI_REQFI_CAPABILITIES      1
 111 #define NDIS_802_11_AI_REQFI_LISTENINTERVAL    2
 112 #define NDIS_802_11_AI_REQFI_CURRENTAPADDRESS  4
 113 
 114 #define NDIS_802_11_AI_RESFI_CAPABILITIES      1
 115 #define NDIS_802_11_AI_RESFI_STATUSCODE        2
 116 #define NDIS_802_11_AI_RESFI_ASSOCIATIONID     4
 117 
 118 struct ndis_802_11_ai_reqfi {
 119         u16 Capabilities;
 120         u16 ListenInterval;
 121         NDIS_802_11_MAC_ADDRESS  CurrentAPAddress;
 122 };
 123 
 124 struct ndis_801_11_ai_resfi {
 125         u16 Capabilities;
 126         u16 StatusCode;
 127         u16 AssociationId;
 128 };
 129 
 130 typedef struct _NDIS_802_11_ASSOCIATION_INFORMATION
 131 {
 132         u32                   Length;
 133         u16                  AvailableRequestFixedIEs;
 134         struct ndis_802_11_ai_reqfi    RequestFixedIEs;
 135         u32                   RequestIELength;
 136         u32                   OffsetRequestIEs;
 137         u16                  AvailableResponseFixedIEs;
 138         struct ndis_801_11_ai_resfi    ResponseFixedIEs;
 139         u32                   ResponseIELength;
 140         u32                   OffsetResponseIEs;
 141 } NDIS_802_11_ASSOCIATION_INFORMATION, *PNDIS_802_11_ASSOCIATION_INFORMATION;
 142 
 143 enum NDIS_802_11_RELOAD_DEFAULTS {
 144         Ndis802_11ReloadWEPKeys
 145 };
 146 
 147 
 148 /*  Key mapping keys require a BSSID */
 149 typedef struct _NDIS_802_11_KEY
 150 {
 151         u32           Length;             /*  Length of this structure */
 152         u32           KeyIndex;
 153         u32           KeyLength;          /*  length of key in bytes */
 154         NDIS_802_11_MAC_ADDRESS BSSID;
 155         unsigned long long KeyRSC;
 156         u8           KeyMaterial[32];     /*  variable length depending on above field */
 157 } NDIS_802_11_KEY, *PNDIS_802_11_KEY;
 158 
 159 typedef struct _NDIS_802_11_REMOVE_KEY
 160 {
 161         u32                   Length;        /*  Length of this structure */
 162         u32                   KeyIndex;
 163         NDIS_802_11_MAC_ADDRESS BSSID;
 164 } NDIS_802_11_REMOVE_KEY, *PNDIS_802_11_REMOVE_KEY;
 165 
 166 struct ndis_802_11_wep {
 167         u32 Length;        /*  Length of this structure */
 168         u32 KeyIndex;      /*  0 is the per-client key, 1-N are the global keys */
 169         u32 KeyLength;     /*  length of key in bytes */
 170         u8 KeyMaterial[16];/*  variable length depending on above field */
 171 };
 172 
 173 /*  mask for authentication/integrity fields */
 174 #define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS        0x0f
 175 #define NDIS_802_11_AUTH_REQUEST_REAUTH                 0x01
 176 #define NDIS_802_11_AUTH_REQUEST_KEYUPDATE              0x02
 177 #define NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR         0x06
 178 #define NDIS_802_11_AUTH_REQUEST_GROUP_ERROR            0x0E
 179 
 180 /*  MIC check time, 60 seconds. */
 181 #define MIC_CHECK_TIME  60000000
 182 
 183 #ifndef Ndis802_11APMode
 184 #define Ndis802_11APMode (Ndis802_11InfrastructureMax + 1)
 185 #endif
 186 
 187 struct wlan_phy_info {
 188         u8 SignalStrength;/* in percentage) */
 189         u8 SignalQuality;/* in percentage) */
 190         u8 Optimum_antenna;  /* for Antenna diversity */
 191         u8 Reserved_0;
 192 };
 193 
 194 struct wlan_bcn_info {
 195         /* these infor get from rtw_get_encrypt_info when
 196          * * translate scan to UI */
 197         u8 encryp_protocol;/* ENCRYP_PROTOCOL_E: OPEN/WEP/WPA/WPA2/WAPI */
 198         int group_cipher; /* WPA/WPA2 group cipher */
 199         int pairwise_cipher;/* WPA/WPA2/WEP pairwise cipher */
 200         int is_8021x;
 201 
 202         /* bwmode 20/40 and ch_offset UP/LOW */
 203         unsigned short  ht_cap_info;
 204         unsigned char ht_info_infos_0;
 205 };
 206 
 207 /* temporally add #pragma pack for structure alignment issue of
 208 *   struct wlan_bssid_ex and get_wlan_bssid_ex_sz()
 209 */
 210 struct wlan_bssid_ex {
 211         u32  Length;
 212         NDIS_802_11_MAC_ADDRESS  MacAddress;
 213         u8  Reserved[2];/* 0]: IS beacon frame */
 214         struct ndis_802_11_ssid  Ssid;
 215         u32  Privacy;
 216         long  Rssi;/* in dBM, raw data , get from PHY) */
 217         enum NDIS_802_11_NETWORK_TYPE  NetworkTypeInUse;
 218         struct ndis_802_11_conf  Configuration;
 219         enum NDIS_802_11_NETWORK_INFRASTRUCTURE  InfrastructureMode;
 220         NDIS_802_11_RATES_EX  SupportedRates;
 221         struct wlan_phy_info PhyInfo;
 222         u32  IELength;
 223         u8  IEs[MAX_IE_SZ];     /* timestamp, beacon interval, and capability information) */
 224 } __packed;
 225 
 226 static inline uint get_wlan_bssid_ex_sz(struct wlan_bssid_ex *bss)
 227 {
 228         return (sizeof(struct wlan_bssid_ex) - MAX_IE_SZ + bss->IELength);
 229 }
 230 
 231 struct  wlan_network {
 232         struct list_head        list;
 233         int     network_type;   /* refer to ieee80211.h for WIRELESS_11A/B/G */
 234         int     fixed;                  /*  set to fixed when not to be removed as site-surveying */
 235         unsigned long   last_scanned; /* timestamp for the network */
 236         int     aid;                    /* will only be valid when a BSS is joinned. */
 237         int     join_res;
 238         struct wlan_bssid_ex    network; /* must be the last item */
 239         struct wlan_bcn_info    BcnInfo;
 240 };
 241 
 242 enum VRTL_CARRIER_SENSE {
 243         DISABLE_VCS,
 244         ENABLE_VCS,
 245         AUTO_VCS
 246 };
 247 
 248 enum VCS_TYPE {
 249         NONE_VCS,
 250         RTS_CTS,
 251         CTS_TO_SELF
 252 };
 253 
 254 #define PWR_CAM 0
 255 #define PWR_MINPS 1
 256 #define PWR_MAXPS 2
 257 #define PWR_UAPSD 3
 258 #define PWR_VOIP 4
 259 
 260 enum UAPSD_MAX_SP {
 261         NO_LIMIT,
 262         TWO_MSDU,
 263         FOUR_MSDU,
 264         SIX_MSDU
 265 };
 266 
 267 #define NUM_PRE_AUTH_KEY 16
 268 #define NUM_PMKID_CACHE NUM_PRE_AUTH_KEY
 269 
 270 #endif /* ifndef WLAN_BSSDEF_H_ */

/* [<][>][^][v][top][bottom][index][help] */