全志科技
直播中

Arvinhw

10年用户 1023经验值
擅长:嵌入式技术
私信 关注
[问答]

怎样通过WiFi驱动收发帧打印来协助定位呢

  • 对于搭载了XRadio WiFi模组(XR819/XR819S/XR829)的产品,在开发或测试过程中可能会遇到一些常见网络问题,如ping不通外网、wifi连接失败、wifi异常断线等问题,这时可借助驱动收发帧打印来协助定位问题。
  • 对于常见网络问题,需要从发送通路和接收通路的完整性角度出发对问题进行排查,对于"wifi连接失败"问题,在wifi连接过程中主要有认证和关联帧的交互,对于"ping不通外网"问题,ping过程主要涉及ICMP请求和响应的发送和接收,同时也要考虑到本地设备是否成功拿到ip地址,这里会涉及到DHCP交互流程。

回帖(1)

张春梅

2021-12-29 11:28:36
解决办法
(1) 确认XRadio WiFi驱动打开debugfs选项,驱动初始化完成后会在/sys/kernel/debug/ieee80211/phy*/xradio目录生成parse_flags节点,该节点可控制驱动层是否打印收发帧信息
(2) 命令:echo tx,rx > parse_flags
说明:设定收发帧打印,tx为发送帧解释参数,rx为接收帧解释参数
命令:cat parse_flags
说明:查看当前收发帧解释参数
(3) 解释参数说明如下:

举例说明
命令:echo 0xc0,0xc0 > parse_flags
说明:显示发送和接收的DHCP和ICMP帧信息(0xc0=0x80 | 0x40)
驱动帧打印:

解决办法
(1) 确认XRadio WiFi驱动打开debugfs选项,驱动初始化完成后会在/sys/kernel/debug/ieee80211/phy*/xradio目录生成parse_flags节点,该节点可控制驱动层是否打印收发帧信息
(2) 命令:echo tx,rx > parse_flags
说明:设定收发帧打印,tx为发送帧解释参数,rx为接收帧解释参数
命令:cat parse_flags
说明:查看当前收发帧解释参数
(3) 解释参数说明如下:


举例说明
命令:echo 0xc0,0xc0 > parse_flags
说明:显示发送和接收的DHCP和ICMP帧信息(0xc0=0x80 | 0x40)
驱动帧打印:


[XRADIO] if0-TX---DHCP, Opt=53, MsgType=1
[XRADIO] if0-RX---DHCP, Opt=53, MsgType=2
[XRADIO] if0-TX---DHCP, Opt=53, MsgType=3
[XRADIO] if0-RX---DHCP, Opt=53, MsgType=5
......
[XRADIO] if0-RX---ICMP(reply), Seq=1
[XRADIO] if0-RX---ICMP(reply), Seq=2
举报

更多回帖

发帖
×
20
完善资料,
赚取积分