Nguồn: Hacker News / GitHub
Tóm tắt
Thư viện planb-lpm là một cài đặt lại sạch của thuật toán PlanB từ bài báo NSDI ‘26, thực hiện IPv6 longest-prefix-match (LPM) sử dụng cấu trúc linearized B+-tree kết hợp với AVX-512 SIMD. Thuật toán gốc được đề xuất bởi nhóm nghiên cứu từ Đại học Tsinghua, nhằm tối ưu tra cứu địa chỉ IPv6 trong các bộ định tuyến phần mềm với tốc độ cao.
Điểm đặc trưng của thư viện là thiết kế header-only C++17 với khả năng fallback về scalar path khi không có AVX-512, đảm bảo tính portable. Dynamic FIB (lpm6::Dynamic) sử dụng mô hình rebuild-and-swap kết hợp std::atomic<std::shared_ptr>, cho phép các lookup operation là wait-free trong khi vẫn hỗ trợ cập nhật FIB động.
Tác giả xây dựng lại thư viện này vì code gốc từ nhóm tác giả bài báo bị giới hạn Linux+AVX-512, không có license, và không có Python bindings. planb-lpm bổ sung Python bindings qua pybind11, test tính đúng đắn bằng brute-force reference, và benchmark thực tế trên BGP routing tables.
Ứng dụng thực tế bao gồm: SDN controller cần tra cứu prefix nhanh trên FIB lớn, network analyzer, IPv6 scanner, và traffic classifier. Kỹ thuật linearized B+-tree giúp tối ưu cache locality — một vấn đề quan trọng khi routing table IPv6 ngày càng lớn hơn.