linux/drivers/staging/rtl8712/wlan_bssdef.h
<<
>>
Prefs
   1/******************************************************************************
   2 *
   3 * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved.
   4 *
   5 * This program is free software; you can redistribute it and/or modify it
   6 * under the terms of version 2 of the GNU General Public License as
   7 * published by the Free Software Foundation.
   8 *
   9 * This program is distributed in the hope that it will be useful, but WITHOUT
  10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  12 * more details.
  13 *
  14 * You should have received a copy of the GNU General Public License along with
  15 * this program; if not, write to the Free Software Foundation, Inc.,
  16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
  17 *
  18 * Modifications for inclusion into the Linux staging tree are
  19 * Copyright(c) 2010 Larry Finger. All rights reserved.
  20 *
  21 * Contact information:
  22 * WLAN FAE <wlanfae@realtek.com>
  23 * Larry Finger <Larry.Finger@lwfinger.net>
  24 *
  25 ******************************************************************************/
  26#ifndef __WLAN_BSSDEF_H__
  27#define __WLAN_BSSDEF_H__
  28
  29#define MAX_IE_SZ       768
  30
  31#define NDIS_802_11_LENGTH_SSID         32
  32#define NDIS_802_11_LENGTH_RATES        8
  33#define NDIS_802_11_LENGTH_RATES_EX     16
  34
  35struct ndis_802_11_ssid {
  36        u32 SsidLength;
  37        u8  Ssid[32];
  38};
  39
  40enum NDIS_802_11_NETWORK_TYPE {
  41        Ndis802_11FH,
  42        Ndis802_11DS,
  43        Ndis802_11OFDM5,
  44        Ndis802_11OFDM24,
  45        Ndis802_11NetworkTypeMax /* not a real type, defined as an upper bound*/
  46};
  47
  48struct NDIS_802_11_CONFIGURATION_FH {
  49        u32 Length;             /* Length of structure */
  50        u32 HopPattern;         /* As defined by 802.11, MSB set */
  51        u32 HopSet;             /* to one if non-802.11 */
  52        u32 DwellTime;          /* units are Kusec */
  53};
  54
  55/*
  56 * FW will only save the channel number in DSConfig.
  57 * ODI Handler will convert the channel number to freq. number.
  58 */
  59struct NDIS_802_11_CONFIGURATION {
  60        u32 Length;             /* Length of structure */
  61        u32 BeaconPeriod;       /* units are Kusec */
  62        u32 ATIMWindow;         /* units are Kusec */
  63        u32 DSConfig;           /* Frequency, units are kHz */
  64        struct NDIS_802_11_CONFIGURATION_FH FHConfig;
  65};
  66
  67enum NDIS_802_11_NETWORK_INFRASTRUCTURE {
  68        Ndis802_11IBSS,
  69        Ndis802_11Infrastructure,
  70        Ndis802_11AutoUnknown,
  71        Ndis802_11InfrastructureMax, /*Not a real value,defined as upper bound*/
  72        Ndis802_11APMode
  73};
  74
  75struct NDIS_802_11_FIXED_IEs {
  76        u8  Timestamp[8];
  77        u16 BeaconInterval;
  78        u16 Capabilities;
  79};
  80
  81struct wlan_bssid_ex {
  82        u32 Length;
  83        unsigned char  MacAddress[6];
  84        u8  Reserved[2];
  85        struct ndis_802_11_ssid  Ssid;
  86        __le32 Privacy;
  87        s32 Rssi;
  88        enum NDIS_802_11_NETWORK_TYPE  NetworkTypeInUse;
  89        struct NDIS_802_11_CONFIGURATION  Configuration;
  90        enum NDIS_802_11_NETWORK_INFRASTRUCTURE  InfrastructureMode;
  91        u8 rates[NDIS_802_11_LENGTH_RATES_EX];
  92        /* number of content bytes in EIs, which varies */
  93        u32 IELength;
  94        /*(timestamp, beacon interval, and capability information) */
  95        u8 IEs[MAX_IE_SZ];
  96};
  97
  98enum NDIS_802_11_AUTHENTICATION_MODE {
  99        Ndis802_11AuthModeOpen,
 100        Ndis802_11AuthModeShared,
 101        Ndis802_11AuthModeAutoSwitch,
 102        Ndis802_11AuthModeWPA,
 103        Ndis802_11AuthModeWPAPSK,
 104        Ndis802_11AuthModeWPANone,
 105        Ndis802_11AuthModeMax      /* Not a real mode, defined as upper bound */
 106};
 107
 108enum {
 109        Ndis802_11WEPEnabled,
 110        Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled,
 111        Ndis802_11WEPDisabled,
 112        Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled,
 113        Ndis802_11WEPKeyAbsent,
 114        Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent,
 115        Ndis802_11WEPNotSupported,
 116        Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported,
 117        Ndis802_11Encryption2Enabled,
 118        Ndis802_11Encryption2KeyAbsent,
 119        Ndis802_11Encryption3Enabled,
 120        Ndis802_11Encryption3KeyAbsent
 121};
 122
 123#define NDIS_802_11_AI_REQFI_CAPABILITIES      1
 124#define NDIS_802_11_AI_REQFI_LISTENINTERVAL    2
 125#define NDIS_802_11_AI_REQFI_CURRENTAPADDRESS  4
 126
 127#define NDIS_802_11_AI_RESFI_CAPABILITIES      1
 128#define NDIS_802_11_AI_RESFI_STATUSCODE        2
 129#define NDIS_802_11_AI_RESFI_ASSOCIATIONID     4
 130
 131struct NDIS_802_11_AI_REQFI {
 132        u16 Capabilities;
 133        u16 ListenInterval;
 134        unsigned char CurrentAPAddress[6];
 135};
 136
 137struct NDIS_802_11_AI_RESFI {
 138        u16 Capabilities;
 139        u16 StatusCode;
 140        u16 AssociationId;
 141};
 142
 143struct NDIS_802_11_ASSOCIATION_INFORMATION {
 144        u32 Length;
 145        u16 AvailableRequestFixedIEs;
 146        struct NDIS_802_11_AI_REQFI RequestFixedIEs;
 147        u32 RequestIELength;
 148        u32 OffsetRequestIEs;
 149        u16 AvailableResponseFixedIEs;
 150        struct NDIS_802_11_AI_RESFI ResponseFixedIEs;
 151        u32 ResponseIELength;
 152        u32 OffsetResponseIEs;
 153};
 154
 155/* Key mapping keys require a BSSID*/
 156struct NDIS_802_11_KEY {
 157        u32 Length;                     /* Length of this structure */
 158        u32 KeyIndex;
 159        u32 KeyLength;                  /* length of key in bytes */
 160        unsigned char BSSID[6];
 161        unsigned long long KeyRSC;
 162        u8  KeyMaterial[32];            /* variable length */
 163};
 164
 165struct NDIS_802_11_REMOVE_KEY {
 166        u32 Length;                     /* Length of this structure */
 167        u32 KeyIndex;
 168        unsigned char BSSID[6];
 169};
 170
 171struct NDIS_802_11_WEP {
 172        u32 Length;               /* Length of this structure */
 173        u32 KeyIndex;             /* 0 is the per-client key,
 174                                   * 1-N are the global keys
 175                                   */
 176        u32 KeyLength;            /* length of key in bytes */
 177        u8  KeyMaterial[16];      /* variable length depending on above field */
 178};
 179
 180/* mask for authentication/integrity fields */
 181#define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS        0x0f
 182#define NDIS_802_11_AUTH_REQUEST_REAUTH                 0x01
 183#define NDIS_802_11_AUTH_REQUEST_KEYUPDATE              0x02
 184#define NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR         0x06
 185#define NDIS_802_11_AUTH_REQUEST_GROUP_ERROR            0x0E
 186
 187/* MIC check time, 60 seconds. */
 188#define MIC_CHECK_TIME  60000000
 189
 190#ifndef Ndis802_11APMode
 191#define Ndis802_11APMode (Ndis802_11InfrastructureMax+1)
 192#endif
 193
 194struct  wlan_network {
 195        struct list_head list;
 196        int     network_type;   /*refer to ieee80211.h for WIRELESS_11A/B/G */
 197        int     fixed;          /* set to fixed when not to be removed asi
 198                                 * site-surveying
 199                                 */
 200        unsigned int    last_scanned; /*timestamp for the network */
 201        int     aid;            /*will only be valid when a BSS is joined. */
 202        int     join_res;
 203        struct wlan_bssid_ex network; /*must be the last item */
 204};
 205
 206enum VRTL_CARRIER_SENSE {
 207        DISABLE_VCS,
 208        ENABLE_VCS,
 209        AUTO_VCS
 210};
 211
 212enum VCS_TYPE {
 213        NONE_VCS,
 214        RTS_CTS,
 215        CTS_TO_SELF
 216};
 217
 218#define PWR_CAM 0
 219#define PWR_MINPS 1
 220#define PWR_MAXPS 2
 221#define PWR_UAPSD 3
 222#define PWR_VOIP 4
 223
 224enum UAPSD_MAX_SP {
 225        NO_LIMIT,
 226        TWO_MSDU,
 227        FOUR_MSDU,
 228        SIX_MSDU
 229};
 230
 231#define NUM_PRE_AUTH_KEY 16
 232#define NUM_PMKID_CACHE NUM_PRE_AUTH_KEY
 233
 234#endif /* #ifndef WLAN_BSSDEF_H_ */
 235
 236