June 12, 2025
RHPool
implements a Rendezvous Hash Pool, which holds multiple possible destinations (or servers) at a given time. For DSR load balancing (the intended purpose), a MAC address is mapped to the first 6 bytes in memory order, the remaining 2 bytes allow to insert the same MAC address multiple times. A combination of Linux/POSIX rwlocks and atomic uint64_t
access allows a maximum of concurrency during regular operation.
June 4, 2025
CHRing is an experimental consistent hash ring implementation based on a skiplist and f448()
, a tabulation hashing function for this purpose. This post provides an overview of the CHRing testing API and the related RPCL control words.
May 4, 2025
f448()
is another tabulation hashing function which maps two uint32_t
to an uniform hash result of type uint64_t
. This is useful to implement a skiplist based consistent hash ring with 2^64 possible ring slots (or positions).
April 19, 2025
IXDP is a layer above libxdp/AF_XDP which is responsible for XDP ring management operating with a set of interfaces in promiscuous mode. IXDP registers its specific set of RPCL functions (words) which allow to control and configure the IXDP packet processing layer. This posts explains the IXDP packet processing flow in general and outlines the related RPCL functions (words) for the different stages.