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 235 forks source link

Mellanox ConnectX-5 and hardware timestamping #278

Open adam-scislowicz opened 4 years ago

adam-scislowicz commented 4 years ago

I'm running with MoonGen build from the git repo:

commit 413ad7da20292444b9026ffb7d3d6dee1a45f7cc (HEAD -> master, origin/master, origin/HEAD)
Author: Paul Emmerich <emmericp@net.in.tum.de>
Date:   Wed Feb 26 17:45:01 2020 +0100

    update libmoon: fixes for > 64 CPUs

I've used the mlnxofedinstall tool to install the Mellanox dependencies

./mlnxofedinstall  --upstream-libs --dpdk --skip-distro-check --dkms --mlnx-libs --with-libibverbs-dev --with-libmlx5

and I initialize my environment as follows:

./bind-interfaces.sh -m -n
./setup-hugetlbfs.sh

After this, I've made a traffic generator and it works without timestamping. I'm able to generate 50Gb/s of UDP traffic this way. I'd like to add hardware timestamps for RTT and jitter detection. When I attempt to use the timestamping module I get the following error at runtime:

/root/repos/MoonGen/build/../libmoon/lua/device.lua:477: tx timestamping is not supported by the hardware or driver

I wasn't able to find information online regarding this. I'm not sure if its not suported, or if there is an alternative API for the Mellanox ConnectX-5.

restorepoint1 commented 1 year ago

Hi, did you solve this issue? I have the same problem (ConnectX-4 Lx) and i am not able to fix