SNTPings

An event held at the 2019 and 2024 lustrums where people can draw on a 1920×1080 canvas by sending icmpv6 ping packets.

Repo 2024

Used c++ version: https://gitlab.snt.utwente.nl/snt/pings/server2024

Possible golang version: https://gitlab.snt.utwente.nl/snt/pings/go-server

Webpage: https://pings.utwente.io | https://gitlab.snt.utwente.nl/pings/pings.utwente.io

Architecture 2024

While Silke had prepared a golang version, Luc thoughts that this would not be able to handle the expected packet rates due to the use of pcap in the go version, and proposed a DPDK-based fork of the 2019 c++ version.

DPDK is used to ingest the packets, which are then written into a global and per-/64 OpenCV image matrix. These were then x264 encoded and streamed to a MediaMTX server for further distribution.

At the peak, about 55Mpps was being sent to the tap, which about coincides with the limit. Various users were able to send more, but that was heavily discouraged.

The main limiting factors in 2024 were the network card only processing about 15Mpps, and the x264 encoder having heavy trouble dealing with the noise that comes from overlapping images. The first is easily fixed with a better card, which can easily be sponsored, or bought relatively cheaply second hand. The latter will require some research and testing under load. See “video is a mess” below.

Lessons learned: 2024

A few take-aways from 2024: