Does latest MoonGen support I210 NIC for timestamping and latecny measurement?
Hi, I set up the network with two I210 NIC. By running "sudo ./moongen-simple start load-latency:0:1:rate=1Mp/s", it seems to run normally, as shown in the first snippet as below. But if ",time=3m" option is appended, it will report "[Error] 1 errors found while processing flow "load-latency" and "[WARN] Unknown option "time"".
Without "time=3m" option, now I have to hard stop the program, which may cause the logging problem, i.e. histogram of './load-latency_1-0_1.csv' is empty. So I can not check the latency recording.
For checking the timestamping capability of I210, I run "sudo ./build/MoonGen examples/timestamping-tests/test-timestamping-capabilities.lua 0 1". The results are shown as the second snippet as below. The outstanding error is "[ERROR] Received no packets." Does that mean I210 is not supported by MoonGen?
Hope for your help, Best, -Yi
slave@slave:/home/moongen-src/MoonGen$ sudo ./moongen-simple start -c flows load-latency:0:1:rate=1Mp/s [INFO] Initializing DPDK. This will take a few seconds... EAL: Detected 4 lcore(s) EAL: No free hugepages reported in hugepages-1048576kB EAL: Probing VFIO support... EAL: PCI device 0000:00:1f.6 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 8086:15b8 net_e1000_em EAL: PCI device 0000:01:00.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 8086:1533 net_e1000_igb EAL: PCI device 0000:02:00.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 8086:1533 net_e1000_igb [INFO] Found 2 usable devices: Device 0: A0:36:9F:72:87:DC (Intel Corporation I210 Gigabit Network Connection) Device 1: A0:36:9F:72:87:E8 (Intel Corporation I210 Gigabit Network Connection) [INFO] Flow load-latency => 0x1 [INFO] Waiting for devices to come up... [INFO] Device 1 (A0:36:9F:72:87:E8) is up: 1000 MBit/s [INFO] Device 0 (A0:36:9F:72:87:DC) is up: 1000 MBit/s [INFO] 2 devices are up. [Device: id=0] TX: 0.00 Mpps, 0 Mbit/s (0 Mbit/s with framing) [Device: id=1] RX: 0.00 Mpps, 0 Mbit/s (0 Mbit/s with framing) [Device: id=0] TX: 0.80 Mpps, 411 Mbit/s (539 Mbit/s with framing) [Device: id=1] RX: 0.87 Mpps, 443 Mbit/s (581 Mbit/s with framing) [Flow: dev=0 uid=0x1] TX: 1.01 Mpps, 515 Mbit/s (676 Mbit/s with framing) [Flow: dev=1 uid=0x1] RX: 1.00 Mpps, 511 Mbit/s (670 Mbit/s with framing) [Flow: dev=1 uid=?] RX: 0.00 Mpps, 0 Mbit/s (0 Mbit/s with framing) [Device: id=0] TX: 0.99 Mpps, 507 Mbit/s (665 Mbit/s with framing) [Device: id=1] RX: 0.99 Mpps, 507 Mbit/s (665 Mbit/s with framing) [Flow: dev=0 uid=0x1] TX: 0.99 Mpps, 507 Mbit/s (665 Mbit/s with framing) [Flow: dev=1 uid=0x1] RX: 0.98 Mpps, 500 Mbit/s (657 Mbit/s with framing) [Flow: dev=1 uid=?] RX: 0.00 Mpps, 0 Mbit/s (0 Mbit/s with framing) ^C[Flow: dev=1 uid=?] RX: 0.00 (StdDev nan) Mpps, 0 (StdDev nan) Mbit/s (0 Mbit/s with framing), total 182 packets with 16016 bytes (incl. CRC) [Flow: dev=1 uid=0x1] RX: 0.98 (StdDev nan) Mpps, 500 (StdDev nan) Mbit/s (657 Mbit/s with framing), total 2118162 packets with 135562368 bytes (incl. CRC) [Flow: dev=0 uid=0x1] TX: 0.99 (StdDev nan) Mpps, 507 (StdDev nan) Mbit/s (665 Mbit/s with framing), total 2138850 packets with 136886400 bytes (incl. CRC) [INFO] Saving histogram to './load-latency_1-0_1.csv' [Device: id=0] TX: 0.90 (StdDev 0.13) Mpps, 459 (StdDev 68) Mbit/s (602 Mbit/s with framing), total 2138808 packets with 136888080 bytes (incl. CRC) [Device: id=1] RX: 0.93 (StdDev 0.09) Mpps, 475 (StdDev 45) Mbit/s (623 Mbit/s with framing), total 2138808 packets with 136888080 bytes (incl. CRC) slave@slave:/home/moongen-src/MoonGen$ <<<<<<<<<<<<<<<<<<<<<<<<<<<<
slave@slave:/home/moongen-src/MoonGen$ sudo ./build/MoonGen examples/timestamping-tests/test-timestamping-capabilities.lua 0 1 [INFO] Initializing DPDK. This will take a few seconds... EAL: Detected 4 lcore(s) EAL: No free hugepages reported in hugepages-1048576kB EAL: Probing VFIO support... EAL: PCI device 0000:00:1f.6 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 8086:15b8 net_e1000_em EAL: PCI device 0000:01:00.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 8086:1533 net_e1000_igb EAL: PCI device 0000:02:00.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 8086:1533 net_e1000_igb [INFO] Found 2 usable devices: Device 0: A0:36:9F:72:87:DC (Intel Corporation I210 Gigabit Network Connection) Device 1: A0:36:9F:72:87:E8 (Intel Corporation I210 Gigabit Network Connection) [INFO] Waiting for devices to come up... [INFO] Device 1 (A0:36:9F:72:87:E8) is up: 1000 MBit/s [INFO] Device 0 (A0:36:9F:72:87:DC) is up: 1000 MBit/s [INFO] 2 devices are up. [INFO] Testing timestamping L2 PTP packets without rx filtering for 5 seconds. Samples: 0, Average: nan ns, StdDev: 0.0 ns, Quartiles: nan/nan/nan ns [ERROR] Received no packets.
[INFO] Testing timestamping L2 PTP packets with rx filtering for 5 seconds. Samples: 0, Average: nan ns, StdDev: 0.0 ns, Quartiles: nan/nan/nan ns [ERROR] Received no packets.
[INFO] Testing timestamping L2 PTP packets without rx filtering for 5 seconds. [INFO] Adding VLAN tag, this is not supported on some NICs. [WARN] Failed to timestamp packet on transmission [WARN] Failed to timestamp packet on transmission [WARN] Failed to timestamp packet on transmission [WARN] Failed to timestamp packet on transmission .... [WARN] Failed to timestamp packet on transmission [WARN] Failed to timestamp packet on transmission [WARN] Failed to timestamp packet on transmission Samples: 0, Average: nan ns, StdDev: 0.0 ns, Quartiles: nan/nan/nan ns [ERROR] Received no packets.
[INFO] Testing timestamping UDP packets to port 319 without rx filtering for 5 seconds. Samples: 0, Average: nan ns, StdDev: 0.0 ns, Quartiles: nan/nan/nan ns [ERROR] Received no packets.
[INFO] Testing timestamping UDP packets to port 1234 without rx filtering for 5 seconds. [WARN] Timestamping on UDP ports other than 319 is not supported by the hardware or driver Samples: 0, Average: nan ns, StdDev: 0.0 ns, Quartiles: nan/nan/nan ns [ERROR] Received no packets.
[INFO] Testing timestamping UDP packets to port 319 without rx filtering for 5 seconds. [INFO] Adding VLAN tag, this is not supported on some NICs. Samples: 0, Average: nan ns, StdDev: 0.0 ns, Quartiles: nan/nan/nan ns [ERROR] Received no packets.
[INFO] Testing timestamping UDP packets to port 319 with rx filtering for 5 seconds. Samples: 0, Average: nan ns, StdDev: 0.0 ns, Quartiles: nan/nan/nan ns [ERROR] Received no packets.
[INFO] Testing timestamping UDP packets to port 319 with rx filtering for 5 seconds. [INFO] Using multiple flows, this can be slower on some NICs. Samples: 0, Average: nan ns, StdDev: 0.0 ns, Quartiles: nan/nan/nan ns [ERROR] Received no packets.
[INFO] Flooding link with UDP packets with the same flow 5-tuple. [INFO] This tests whether the filter matches on payload. [INFO] Testing timestamping UDP packets to port 319 with rx filtering for 5 seconds. Samples: 0, Average: nan ns, StdDev: 0.0 ns, Quartiles: nan/nan/nan ns [ERROR] Received no packets.
[INFO] Trying to enable rx timestamping of all packets, this isn't supported by most nics [INFO] Trying to generate ~1000 mbit/s [WARN] Per-queue rate limit is not supported on this device, setting per-device rate limit to 1000 Mbit/s instead (note: this may fail as well if the NIC doesn't support any rate limiting). [WARN] global rate limiting is not supported by the hardware or driver [Device: id=1] RX: 0.69 Mpps, 354 Mbit/s (465 Mbit/s with framing) [Device: id=0] TX: 0.71 Mpps, 362 Mbit/s (475 Mbit/s with framing) [Device: id=1] RX: 1.49 Mpps, 762 Mbit/s (1000 Mbit/s with framing) [Device: id=0] TX: 1.49 Mpps, 762 Mbit/s (1000 Mbit/s with framing) [Device: id=1] RX: 1.49 Mpps, 762 Mbit/s (1000 Mbit/s with framing) [Device: id=0] TX: 1.49 Mpps, 762 Mbit/s (1000 Mbit/s with framing) [Device: id=1] RX: 1.49 Mpps, 762 Mbit/s (1000 Mbit/s with framing) [Device: id=0] TX: 1.49 Mpps, 762 Mbit/s (1000 Mbit/s with framing) [Device: id=1] RX: 1.49 Mpps, 762 Mbit/s (1000 Mbit/s with framing) [Device: id=0] TX: 1.49 Mpps, 762 Mbit/s (1000 Mbit/s with framing) [INFO] Inter-arrival time distribution, this will report 0 on unsupported NICs Samples: 7441622, Average: 0.0 ns, StdDev: 0.0 ns, Quartiles: 0.0/0.0/0.0 ns
slave@slave:/home/moongen-src/MoonGen$ <<<<<<<<<<<<<<<<<<<<<<<<<<<<
I'm not sure if I've ever tested it with an i210, it should work. The register definitions are here: https://github.com/libmoon/libmoon/blob/master/lua/driver/igb.lua Maybe they are wrong for the i210?