Beispiel #1
0
/*
 * This function deauthenticates/disconnects from a BSS.
 *
 * In case of infra made, it sends deauthentication request, and
 * in case of ad-hoc mode, a stop network request is sent to the firmware.
 * In AP mode, a command to stop bss is sent to firmware.
 */
int mwifiex_deauthenticate(struct mwifiex_private *priv, u8 *mac)
{
	int ret = 0;

	if (!priv->media_connected)
		return 0;

	switch (priv->bss_mode) {
	case NL80211_IFTYPE_STATION:
	case NL80211_IFTYPE_P2P_CLIENT:
		ret = mwifiex_deauthenticate_infra(priv, mac);
		if (ret)
			cfg80211_disconnected(priv->netdev, 0, NULL, 0,
					      GFP_KERNEL);
		break;
	case NL80211_IFTYPE_ADHOC:
		return mwifiex_send_cmd_sync(priv,
					     HostCmd_CMD_802_11_AD_HOC_STOP,
					     HostCmd_ACT_GEN_SET, 0, NULL);
	case NL80211_IFTYPE_AP:
		return mwifiex_send_cmd_sync(priv, HostCmd_CMD_UAP_BSS_STOP,
					     HostCmd_ACT_GEN_SET, 0, NULL);
	default:
		break;
	}

	return ret;
}
/*
 * This function deauthenticates/disconnects from a BSS.
 *
 * In case of infra made, it sends deauthentication request, and
 * in case of ad-hoc mode, a stop network request is sent to the firmware.
 */
int mwifiex_deauthenticate(struct mwifiex_private *priv, u8 *mac)
{
	int ret = 0;

	if (priv->media_connected) {
		if (priv->bss_mode == NL80211_IFTYPE_STATION) {
			ret = mwifiex_deauthenticate_infra(priv, mac);
		} else if (priv->bss_mode == NL80211_IFTYPE_ADHOC) {
			ret = mwifiex_send_cmd_sync(priv,
						HostCmd_CMD_802_11_AD_HOC_STOP,
						HostCmd_ACT_GEN_SET, 0, NULL);
		}
	}

	return ret;
}
Beispiel #3
0
/*
 * This function deauthenticates/disconnects from a BSS.
 *
 * In case of infra made, it sends deauthentication request, and
 * in case of ad-hoc mode, a stop network request is sent to the firmware.
 * In AP mode, a command to stop bss is sent to firmware.
 */
int mwifiex_deauthenticate(struct mwifiex_private *priv, u8 *mac)
{
	if (!priv->media_connected)
		return 0;

	switch (priv->bss_mode) {
	case NL80211_IFTYPE_STATION:
		return mwifiex_deauthenticate_infra(priv, mac);
	case NL80211_IFTYPE_ADHOC:
		return mwifiex_send_cmd_sync(priv,
					     HostCmd_CMD_802_11_AD_HOC_STOP,
					     HostCmd_ACT_GEN_SET, 0, NULL);
	case NL80211_IFTYPE_AP:
		return mwifiex_send_cmd_sync(priv, HostCmd_CMD_UAP_BSS_STOP,
					     HostCmd_ACT_GEN_SET, 0, NULL);
	default:
		break;
	}

	return 0;
}