IBSS RSN: Add peer restart detection
authorAntonio Quartulli <antonio@open-mesh.com>
Sun, 21 Jul 2013 12:56:53 +0000 (15:56 +0300)
committerJouni Malinen <j@w1.fi>
Sun, 21 Jul 2013 12:56:53 +0000 (15:56 +0300)
commit13adc57b39091dc59372efbeb614b74310dd2e02
tree2df0695b7fb6c9c8d068b488de396c8739f737fb
parentb21990b4bbe4e5668cfe87228730420628b6de19
IBSS RSN: Add peer restart detection

To better support the IBSS/RSN mechanism, wpa_supplicant has to be able
to detect a possible peer reboot and in this case it should start a new
EAPOL handshake.

To perform such reboot detection wpa_supplicant has to perform an Open
Authentication by sending an Authentication frame and then replying to
it. IF an Authentication frame is received when the key have already
been exchanged, wpa_supplicant understands that the peer has rebooted
and can reset its state machine.

Whenever a new peer is added to the IBSS wpa_supplicant will start the
Open Authentication and only after having accomplished it will start the
key exchange. If the driver does not support Authentication frame
exchange initiated from user space, this step is skipped to maintain
previous behavior (just go through EAPOL-Key frame processing).

The Open Authentication was partly supported by the Linux kernel but now
wpa_supplicant can register for Authentication frames, handle it in
userspace and so avoid any possible race condition.

Signed-hostap: Nicolas Cavallari <cavallar@lri.fr>
Signed-hostap: Antonio Quartulli <antonio@open-mesh.com>
wpa_supplicant/events.c
wpa_supplicant/ibss_rsn.c
wpa_supplicant/ibss_rsn.h