162306a36Sopenharmony_ci# 262306a36Sopenharmony_ci# This outlines the Linux authentication/association and 362306a36Sopenharmony_ci# deauthentication/disassociation flows. 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci# This can be converted into a diagram using the service 662306a36Sopenharmony_ci# at http://www.websequencediagrams.com/ 762306a36Sopenharmony_ci# 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciparticipant userspace 1062306a36Sopenharmony_ciparticipant mac80211 1162306a36Sopenharmony_ciparticipant driver 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cialt authentication needed (not FT) 1462306a36Sopenharmony_ciuserspace->mac80211: authenticate 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_cialt authenticated/authenticating already 1762306a36Sopenharmony_cimac80211->driver: sta_state(AP, not-exists) 1862306a36Sopenharmony_cimac80211->driver: bss_info_changed(clear BSSID) 1962306a36Sopenharmony_cielse associated 2062306a36Sopenharmony_cinote over mac80211,driver 2162306a36Sopenharmony_cilike deauth/disassoc, without sending the 2262306a36Sopenharmony_ciBA session stop & deauth/disassoc frames 2362306a36Sopenharmony_ciend note 2462306a36Sopenharmony_ciend 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_cimac80211->driver: config(channel, channel type) 2762306a36Sopenharmony_cimac80211->driver: bss_info_changed(set BSSID, basic rate bitmap) 2862306a36Sopenharmony_cimac80211->driver: sta_state(AP, exists) 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_cialt no probe request data known 3162306a36Sopenharmony_cimac80211->driver: TX directed probe request 3262306a36Sopenharmony_cidriver->mac80211: RX probe response 3362306a36Sopenharmony_ciend 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_cimac80211->driver: TX auth frame 3662306a36Sopenharmony_cidriver->mac80211: RX auth frame 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_cialt WEP shared key auth 3962306a36Sopenharmony_cimac80211->driver: TX auth frame 4062306a36Sopenharmony_cidriver->mac80211: RX auth frame 4162306a36Sopenharmony_ciend 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_cimac80211->driver: sta_state(AP, authenticated) 4462306a36Sopenharmony_cimac80211->userspace: RX auth frame 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciend 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ciuserspace->mac80211: associate 4962306a36Sopenharmony_cialt authenticated or associated 5062306a36Sopenharmony_cinote over mac80211,driver: cleanup like for authenticate 5162306a36Sopenharmony_ciend 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_cialt not previously authenticated (FT) 5462306a36Sopenharmony_cimac80211->driver: config(channel, channel type) 5562306a36Sopenharmony_cimac80211->driver: bss_info_changed(set BSSID, basic rate bitmap) 5662306a36Sopenharmony_cimac80211->driver: sta_state(AP, exists) 5762306a36Sopenharmony_cimac80211->driver: sta_state(AP, authenticated) 5862306a36Sopenharmony_ciend 5962306a36Sopenharmony_cimac80211->driver: TX assoc 6062306a36Sopenharmony_cidriver->mac80211: RX assoc response 6162306a36Sopenharmony_cinote over mac80211: init rate control 6262306a36Sopenharmony_cimac80211->driver: sta_state(AP, associated) 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_cialt not using WPA 6562306a36Sopenharmony_cimac80211->driver: sta_state(AP, authorized) 6662306a36Sopenharmony_ciend 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_cimac80211->driver: set up QoS parameters 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_cimac80211->driver: bss_info_changed(QoS, HT, associated with AID) 7162306a36Sopenharmony_cimac80211->userspace: associated 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_cinote left of userspace: associated now 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_cialt using WPA 7662306a36Sopenharmony_cinote over userspace 7762306a36Sopenharmony_cido 4-way-handshake 7862306a36Sopenharmony_ci(data frames) 7962306a36Sopenharmony_ciend note 8062306a36Sopenharmony_ciuserspace->mac80211: authorized 8162306a36Sopenharmony_cimac80211->driver: sta_state(AP, authorized) 8262306a36Sopenharmony_ciend 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ciuserspace->mac80211: deauthenticate/disassociate 8562306a36Sopenharmony_cimac80211->driver: stop BA sessions 8662306a36Sopenharmony_cimac80211->driver: TX deauth/disassoc 8762306a36Sopenharmony_cimac80211->driver: flush frames 8862306a36Sopenharmony_cimac80211->driver: sta_state(AP,associated) 8962306a36Sopenharmony_cimac80211->driver: sta_state(AP,authenticated) 9062306a36Sopenharmony_cimac80211->driver: sta_state(AP,exists) 9162306a36Sopenharmony_cimac80211->driver: sta_state(AP,not-exists) 9262306a36Sopenharmony_cimac80211->driver: turn off powersave 9362306a36Sopenharmony_cimac80211->driver: bss_info_changed(clear BSSID, not associated, no QoS, ...) 9462306a36Sopenharmony_cimac80211->driver: config(channel type to non-HT) 9562306a36Sopenharmony_cimac80211->userspace: disconnected 96