logoalt Hacker News

A cache-friendly IPv6 LPM with AVX-512 (linearized B+-tree, real BGP benchmarks)

37 pointsby debuggatoday at 3:24 AM16 commentsview on HN

Comments

debuggatoday at 3:24 AM

Clean-room, portable C++17 implementation of the PlanB IPv6 LPM algorithm.

Includes: - AVX-512 SIMD path + scalar fallback - Wait-free lookups with rebuild-and-swap dynamic FIB - Benchmarks on synthetic data and real RIPE RIS BGP (~254K prefixes)

Interesting result: on real BGP + uniform random lookups, a plain Patricia trie can sometimes match or beat the SIMD tree due to cache locality and early exits.

Would love feedback, especially comparisons with PopTrie / CP-Trie.

show 3 replies
ozgrakkurttoday at 5:46 AM

Why detect avx512 in build system instead of using #ifdef ?

show 1 reply
throwaway81523today at 7:23 AM

IPv6 longest-prefix-match (LPM).

NooneAtAll3today at 6:23 AM

I wonder how this would look like in risc-v vector instructions

sylwaretoday at 8:46 AM

Sad it is c++.