Age | Commit message (Collapse) | Author |
|
add some RSNA authenticator state machine bits.
|
|
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.
|
|
Tx/Rx MIC for TKIP.
- add two functions to map a PTK and a GTK to an IEEE 802.11 key and
use them in ieee80211_input.c instead of duplicating the same code.
properly set Tx/Rx MIC in the IEEE 802.11 key in the case of TKIP.
- add ic_psk to struct ieee80211com to store the pre-shared key.
- fix setting of the SECURE bit in outgoing EAPOL-Key frames.
- when receiving msg 2 of the 4-way handshake, deauthenticate the
station if the RSN IE does not match that of the (Re)Association
request.
- before parsing an RSN or WPA IE, check that there's enough room for
the version field (2 bytes) which is mandatory.
- various tweaks while i'm here.
|
|
Even no bit was set we copied the full 225bytes bitmaks into the beacon.
Found the hard way with acx(4) by mglocker@ and myself.
OK mglocker@ damien@
|
|
a station is using WPA1 or RSN descriptors.
make sure that a station that advertises WPA1 capability in an IE
uses the WPA1 EAPOL-Key descriptor type and not the RSN one.
fix construction of EAPOL-Key frames for WPA1.
i can now successfuly complete a 4-way and group-key handshake
with both a WPA1 and a WPA2 access point.
add some TKIP encapsulation code (no SW crypto yet).
ok deraadt@
|
|
|
|
4-way handshake to ieee80211_send_4way_msg2().
|
|
|
|
this simplifies ieee80211_eapol_key_mic() and ieee80211_eapol_key_check_mic()
quite a bit.
set the EAPOL-Key body length before computing the MIC since the MIC is
computed with the 802.1X header too.
add a missing htons() while i'm here.
|
|
|
|
the 4-way and group-key handshake.
the state machine is still missing though so this is not used
anywhere yet.
|
|
add a parameter to ieee80211_decap() to handle different 802.11
header sizes.
cleanup and clarify ieee80211_classify().
|
|
ieee80211_get_cts_to_self() if mbuf allocation fails.
|
|
still very ugly but hopefully correct.
|
|
it has been #if 0'd since 3.9 and we have never supported this mode (no
ifconfig option etc...).
|
|
fixes my 1.36 commit (the bit should not be set for non-AP STA
only in Probe Responses and Beacons).
|
|
needed or not to the callers (instead of doing nothing in add_xrates).
|
|
vendor-specific IE.
|
|
add RSN IE to beacons, probe responses and (re)association requests.
|
|
a default ieee80211_set_tim() function that drivers can override
by setting ic_set_tim.
|
|
|
|
duplicate the same code multiple times.
add references to the spec for all these functions.
fixes beacon_alloc() for FH PHYs as a side-effect.
|
|
field if we're not operating as an AP (see 7.3.1.4).
|
|
|
|
the length is greater than MHLEN, test that the allocation succeeded.
Otherwise, free the mbuf header and return NULL.
Callers assume that if the function returns a value != NULL then
enough space has been allocated.
|
|
HIDENWID has been broken from the very beginning.
|
|
|
|
|
|
when QoS is supported and activated.
|
|
ieee80211_up_to_ac(): returns the access category to be used for
transmitting a frame with a given user priority.
ieee80211_classify(): returns the user-priority of an mbuf based
on VLAN 802.1D user-priority (if any) or IP TOS precedence field.
indent prototypes and add myself to the copyright list while i'm here.
|
|
use u_int{8,16,32}_t everywhere.
|
|
ok jsg@
|
|
not used yet.
ok jsg@ deraadt@
|
|
functions into the two drivers that use them (atw and rtw.)
this code is not generic enough to be used by other drivers and
there is no chance that it will ever be used in newer driver since
it supports 802.11b only.
plus, it hurts my eyes each time i look into ieee80211_output.c.
"fine with me as long as the logic doesn't change in the functions" jsg@
|
|
Choose the BSD license so that future enhancements will be BSD-only.
ok jsg@ reyk@ deraadt@
|
|
dual/multi mode chipset operation.
ok jsg@
|
|
- ieee80211_get_rts
- ieee80211_get_cts_to_self
that can be use by drivers for chipsets that don't offer hardware assisted
RTS/CTS protection (like ral/ural/rum).
"no objections here" jsg@
|
|
and "nwflag nobridge" to prevent inter-station communications.
"hidenwid" will also work with wi(4) to replace the old -E 3 option of
wicontrol.
ok damien@ jmc@
|
|
with IEEE Std 802.11g-2003 standard:
- add ERP Information Element in probe responses and beacons
- keep track of the number of associated non-ERP STAs and non-short slot
time capable STAs in the BSS
- enable use of RTS/CTS or CTS-to-self protection when required by the BSS
- add a ic_updateslot() callback to notify drivers of slot time changes
- cleanup computation of mgmt frames sizes in ieee80211_output.c
- nuke unnecessary <sys/cdefs.h> includes
- remove an unused macro (LOGICALLY_EQUAL) while i'm here
From {free,net}bsd, with additional fixes.
ok brad@, reyk@
|
|
fix some typos while i'm here.
ok reyk@ brad@
|
|
of duplicating the code.
last commit was ok reyk@
|
|
need to duplicate the code in wpi(4)
- fix ieee80211_alloc_beacon()
- clean two comments while i'm here
|
|
the remainder of the network stack from splimp to splnet.
ok miod@
|
|
"Please commit this diff ASAP" brad@
|
|
that they explicitly want it. What we have currently doesn't seem
to work anyway. Add support for specifying a status type when
sending managemnent frames; adapted from FreeBSD. OK jsg@
|
|
ok jsg@
|
|
ok reyk@
|
|
ok reyk@
|
|
doing a wholesale merge with them in future.
very enthusiastic ok from reyk@
|
|
IEEE802_11_RADIO data link types.
ok canacar@ damien@
|