An adaptation of the Bloom filter for use with core router forwarding tables.
Longest prefix matching has long been the bottleneck of the Bloom
filter-based solutions for packet forwarding implemented in software.
We prototype a search algorithm that allows for a compact representation of
the FIB table in cache on general purpose CPUs with an average performance
target of O(log n), where n is max(l,b), for b
-bit IP addresses and
l
distinct outgoing links in the FIB table.
For up-to-date documentation, see ./doc/tex/report.pdf
Requires Python 3.
To set up the project tree, download BGP tables, synthesize traffic for experiments, and run experiments profiling the relative performance of the traditional linear search against the guided search scheme:
pip3 install -r requirements.txt
./setup.py
data/ utilities for traffic generation, input/output
doc/ project documentation
prototype/ implementation of the guided search algorithm, tests
setup.py run experiments
src/ skeleton for a forthcoming low-level implementation