1 现象  

  近期对一款基于QCA方案、有线Phy为AR8033、WiFi双频且支持iEEE802.11AC的WLAN产品进行了深度验证,发现有线口同部分PC机直连时,WiFi终端ping 该PC机时总是丢包,有时高达20%;但通过交换机再接PC机时,又不会丢包。一直以为是偶现,所以未引起重视,反正跑流性能与稳定性都没有任何影响。后来新购了一批千兆有线口的便携机进行配套验证时,发现每台都是如此,ping包丢得一塌涂地。在WLAN设备和PC机上分别开启抓包工具,可以看到设备已发包,但PC机未收到报文;而由PC机直接ping设备有线口时,一切又正常。

  2 处理

  经过多方找原因,最后发现丢包严重的PC机的网卡强制工作在100M时,不会丢包;自动协商或强制1000M时,都会丢包。一度怀疑是硬件问题,折腾过好久;又同以前用过的AR8031进行对比验证,用AR8031方案的WLAN设备,则不会出现丢包。偶然一次在修改PC机网卡的硬件属性时,发现将“节能乙太网”功能关闭后,ping包就正常了。于是就沿QCA 有线Phy的EEE方向定位,尝试去解决此问题。

在DS文档中,与EEE相关的寄存器:MMD3中的4个,MMD7中6个;但怎么改效果都不明显;后来又去研读MII寄存器和Debug寄存器,以及与节能相关的章节,最后发现0X3D号Debug寄存器中有下边描述:

  

  而且在其不同版本的QSDK、LSDK的中,针对有线MAC/PHY代码,对不同芯片都有不同的配置;但此寄存器就bit15,bit7公开,其它位都是黑箱。bit7的功能好理解,与丢包问题应该没有关系,所以就将bit15更改为1。重新编译后,再次验证,问题解决。

3 结论

    可能是AR8033的Green feature比较特别,从而导致它与别的网卡的Green特征不兼容,故优选将此特性关闭掉,以防实际使用中影响用户体验。

  4 免责声明

    本方法仅供参考,若引起新问题(节能),一律免责。

AR8033 1000M模式下ping包丢包率过大分析与解决的更多相关文章

  1. 记录一个UDP收包丢包的问题

    这几天写GB28181平台接入层代码,对收到的PS包进行解包时,总是出现误码,最终导致rtsp点播服务中画面花屏. 分析了码流抓包数据之后,发现网络上没有丢包,遂认为PS流解包代码有bug,于是埋头分 ...

  2. 分享下今天研究的流量上限DDos攻击分析和解决方式

    分享下今天研究的流量上限DDos攻击分析和解决方式 常常听到或者碰到某个站点被攻击.一般都是流量攻击.今天自己写了个程序測下相关的上限,程序仅仅简单做了个get html操作(不包括图片等资源文件). ...

  3. Android Studio多Module使用 aar 依赖包 丢包解决

    FAQ: AAR打包引用丢包问题, jar, aar, dependency 嵌套层级依赖的丢失 问: aar包中,如何包含第三方依赖库? 如果直接作为module 依赖是没有问题的,但是如果打包成a ...

  4. KindEditor设置为过滤模式,但在代码模式下提交表单时不过虑HTML标签的解决方法

    KindEditor设置filterMode为true,但在代码模式下提交表单的话,发现并没有过虑掉自己不想保留的HTML标签. 这时只需同步内容前加上红色部分内容即可: onClick=" ...

  5. TCP超时、ping不丢包排查

    现象就是:1. 每隔一段时间,问题服务器的公网地址不可访问,目前只开放了8080和22,这两个端口不可访问的时间是一致的,不可访问时间约在2分钟以内2. 已经建立的连接在不可访问期间不受影响,开的几个 ...

  6. ping测试丢包率

    测试环境:Centos 6.4 增加参数:-i 例如: #ping -i 0.01 172.16.3.1 则每隔0.01秒ping一次

  7. linux连接数过多,导致ping包丢包的问题解析

    1.首先要明确,无论是tcp, udp, raw等这些都要占用socket, 那么就涉及到连接数的问题. 所以,linux连接数的问题,不仅仅是tcp连接数. 2.查看当前系统中所有的socket 连 ...

  8. 如何在仅主机模式下ping通网路上网

    1 主机的控制面板,找到电脑的实际网卡,勾选,并选择VMware Network Adapter VMnet1 找到虚拟网卡VMware Virtual Ethernet Adapter for VM ...

  9. Log4j2异步情况下怎么防止丢日志的源码分析以及队列等待和拒绝策略分析

    org.apache.logging.log4j.core.async.AsyncLoggerConfigDisruptor以下所有源码均在此类中首先我们看下log4j2异步队列的初始化 从这里面我们 ...

随机推荐

  1. JAVA的循环控制与循环嵌套

    循环控制和循环嵌套 循环控制是除了循环条件之外,控制循环是否进行的一个机制,这给处理循环问题带来了灵活性.循环体内的语句块可以是顺序执行的语句,可以是分支结构的语句,也可以是循环语句,循环中含循环,就 ...

  2. DML数据操作语言之增加,删除,更新

    1.数据的增加 数据的增加要用到insert语句  ,基本格式是: insert into <表名> (列名1,列名2,列名3,......) values (值1,值2,值3,..... ...

  3. 纯CSS垂直居中的四种解决方案

    总结了几种解决方法 但也不是说除了我说的就没有其他方法了 第一个.利用flex布局 代码: 效果: 第二个.利用transform 的 translate属性 代码: 效果: 第三个.使用伪类::af ...

  4. 我所知道的window.location

    多说无益 直接上干货 假如一个地址为  http://127.0.0.1:5000/index.html?id=4 window.location.href -- 完整路径 -- http://127 ...

  5. api-gateway实践(07)新服务网关 - 手动发布

    应用地址:http://10.110.20.191:8080/api-gateway-engine/ 一.准备工作 1.xshell登陆云主机 1.1.配置链接 1.2.链接成功 1.3.关闭防火墙 ...

  6. python的单元测试

    单元测试实际上就是一些"断言"(assert)代码 断言就是判断一个函数或对象的一个方法所产生的结果是否符合你期望的那个结果. python中assert断言是声明布尔值为真的判定 ...

  7. 百度资深架构师带你深入浅出一致性Hash原理

    一.前言 在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用. 但是普通的余数h ...

  8. 微信小程序配置WSS协议

    配置的是nginx转发,前提是你已经安装了nginx的软件并已经正常打开网页,安装好SSL协议,能打开https网页 下面是配置: 需要的话可以根据需求修改 server { listen 80; s ...

  9. Struts(二十六):文件上传

    表单的准备 想要使用html表单上传一个或多个文件 1.须把html表单的enctype属性设置为multipart/form-data 2.须把html表单的method属性设置为post 3.须添 ...

  10. POJ-1753 Flip Game---二进制枚举子集

    题目链接: https://vjudge.net/problem/POJ-1753 题目大意: 有4*4的正方形,每个格子要么是黑色,要么是白色,当把一个格子的颜色改变(黑->白或者白-> ...