1. 程式人生 > >wpa_supplicant 狀態機的切換以及事件驅動

wpa_supplicant 狀態機的切換以及事件驅動

  1. WIFI事件型別  
  2. pre-shared key may be incorrect  認證密碼錯誤  
  3. EVENT_ASSOC_TIMED_OUT 連線超時  
  4. EVENT_AUTH_TIMED_OUT  認證超時  
  5. EVENT_SCAN_RESULTS 掃描完成,返回掃描結果  
  6. EVENT_AUTH 認證完成事件  
  7. EVENT_DEAUTH 認證解除  
  8. EVENT-STATE-CHANGE 狀態機變化事件  
  9. enum wpa_event_type   
  10. {  
  11.     EVENT_ASSOC,  
  12.     EVENT_DISASSOC,  
  13.     EVENT_MICHAEL_MIC_FAILURE,  
  14.     EVENT_SCAN_RESULTS,//【掃描結果】
  15.     EVENT_ASSOCINFO,//【連線資訊】
  16.     EVENT_INTERFACE_STATUS, //【網絡卡狀態】
  17.     EVENT_PMKID_CANDIDATE,  
  18.     EVENT_STKSTART,  
  19.     EVENT_TDLS,  
  20.     EVENT_FT_RESPONSE,  
  21.     EVENT_IBSS_RSN_START,  
  22.     EVENT_AUTH, //【認證成功】
  23.     EVENT_DEAUTH, //【認證解除】
  24.     EVENT_ASSOC_REJECT, //【拒絕連線】
  25.     EVENT_AUTH_TIMED_OUT, //【認證超時】
  26.     EVENT_ASSOC_TIMED_OUT,//【連線超時】
  27.     EVENT_WPS_BUTTON_PUSHED,  
  28.     EVENT_TX_STATUS,  
  29.     EVENT_RX_FROM_UNKNOWN,  
  30.     EVENT_RX_MGMT,  
  31.     EVENT_REMAIN_ON_CHANNEL,  
  32.     EVENT_CANCEL_REMAIN_ON_CHANNEL,  
  33.     EVENT_RX_PROBE_REQ,  
  34.     EVENT_NEW_STA,  
  35.     EVENT_EAPOL_RX,  
  36.     EVENT_SIGNAL_CHANGE,//【訊號變化】
  37.     EVENT_INTERFACE_ENABLED,  
  38.     EVENT_INTERFACE_DISABLED, //【網絡卡介面不可用】
  39.     EVENT_CHANNEL_LIST_CHANGED,  
  40.     EVENT_INTERFACE_UNAVAILABLE,  
  41.     EVENT_BEST_CHANNEL,  
  42.     EVENT_UNPROT_DEAUTH,  
  43.     EVENT_UNPROT_DISASSOC,  
  44.     EVENT_STATION_LOW_ACK,  
  45.     EVENT_IBSS_PEER_LOST,  
  46.     EVENT_DRIVER_GTK_REKEY,  
  47.     EVENT_SCHED_SCAN_STOPPED,  
  48.     EVENT_DRIVER_CLIENT_POLL_OK,  
  49.     EVENT_EAPOL_TX_STATUS,  
  50.     EVENT_CH_SWITCH,  
  51.     EVENT_WNM,  
  52.     EVENT_CONNECT_FAILED_REASON,  
  53.     EVENT_DFS_RADAR_DETECTED,  
  54.     EVENT_DFS_CAC_FINISHED,  
  55.     EVENT_DFS_CAC_ABORTED,  
  56.     EVENT_DFS_NOP_FINISHED,  
  57.     EVENT_SURVEY,  
  58.     EVENT_SCAN_STARTED, //【開始掃描】
  59.     EVENT_AVOID_FREQUENCIES,  
  60.     EVENT_NEW_PEER_CANDIDATE,  
  61.     EVENT_ACS_CHANNEL_SELECTED,  
  62.     EVENT_DFS_CAC_STARTED,  
  63. }  


  1. <p><span style="font-family: Arial, Helvetica, sans-serif;">wpa_supplicant 狀態機的切換</span></p>adb logcat | findstr "wpa_supplicant:.wlan0:.State:"
  2. 1.一次開啟WIFI自動連線的過程  
  3. 09-29 20:53:59.796  4882  4882 D wpa_supplicant: wlan0: State: DISCONNECTED -> DISCONNECTED  
  4. 09-29 20:54:00.155  4882  4882 D wpa_supplicant: wlan0: State: DISCONNECTED -> DISCONNECTED  
  5. 09-29 20:54:00.891  4882  4882 D wpa_supplicant: wlan0: State: DISCONNECTED -> SCANNING  
  6. 09-29 20:54:02.369  4882  4882 D wpa_supplicant: wlan0: State: SCANNING -> ASSOCIATING  
  7. 09-29 20:54:02.415  4882  4882 D wpa_supplicant: wlan0: State: ASSOCIATING -> ASSOCIATED  
  8. 09-29 20:54:02.469  4882  4882 D wpa_supplicant: wlan0: State: ASSOCIATED -> 4WAY_HANDSHAKE  
  9. 09-29 20:54:02.502  4882  4882 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->4WAY_HANDSHAKE  
  10. 09-29 20:54:02.522  4882  4882 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->GROUP_HANDSHAKE  
  11. 09-29 20:54:02.529  4882  4882 D wpa_supplicant: wlan0: State: GROUP_HANDSHAKE -> COMPLETED  
  12. 2.手動關閉WIFI的過程  
  13. 09-29 20:56:08.605  5306  5306 D wpa_supplicant: wlan0: State: COMPLETED -> DISCONNECTED  
  14. 09-29 20:56:08.606  5306  5306 D wpa_supplicant: wlan0: State: DISCONNECTED -> DISCONNECTED  
  15. 3.開啟WIFI 自動連線 手動關閉WIFI全過程  
  16. 09-29 20:57:25.864  5835  5835 D wpa_supplicant: wlan0: State: DISCONNECTED -> DISCONNECTED  
  17. 09-29 20:57:26.556  5835  5835 D wpa_supplicant: wlan0: State: DISCONNECTED -> SCANNING  
  18. 09-29 20:57:27.962  5835  5835 D wpa_supplicant: wlan0: State: SCANNING -> ASSOCIATING  
  19. 09-29 20:57:28.020  5835  5835 D wpa_supplicant: wlan0: State: ASSOCIATING -> ASSOCIATED  
  20. 09-29 20:57:28.060  5835  5835 D wpa_supplicant: wlan0: State: ASSOCIATED -> 4WAY_HANDSHAKE  
  21. 09-29 20:57:28.070  5835  5835 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE -> 4WAY_HANDSHAKE  
  22. 09-29 20:57:28.074  5835  5835 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE -> GROUP_HANDSHAKE  
  23. 09-29 20:57:28.078  5835  5835 D wpa_supplicant: wlan0: State: GROUP_HANDSHAKE -> COMPLETED  
  24. 09-29 20:57:36.513  5835  5835 D wpa_supplicant: wlan0: State: COMPLETED -> DISCONNECTED  
  25. 09-29 20:57:36.513  5835  5835 D wpa_supplicant: wlan0: State: DISCONNECTED -> DISCONNECTED  
  26. 4.開啟WIFI 自動連線到一個開放的WIFI 需要認證才能登陸  
  27. 09-29 21:00:52.246  7207  7207 D wpa_supplicant: wlan0: State: DISCONNECTED -> INACTIVE  
  28. 09-29 21:00:52.328  7207  7207 D wpa_supplicant: wlan0: State: INACTIVE -> DISCONNECTED  
  29. 09-29 21:00:52.605  7207  7207 D wpa_supplicant: wlan0: State: DISCONNECTED -> DISCONNECTED  
  30. 09-29 21:00:53.088  7207  7207 D wpa_supplicant: wlan0: State: DISCONNECTED -> SCANNING  
  31. 09-29 21:00:57.258  7207  7207 D wpa_supplicant: wlan0: State: SCANNING -> DISCONNECTED  
  32. 09-29 21:00:58.702  7207  7207 D wpa_supplicant: wlan0: State: DISCONNECTED -> SCANNING  
  33. 09-29 21:01:01.069  7207  7207 D wpa_supplicant: wlan0: State: SCANNING -> ASSOCIATING  
  34. 09-29 21:01:01.125  7207  7207 D wpa_supplicant: wlan0: State: ASSOCIATING -> ASSOCIATED  
  35. 09-29 21:01:01.127  7207  7207 D wpa_supplicant: wlan0: State: ASSOCIATED -> COMPLETED  
  36. 5.開啟WIFI 未連線任何網路的情況   一直點選Scan也未切換狀態  
  37. 09-29 21:03:53.376  8183  8183 D wpa_supplicant: wlan0: State: DISCONNECTED -> DISCONNECTED  
  38. 09-29 21:03:53.644  8183  8183 D wpa_supplicant: wlan0: State: DISCONNECTED -> DISCONNECTED  
  39. 09-29 21:03:53.999  8183  8183 D wpa_supplicant: wlan0: State: DISCONNECTED -> SCANNING  
  40. 09-29 21:03:58.134  8183  8183 D wpa_supplicant: wlan0: State: SCANNING -> DISCONNECTED  
  41. 09-29 21:03:59.755  8183  8183 D wpa_supplicant: wlan0: State: DISCONNECTED -> SCANNING  
  42. 6.WIFI已經開啟手動輸入AP熱點密碼連線的過程  
  43. 09-29 21:06:46.472  8183  8183 D wpa_supplicant: wlan0: State: SCANNING -> ASSOCIATING  
  44. 09-29 21:06:46.534  8183  8183 D wpa_supplicant: wlan0: State: ASSOCIATING -> ASSOCIATED  
  45. 09-29 21:06:46.545  8183  8183 D wpa_supplicant: wlan0: State: ASSOCIATED -> 4WAY_HANDSHAKE  
  46. 09-29 21:06:46.557  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->4WAY_HANDSHAKE  
  47. 09-29 21:06:46.559  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->GROUP_HANDSHAKE  
  48. 09-29 21:06:46.561  8183  8183 D wpa_supplicant: wlan0: State: GROUP_HANDSHAKE -> COMPLETED  
  49. 7.WIFI已經開啟手動輸入AP熱點【錯誤】密碼連線的過程  
  50. 09-29 21:09:09.160  8183  8183 D wpa_supplicant: wlan0: State: SCANNING -> ASSOCIATING  
  51. 09-29 21:09:09.231  8183  8183 D wpa_supplicant: wlan0: State: ASSOCIATING -> ASSOCIATED  
  52. 09-29 21:09:09.270  8183  8183 D wpa_supplicant: wlan0: State: ASSOCIATED -> 4WAY_HANDSHAKE  
  53. 09-29 21:09:12.599  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->4WAY_HANDSHAKE 【第一次密碼握手錯誤】  
  54. 09-29 21:09:14.806  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->4WAY_HANDSHAKE  
  55. 09-29 21:09:17.256  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->4WAY_HANDSHAKE  
  56. ==================================連線正確的LOG↓==================================  
  57. 09-29 21:06:46.557  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->4WAY_HANDSHAKE  
  58. 09-29 21:06:46.559  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->GROUP_HANDSHAKE  
  59. 得出結論: 當密碼錯誤的時候 wpa_supplicant 狀態機 會連續retry三次執行 4WAY_HANDSHAKE ->4WAY_HANDSHAKE 過程  
  60. ==================================連線正確的LOG↑==================================  
  61. 【三次4WAY_HANDSHAKE都失敗後 狀態機會從 4WAY_HANDSHAKE 狀態 切換為 DISCONNECTED 狀態】  
  62. 09-29 21:09:19.291  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->DISCONNECTED    
  63. 09-29 21:09:19.302  8183  8183 D wpa_supplicant: wlan0: State: DISCONNECTED -> DISCONNECTED  
  64. 09-29 21:09:19.894  8183  8183 D wpa_supplicant: wlan0: State: DISCONNECTED -> SCANNING  
  65. 09-29 21:09:22.328  8183  8183 D wpa_supplicant: wlan0: State: SCANNING -> ASSOCIATING  
  66. 09-29 21:09:22.393  8183  8183 D wpa_supplicant: wlan0: State: ASSOCIATING -> ASSOCIATED  
  67. 09-29 21:09:22.440  8183  8183 D wpa_supplicant: wlan0: State: ASSOCIATED -> 4WAY_HANDSHAKE  
  68. 09-29 21:09:25.256  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->4WAY_HANDSHAKE【第二次密碼握手錯誤】  
  69. 09-29 21:09:26.255  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->4WAY_HANDSHAKE  
  70. 09-29 21:09:29.247  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->4WAY_HANDSHAKE  
  71. 09-29 21:09:32.444  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->DISCONNECTED  
  72. 09-29 21:09:32.469  8183  8183 D wpa_supplicant: wlan0: State: DISCONNECTED -> DISCONNECTED  
  73. 09-29 21:09:32.872  8183  8183 D wpa_supplicant: wlan0: State: DISCONNECTED -> SCANNING  
  74. 09-29 21:09:35.325  8183  8183 D wpa_supplicant: wlan0: State: SCANNING -> ASSOCIATING  
  75. 09-29 21:09:35.396  8183  8183 D wpa_supplicant: wlan0: State: ASSOCIATING -> ASSOCIATED  
  76. 09-29 21:09:35.451  8183  8183 D wpa_supplicant: wlan0: State: ASSOCIATED -> 4WAY_HANDSHAKE  
  77. 09-29 21:09:36.443  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->4WAY_HANDSHAKE【第三次密碼握手錯誤】  
  78. 09-29 21:09:39.627  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->4WAY_HANDSHAKE  
  79. 09-29 21:09:41.835  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->4WAY_HANDSHAKE  
  80. 09-29 21:09:45.474  8183  8183 D wpa_supplicant: wlan0: State: 4WAY_HANDSHAKE ->DISCONNECTED  
  81. 09-29 21:09:45.481  8183  8183 D wpa_supplicant: wlan0: State: DISCONNECTED -> DISCONNECTED  
  82. 09-29 21:09:45.919  8183  8183 D wpa_supplicant: wlan0: State: DISCONNECTED -> SCANNING  
  83. 09-29 21:09:48.515  8183  8183 D wpa_supplicant: wlan0: State: SCANNING -> ASSOCIATING  
  84. 09-29 21:09:48.587  8183  8183 D wpa_supplicant: wlan0: State: ASSOCIATING -> ASSOCIATED  
  85. 09-29 21:09:48.611  8183  8183 D wpa_supplicant: wlan0: State: ASSOCIATED -> 4WAY_HANDSHAKE  
  86. 相關推薦

    wpa_supplicant 狀態切換以及事件驅動

    WIFI事件型別  pre-shared key may be incorrect  認證密碼錯誤  EVENT_ASSOC_TIMED_OUT 連線超時  EVENT_AUTH_TIMED_OUT  認證超時  EVENT_SCAN_RESULTS 掃描完成,返回掃描結果 

    單執行緒、多執行緒以及事件驅動程式設計模型對比

    中文版全文:http://blog.csdn.net/hanhuili/article/details/9389433#comments 事件驅動程式設計是一種程式設計正規化,這裡程式的執行流由外部事件來決定。它的特點是包含一個事件迴圈,當外部事件發生時使用回撥機制來

    (六)觀察者模式詳解(包含觀察者模式JDK的漏洞以及事件驅動模型)

    import java.util.Vector; //被觀察者類 public class Observable { //這是一個改變標識,來標記該被觀察者有沒有改變 private boolean changed = false; //持有一個觀察者列表 private

    YARN中MRAppMaster的事件驅動模型與狀態處理訊息過程的分析

    在MRv1中,物件之間的作用關係是基於函式呼叫實現的,當一個物件向另外一個物件傳遞訊息時,會直接採用函式呼叫的方式,並且這個過程是序列的。比如,當TaskTracker需要執行一個Task的時候,將首先下載Task依賴的檔案(JAR包,二進位制檔案等,字典檔案等),然後執行

    事件狀態 事件驅動程式設計

    為需要處理的事件編寫相應的事件處理程式。 事件驅動的一般步驟: 2、為指定元素確定需要響應的事件型別 3、為指定元素的指定事件編寫相應的事件處理程式 4、將事件處理程式繫結到指定元素的

    單片的非OS的事件驅動

    初始 設定 比較 -o scan ner 檢測模塊 缺點 其他 單片機的非OS的事件驅動 Part 1  前言   很多單片機項目恐怕都是沒有操作系統的前後臺結構,就是main函數裏用while無限循環各種任務,中斷處理緊急任務。這種結構最簡單,上手很容易,可是當項目比較大

    Expo大作戰(十三)--expo如何自定義狀態了stateBar以及expo中如何處理脫緩存加載 offline support

    什麽是 生命 () 信息 screen hub .json 狀態欄顏色 sset 簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話不多說,接下來你看到內容,講全部來與官網 我

    文字版 描述TCP三次握手和四次揮手以及有限狀態

    切換 list 遠方 是什麽 int last 關閉 ive tcp報文 客戶端和服務器 ,雙方都處於第一次交互的情況下展開通信 三次握手 1.首先 服務器 需要是處於listen收聽狀態下才能接受報文客戶端由closed狀態 打開並向服務器發送報文SYN=1 申請建

    對於狀態的總結以及Gray碼基本概念

    一、狀態機總結 狀態機分為兩種 一種稱為Mealy狀態機,它的時序邏輯輸出不但取決於狀態還取決於輸入; 另外一種稱為Moore狀態機,它的輸出只取決於當前的狀態。實際的設計工作中大部分都是Mealy狀態機。 有限狀態機設計一般步驟:1、邏輯抽象,得出狀態轉換圖;2、狀態化簡;

    基於委託與事件的有限狀態設計與實現(Unity3d)

    有限狀態機設計與實現 前言 最近看到一句話,就是優秀是一種習慣,所以突然就總想寫點什麼,當作是遊戲開發這條路上的學習筆記吧,另外也時刻提醒自己需要不斷努力。 什麼是狀態機? 先貼百度百科的概念內容吧: 有限狀態機,(英語:Finite-state machine

    突發事件檢測: kleinberg 狀態模型

           2節詳細討論了基於文件時間序列構建的狀態機模型,裡面只考慮文件的到達時間。現實中,考慮到實際計算成本,還是會限定最小的時間粒度,比如分鐘,小時等。這樣,每個最小時間粒度下,可能會有多篇文件資訊,也就是說單位時間文件發生頻次。同樣,針對點選日誌資料,經常會有單位時間點選數等。那如何在kleinb

    Unity Animator StateMachineBehaviour(狀態事件

    繼承StateMachineBehaviour,以開始事件為例,重寫OnStateEnter方法: public class NoteBookController: StateMachineBehav

    python# 程序/執行緒/協程 # IO:同步/非同步/阻塞/非阻塞 # greenlet gevent # 事件驅動與非同步IO # Select\Poll\Epoll非同步IO 以及selector

    # 程序/執行緒/協程 # IO:同步/非同步/阻塞/非阻塞 # greenlet gevent # 事件驅動與非同步IO # Select\Poll\Epoll非同步IO 以及selectors模組 # Python佇列/RabbitMQ佇列   ###########

    hostapd wpa_supplicant madwifi詳細分析(十二)——EAP(RFC3748)及EAP狀態分析(RFC4137)

    這篇文章分兩個部分:EAP(RFC3748)及EAP狀態機分析(RFC4137),其中主要內容來自RFC以及網路文章。 一、EAP拓展認證協議 EAP的可拓展性主要表現在它的method可拓展,EAP只是一個載體,傳送不同method間的互動。 EAP可用於專用的連結,以

    [WF4.0 實戰] 事件驅動應用

    and -c put 啟動 eas ets 執行 bookmark 右鍵 看到題目或許非常多人都會疑問,為什麽要使用事件監聽呢? 眼下的認識: 1,使用事件監聽能夠將工作流的結點返回值返回到client 2,能夠實現等待與重新啟動,相當於之前的WaitAct

    geek青年的狀態,查表,純C語言實現

    fill south 總結 target 堅持 str 分享 接收 backward geek青年的狀態機,查表,純C語言實現 1. 問題的提出。抽象 建一,不止是他,不少人跟我討論過這種問題:怎樣才幹保證在需求變更、擴充的情況下。程序的主體部分不動呢? 這是一個

    Hibernate三種狀態,緩存,以及update更新問題

    來講 clas 最大的 .cn lba ransient count 條件查詢 rate 一. Hibernate中對象的三種狀態 1. 瞬時狀態(transient) 當我們通過Java的new關鍵字來生成一個實體對象時,這時這個實體對象就處於自由狀態,此時該對象

    Android軟鍵盤狀態切換及其強制隱藏

    padding protected systems -m ride apk undle inb new MainActivity例如以下: package cc.c; import android.os.Bundle; import android.view.View

    nodejs 事件驅動

    訪問 服務器 fun pac ebs ng- 請求 介紹 基本 nodejs一個最大的特點就是支持事件驅動(並發) http://www.cnblogs.com/lua5/archive/2011/02/01/1948760.html Node.js現在非常活躍,相關生態社

    卅川的狀態之路(創作中,不定時上傳)

    rom 不同的 大學 核心 追溯 選擇 有限狀態機 span 任務 川的第一篇幹貨,將從講述FSM(有限狀態機)開始。 川第一次接觸狀態機這種東西,還得追溯到剛到暢遊工作,破解了別的遊戲的代碼(遊戲程序就是這麽沒節操和底線,嗯!)才知道有這麽個東西的。雖然大學學習過相