Portable PlanB: an MIT-licensed, AVX-512–aware IPv6 LPM reimplementation lands on GitHub

What happened
A clean-room reimplementation of the PlanB IPv6 longest-prefix-match (LPM) algorithm has appeared on GitHub. The project, planb-lpm, repackages the linearized B+-tree idea from the NSDI '26 paper as a portable, header-only C++17 library with an AVX-512-accelerated path and a scalar fallback. It has been reported that the repo adds things the paper’s reference code left out: a permissive MIT license, dynamic-FIB support, pybind11 Python bindings, and correctness tests that exercise the tree against a brute-force LPM.
Why bother? Because the original reference code was Linux- and AVX-512-only, unlicensed, and awkward to drop into other projects. This rework aims to make the technique usable in research, teaching, and production: a tiny include/lpm6.hpp core that compiles without AVX-512, a dynamic lpm6::Dynamic using a rebuild-and-swap model (allegedly providing wait-free lookups), and a sample FIB/trace generator so you can reproduce experiments without a PhD in build systems.
Performance and where it might fit
Benchmarks shipped with the repo use a synthetic 100k-prefix FIB and a 1M-address trace. It has been reported that on an Intel i5-1035G7 the implementation reaches median single-path throughput around 48 MLPS (million lookups per second) and shows better rates with batch APIs (median batch<2> 54 MLPS, batch<4> 66 MLPS; the repo includes min/q1/median/q3/max and IQR across 20 runs). The authors also document methodology carefully: pinning to a core, printing CPU state, and weighting prefix lengths to match RIPE distributions. Reproducibility matters — and they seem to have thought about it.
This isn’t just about raw speed. The emotional core here is practicality: a modern SIMD lookup structure made portable, licensed, and testable. Want to plug a fast LPM into an ns-3 simulator, an SDN control tool, or a traffic-enrichment pipeline without dragging in an opaque Linux-only blob? This makes that a lot easier. Will operators actually swap their existing IPv6 lookup stacks for a newer B+-tree plus AVX-512? Time, and independent evaluations, will tell — but at least the community now has a usable, well-documented starting point.
Sources: github.com/esutcu, Hacker News
Comments