Skip to content

An IP lookup engine using Tree Bitmap Algorithms

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

xnhp0320/prefix_lookup_mc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

prefix_lookup_mc

Any problem, drop the email at: hepeng@ict.ac.cn

*A high performance IP lookup engine based on the Tree Bitmap Algorithm.

paper: Hardware/Software IP Lookups with Incremental Updates.
link: http://cseweb.ucsd.edu/~varghese/PAPERS/ccr2004.pdf

*It can be used for both IPv4 and IPv6 lookup

Performance: 24MLPS for low locality IP traces on a single Intel Xeon Core

*It support Incremental Update

Support dynamic network environment

*Example:

....
struct lookup_trie trie;
memset(&trie, 0, sizeof(struct lookup_trie));
init_lookup_trie(&trie);

...
insert_prefix(&trie, ip, cidr, (struct next_hop_info*)(key));
...
delete_prefix(trie, ip, cidr, NULL);
....
destory_trie(trie, NULL);

Check function ipv4_test() and ipv6_test in main.c for details.

*Performance

Test on Intel E5506.

 2.3GHz 256K L1 Cache, 1M L2 Cache, 4M L3 Cache.
 127ns/lookup for 1M low locality IP traces.
 7Mpps for 64 byte packets.
 5Gbps for 64 Byte packets.

Memory Size:

16MB on 64-bit platform for 350K core router prefixes.
5.4 MB used for lookup data structure.
11.6MB used for an aid data structure for update.

Notes:

*This lookup engine utilizes the SSE instructions. 
Please fix the Makefile the compile options: -msse4.* acorrding to your own machine configuration.

*USE_MM will ultize the page coloring technique and huge page to optimize the lookup performance. 
 you need to turn on the huge page on your server before using it. 
 check the mm.cc for details. 

About

An IP lookup engine using Tree Bitmap Algorithms

Resources

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages