iPXE
Data Structures | Macros | Functions | Variables
ieee80211.h File Reference

Constants and data structures defined in IEEE 802.11, subsetted according to what iPXE knows how to use. More...

#include <stddef.h>
#include <ipxe/if_ether.h>
#include <endian.h>

Go to the source code of this file.

Data Structures

struct  ieee80211_frame
 An 802.11 data or management frame without QoS or WDS header fields. More...
 
struct  ieee80211_llc_snap_header
 The 802.2 LLC/SNAP header sent before actual data in a data frame. More...
 
struct  ieee80211_rts
 16-byte RTS frame format, with abbreviated header More...
 
struct  ieee80211_cts_or_ack
 10-byte CTS or ACK frame format, with abbreviated header More...
 
struct  ieee80211_ie_header
 Generic 802.11 information element header. More...
 
struct  ieee80211_ie_ssid
 802.11 SSID information element More...
 
struct  ieee80211_ie_rates
 802.11 rates information element More...
 
struct  ieee80211_ie_ds_param
 802.11 Direct Spectrum parameter information element More...
 
struct  ieee80211_ie_country_ext_triplet
 802.11 Country information element regulatory extension triplet More...
 
struct  ieee80211_ie_country_band_triplet
 802.11 Country information element regulatory band triplet More...
 
union  ieee80211_ie_country_triplet
 802.11 Country information element regulatory triplet More...
 
struct  ieee80211_ie_country
 802.11 Country information element More...
 
struct  ieee80211_ie_request
 802.11 Request information element More...
 
struct  ieee80211_ie_challenge_text
 802.11 Challenge Text information element More...
 
struct  ieee80211_ie_power_constraint
 802.11 Power Constraint information element More...
 
struct  ieee80211_ie_power_capab
 802.11 Power Capability information element More...
 
struct  ieee80211_ie_channels_channel_band
 802.11 Channels information element channel band tuple More...
 
struct  ieee80211_ie_channels
 802.11 Channels information element More...
 
struct  ieee80211_ie_erp_info
 802.11 ERP Information information element More...
 
struct  ieee80211_ie_rsn
 802.11 Robust Security Network ("WPA") information element More...
 
struct  ieee80211_ie_vendor
 802.11 Vendor Specific information element More...
 
union  ieee80211_ie
 Any 802.11 information element. More...
 
struct  ieee80211_beacon_or_probe_resp
 Beacon or probe response frame data. More...
 
struct  ieee80211_disassoc_or_deauth
 Disassociation or deauthentication frame data. More...
 
struct  ieee80211_assoc_req
 Association request frame data. More...
 
struct  ieee80211_assoc_or_reassoc_resp
 Association or reassociation response frame data. More...
 
struct  ieee80211_reassoc_req
 Reassociation request frame data. More...
 
struct  ieee80211_probe_req
 Probe request frame data. More...
 
struct  ieee80211_auth
 Authentication frame data. More...
 

Macros

#define IEEE80211_MAX_DATA_LEN   2304
 Maximum length of frame payload. More...
 
#define IEEE80211_LLC_HEADER_LEN   8
 Length of LLC/SNAP headers on data frames. More...
 
#define IEEE80211_MAX_CRYPTO_HEADER   8
 Maximum cryptographic overhead before encrypted data. More...
 
#define IEEE80211_MAX_CRYPTO_TRAILER   8
 Maximum cryptographic overhead after encrypted data. More...
 
#define IEEE80211_MAX_CRYPTO_OVERHEAD   16
 Total maximum cryptographic overhead. More...
 
#define IEEE80211_MAX_FRAME_DATA   2296
 Bytes of network-layer data that can go into a regular data frame. More...
 
#define IEEE80211_TYP_FRAME_HEADER_LEN   24
 Frame header length for frames we might work with. More...
 
#define IEEE80211_MAX_FRAME_HEADER_LEN   32
 Theoretical maximum frame header length. More...
 
#define IEEE80211_MAX_FRAME_LEN   2352
 Maximum combined frame length. More...
 
#define IEEE80211_MAX_SSID_LEN   32
 Maximum length of an ESSID. More...
 
#define IEEE80211_FC_VERSION   0x0003
 802.11 Frame Control field, Version bitmask More...
 
#define IEEE80211_THIS_VERSION   0x0000
 Expected value of Version bits in Frame Control. More...
 
#define IEEE80211_FC_TYPE   0x000C
 802.11 Frame Control field, Frame Type bitmask More...
 
#define IEEE80211_TYPE_MGMT   0x0000
 Type value for management (layer-2) frames. More...
 
#define IEEE80211_TYPE_CTRL   0x0004
 Type value for control (layer-1, hardware-managed) frames. More...
 
#define IEEE80211_TYPE_DATA   0x0008
 Type value for data frames. More...
 
#define IEEE80211_FC_SUBTYPE   0x00F0
 802.11 Frame Control field, Frame Subtype bitmask More...
 
#define IEEE80211_STYPE_ASSOC_REQ   0x0000
 Subtype value for association-request management frames. More...
 
#define IEEE80211_STYPE_ASSOC_RESP   0x0010
 Subtype value for association-response management frames. More...
 
#define IEEE80211_STYPE_REASSOC_REQ   0x0020
 Subtype value for reassociation-request management frames. More...
 
#define IEEE80211_STYPE_REASSOC_RESP   0x0030
 Subtype value for reassociation-response management frames. More...
 
#define IEEE80211_STYPE_PROBE_REQ   0x0040
 Subtype value for probe-request management frames. More...
 
#define IEEE80211_STYPE_PROBE_RESP   0x0050
 Subtype value for probe-response management frames. More...
 
#define IEEE80211_STYPE_BEACON   0x0080
 Subtype value for beacon management frames. More...
 
#define IEEE80211_STYPE_DISASSOC   0x00A0
 Subtype value for disassociation management frames. More...
 
#define IEEE80211_STYPE_AUTH   0x00B0
 Subtype value for authentication management frames. More...
 
#define IEEE80211_STYPE_DEAUTH   0x00C0
 Subtype value for deauthentication management frames. More...
 
#define IEEE80211_STYPE_ACTION   0x00D0
 Subtype value for action management frames. More...
 
#define IEEE80211_STYPE_RTS   0x00B0
 Subtype value for RTS (request to send) control frames. More...
 
#define IEEE80211_STYPE_CTS   0x00C0
 Subtype value for CTS (clear to send) control frames. More...
 
#define IEEE80211_STYPE_ACK   0x00D0
 Subtype value for ACK (acknowledgement) control frames. More...
 
#define IEEE80211_STYPE_DATA   0x0000
 Subtype value for ordinary data frames, with no QoS or CF add-ons. More...
 
#define IEEE80211_STYPE_NODATA   0x0040
 Subtype value for data frames containing no data. More...
 
#define IEEE80211_FC_TODS   0x0100
 802.11 Frame Control field: To Data System flag More...
 
#define IEEE80211_FC_FROMDS   0x0200
 802.11 Frame Control field: From Data System flag More...
 
#define IEEE80211_FC_MORE_FRAG   0x0400
 802.11 Frame Control field: More Fragments flag More...
 
#define IEEE80211_FC_RETRY   0x0800
 802.11 Frame Control field: Retransmission flag More...
 
#define IEEE80211_FC_PWR_MGMT   0x1000
 802.11 Frame Control field: Power Managed flag More...
 
#define IEEE80211_FC_MORE_DATA   0x2000
 802.11 Frame Control field: More Data flag More...
 
#define IEEE80211_FC_PROTECTED   0x4000
 802.11 Frame Control field: Protected flag More...
 
#define IEEE80211_FC_ORDER   0x8000
 802.11 Frame Control field: Ordered flag [?] More...
 
#define IEEE80211_SEQNR(seq)   ( ( seq ) >> 4 )
 Extract sequence number from 802.11 Sequence Control field. More...
 
#define IEEE80211_FRAG(seq)   ( ( seq ) & 0x000F )
 Extract fragment number from 802.11 Sequence Control field. More...
 
#define IEEE80211_MAKESEQ(seqnr, frag)   ( ( ( ( seqnr ) & 0xFFF ) << 4 ) | ( ( frag ) & 0xF ) )
 Make 802.11 Sequence Control field from sequence and fragment numbers. More...
 
#define IEEE80211_LLC_DSAP   0xAA
 Value for DSAP field in 802.2 LLC header for 802.11 frames: SNAP. More...
 
#define IEEE80211_LLC_SSAP   0xAA
 Value for SSAP field in 802.2 LLC header for 802.11 frames: SNAP. More...
 
#define IEEE80211_LLC_CTRL   0x03
 Value for control field in 802.2 LLC header for 802.11 frames. More...
 
#define IEEE80211_RTS_LEN   16
 Length of 802.11 RTS control frame. More...
 
#define ieee80211_cts   ieee80211_cts_or_ack
 
#define ieee80211_ack   ieee80211_cts_or_ack
 
#define IEEE80211_CTS_LEN   10
 Length of 802.11 CTS control frame. More...
 
#define IEEE80211_ACK_LEN   10
 Length of 802.11 ACK control frame. More...
 
#define IEEE80211_CAPAB_MANAGED   0x0001
 Set if using an Access Point (managed mode) More...
 
#define IEEE80211_CAPAB_ADHOC   0x0002
 Set if operating in IBSS (no-AP, "Ad-Hoc") mode. More...
 
#define IEEE80211_CAPAB_CFPOLL   0x0004
 Set if we support Contention-Free Period operation. More...
 
#define IEEE80211_CAPAB_CFPR   0x0008
 Set if we wish to be polled for Contention-Free operation. More...
 
#define IEEE80211_CAPAB_PRIVACY   0x0010
 Set if the network is encrypted (by any method) More...
 
#define IEEE80211_CAPAB_SHORT_PMBL   0x0020
 Set if PHY supports short preambles on 802.11b. More...
 
#define IEEE80211_CAPAB_PBCC   0x0040
 Set if PHY supports PBCC modulation. More...
 
#define IEEE80211_CAPAB_CHAN_AGILITY   0x0080
 Set if we support Channel Agility. More...
 
#define IEEE80211_CAPAB_SPECTRUM_MGMT   0x0100
 Set if we support spectrum management (DFS and TPC) on the 5GHz band. More...
 
#define IEEE80211_CAPAB_QOS   0x0200
 Set if we support Quality of Service enhancements. More...
 
#define IEEE80211_CAPAB_SHORT_SLOT   0x0400
 Set if PHY supports short slot time on 802.11g. More...
 
#define IEEE80211_CAPAB_APSD   0x0800
 Set if PHY supports APSD option. More...
 
#define IEEE80211_CAPAB_DSSS_OFDM   0x2000
 Set if PHY supports DSSS/OFDM modulation (one way of 802.11 b/g mixing) More...
 
#define IEEE80211_CAPAB_DELAYED_BACK   0x4000
 Set if we support delayed block ACK. More...
 
#define IEEE80211_CAPAB_IMMED_BACK   0x8000
 Set if we support immediate block ACK. More...
 
#define IEEE80211_STATUS_SUCCESS   0
 
#define IEEE80211_STATUS_FAILURE   1
 
#define IEEE80211_STATUS_CAPAB_UNSUPP   10
 
#define IEEE80211_STATUS_REASSOC_INVALID   11
 
#define IEEE80211_STATUS_ASSOC_DENIED   12
 
#define IEEE80211_STATUS_AUTH_ALGO_UNSUPP   13
 
#define IEEE80211_STATUS_AUTH_SEQ_INVALID   14
 
#define IEEE80211_STATUS_AUTH_CHALL_INVALID   15
 
#define IEEE80211_STATUS_AUTH_TIMEOUT   16
 
#define IEEE80211_STATUS_ASSOC_NO_ROOM   17
 
#define IEEE80211_STATUS_ASSOC_NEED_RATE   18
 
#define IEEE80211_STATUS_ASSOC_NEED_SHORT_PMBL   19
 
#define IEEE80211_STATUS_ASSOC_NEED_PBCC   20
 
#define IEEE80211_STATUS_ASSOC_NEED_CHAN_AGILITY   21
 
#define IEEE80211_STATUS_ASSOC_NEED_SPECTRUM_MGMT   22
 
#define IEEE80211_STATUS_ASSOC_BAD_POWER   23
 
#define IEEE80211_STATUS_ASSOC_BAD_CHANNELS   24
 
#define IEEE80211_STATUS_ASSOC_NEED_SHORT_SLOT   25
 
#define IEEE80211_STATUS_ASSOC_NEED_DSSS_OFDM   26
 
#define IEEE80211_STATUS_QOS_FAILURE   32
 
#define IEEE80211_STATUS_QOS_NO_ROOM   33
 
