xdptap - Basic Usage
May 30, 2025
This post explains the basic usage of xdptap: How to start, stop and control it when running as a daemon in background.
This post explains the basic usage of xdptap: How to start, stop and control it when running as a daemon in background.
CHRing is a 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.
This is about the third fault type that can be injected with xdptap in bridging mode: Packet duplication. It works similar to the other two fault types: Fault injection needs to be enabled on the RX interface and the probability is controlled by setting fault.dup.probability
to the desired value.
This post explains how to collect packets and record traffic with xdptap and collect.
This post is about corrupting packets with xdptap. This is done by flipping a single bit at a random position in the packet payload data. The area where one single bit is flipped starts at byte 15 thus always leaving the destination MAC address, the source MAC address and the first Ethertype untouched.
Nobody working at network and data center operations usually likes packet loss, even just a small percentage of packet loss can have serious effects on overall quality, bandwidth and end user experience. xdptap allows to inject different networking faults when acting as a transparent bridge. This post explains how to configure packet loss generally and also selectively.
We changed the project name from EtherTAP to xdptap with a few implications.
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).
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.
This shares some comments and provides important key resources for implementing high speed libxdp packet forwarding.