fragattacks/src/ap
Jouni Malinen 1f0fdaf0e4 Fix race condition between AssocResp callback and 4addr event
It is apparently possible for the NL80211_CMD_UNEXPECTED_4ADDR_FRAME
event to be delivered to hostapd before the NL80211_CMD_FRAME_TX_STATUS
event for (Re)Association Response frame. This resulted in the 4-address
WDS mode not getting enabled for a STA. This could occur in particular
when operating under heavy load and the STA is reconnecting to the same
AP in a sequence where Deauthentication frame is followed immediately by
Authentication frame and the driver event processing gets delayed due to
removal of the previous netdev taking time in the middle of this
sequence.

Fix this by recording a pending item for 4-address WDS enabling if the
NL80211_CMD_UNEXPECTED_4ADDR_FRAME event would have been dropped due to
incompleted association and then process this pending item if the TX
status for the (Re)Association Response frame is received and it shows
that the frame was acknowledged.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
2016-12-20 01:30:09 +02:00
..
accounting.c Remove unused generation of Request Authenticator in Account-Request 2016-09-22 00:34:19 +03:00
accounting.h RADIUS: Use more likely unique accounting Acct-{,Multi-}Session-Id 2016-02-06 17:10:19 +02:00
acs.c ACS: Remove unreachable case from a debug print 2016-01-07 16:50:53 +02:00
acs.h Move declaration of hostapd_acs_completed() into correct header file 2013-12-31 19:34:43 +02:00
ap_config.c FILS: Separate FILS realm configuration from ERP domain 2016-12-17 22:08:23 +02:00
ap_config.h FILS: Separate FILS realm configuration from ERP domain 2016-12-17 22:08:23 +02:00
ap_drv_ops.c Check for driver initialization before doing driver operations 2016-08-19 16:08:00 +03:00
ap_drv_ops.h Check for driver initialization before doing driver operations 2016-08-19 16:08:00 +03:00
ap_list.c Move ap_list_timer() to use common AP periodic cleanup mechanism 2015-07-20 13:42:35 +03:00
ap_list.h Move ap_list_timer() to use common AP periodic cleanup mechanism 2015-07-20 13:42:35 +03:00
ap_mlme.c FILS: Do not clear PTK on FILS Auth/Assoc (AP) 2016-10-22 18:11:14 +03:00
ap_mlme.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
authsrv.c Server configuration for OCSP stapling with ocsp_multi (RFC 6961) 2015-12-22 19:42:07 +02:00
authsrv.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
beacon.c Add multicast to unicast support 2016-12-04 21:00:06 +02:00
beacon.h hostapd: Added signal level to STA tracking 2016-10-29 00:55:49 +03:00
bss_load.c AP: Add support for BSS load element (STA Count, Channel Utilization) 2014-10-21 23:25:48 +03:00
bss_load.h AP: Add support for BSS load element (STA Count, Channel Utilization) 2014-10-21 23:25:48 +03:00
ctrl_iface_ap.c Passive Client Taxonomy 2016-09-22 00:45:24 +03:00
ctrl_iface_ap.h Passive Client Taxonomy 2016-09-22 00:45:24 +03:00
dfs.c hostapd: Handle running out of DFS channels 2016-03-08 12:16:37 +02:00
dfs.h DFS offload: Add main DFS handler for offloaded case 2015-03-05 17:21:30 +02:00
dhcp_snoop.c dhcp_snoop: Silence a sparse warning 2016-06-24 19:02:58 +03:00
dhcp_snoop.h AP: Add support for Proxy ARP, DHCP snooping mechanism 2014-10-28 01:08:29 +02:00
drv_callbacks.c FT: Differentiate between FT for station and for AP in build 2016-10-29 22:14:54 +03:00
eap_user_db.c Improve error messages related to EAP DB 2015-03-28 13:16:26 +02:00
gas_serv.c FILS: Add support for building FILS Realm Information ANQP-element 2016-12-18 11:41:59 +02:00
gas_serv.h Interworking: Add support for configuring arbitrary ANQP-elements 2015-10-07 17:07:21 +03:00
hostapd.c Send "TERMINATING" event from hostapd 2016-12-12 20:32:28 +02:00
hostapd.h hostapd: Add a configuration to set an AP as stationary 2016-10-29 19:16:47 +03:00
hs20.c HS 2.0R2 AP: Add support for deauthentication request 2014-02-26 01:24:24 +02:00
hs20.h HS 2.0R2 AP: Add support for deauthentication request 2014-02-26 01:24:24 +02:00
hw_features.c Make debug print clearer for AP/mesh mode secondary channel issues 2016-12-13 15:09:15 +02:00
hw_features.h hostapd: Fix some compilation errors 2015-03-29 20:51:14 +03:00
iapp.c IAPP: Set SO_REUSEADDR on listening socket 2016-08-18 20:01:48 +03:00
iapp.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
ieee802_1x.c Use eloop timeout for post-EAP-Failure wait before disconnection 2016-12-08 18:56:02 +02:00
ieee802_1x.h FILS: Export IEEE 802.1X helper functions 2016-10-22 23:13:17 +03:00
ieee802_11_auth.c RADIUS: Fix possible memory leak when parsing per-STA passphrase 2016-04-08 11:19:40 +03:00
ieee802_11_auth.h VLAN: Separate station grouping and uplink configuration 2016-02-17 11:46:11 +02:00
ieee802_11_ht.c Fix CSA related IEs order 2015-10-03 21:01:47 +03:00
ieee802_11_shared.c FILS: Separate FILS realm configuration from ERP domain 2016-12-17 22:08:23 +02:00
ieee802_11_vht.c hostapd: Use stations nsts capability in (Re)Association Response frame 2016-09-05 21:14:40 +03:00
ieee802_11.c Fix race condition between AssocResp callback and 4addr event 2016-12-20 01:30:09 +02:00
ieee802_11.h FILS: Process FILS Authentication frame (AP) 2016-10-22 23:27:01 +03:00
Makefile Fix libap.a build 2016-11-16 13:26:23 +02:00
mbo_ap.c MBO: Do not parse reason_detail in non_pref_chan attr (AP) 2016-09-25 17:31:26 +03:00
mbo_ap.h MBO: Parse non-preferred channel list on the AP 2016-02-22 21:17:38 +02:00
ndisc_snoop.c ndisc_snoop: Include ndisc_snoop.h to check prototypes 2016-06-24 19:02:58 +03:00
ndisc_snoop.h proxyarp: Use C library header files and CONFIG_IPV6 2014-11-25 16:58:21 +02:00
neighbor_db.c hostapd: Add a configuration to set an AP as stationary 2016-10-29 19:16:47 +03:00
neighbor_db.h hostapd: Add a configuration to set an AP as stationary 2016-10-29 19:16:47 +03:00
p2p_hostapd.c Use P2P_IE_VENDOR_TYPE more consistently 2014-03-05 23:36:54 +02:00
p2p_hostapd.h Remove the GPL notification from files contributed by Atheros 2012-02-11 19:39:36 +02:00
peerkey_auth.c PeerKey: Clean up EAPOL-Key Key Data processing on AP 2014-11-23 21:03:40 +02:00
pmksa_cache_auth.c wpa_supplicant: Fix CONFIG_IBSS_RSN=y build without CONFIG_AP=y 2016-03-21 21:12:20 +02:00
pmksa_cache_auth.h PMKSA: Flush AP/mesh PMKSA cache by PMKSA_FLUSH command 2016-03-20 17:37:53 +02:00
preauth_auth.c Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
preauth_auth.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
rrm.c hostapd: Add a configuration to set an AP as stationary 2016-10-29 19:16:47 +03:00
rrm.h hostapd: Add FTM range request 2016-04-17 12:29:12 +03:00
sta_info.c Use eloop timeout for post-EAP-Failure wait before disconnection 2016-12-08 18:56:02 +02:00
sta_info.h Fix race condition between AssocResp callback and 4addr event 2016-12-20 01:30:09 +02:00
taxonomy.c taxonomy: Store Probe Request frames in hostapd_sta_info 2016-09-22 00:45:24 +03:00
taxonomy.h taxonomy: Store Probe Request frames in hostapd_sta_info 2016-09-22 00:45:24 +03:00
tkip_countermeasures.c AP: Use monotonic time for MMIC failure/TKIP countermeasures 2013-12-24 07:13:34 +02:00
tkip_countermeasures.h hostapd: Fix a regression in TKIP countermeasures processing 2012-11-18 13:06:03 +02:00
utils.c FST: Do not prune STAs belonging to the same FST 2015-07-16 18:26:15 +03:00
vlan_full.c Use a separate header file for Linux bridge interface definitions 2016-03-26 11:27:18 +02:00
vlan_ifconfig.c vlan: Move if_nametoindex() use out of vlan_init.c 2016-03-25 18:00:44 +02:00
vlan_init.c vlan: Move if_nametoindex() use out of vlan_init.c 2016-03-25 18:00:44 +02:00
vlan_init.h VLAN: Separate station grouping and uplink configuration 2016-02-17 11:46:11 +02:00
vlan_ioctl.c Use own header file for defining Linux VLAN kernel interface 2016-03-26 11:24:38 +02:00
vlan_util.c vlan: Remove unnecessary header includes from netlink implementation 2016-03-25 17:27:16 +02:00
vlan_util.h vlan: Move if_nametoindex() use out of vlan_init.c 2016-03-25 18:00:44 +02:00
vlan.c VLAN: Fix vlan_compare() for tagged VLANs 2016-02-22 19:53:05 +02:00
vlan.h radius: Add tagged VLAN parsing 2016-02-17 11:46:13 +02:00
wmm.c AP WMM: Fix integer underflow in WMM Action frame parser 2015-05-03 18:26:50 +03:00
wmm.h Remove obsolete license notifications 2013-12-24 22:59:52 +02:00
wnm_ap.c WNM: Fix a memory leak on AP error path 2016-02-22 19:53:05 +02:00
wnm_ap.h hostapd: Add MBO IE to BSS Transition Management Request frame 2016-02-22 19:53:04 +02:00
wpa_auth_ft.c FT: Differentiate between FT for station and for AP in build 2016-10-29 22:14:54 +03:00
wpa_auth_glue.c FT: Differentiate between FT for station and for AP in build 2016-10-29 22:14:54 +03:00
wpa_auth_glue.h Remove the GPL notification from files contributed by Jouni Malinen 2012-02-11 19:39:36 +02:00
wpa_auth_i.h FT: Differentiate between FT for station and for AP in build 2016-10-29 22:14:54 +03:00
wpa_auth_ie.c FT: Explicitly check for MDE not present in non-FT association 2016-11-26 11:39:44 +02:00
wpa_auth_ie.h FT: Differentiate between FT for station and for AP in build 2016-10-29 22:14:54 +03:00
wpa_auth.c FT: Differentiate between FT for station and for AP in build 2016-10-29 22:14:54 +03:00
wpa_auth.h FT: Differentiate between FT for station and for AP in build 2016-10-29 22:14:54 +03:00
wps_hostapd.c Share a single str_starts() implementation 2016-08-06 12:38:21 +03:00
wps_hostapd.h WPS NFC: Add AP mode connection handover report 2014-01-27 21:10:55 +02:00
x_snoop.c AP: Enable multicast snooping on bridge if ProxyARP IPv6 is in use 2015-04-13 14:00:32 +03:00
x_snoop.h AP: Add multicast-to-unicast conversion send for "x_snoop" 2014-11-19 16:25:13 +02:00