Subject: Re: Route cache performance under stress

From: Steven Blake <[email-masked]>
Date: 09 Jun 2003 23:05:47 -0400

On Sun, 2003-06-08 at 09:10, Florian Weimer wrote:

> "David S. Miller" <[email-masked]> writes:
> 
> > Although, I hope it's not "too similar" to what CEF does because
> > undoubtedly Cisco has a bazillion patents in this area.
> 
> Most things in this area are patented, and the patents are extremely
> fuzzy (e.g. policy-based routing with hierarchical sequence of
> decisions has been patented countless times). 8-(
> 
> > This is actually an argument for coming up with out own algorithms
> > without any knowledge of what CEF does or might do. :(
> 
> The branchless variant is not described in the IOS book, and I can't
> tell if Cisco routers use it.  If this idea is really novel, we are in
> pretty good shape because we no longer use trees, tries or whatever,
> but a DFA. 8-)

Based on my quick reading of your code sample, I think you have just
reinvented multibit trees; in your case with a fixed stride of 8 bits. 

> Further parameters which could be tweaked is the kind of adjacency
> information (where to store the L2 information, whether to include the
> prefix length in the adjacency record etc.).

If you are curious, or just have a lot of time on your hands, you might
find the following set of references useful:

http://www.petri-meat.com/slblake/networking/refs/lpm_pkt-class/

IMHO, the best LPM algorithm (in terms of balancing lookup speed vs.
memory consumption vs. update rate) is CRT, described in the first paper
[ASIK].  It is patented, but there is hope that it might get released
under GPL in the near future.

Regards,

// Steve