首页 > 其他 > 详细

wifi driver and wpa_supplicant

时间:2016-01-06 11:59:38      阅读:385      评论:0      收藏:0      [点我收藏+]

usb wifi驱动接收数据:

1. hal/hal_hci/hal_usb.c/usb_init_recv_priv()调用tasklet_init,设置数据接收处理函数usb_recv_tasklet()

usb_recv_tasklet() -> recvbuf2recvframe() -> rtw_recv_entry() -> recv_func() -> recv_func_prehandle() -> validate_recv_frame()

2. 在validate_recv_frame()中根据type区分MGT帧、Ctrl帧、Data帧。对于MGT帧,调用validate_recv_mgnt_frame() -> mgt_dispatcher()

3. 在mgt_dispatcher()中根据subtype区分beacon帧、probe帧、action帧、auth帧、assoc帧等

 

wpa_supplicant通过nl80211接收数据

1. wpa_supplicant中通过nl_cb_set设置netlink的回调函数process_bss_event() -> mlme_event()

2. mlme_event()根据不同的类型进入不同路线,如auth、assoc、frame、status等,此处以frame(NL80211_CMD_FRAME)为例

3. mlme_event() -> mlme_event_mgmt() -> wpa_supplicant_event(EVENT_RX_MGMT)

4. events.c/wpa_supplicant_event()根据不同的event类型,如EVENT_AUTH,EVENT_ASSOC,EVENT_RX_MGMT等进行不同处理

5. 本例EVENT_RX_MGMT,wpa_supplicant_event()根据子类型进入不同路线,如probe,action等。

 

wifi driver and wpa_supplicant

原文:http://www.cnblogs.com/qmdlinux/p/5104775.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!