Dropless ingress at linerate

NEIO Systems, Ltd.
2 min readMar 5, 2021

--

There are applications and use cases which don’t need to see every UDP packet, but then there are technologies where every single byte matters.

Especially in trading the loss of a packet results in a costly operation. The application will have to request missing packets to be retransmitted via TCP. In streaming video, the drop of a frame when capturing images from a high speed camera can be neglected. Just blink at the same time ;)

We see some nice enhancements for UDP here:

but doubt this will result in a dropless UDP ingress especially for tiny messages. Once fore sure, it will also make sure your OS is busy, and RIO Sockets won’t come to the rescue :)

The biggest challenge for achieving linerate is that of using tiny packets. Linerate is however no problem for FastSockets. For 10GbE here is what libfsock does today: 14,42 Mpps for 1byte UDP packets. Compared to the theoretical maximum considering the Ethernet frame of 64Bytes and Header of 20Bytes to be of 14,88Mpps :

14,88 Mpps = 10000MBit/s / ((64Byte + 20 Byte) * 8 Bit/Byte)

It can do both : generate traffic at linerate, but also receive at linerate. No drops. That’s via kernel bypass techniques and yes, for RX it will keep one of your cores busy at 100% while the OS stays idle.

Results

We present the following sink rates, having two ExaNIC X25 in point2point and using a 4 way threaded sender filling TX buffers with PIO and having a single threaded sinker , no drops, showing the following results :

14425486  pkts in 1.0 secs (14425485 pps), Pkt: 1, BW (Gbps):  0.115
14425355 pkts in 1.0 secs (14425353 pps), Pkt: 1, BW (Gbps): 0.115
14425440 pkts in 1.0 secs (14425430 pps), Pkt: 1, BW (Gbps): 0.115
14425427 pkts in 1.0 secs (14425419 pps), Pkt: 1, BW (Gbps): 0.115
14425530 pkts in 1.0 secs (14425455 pps), Pkt: 1, BW (Gbps): 0.115
14425356 pkts in 1.0 secs (14425354 pps), Pkt: 1, BW (Gbps): 0.115

Impressive !!!

We should add that the RX part of this assessment provides you with hardware timestamping in nano- , even picoseconds resolution at no extra cost. Now, that’s even more impressive.

Let’s conclude: A dropless technology with nano-, picosecond resolution/accuracy... Doesn’t this sound like a wonderful platform for a capture solution??

ps: the above measurements are using Windows Server 2016 but Linux users will experience the same results.

References:

libfsock: http://www.fastsockets.com — your source for high performance network solutions #latency_matters

--

--

NEIO Systems, Ltd.
NEIO Systems, Ltd.

Written by NEIO Systems, Ltd.

http://fastsockets.com || low latency, networking experts, 10GbE++, FPGA trading, Linux and Windows internals gurus

No responses yet