linux 中 Wi-Fi 数据各层收发流程


最近在学习 Hostapd,再次梳理下 hostapd、nl80211、cfg80211、mac80211和驱动之间的调用流程。等以后有空闲了,在慢慢梳理,补充细节。

概览

本文只简述各个层之间的调用关系,不做代码详细流程说明。
在这里插入图片描述

  1. Hostapd 在 Userspace,在 src/drivers/drivers.c 中,实现了struct wpa_driver_ops结构,如下所示:
    在这里插入图片描述
    这组 ops 包含了 Hostapd 支持的所有操作,源码在 src/drivers/driver_nl80211.c中。
    具体实现是调用到 nl80211_ifindex_msg发送消息给nl80211。
    结构体为 enum nl80211_commands。在 src/drives/nl80211_copy.c
    在这里插入图片描述
  2. Hostapd 发送的消息,会在 nl80211_small_ops中找对应的函数来处理。
    在这里插入图片描述
  3. 之后会调用到 mac80211_config_ops,它在 net/mac80211/cfg.c 中实现。

在这里插入图片描述
5. 在之后会调用到驱动中的 ieee80211_ops
在这里插入图片描述
之后会把包发送到 Wi-Fi 芯片中处理,发送出去。
详细的代码调用逻辑,之后在做分析。

画一个图,简单描述mac80211 RX 流程

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值