http://baike.baidu.com/link?url=w6LjB-9GygPlQtIp_jN3tm-1Y1QOKaXKKQZ0sP-r-gelN4ki3Xw9le1X3srdAfb1: 802.3, ethernet v2
http://www.doc88.com/p-590542917315.html: wifi 驱动
http://blog.csdn.net/ylyuanlu/article/details/7652704:wpa_cli
http://www.360doc.com/content/13/0716/14/9171956_300366461.shtml
http://www.cnblogs.com/liugf05/archive/2012/12/03/2800457.html: spi驱动
http://www.eefocus.com/chongzi865458/blog/2012-02/229039_2463d.html:spi驱动
http://wenku.baidu.com/view/61eb4cf6ba0d4a7302763a00.html: wifi协议
http://wenku.baidu.com/view/c904deee0975f46527d3e191.html
http://blog.csdn.net/magod/article/details/6171633
http://blog.csdn.net/jyjzml/article/details/6289653:tcpdump
http://baike.baidu.com/view/76504.htm?fr=ala0_1_1: tcpdump
IEEE80211_HW_SIGNAL_DBM | : 1m 为0dbm
IEEE80211_HW_BEACON_FILTER |: 扫描时,ap主动通知sta
IEEE80211_HW_SUPPORTS_PS | : power savinf
IEEE80211_HW_SUPPORTS_UAPSD |: 一种省电模式
IEEE80211_HW_HAS_RATE_CONTROL |: http://hi.baidu.com/summerr37/item/6664d11d21465c041994ec5d
IEEE80211_HW_CONNECTION_MONITOR |: 连接监控
IEEE80211_HW_SUPPORTS_CQM_RSSI |: 接收的信号强度指示
IEEE80211_HW_REPORTS_TX_ACK_STATUS |: tx ack status
IEEE80211_HW_SPECTRUM_MGMT |: 扩频
IEEE80211_HW_AP_LINK_PS |:ap power?
IEEE80211_HW_AMPDU_AGGREGATION |: http://baike.baidu.com/link?url=7VVJHlVuCZ1bwvMCQ7-DwJH403h52Aqo4_fzc7v-H1oqdd3rbSWhX0UDq1WewKdpQ_ZZEQhf5x4CVskckC3Re_ 聚合A-MPDU, 提高吞吐, MPDU:802.11封装过的数据帧, 不是ethernet.
IEEE80211_HW_TX_AMPDU_SETUP_IN_HW;
http://blog.csdn.net/magod/article/details/6594642: wifi p2p
http://wenku.baidu.com/view/5619772c5a8102d276a22f9b.html: wifi direct/wifi display
p2p client: p2p的client
p2p go: p2p group owner
http://wenku.baidu.com/view/596d9113227916888486d7ba.html
http://wenku.baidu.com/view/b0e1c8767fd5360cba1adb4d.html?pn=1:wifi p2p官方信息
http://www.doc88.com/p-908280242988.html: wifi p2p协议 v1.1
http://www.docin.com/p-673379176.html: wifi p2p v1.2
map of wifip2pservice->wifip2p native:
onDeleteGroup->removeNetwork, saveConfig,
default state:
P2P_GROUP_STARTED_EVENT->p2pGroupRemove
enabled state:
enter:
setPersistentReconnect,setDeviceName,setP2pSsidPostfix,setDeviceType,setConfigMethods,setConcurrencyPriority,p2pGetDeviceAddress,p2pFlush,p2pServiceFlush, listNetworks, removeNetwork, saveConfig
process:
CMD_DISABLE_P2P_REQ->closeSupplicantConnection
SET_DEVICE_NAME->setDeviceName, setP2pSsidPostfix
SET_WFD_INFO->setWfdEnable, setWfdDeviceInfo
descover_peers->p2pfind
DISCOVER_SERVICES->p2pServDiscReq, p2pfind
ADD_LOCAL_SERVICE->p2pServiceAdd
REMOVE_LOCAL_SERVICE->p2pServiceDel
CLEAR_LOCAL_SERVICES->p2pServiceDel
ADD_SERVICE_REQUEST->p2pServiceDel,p2pServDiscReq
REMOVE_SERVICE_REQUEST->p2pServDiscReq
CLEAR_SERVICE_REQUESTS->p2pServDiscReq
inactive state:
CONNECT->(getGroupCapability,p2pGetSsid, p2pGroupAdd,p2pReinvoke(netid > 0)/getNetworkVariable,saveConfig(else), p2pStopFind, p2pConnect)
STOP_DISCOVERY->p2pStopFind,p2pFlush
P2P_GO_NEGOTIATION_REQUEST_EVENT->
P2P_INVITATION_RECEIVED_EVENT->
CREATE_GROUP->p2pGroupAdd
P2P_GROUP_STARTED_EVENT->p2pGroupRemove
groupCreating state:
GROUP_CREATING_TIMED_OUT->p2pFlush
CANCEL_CONNECT->p2pCancelConnect,p2pFlush
UserAuthorizingInvitationState state:
PEER_CONNECTION_USER_ACCEPT->p2pGetSsid, p2pGroupAdd, p2pReinvoke, removeNetwork, saveConfig, p2pStopFind, p2pConnect
ProvisionDiscoveryState state:
enter:
p2pProvisionDiscovery
process:
P2P_PROV_DISC_PBC_RSP_EVENT->(wps.setup == WpsInfo.PBC)p2pConnect
P2P_PROV_DISC_ENTER_PIN_EVENT->(wps.setup == WpsInfo.KEYPAD)p2pConnect
P2P_PROV_DISC_SHOW_PIN_EVENT->(wps.setup == WpsInfo.DISPLAY)p2pConnect
P2P_PROV_DISC_FAILURE_EVENT->p2pFlush
GroupNegotiationState state:
P2P_GROUP_STARTED_EVENT->(getNetworkId() == WifiP2pGroup.PERSISTENT_NET_ID)listNetworks,removeNetwork, getNetworkVariable, saveConfig; (GO)startdns(not wifi server, but net server); (NOT GO)setP2pGroupIdle,
P2P_GROUP_REMOVED_EVENT->p2pFlush,
P2P_INVITATION_RESULT_EVENT-> (if failure)p2pFlush
FrequencyConflictState state:
DROP_WIFI_USER_REJECT->p2pFlush
GroupCreatedState state:
AP_STA_DISCONNECTED_EVENT->p2pGroupRemove
CMD_POST_DHCP_ACTION->setP2pPowerSave; p2pGroupRemove(if failure)
REMOVE_GROUP/P2P_GROUP_REMOVED_EVENT->p2pGroupRemove; setP2pGroupIdle, p2pFlush
CONNECT->startWpsPbc, startWpsPinDisplay, startWpsPinKeypad, p2pInvite,
UserAuthorizingJoinState state:
PEER_CONNECTION_USER_ACCEPT->startWpsPbc, startWpsPinKeypad,
##OngoingGroupRemovalState state:
http://blog.csdn.net/mznewfacer/article/details/8230380: wifidisplay 1
http://blog.csdn.net/mznewfacer/article/details/8268930: wifidisplay 2
http://wenku.baidu.com/view/b50300f2ba0d4a7302763af4.html: wapi, 一个国家的标准,竟然敌不过国外干涉。
http://blog.chinaunix.net/uid-20514606-id-3259402.html:跟一下wpa_supplicant(1) 初始化
http://so.csdn.net/search?page=1&q=blog%3Aylyuanlu+wifi&t=blog: 不少wifi研究的论文
http://wenku.baidu.com/view/c670b31214791711cc791763.html?pn=50: 一个wifi芯片的spec
http://www.52rd.com/bbs/Archive_Thread.asp?SID=108120&TID=2: wifi芯片市场, mvl很牛
http://wenku.baidu.com/view/197827ded15abe23482f4dfa.html:mvl 8686
http://wenku.baidu.com/view/e1f4a3254b35eefdc8d33320.html: wifi协议
http://blog.csdn.net/dickjtk/article/details/11862815: wifi wext接口
http://blog.chinaunix.net/uid-9525959-id-3326047.html:讲的不错, 术语, 通信过程
http://wenku.baidu.com/view/fbbe3bd476a20029bd642d40.html
http://blog.csdn.net/eastmoon502136/article/details/8496258:wifi驱动
http://www.docin.com/p-494184298.html: wifi simple setup, 这页还有其它protect方面的spec
http://wenku.baidu.com/view/8945cbce89eb172ded63b77d.html: 802.11 spec. 2800页。 380页: frame结构; 973/1352页:sequnce. 该页还有其他物理层协议
http://www.360doc.com/content/12/0607/16/9424702_216641332.shtml: wpa_supplicant的nl80211驱动使用的netlink socket跟kernel通信(libnl被使用)
http://www.infradead.org/~tgr/libnl/:libnl
http://blog.csdn.net/zcabcd123/article/details/8272656: netlink
http://blog.csdn.net/myarrow/article/details/9465215: wext
wifi nl80211使用netlink在usr space和kernel space通信:在nl80211_init(被cfg80211_init调用)调用genl_register_family_with_ops注册协议簇。 用户空间的wpa_supplicant使用libnl发送nl80211命令, 比如NL80211_CMD_NEW_INTERFACE等。wifi模块的driver会通过wiphy_new注册具体driver的ops到80211device的ops, 以响应命令。
以某driver为例:如scan:scan->woal_cfg80211_scan->woal_do_scan->woal_request_scan->woal_request_ioctl->mlan_ioctl->pmpriv->ops.ioctl(mlan_ops)-.>wlan_scan_ioctl->wlan_scan_networks->wlan_insert_cmd_to_pending_q->wlan_dnld_cmd_to_fw(wlan_exec_next_cmd(mlan_main_process(interrupt & main_queue(wake by : woal_cfg80211_mgmt_tx, pending, and MLAN_EVENT_ID_DRV_DEFER_HANDLING))))
woal_init_module->woal_bus_register->sdio_register_driver
woal_sdio_probe->woal_add_card
http://blog.csdn.net/androidboy365/article/details/9708607
http://www.cnblogs.com/duancanmeng/archive/2012/05/03/2524610.html