#define IEEE80211_STATUS_LINK_IS_HORRIBLE   34
 
#define IEEE80211_STATUS_ASSOC_NEED_QOS   35
 
#define IEEE80211_STATUS_REQUEST_DECLINED   37
 
#define IEEE80211_STATUS_REQUEST_INVALID   38
 
#define IEEE80211_STATUS_TS_NOT_CREATED_AGAIN   39
 
#define IEEE80211_STATUS_INVALID_IE   40
 
#define IEEE80211_STATUS_GROUP_CIPHER_INVALID   41
 
#define IEEE80211_STATUS_PAIR_CIPHER_INVALID   42
 
#define IEEE80211_STATUS_AKMP_INVALID   43
 
#define IEEE80211_STATUS_RSN_VERSION_UNSUPP   44
 
#define IEEE80211_STATUS_RSN_CAPAB_INVALID   45
 
#define IEEE80211_STATUS_CIPHER_REJECTED   46
 
#define IEEE80211_STATUS_TS_NOT_CREATED_WAIT   47
 
#define IEEE80211_STATUS_DIRECT_LINK_FORBIDDEN   48
 
#define IEEE80211_STATUS_DEST_NOT_PRESENT   49
 
#define IEEE80211_STATUS_DEST_NOT_QOS   50
 
#define IEEE80211_STATUS_ASSOC_LISTEN_TOO_HIGH   51
 
#define IEEE80211_REASON_NONE   0
 
#define IEEE80211_REASON_UNSPECIFIED   1
 
#define IEEE80211_REASON_AUTH_NO_LONGER_VALID   2
 
#define IEEE80211_REASON_LEAVING   3
 
#define IEEE80211_REASON_INACTIVITY   4
 
#define IEEE80211_REASON_OUT_OF_RESOURCES   5
 
#define IEEE80211_REASON_NEED_AUTH   6
 
#define IEEE80211_REASON_NEED_ASSOC   7
 
#define IEEE80211_REASON_LEAVING_TO_ROAM   8
 
#define IEEE80211_REASON_REASSOC_INVALID   9
 
#define IEEE80211_REASON_BAD_POWER   10
 
#define IEEE80211_REASON_BAD_CHANNELS   11
 
#define IEEE80211_REASON_INVALID_IE   13
 
#define IEEE80211_REASON_MIC_FAILURE   14
 
#define IEEE80211_REASON_4WAY_TIMEOUT   15
 
#define IEEE80211_REASON_GROUPKEY_TIMEOUT   16
 
#define IEEE80211_REASON_4WAY_INVALID   17
 
#define IEEE80211_REASON_GROUP_CIPHER_INVALID   18
 
#define IEEE80211_REASON_PAIR_CIPHER_INVALID   19
 
#define IEEE80211_REASON_AKMP_INVALID   20
 
#define IEEE80211_REASON_RSN_VERSION_INVALID   21
 
#define IEEE80211_REASON_RSN_CAPAB_INVALID   22
 
#define IEEE80211_REASON_8021X_FAILURE   23
 
#define IEEE80211_REASON_CIPHER_REJECTED   24
 
#define IEEE80211_REASON_QOS_UNSPECIFIED   32
 
#define IEEE80211_REASON_QOS_OUT_OF_RESOURCES   33
 
#define IEEE80211_REASON_LINK_IS_HORRIBLE   34
 
#define IEEE80211_REASON_INVALID_TXOP   35
 
#define IEEE80211_REASON_REQUESTED_LEAVING   36
 
#define IEEE80211_REASON_REQUESTED_NO_USE   37
 
#define IEEE80211_REASON_REQUESTED_NEED_SETUP   38
 
#define IEEE80211_REASON_REQUESTED_TIMEOUT   39
 
#define IEEE80211_REASON_CIPHER_UNSUPPORTED   45
 
#define IEEE80211_IE_SSID   0
 Information element ID for SSID information element. More...
 
#define IEEE80211_IE_RATES   1
 Information element ID for rates information element. More...
 
#define IEEE80211_IE_EXT_RATES   50
 Information element ID for extended rates information element. More...
 
#define IEEE80211_IE_DS_PARAM   3
 Information element ID for Direct Spectrum parameter information element. More...
 
#define IEEE80211_IE_COUNTRY   7
 Information element ID for Country information element. More...
 
