[RFC 28/40] P2P: add station disassoc

Jouni Malinen j
Wed Mar 16 07:08:53 PDT 2011

On Wed, Jan 05, 2011 at 08:53:24PM +0100, Johannes Berg wrote:
> +int wpa_supplicant_ap_sta_disassociate(struct wpa_supplicant *wpa_s,
> +				       const u8 *sta, int reason_code)

I don't remember whether I already asked this, but do we really need
separate deauthenticate and disassociate commands exposed through D-Bus?
I don't really see much point in such a low-level design when the only
purpose I could think for this is to disconnect a P2P client from the

> +int wpas_p2p_disassociate(struct wpa_supplicant *wpa_s,
> +			  const u8 *sta, int reason_code)
> +{
> +	return wpa_supplicant_ap_sta_disassociate(wpa_s, sta, reason_code);
> +}

What is the reason for this P2P wrapper? More generic solution would
apply to any AP mode operation in wpa_supplicant and I don't see why
this would need to be limited to only P2P groups.

In addition, there is a higher level question of what exactly this
command is trying to accomplish. Please note that the P2P client that is
being deauthenticated or disassociated has all the credentials needed to
reconnect to the group and it will likely do so automatically. As such,
this command by itself does not really have any noticeable effect and I
would rather not expose it if it can cause confusion on the expected
behavior.. The only way to kick a station away from the group is to
revoke the PSK that is used to connect and then disconnect the station.
In practice, this can only be done be terminating and restarting the
group at this point. Though, I have been thinking of adding support for
per-STA PSKs into P2P groups to make it easier to properly remove a
station from the group without having to stop the group.

Jouni Malinen                                            PGP id EFC895FA

More information about the Hostap mailing list