emmericp / MoonGen

MoonGen is a fully scriptable high-speed packet generator built on DPDK and LuaJIT. It can saturate a 10 Gbit/s connection with 64 byte packets on a single CPU core while executing user-provided Lua scripts for each packet. Multi-core support allows for even higher rates. It also features precise and accurate timestamping and rate control.
MIT License
1.04k stars 234 forks source link

Hardware timestamping with Intel X710 #281

Open marcofaltelli opened 4 years ago

marcofaltelli commented 4 years ago

Hi, I'm running the l3fwd DPDK sample application and using Moongen's HW timestamp capabilities through this suite for benchmarking l3fwd's latency with 64B packets. I'm running tests both with Intel X520 and X710 NICs. While X520 NICs give me meaningful values (e.g. 8.5 us at 10Gbps, 7.86 us at 5Gbps, 10 us at 1Gbps), Intel X710 show an unexpected increase when running at line rate (16.45 us at 10Gbps), while at lower rates results are quite similar as Intel X520 (7.42 us at 5Gbps, 8.24 us at 1Gbps). Even playing with different parameters (such as DPDK's l3fwd minimum batch transmit size) the problem still occurs. While for X520 NICs I'm using commit 1dde068 of the master branch, for Intel X710 I'm using commit a51cdf1 of the dpdk-19.05 branch. Do you have any insight about Intel X710 timestamping and how this can happen?