#define IEEE80211_IE_REQUEST   10
 Information element ID for Request information element. More...
 
#define IEEE80211_IE_CHALLENGE_TEXT   16
 Information element ID for Challenge Text information element. More...
 
#define IEEE80211_IE_POWER_CONSTRAINT   52
 Information element ID for Power Constraint information element. More...
 
#define IEEE80211_IE_POWER_CAPAB   33
 Information element ID for Power Capability information element. More...
 
#define IEEE80211_IE_CHANNELS   36
 Information element ID for Channels information element. More...
 
#define IEEE80211_IE_ERP_INFO   42
 Information element ID for ERP Information information element. More...
 
#define IEEE80211_ERP_NONERP_PRESENT   0x01
 ERP information element: Flag set if 802.11b stations are present. More...
 
#define IEEE80211_ERP_USE_PROTECTION   0x02
 ERP information element: Flag set if CTS protection must be used. More...
 
#define IEEE80211_ERP_BARKER_LONG   0x04
 ERP information element: Flag set if long preambles must be used. More...
 
#define IEEE80211_IE_RSN   48
 Information element ID for Robust Security Network information element. More...
 
#define _MKOUI(a, b, c, t)   ( ( ( t ) << 24 ) | ( ( c ) << 16 ) | ( ( b ) << 8 ) | ( a ) )
 Make OUI plus type byte into 32-bit integer for easy comparison. More...
 
#define OUI_ORG_MASK   0x00FFFFFF
 
#define OUI_TYPE_MASK   0xFF000000
 
#define IEEE80211_RSN_OUI   _MKOUI ( 0x00, 0x0F, 0xAC, 0 )
 Organization part for OUIs in standard RSN IE. More...
 
#define IEEE80211_WPA_OUI   _MKOUI ( 0x00, 0x50, 0xF2, 0 )
 Organization part for OUIs in old WPA IE. More...
 
#define IEEE80211_WPA_OUI_VEN   _MKOUI ( 0x00, 0x50, 0xF2, 0x01 )
 Old vendor-type WPA IE OUI type + subtype. More...
 
#define IEEE80211_RSN_VERSION   1
 802.11 RSN IE: expected version number More...
 
#define IEEE80211_RSN_CTYPE_WEP40   _MKOUI ( 0, 0, 0, 0x01 )
 802.11 RSN IE: cipher type for 40-bit WEP More...
 
#define IEEE80211_RSN_CTYPE_WEP104   _MKOUI ( 0, 0, 0, 0x05 )
 802.11 RSN IE: cipher type for 104-bit WEP More...
 
#define IEEE80211_RSN_CTYPE_TKIP   _MKOUI ( 0, 0, 0, 0x02 )
 802.11 RSN IE: cipher type for TKIP ("WPA") More...
 
#define IEEE80211_RSN_CTYPE_CCMP   _MKOUI ( 0, 0, 0, 0x04 )
 802.11 RSN IE: cipher type for CCMP ("WPA2") More...
 
#define IEEE80211_RSN_CTYPE_USEGROUP   _MKOUI ( 0, 0, 0, 0x00 )
 802.11 RSN IE: cipher type for "use group" More...
 
#define IEEE80211_RSN_ATYPE_8021X   _MKOUI ( 0, 0, 0, 0x01 )
 802.11 RSN IE: auth method type for using an 802.1X server More...
 
#define IEEE80211_RSN_ATYPE_PSK   _MKOUI ( 0, 0, 0, 0x02 )
 802.11 RSN IE: auth method type for using a pre-shared key More...
 
#define IEEE80211_RSN_CAPAB_PREAUTH   0x001
 802.11 RSN IE capabilities: AP supports pre-authentication More...
 
#define IEEE80211_RSN_CAPAB_NO_PAIRWISE   0x002
 802.11 RSN IE capabilities: Node has conflict between TKIP and WEP More...
 
#define IEEE80211_RSN_CAPAB_PTKSA_REPLAY   0x00C
 802.11 RSN IE capabilities: Number of PTKSA replay counters More...
 
#define IEEE80211_RSN_CAPAB_GTKSA_REPLAY   0x030
 802.11 RSN IE capabilities: Number of GTKSA replay counters More...
 
#define IEEE80211_RSN_CAPAB_PEERKEY   0x200
 802.11 RSN IE capabilities: PeerKey Handshaking is suported More...
 
