最近在调试流媒体业务时发现,8168的网口在20MB/s发送存在问题, 测试例子:1.单个socket收发测试,发送连续的数据包如1,2,3,4,5,可能接收到1,1,3,4,5,在发送端抓包发现发送就错了;2.多个socket收发测试,发现某个包本应发个socketA,却发给了socketB,A少收了一个包,B多收到了一个包。感觉上是驱动的问题,我用的版本DVRRDK_04.01.00.02,哪位大神给个定位思路,多谢!
补充下,在测试时如果在发送端同时使用rpcapd远程抓包的话,速率上到25MB/s都没有问题
udp client start dstAddr dstPort packetSize interval(ms) packetNum
host> net udp client start 192.168.1.231 4000 1400 10 200
udp send start with interval[10]…
host> net udp server start 4000
udp recv rate: 26555340 byte/s errCnt[0]
udp recv rate: 27123950 byte/s errCnt[0]
udp recv rate: 27125280 byte/s errCnt[0]
udp recv rate: 27156535 byte/s errCnt[0]
打印了下DaVinci EMAC下的emac_dump_regs,没有看到啥错误
Ternence_Hsu:
你好;
你们的硬件是自己设计的吗?
网卡驱动你们是自己做的,还是参考TI的demo 设计的呢 ?
jack huang4:
回复 Ternence_Hsu:
硬件是自己设计的。网卡驱动都是内核自带的,Phy都是标准的
jack huang4:
补充下,如果在测试时同时使用rpcapd远程抓包的话,跑到25MB/s左右都没有问题