200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > ecos无线驱动掉线问题解决方案分析

ecos无线驱动掉线问题解决方案分析

时间:2019-05-30 09:56:23

相关推荐

ecos无线驱动掉线问题解决方案分析

1、无线数据包的主要数据流(从pci总线到phy error)

PCIDRVTAB_ENTRY

wl_pci_probeàwl_attach

netdev_attach

wl_dpc

wl_ecos_comm_wlc_dpc

wlc_dpc(出现tx phy error)

2、出现问题

当使用大流量无线数据包冲击路由器的时候,会出现无线掉线丢包严重,甚至掉线问题,(特别是使用迅雷下载)但是正常使用不会出现该现象。

3、问题分析

分析问题主要是原厂和我方沟通、讨论,最主要的是修改然后验证结果,定位到问题点是大流量无线数据包冲击路由器的时候,出现phy发不出数据包,然后无线出现掉线。原厂原来的给的补丁如下:

static int phy_err_cnt = 0;

phy_err_cnt++;

if( phy_err_cnt >= 3 )

{

WL_ERROR((“wl%d: HAMMERING info, CNT = %d\n”, wlc_hw->unit , wlc_hw->phyerr_cnt ));

wl_init(wlc->wl);

phy_err_cnt = 0;

}

patch原理:

在wlc_dpc要向上层发送数据包是,phy累计3次没有发出数据包,则调用wl_init。这种办法不能完全规避问题,只是暂时缓解,有的时候甚至根本没有效果,并且如果出现一次无线掉线问题,会连续出现,所以原厂给的这种规避措施根本没有效果。

4、 解决办法

原厂从我方提供的日志文件和与我方的沟通和验证中,导致phy分析出现异常的可能原因,经过多次的验证,得出结论:

1) 无线收发数据包的缓冲队列溢出;

2) 无线数据包进入ampdu模块出现异常

鉴于以上两点,暂时无法从根本上解决问题,所以给出了以下的规避方法:

1)当rx缓冲队列溢出时,添加清空缓冲队列的处理,并设置wl_init标志位为1

在接收到无线数据包后,无线收包缓冲队列一系列的数据会被更新;可能出现的情况是,phy发不出数据包的时候,是因为无线缓冲队列已经溢出,重启无线wl_init,但是重启后无线缓冲队列并没有被释放,当再次接收到无线数据包的时候,还是会出现rx缓冲队列overflow,所以还是会连续出现无线掉线情况;

这种情况的规避措施:

在收到无线数据包的时候,更新缓冲队列接收数据长度之前,使用一个临时变量,记录原来的缓冲队列的溢出长度,然后接收数据包,更新缓冲队列的数据,得到新的缓冲队列的溢出长度。如果缓冲队列有溢出,则重启无线;

当接收无线数据包,在无线聚合模块中,当等待超时时,在原有的处理上,设置wl_init的标志位为1

在ampdu(无线聚合)模块中,在wlc_ampdu_resp_timeout函数中,当ampud的应答器超时时,原来做了一些处理,比如一些统计信息的递增,主要做的工作是wlc_ampdu_release_all_ordered,丢掉了对应的ampdu的队里中的一部分包,然后等待下一个数据包序列到达,我们添加的动作是设置wl_init的标志位为1。

3)添加Big_hammer机制

为了解决视屏卡顿,在wlc_watchdog_timer中,添加big_hammer机制。如果phyerr_cnt累计3次发不出包,或是数据包在插入tx的有优先级权重队列过程失败或是tx队列累计3次,内存块释放失败时,设置视频卡顿的标志位为1,启用Big_hammer。

4)wl_init/Big_hammer/Wl_down对无线处理比较

wl_init 在保留原来连接不断开的情况下,调用wl_reste重置无线的一些模块,比如bmac和ampdu以及phy等,然后调用wlc_reinit对reset的模块进行重新初始化,在此过程中,只会极少的丢包,客户端几乎感知不到;

wl_bighammer在保留原来连接不断开的情况下,清空rx缓冲队列,down掉无线但是调用wlc_radio_upd迅速恢复,并调用wl_join恢复无线连接

wl_down 会关闭无线,断开无线连接。

三者的对无线的影响由小到大,恢复时间由短到长,处理也会从表面更深入。其实,选择wl_bighammer是对wl_init和wl_down的一种折中,既不会导致无线掉线,也会从一定程度上恢复无线的基本功能,使之正常运行。

5、无线性能测试项

无线主要测试一下项目:

1、无线近距离和远距离lan到wan、无线加密、无线桥接(wisp、wds、apclient)

2、无线无干扰环境下衰减、穿墙(分别穿1、2、3堵墙)、无线覆盖

3、无线抗干扰、挂机老化、高低温、待机量、小包转发

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。