Skip to content

probabilistic datastructures for packet forwarding

License

Notifications You must be signed in to change notification settings

myegorov/ip-filter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ip-filter

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.

Docs

For up-to-date documentation, see ./doc/tex/report.pdf

Quick Start

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

Directory contents

    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

About

probabilistic datastructures for packet forwarding

Resources

License

Stars

Watchers

Forks

Packages

No packages published