【wpa_supplicant】从 assoc 动作窥伺supplicant与driver的交互(二)

本文介绍了nl80211和cfg80211在无线驱动中的作用和交互过程。nl80211作为内核接口,用于配置cfg80211设备并处理用户态(wpa_supplicant)的MLME命令。cfg80211则作为驱动和nl80211之间的桥梁,驱动在初始化时向cfg80211注册无线设备并注入API。wpa_supplicant通过netlink消息与nl80211通信,nl80211进一步调用驱动的API执行操作,如关联动作。学习路径建议包括理解驱动如何向supplicant报告状态,熟悉wpa_supplicant的功能以及掌握常见WiFi特性的实现。
写在前面

关于nl80211和cfg80211
这个之前一直困扰,今天问了下坐我旁边的大神,终于稍微懂了点

nl80211 是内核的一套无线驱动接口,标志性的特征就是 TAG-DATA一一对应,例如
bssid = nla_data(info->attrs[NL80211_ATTR_MAC]); 就是从netlink msg中取出mac存到bssid中去
wpa_supplicant 发起的MLME命令都是按固定格式发送netlink msg(socket通信)给nl80211(supplicant是用户态,而nl80211是内核态)
nl80211用于配置一个cfg80211设备,且用于kernel与userspace间的通信

cfg80211则类似一个插座,从架构图上看,更下面的driver是插头,上面的nl80211是插孔
driver在初始化的时候(gl_init)会向cfg80211注册一个wireless device(wdev),将所有80211相关的api注入此wdev
这些api再被nl80211调用,比如
nl80211_associate -> cfg80211_mlme_assoc

回到正题

书接上文,继续从 assoc 动作窥伺supplicant与driver的交互

//nl80211.c
nl80211_associate
	err = cfg80211_mlme_assoc(rdev, dev,
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值