About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / networking / mac80211-auth-assoc-deauth.txt




Custom Search

Based on kernel version 3.13. Page generated on 2014-01-20 22:04 EST.

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
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.