cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

wlan_bssdef.h (5897B)


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