summaryrefslogtreecommitdiff
path: root/sys/net80211
AgeCommit message (Collapse)Author
2008-08-02do not use IEEE80211_QOS_TID. its definition in ieee80211.h isDamien Bergamini
wrong. hard-code 0xf for now. will be fixed post-release.
2008-08-02do not touch m after it has been enqueued with IFQ_ENQUEUE().Damien Bergamini
copy m_pkthdr.len and m_flags before and use that after to update the statistics. from altq(4) man page and for consistency with what is done in other parts of the tree.
2008-08-02print the correct value in a debug message.Damien Bergamini
2008-08-02typo in a comment. no binary change.Damien Bergamini
2008-08-02Drop frames that are received unencrypted when WEP is on or whenDamien Bergamini
WPA is on and RX protection for TA is on. Keep track of the TX/RX protection for each node when WPA is on. tested by djm@ (ral+wpa), ckuethe@ (ath-noenc) and krw@ (wpi<->ral+wpa). hints from bluhm@ has been in snaps for a few days. pointed out by bluhm@ something like 1 year ago but we did not have the right infrastructure to fix it properly at that time. ok deraadt@
2008-07-28ignore PS mode changes and PS-Poll from non-associated STAs.Damien Bergamini
keep track of the number of associated STAs in PS mode.
2008-07-28missing "goto err".Damien Bergamini
fix IEEE80211_DEBUG builds.
2008-07-27sanitize RX path a bit.Damien Bergamini
make sure drivers pass a contiguous header, check header length earlier. fix checking of frames sequence number for frames containing an Address 4 field (required for future work). fix processing of control frames (only pspoll for now).
2008-07-27s/IEEE80211_DPRINTF/DPRINTF/Damien Bergamini
automatically prepend __func__ to output. deobfuscates debug messages a bit. no binary change unless compiled with IEEE80211_DEBUG.
2008-07-27remove unused structures and duplicated definitions.Damien Bergamini
remove clause 3 of license while I'm here (from FreeBSD).
2008-07-26shrink ieee80211_set_link_state().Damien Bergamini
2008-07-26remove useless #includes.Damien Bergamini
2008-07-26properly handle management frames (required for future work).Damien Bergamini
remove useless #includes.
2008-07-26call Phase1 every 2**16 frames instead of calling it for every frame.Damien Bergamini
properly handle frames with an address 4 field (required for future work). remove useless #includes.
2008-07-23Fix a blatant misuse of MINCLSIZE I introduced in ieee80211_output.c r1.59Damien Bergamini
The bug was added on 04/16 but it started to show up only after 06/12 when the value of MINCLSIZE was changed to something different from MHLEN + 1. Thanks to dlg@ and giovanni (qgiovanni at gmail dot com) for putting me on the right track. Tested by giovanni. Should fix system/5881 too.
2008-07-21add ieee80211_priv.h file: contains definitions private to net80211.Damien Bergamini
this must not be included by drivers.
2008-07-21move processing of EAPOL frames away from ieee80211_{input,output}.cDamien Bergamini
2008-07-21instead of passing rx tstamp and rssi to the ieee80211_input function,Damien Bergamini
pass a pointer to an ieee80211_rxinfo structure containing those two fields plus an extra flags field that indicates whether the frame was decrypted by hardware or not. required for a future fix.
2008-06-16remove now useless casts since the rijndael_* protos have beenDamien Bergamini
constified.
2008-06-09rename arc4random_bytes => arc4random_buf to match libc's nicer name;Damien Miller
ok deraadt@
2008-04-26move things from ieee80211_ifattach() to ieee80211_crypto_attach().Damien Bergamini
2008-04-26small optimization of TKIP mixing phase 2 (for little-endian architectures).Damien Bergamini
2008-04-26unbreak hostap mode.Damien Bergamini
do not parse RSN IE from beacons/probe responses if not scanning.
2008-04-21move ieee80211_ibss_merge() from ieee80211_input.c to ieee80211_node.cDamien Bergamini
2008-04-21move ieee80211_auth_open() to ieee80211_proto.cDamien Bergamini
move ieee80211_setup_rates() to ieee80211_node.c move some prototypes from ieee80211_proto.h to ieee80211_crypto.h
2008-04-21refuse association requests containing a wildcard SSID.Damien Bergamini
2008-04-21- do not process ethernet PAE frames if RSN is not enabledDamien Bergamini
- add a ieee80211_recv_action() function (will be used later) - some cleanup, remove unused prototypes, get rid of the IEEE80211_VERIFY_* macros
2008-04-21Some WPA1+WPA2 APs include both a WPA and an RSN IE in message 3 of theDamien Bergamini
4-way handshake, regardless of what protocol the supplicant is using. Ignore the IEs we don't care about instead of deauthenticating with a reason code of 'RSN_DIFFERENT_IE'.
2008-04-18extend the if_ethersubr.c crc functions to support updating a runningDamien Miller
crc in addition to the existing "oneshot" mode and use them to replace ieee80211_crc_update() with the new ether_crc32_le_update(). Saves 1k kernel bss + some code. Mark the new ether_crc32_[lb]e_update functions as __pure for a ~25x speedup (on my i386 at least). feedback and ok damien@
2008-04-17call ieee80211_crc_init() only once, when the first 802.11 deviceDamien Bergamini
attaches instead of at every attach. discussed with deraadt@
2008-04-16Kernel implementation of the 4-way handshake and group-keyDamien Bergamini
handshake protocols (both supplicant and authenticator state machines) as defined in the IEEE 802.11i standard. Software implementation of the TKIP (Temporal Key Integrity Protocol) and CCMP (CTR with CBC-MAC Protocol) protocols. This diff doesn't implement any of the 802.1X authentication protocols and thus only PSK authentication (using pre-shared keys) is currently supported. In concrete terms, this adds support for WPA-PSK and WPA2-PSK protocols, both in station and hostap modes. The following drivers are marked as WPA-capable and should work: bwi(4), malo(4), ral(4), iwn(4), wpi(4), ural(4), rum(4), upgt(4), and zyd(4) The following options have been added to ifconfig(8): wpa, wpapsk, wpaprotos, wpaakms, wpaciphers, wpagroupcipher wpa-psk(8) can be used to generate keys from passphrases. tested by many@ ok deraadt@
2007-11-25return ENOTTY not EINVAL for an unknown ioctl.Brad Smith
ok reyk@ deraadt@ jsg@ dlg@
2007-11-17make it clear in the code and in the man page that the rate2plcp andDamien Bergamini
plcp2rate functions use plcp codes in most-significant-bit-first format (R4-R1). some drivers like wpi(4) and iwn(4) want plcp codes in lsb-first format so they can't use those functions. also the IEEE standard uses R1-R4 notation so this can be a bit confusing for those refering to it. use u_int8_t for plcp code and rate instead of int.
2007-11-14Add ieee80211_rate2plcp() and ieee80211_plcp2rate() functions, whichMarcus Glocker
convert the PLCP header signal field to a rate value and vice versa. This implementation has been discussed with Damien and doesn't change any existing net80211 structures. ok damien@
2007-11-03Revert last commit which added ieee80211_rate2plcp() andMarcus Glocker
ieee80211_plcp2rate() because I've got a late feedback from Damien that he dislike the implementation method a lot.
2007-11-01Add ieee80211_rate2plcp() and ieee80211_plcp2rate() functions.Marcus Glocker
Help and OK reyk@
2007-10-29MALLOC/FREE -> malloc/freeCharles Longeau
ok krw@
2007-10-08Get trunk(4) working again with 802.11 devices. Spotted by ajacoutot@.Marcus Glocker
Diff has been done in co-work with damien@, jsg@, reyk@, and claudio@. OK damien@
2007-09-18arc4random_bytes() is the preferred interface for generating nonces;Damien Miller
"looks ok" markus@
2007-09-15realy -> really in comments. Most reported on tech@ by Jung.Kenneth R Westerback
2007-09-11remove horrid casts now that SHA1Update() has been constified.Damien Bergamini
2007-09-07use new malloc M_ZERO flag + replace MALLOC with mallocDamien Bergamini
2007-08-29typo in a macro (fortunately unused): 0c00 -> 0x00Damien Bergamini
2007-08-29- use ieee80211_get_hdrlen() where appropriate.Damien Bergamini
- discard all EAPOL-Key frames with an unknown descriptor version. - when receiving message 3/4 of the 4-way handshake, do not install the PTK if the INSTALL bit is not set. this fixes 4-way handshake with APs using group keys only. - similarly, do not mark the 802.1X port as valid if the SECURE bit is not set (it will be marked as valid after group key handshake).
2007-08-27rework ieee80211_recv_4way_msg2() function.Damien Bergamini
add some RSNA authenticator state machine bits.
2007-08-27Checking the MIC early in ieee80211_recv_eapol() does not work forDamien Bergamini
message 2/4 of the 4-way handshake because the authenticator must derive the PTK first (the MIC is computed using the KCK). Move calls to ieee80211_eapol_key_check_mic() - and as a consequence ieee80211_eapol_key_decrypt() - directly in the ieee80211_recv_{group,4way}_msg*() functions. Unconstify the first parameter since checking the MIC modifies the frame. Remove ni->ni_ptk_ok field while i'm here.
2007-08-23add a new ieee80211_save_ie() function to make a copy of anDamien Bergamini
information element in a management frame. the authenticator has to make a copy of the RSN/WPA1 IE from (Re)Association requests so that it can be compared with the one included in message 2/4 of the 4-way handshake.
2007-08-23add ieee80211_get_hdrlen() to compute the size of the 802.11 headerDamien Bergamini
of a management or data frame (check if the i_qos, i_ht or i_addr4 are present).
2007-08-23the authenticator can't differentiate 4-way handshake message 2 fromDamien Bergamini
message 4 based on the EAPOL-Key frame secure bit. the only thing that differentiate these messages is the presence of the RSN/WPA1 IE in the EAPOL-Key frame data field. only message 2/4 contains this IE.
2007-08-23add pseudo-header definition for TKIP MIC computation.Damien Bergamini