#define IEEE80211_RSN_1_CTR   0x000
 802.11 RSN IE capabilities: One replay counter More...
 
#define IEEE80211_RSN_2_CTR   0x014
 802.11 RSN IE capabilities: Two replay counters More...
 
#define IEEE80211_RSN_4_CTR   0x028
 802.11 RSN IE capabilities: Four replay counters More...
 
#define IEEE80211_RSN_16_CTR   0x03C
 802.11 RSN IE capabilities: 16 replay counters More...
 
#define IEEE80211_IE_VENDOR   221
 Information element ID for Vendor Specific information element. More...
 
#define ieee80211_beacon   ieee80211_beacon_or_probe_resp
 
#define ieee80211_probe_resp   ieee80211_beacon_or_probe_resp
 
#define ieee80211_disassoc   ieee80211_disassoc_or_deauth
 
#define ieee80211_deauth   ieee80211_disassoc_or_deauth
 
#define ieee80211_assoc_resp   ieee80211_assoc_or_reassoc_resp
 
#define ieee80211_reassoc_resp   ieee80211_assoc_or_reassoc_resp
 
#define IEEE80211_AUTH_OPEN_SYSTEM   0
 Open System authentication algorithm. More...
 
#define IEEE80211_AUTH_SHARED_KEY   1
 Shared Key authentication algorithm. More...
 

Functions

 FILE_LICENCE (GPL2_OR_LATER)
 
struct ieee80211_frame __attribute__ ((packed))
 
static size_t ieee80211_rsn_size (int npair, int nauth, int npmkid, int rsn_ie)
 Calculate necessary size of RSN information element. More...
 
static int ieee80211_ie_bound (union ieee80211_ie *ie, void *end)
 Check that 802.11 information element is bounded by buffer. More...
 
static union ieee80211_ieieee80211_next_ie (union ieee80211_ie *ie, void *end)
 Advance to next 802.11 information element. More...
 

Variables

u16 fc
 802.11 Frame Control field More...
 
u16 duration
 Microseconds to reserve link. More...
 
u8 addr1 [ETH_ALEN]
 Address 1 (immediate receiver) More...
 
u8 addr2 [ETH_ALEN]
 Address 2 (immediate sender) More...
 
u8 addr3 [ETH_ALEN]
 Address 3 (often "forward to") More...
 
u16 seq
 802.11 Sequence Control field More...
 
u8 data [0]
 Beginning of frame data. More...
 
u8 dsap
 Destination SAP ID. More...
 
u8 ssap
 Source SAP ID. More...
 
u8 ctrl
 Control information. More...
 
u8 oui [3]
 Organization code, usually 0. More...
 
u16 ethertype
 Ethernet Type field. More...
 
u8 id
 Information element ID. More...
 
u8 len
 Information element length. More...
 
char ssid [0]
 SSID data, not NUL-terminated. More...
 
u8 rates [0]
 Rates data, one rate per byte. More...
 
u8 current_channel
 Current channel number, 1-14. More...
 
u8 reg_ext_id
 Regulatory extension ID. More...
 
u8 reg_class_id
 Regulatory class ID. More...
 
u8 coverage_class
 Coverage class. More...
 
u8 first_channel
 Channel number for first channel in band. More...
 
u8 nr_channels
 Number of contiguous channels in band. More...
 
u8 max_txpower
 Maximum TX power in dBm. More...
 
union ieee80211_ie_country_triplet __attribute__
 
char name [2]
 ISO Alpha2 country code. More...
 
char in_out
 'I' for indoor, 'O' for outdoor More...
 
union ieee80211_ie_country_triplet triplet [0]
 List of regulatory triplets. More...
 
u8 request [0]
 List of IEs requested. More...
 
u8 challenge_text [0]
 Challenge Text data. More...
 
u8 power_constraint
 Decrease in allowed TX power, dBm. More...
 
u8 min_txpower
 Minimum possible TX power, dBm. More...
 
struct ieee80211_ie_channels_channel_band channels [0]
 List of (start, length) channel bands we can use. More...
 
u8 erp_info
 ERP flags. More...
 
u16 version
 RSN information element version. More...
 
u32 group_cipher
 Cipher ID for the cipher used in multicast/broadcast frames. More...
 
u16 pairwise_count
 Number of unicast ciphers supported. More...
 
u32 pairwise_cipher [1]
 List of cipher IDs for supported unicast frame ciphers. More...
 
u16 akm_count
 Number of authentication types supported. More...
 
u32 akm_list [1]
 List of authentication type IDs for supported types. More...
 
u16 rsn_capab
 Security capabilities field (RSN only) More...
 
u16 pmkid_count
 Number of PMKIDs included (present only in association frames) More...
 
u8 pmkid_list [0]
 List of PMKIDs included, each a 16-byte SHA1 hash. More...
 
u64 timestamp
 802.11 TSFT value at frame send More...
 
u16 beacon_interval
 Interval at which beacons are sent, in units of 1024 us. More...
 
u16 capability
 Capability flags. More...
 
union ieee80211_ie info_element [0]
 List of information elements. More...
 
u16 reason
 Reason code. More...
 
u16 listen_interval
 Interval at which we wake up, in units of the beacon interval. More...
 
u16 status
 Status code. More...
 
u16 aid
 Association ID. More...
 
u8 current_addr [ETH_ALEN]
 MAC address of current Access Point. More...
 
u16 algorithm
 Authentication algorithm (Open System or Shared Key) More...
 
u16 tx_seq
 Sequence number of this frame; first from client to AP is 1. More...
 

Detailed Description

Constants and data structures defined in IEEE 802.11, subsetted according to what iPXE knows how to use.

Definition in file ieee80211.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER  )

Variable Documentation

◆ fc

u16 fc

◆ duration

u16 duration

Microseconds to reserve link.

Definition at line 15 of file ieee80211.h.

Referenced by ath5k_txbuf_setup(), and usbhid_set_idle().

◆ addr1

u8 addr1

Address 1 (immediate receiver)

Definition at line 16 of file ieee80211.h.

◆ addr2

u8 addr2

Address 2 (immediate sender)

Definition at line 17 of file ieee80211.h.

◆ addr3

u8 addr3[ETH_ALEN]

Address 3 (often "forward to")

Definition at line 18 of file ieee80211.h.

◆ seq

u16 seq

◆ data

u8 data[0]

Beginning of frame data.

Vendor-specific data.

Definition at line 20 of file ieee80211.h.

◆ dsap

u8 dsap

Destination SAP ID.

Definition at line 15 of file ieee80211.h.

◆ ssap

u8 ssap

Source SAP ID.

Definition at line 16 of file ieee80211.h.

◆ ctrl

u8 ctrl

Control information.

Definition at line 17 of file ieee80211.h.

◆ oui

u32 oui

Organization code, usually 0.

OUI and vendor-specific type byte.

Definition at line 20 of file ieee80211.h.

◆ ethertype

u16 ethertype

Ethernet Type field.

Definition at line 21 of file ieee80211.h.

◆ id

u8 id

Information element ID.

Vendor-specific ID: 221.

ERP Information ID: 42.

Channels ID: 36.

Power Capability ID: 33.

Power Constraint ID: 52.

Challenge Text ID: 16.

Request ID: 10.

Country information ID: 7.

DS parameter ID: 3.

Rates ID: 1 or 50.

SSID ID: 0.

Definition at line 14 of file ieee80211.h.

◆ len

u8 len

Information element length.

Vendor-specific length: variable.

ERP Information length: 1.

Channels length: 2.

Power Capability length: 2.

Power Constraint length: 1.

Challenge Text length: usually 128.

Number of IEs requested.

Country information length: varies.

DS parameter length: 1.

Number of rates.

SSID length.

Definition at line 15 of file ieee80211.h.

◆ ssid

char ssid[0]

SSID data, not NUL-terminated.

Definition at line 16 of file ieee80211.h.

Referenced by net80211_check_settings_update(), net80211_probe_step(), and prism2_probe().

◆ rates

u8 rates[0]

Rates data, one rate per byte.

Definition at line 16 of file ieee80211.h.

Referenced by ath5k_get_rate_pcal_data(), and ath5k_setup_rate_powertable().

◆ current_channel

u8 current_channel

Current channel number, 1-14.

Definition at line 16 of file ieee80211.h.

◆ reg_ext_id

u8 reg_ext_id

Regulatory extension ID.

Definition at line 14 of file ieee80211.h.

◆ reg_class_id

