AR8033 1000M模式下ping包丢包率过大分析与解决
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包丢包率过大分析与解决的更多相关文章
- 记录一个UDP收包丢包的问题
这几天写GB28181平台接入层代码,对收到的PS包进行解包时,总是出现误码,最终导致rtsp点播服务中画面花屏. 分析了码流抓包数据之后,发现网络上没有丢包,遂认为PS流解包代码有bug,于是埋头分 ...
- 分享下今天研究的流量上限DDos攻击分析和解决方式
分享下今天研究的流量上限DDos攻击分析和解决方式 常常听到或者碰到某个站点被攻击.一般都是流量攻击.今天自己写了个程序測下相关的上限,程序仅仅简单做了个get html操作(不包括图片等资源文件). ...
- Android Studio多Module使用 aar 依赖包 丢包解决
FAQ: AAR打包引用丢包问题, jar, aar, dependency 嵌套层级依赖的丢失 问: aar包中,如何包含第三方依赖库? 如果直接作为module 依赖是没有问题的,但是如果打包成a ...
- KindEditor设置为过滤模式,但在代码模式下提交表单时不过虑HTML标签的解决方法
KindEditor设置filterMode为true,但在代码模式下提交表单的话,发现并没有过虑掉自己不想保留的HTML标签. 这时只需同步内容前加上红色部分内容即可: onClick=" ...
- TCP超时、ping不丢包排查
现象就是:1. 每隔一段时间,问题服务器的公网地址不可访问,目前只开放了8080和22,这两个端口不可访问的时间是一致的,不可访问时间约在2分钟以内2. 已经建立的连接在不可访问期间不受影响,开的几个 ...
- ping测试丢包率
测试环境:Centos 6.4 增加参数:-i 例如: #ping -i 0.01 172.16.3.1 则每隔0.01秒ping一次
- linux连接数过多,导致ping包丢包的问题解析
1.首先要明确,无论是tcp, udp, raw等这些都要占用socket, 那么就涉及到连接数的问题. 所以,linux连接数的问题,不仅仅是tcp连接数. 2.查看当前系统中所有的socket 连 ...
- 如何在仅主机模式下ping通网路上网
1 主机的控制面板,找到电脑的实际网卡,勾选,并选择VMware Network Adapter VMnet1 找到虚拟网卡VMware Virtual Ethernet Adapter for VM ...
- Log4j2异步情况下怎么防止丢日志的源码分析以及队列等待和拒绝策略分析
org.apache.logging.log4j.core.async.AsyncLoggerConfigDisruptor以下所有源码均在此类中首先我们看下log4j2异步队列的初始化 从这里面我们 ...
随机推荐
- Flask-uploads 简单使用
pip install flask-uploads#先导入次此处需要用到的库: from flask_uploads import UploadSet, IMAGES, configure_uploa ...
- jenkins 简单实现php集成上线部署
基于公司git版本控制,搭建jenkins实现php集成部署(没有用gitlab,测试服配置较低,gitlab卡的不要不要的了-) 一.安装jenkins相关依赖 wget -O /etc/yum.r ...
- Python内置函数(63)——property
英文文档: class property(fget=None, fset=None, fdel=None, doc=None) Return a property attribute. fget is ...
- javascript实现浏览器窗口大小被改变时触发事件的方法
转载 当浏览器的窗口大小被改变时触发的事件window.onresize 为事件指定代码: 复制代码代码如下: window.onresize = function(){ } 例如: 浏览器可见区域信 ...
- Spring知识点回顾(05)bean的初始化和销毁
Java配置方式:@Bean @InitMethod @destroyMethod xml配置方式:init-method,destroy-method 注解方式:@PostConstruct,@Pr ...
- Spark入门(1-4)安装、运行Spark
如何安装Spark 安装和使用Spark有几种不同方式.你可以在自己的电脑上将Spark作为一个独立的框架安装或者从诸如Cloudera,HortonWorks或MapR之类的供应商处获取一个Spar ...
- maven常见问题处理(3-2)maven打包时跳过测试的几个方法
运行mvn install时跳过Test方法一:<project> [...] <build> <plugins> <plugin> <group ...
- C++中构造函数的初始化列表(const、引用&变量初始化)
1. 构造函数执行分为两个阶段: a.初始化阶段(初始化) 初始化阶段具体指的是用构造函数初始化列表方式来初始化类中的数据成员. ClassXX:val(a),key(b){}; b.普通计算阶段(赋 ...
- ZooKeeper:win7上安装单机及伪分布式安装
zookeeper是一个为分布式应用所设计的分布式的.开源的调度服务,它主要用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用,协调及其管理的难度,提高性能的分布式服务. 本章的目的:如何 ...
- WPF设置控件获得焦点
1.这个比较有效 this.Dispatcher.BeginInvoke(DispatcherPriority.Background, (Action)(() => { Keyboard.Foc ...