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 这里设置 。