1 # 2 # This outlines the Linux authentication/association and 3 # deauthentication/disassociation flows. 4 # 5 # This can be converted into a diagram using the service 6 # at http://www.websequencediagrams.com/ 7 # 8 9 participant userspace 10 participant mac80211 11 participant driver 12 13 alt authentication needed (not FT) 14 userspace->mac80211: authenticate 15 16 alt authenticated/authenticating already 17 mac80211->driver: sta_state(AP, not-exists) 18 mac80211->driver: bss_info_changed(clear BSSID) 19 else associated 20 note over mac80211,driver 21 like deauth/disassoc, without sending the 22 BA session stop & deauth/disassoc frames 23 end note 24 end 25 26 mac80211->driver: config(channel, channel type) 27 mac80211->driver: bss_info_changed(set BSSID, basic rate bitmap) 28 mac80211->driver: sta_state(AP, exists) 29 30 alt no probe request data known 31 mac80211->driver: TX directed probe request 32 driver->mac80211: RX probe response 33 end 34 35 mac80211->driver: TX auth frame 36 driver->mac80211: RX auth frame 37 38 alt WEP shared key auth 39 mac80211->driver: TX auth frame 40 driver->mac80211: RX auth frame 41 end 42 43 mac80211->driver: sta_state(AP, authenticated) 44 mac80211->userspace: RX auth frame 45 46 end 47 48 userspace->mac80211: associate 49 alt authenticated or associated 50 note over mac80211,driver: cleanup like for authenticate 51 end 52 53 alt not previously authenticated (FT) 54 mac80211->driver: config(channel, channel type) 55 mac80211->driver: bss_info_changed(set BSSID, basic rate bitmap) 56 mac80211->driver: sta_state(AP, exists) 57 mac80211->driver: sta_state(AP, authenticated) 58 end 59 mac80211->driver: TX assoc 60 driver->mac80211: RX assoc response 61 note over mac80211: init rate control 62 mac80211->driver: sta_state(AP, associated) 63 64 alt not using WPA 65 mac80211->driver: sta_state(AP, authorized) 66 end 67 68 mac80211->driver: set up QoS parameters 69 70 mac80211->driver: bss_info_changed(QoS, HT, associated with AID) 71 mac80211->userspace: associated 72 73 note left of userspace: associated now 74 75 alt using WPA 76 note over userspace 77 do 4-way-handshake 78 (data frames) 79 end note 80 userspace->mac80211: authorized 81 mac80211->driver: sta_state(AP, authorized) 82 end 83 84 userspace->mac80211: deauthenticate/disassociate 85 mac80211->driver: stop BA sessions 86 mac80211->driver: TX deauth/disassoc 87 mac80211->driver: flush frames 88 mac80211->driver: sta_state(AP,associated) 89 mac80211->driver: sta_state(AP,authenticated) 90 mac80211->driver: sta_state(AP,exists) 91 mac80211->driver: sta_state(AP,not-exists) 92 mac80211->driver: turn off powersave 93 mac80211->driver: bss_info_changed(clear BSSID, not associated, no QoS, ...) 94 mac80211->driver: config(channel type to non-HT) 95 mac80211->userspace: disconnected
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.