Options for selecting your own EtherType
June 30, 2026
This post summarizes the available options for selecting your own EtherType.
This post summarizes the available options for selecting your own EtherType.
If you are interested and somewhat into C - here’s a closer look: This is the IPFlowPortHash() function in place with BNG RNAT. It ret urns a port within the ephemeral port range 49152-65535 (RFC 6335 and IANA).
This Github project provides IP to location databases in CSV and MMDB formats since 2019. There are 3 types of IP database in this reposit ory: country, city and asn files. All have their own standard format.
ixdp acts as an RPCL controlled frontend to the IXDP ring managment layer and implements a simple bridge. This post explains How to start, stop and control ixdp when running as a daemon in background.
This post explains how to collect packets and record traffic with ixdp and collect.
This post is about corrupting packets with ixdp. 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. ixdp allows to inject different networking faults when acting as a transparent bridge. This post explains how to configure packet loss generally and also selectively.
This is about the third fault type that can be injected with ixdp 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.
gcc allows to switch off optimization temporarily for a source code region. This post shows the RPCL word cycleburn as an example.
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.