A ping client and server for layer 2, implemented in C, using its own protocol ("Hardware Ethernet Location Protocol"). You can (and probably should) use it to test layer 2 routes in your network.
For protocoll reference, please refer to the included text file in the repository.
It suffices to use the standard packages of a modern linux system. I tested this with a Rocky Linux 8 machine, but any linux kernel above version 6 should do. Since this uses a raw socket, please run as root.
client: gcc client.c -o client -O1 -pthread
server: gcc server.c -o server -O1
Please leave me feedback or suggestions in the issues section or as a direct message, I appreciate it.