The iPXE 802.11 MAC layer. More...
#include <ipxe/process.h>
#include <ipxe/ieee80211.h>
#include <ipxe/iobuf.h>
#include <ipxe/netdevice.h>
#include <ipxe/rc80211.h>
Go to the source code of this file.
The iPXE 802.11 MAC layer.
Definition in file net80211.h.
The maximum number of TX rates we allow to be configured simultaneously.
Definition at line 272 of file net80211.h.
Referenced by ath9k_config(), and net80211_process_ie().
The maximum number of channels we allow to be configured simultaneously.
Definition at line 275 of file net80211.h.
Referenced by net80211_add_channels(), and net80211_register().
Seconds we'll wait to get all fragments of a packet.
Definition at line 278 of file net80211.h.
Referenced by net80211_rx_frag().
The number of fragments we can receive at once.
The 802.11 standard requires that this be at least 3.
Definition at line 284 of file net80211.h.
Referenced by net80211_rx_frag().
Maximum TX power to allow (dBm), if we don't get a regulatory hint.
Definition at line 287 of file net80211.h.
Referenced by net80211_prepare_probe().
__table ( struct net80211_handshaker, \ "net80211_handshakers" )
Definition at line 675 of file net80211.h.
Referenced by net80211_prepare_assoc(), and sec80211_detect_ie().
Definition at line 677 of file net80211.h.
Definition at line 769 of file net80211.h.
Referenced by sec80211_detect_ie(), sec80211_install(), and wpa_find_cryptosystem().
Definition at line 770 of file net80211.h.
An 802.11 security handshaking protocol.
Definition at line 96 of file net80211.h.
{ /** No security handshaking * * This might be used with an open network or with WEP, as * WEP does not have a cryptographic handshaking phase. */ NET80211_SECPROT_NONE = 0, /** Pre-shared key handshaking * * This implements the "WPA Personal" handshake. 802.1X * authentication is not performed -- the user supplies a * pre-shared key directly -- but there is a 4-way handshake * between client and AP to verify that both have the same key * without revealing the contents of that key. */ NET80211_SECPROT_PSK = 1, /** Full EAP 802.1X handshaking * * This implements the "WPA Enterprise" handshake, connecting * to an 802.1X authentication server to provide credentials * and receive a pairwise master key (PMK), which is then used * in the same 4-way handshake as the PSK method. */ NET80211_SECPROT_EAP = 2, /** Dummy value used when the handshaking type can't be detected */ NET80211_SECPROT_UNKNOWN = 3, };
An 802.11 data encryption algorithm.
Definition at line 129 of file net80211.h.
{ /** No security, an "Open" network */ NET80211_CRYPT_NONE = 0, /** Network protected with WEP (awful RC4-based system) * * WEP uses a naive application of RC4, with a monotonically * increasing initialization vector that is prepended to the * key to initialize the RC4 keystream. It is highly insecure * and can be completely cracked or subverted using automated, * robust, freely available tools (aircrack-ng) in minutes. * * 40-bit and 104-bit WEP are differentiated only by the size * of the key. They may be advertised as 64-bit and 128-bit, * counting the non-random IV as part of the key bits. */ NET80211_CRYPT_WEP = 1, /** Network protected with TKIP (better RC4-based system) * * Usually known by its trade name of WPA (Wi-Fi Protected * Access), TKIP implements a message integrity code (MIC) * called Michael, a timestamp counter for replay prevention, * and a key mixing function that together remove almost all * the security problems with WEP. Countermeasures are * implemented to prevent high data-rate attacks. * * There exists one known attack on TKIP, that allows one to * send between 7 and 15 arbitrary short data packets on a * QoS-enabled network given about an hour of data * gathering. Since iPXE does not support QoS for 802.11 * networks, this is not a threat to us. The only other method * is a brute-force passphrase attack. */ NET80211_CRYPT_TKIP = 2, /** Network protected with CCMP (AES-based system) * * Often called WPA2 in commerce, or RSNA (Robust Security * Network Architecture) in the 802.11 standard, CCMP is * highly secure and does not have any known attack vectors. * Since it is based on a block cipher, the statistical * correlation and "chopchop" attacks used with great success * against WEP and minor success against TKIP fail. */ NET80211_CRYPT_CCMP = 3, /** Dummy value used when the cryptosystem can't be detected */ NET80211_CRYPT_UNKNOWN = 4, };
802.11 encryption key setting
Calculate duration field for a CTS control frame.
A CTS control frame's duration field captures the frame being protected and its 10-byte ACK.
Definition at line 1179 of file net80211.h.
References net80211_duration(), net80211_device::rate, net80211_device::rates, and net80211_device::rtscts_rate.
Referenced by ath5k_txbuf_setup(), and rtl818x_tx().
{ return ( net80211_duration ( dev, 10, dev->rates[dev->rtscts_rate] ) + net80211_duration ( dev, size, dev->rates[dev->rate] ) ); }