u8 reg_class_id

Regulatory class ID.

Definition at line 15 of file ieee80211.h.

◆ coverage_class

u8 coverage_class

Coverage class.

Definition at line 16 of file ieee80211.h.

◆ first_channel

u8 first_channel

Channel number for first channel in band.

Channel number of first channel in band.

Definition at line 14 of file ieee80211.h.

◆ nr_channels

u8 nr_channels

Number of contiguous channels in band.

Number of channels in band.

Definition at line 15 of file ieee80211.h.

◆ max_txpower

u8 max_txpower

Maximum TX power in dBm.

Maximum possible TX power, dBm.

Definition at line 16 of file ieee80211.h.

◆ name

char name[2]

ISO Alpha2 country code.

Definition at line 16 of file ieee80211.h.

◆ in_out

char in_out

'I' for indoor, 'O' for outdoor

Definition at line 17 of file ieee80211.h.

◆ triplet

union ieee80211_ie_country_triplet triplet[0]

List of regulatory triplets.

Definition at line 20 of file ieee80211.h.

◆ request

u8 request[0]

◆ challenge_text

u8 challenge_text[0]

Challenge Text data.

Definition at line 16 of file ieee80211.h.

◆ power_constraint

u8 power_constraint

Decrease in allowed TX power, dBm.

Definition at line 16 of file ieee80211.h.

◆ min_txpower

u8 min_txpower

Minimum possible TX power, dBm.

Definition at line 16 of file ieee80211.h.

◆ channels

List of (start, length) channel bands we can use.

Definition at line 18 of file ieee80211.h.

Referenced by ath5k_copy_channels(), and net80211_filter_hw_channels().

◆ erp_info

u8 erp_info

ERP flags.

Definition at line 16 of file ieee80211.h.

◆ version

u16 version

RSN information element version.

Definition at line 21 of file ieee80211.h.

◆ group_cipher

u32 group_cipher

Cipher ID for the cipher used in multicast/broadcast frames.

Definition at line 24 of file ieee80211.h.

Referenced by wpa_make_rsn_ie().

◆ pairwise_count

u16 pairwise_count

Number of unicast ciphers supported.

Definition at line 27 of file ieee80211.h.

◆ pairwise_cipher

u32 pairwise_cipher[1]

List of cipher IDs for supported unicast frame ciphers.

Definition at line 30 of file ieee80211.h.

◆ akm_count

u16 akm_count

Number of authentication types supported.

Definition at line 33 of file ieee80211.h.

◆ akm_list

u32 akm_list[1]

List of authentication type IDs for supported types.

Definition at line 36 of file ieee80211.h.

◆ rsn_capab

u16 rsn_capab

Security capabilities field (RSN only)

Definition at line 39 of file ieee80211.h.

◆ pmkid_count

u16 pmkid_count

Number of PMKIDs included (present only in association frames)

Definition at line 42 of file ieee80211.h.

◆ pmkid_list

u8 pmkid_list[0]

List of PMKIDs included, each a 16-byte SHA1 hash.

Definition at line 45 of file ieee80211.h.

◆ timestamp

u64 timestamp

802.11 TSFT value at frame send

Definition at line 1030 of file ieee80211.h.

◆ beacon_interval

u16 beacon_interval

Interval at which beacons are sent, in units of 1024 us.

Definition at line 1033 of file ieee80211.h.

◆ capability

u16 capability

Capability flags.

Definition at line 1036 of file ieee80211.h.

◆ info_element

union ieee80211_ie info_element

List of information elements.

Definition at line 1039 of file ieee80211.h.

◆ reason

u16 reason

Reason code.

Definition at line 1030 of file ieee80211.h.

◆ listen_interval

u16 listen_interval

Interval at which we wake up, in units of the beacon interval.

Definition at line 1033 of file ieee80211.h.

◆ status

u16 status

Status code.

Definition at line 1033 of file ieee80211.h.

◆ aid

u16 aid

Association ID.

Definition at line 1036 of file ieee80211.h.

◆ current_addr

u8 current_addr[ETH_ALEN]

MAC address of current Access Point.

Definition at line 1036 of file ieee80211.h.

◆ algorithm

u16 algorithm

◆ tx_seq

u16 tx_seq

Sequence number of this frame; first from client to AP is 1.

Definition at line 1033 of file ieee80211.h.