wpa_supplicant中几种状态详解

文章详细描述了wpa_supplicant在处理无线网络连接过程中各个状态的转换,从WPA_DISCONNECTED到WPA_ASSOCIATED,再到WPA_4WAY_HANDSHAKE和WPA_COMPLETED的过程,涉及到的关键函数包括wpas_start_assoc_cb和wpa_supplicant_event_assoc等。
摘要由CSDN通过智能技术生成

rfkill用法:
https://man7.org/linux/man-pages/man8/rfkill.8.html

位置: external/wpa_supplicant_8/src/common/defs.h

const char * wpa_supplicant_state_txt(enum wpa_states state)
{
	switch (state) {
	case WPA_DISCONNECTED:
		return "DISCONNECTED";
	case WPA_INACTIVE:
		return "INACTIVE";
	case WPA_INTERFACE_DISABLED:
		return "INTERFACE_DISABLED";
	case WPA_SCANNING:
		return "SCANNING";
	case WPA_AUTHENTICATING:
		return "AUTHENTICATING";
	case WPA_ASSOCIATING:
		return "ASSOCIATING";
	case WPA_ASSOCIATED:
		return "ASSOCIATED";
	case WPA_4WAY_HANDSHAKE:
		return "4WAY_HANDSHAKE";
	case WPA_GROUP_HANDSHAKE:
		return "GROUP_HANDSHAKE";
	case WPA_COMPLETED:
		return "COMPLETED";
	default:
		return "UNKNOWN";
	}
}

WPA_DISCONNECTED -> WPA_ASSOCIATING
在 wpas_start_assoc_cb 函数中,在调用 wpa_driver_nl80211_associate之前设置。就是在发送命令NL80211_CMD_ASSOCIATE和NL80211_CMD_CONNECT之前设置。

** WPA_ASSOCIATING -> WPA_ASSOCIATED**
wpa_supplicant_event_assoc 函数中设置。
在wpa_supplicant_event 函数收到 EVENT_ASSOC事件时调用 wpa_supplicant_event_assoc 。
就是收到驱动的信息 NL80211_CMD_CONNECT和 NL80211_CMD_ASSOCIATE 。

WPA_ASSOCIATED -> WPA_4WAY_HANDSHAKE

wpa_sm_rx_eapol
wpa_supplicant_process_1_of_4

后面研究 。

WPA_4WAY_HANDSHAKE -> WPA_4WAY_HANDSHAKE
wpa_supplicant_process_3_of_4

WPA_4WAY_HANDSHAKE -> WPA_GROUP_HANDSHAKE

wpa_supplicant_process_1_of_2 wpa_supplicant_process_3_of_4

WPA_GROUP_HANDSHAKE -> WPA_COMPLETED

在 wpa_supplicant_key_neg_complete 这里设置 。

后面补充 。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值