Re: FIB LPM algorithm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 7 Jun 2004 08:12:13 -0400, Tobias DiPasquale <cbcgtt@gmail.com> wrote:
> ...Any help would be appreciated. Thanks.

Nevermind about that. Someone on the netfilter list just told me how
it works. As well, there is more detailed information in Chapter 18 of
Understanding the Linux Kernel (2nd Edition) (RTFM ;-)). For others
who may be interested in how this works:

Any one FIB table (because there are more than one) consists of (among
other things) a struct fn_hash, an array of 33 pointers to struct
fn_zone records. The fn_zone records include routing information for
destination networks that each have the same network mask (e.g. all
/24 networks would be represented by the same fn_zone record). The
routing information itself is stored in a fib_node record which is
attached to its associated fn_zone record. The fib_node then contains
a pointer to the struct fib_info record which represents the network
device for that particular route (which is shared by all routes that
are directed to that particular interface). It also seems that after
the route is resolved the first time, it is then entered in the
routing cache (rt_hash_table) for faster future resolution.

This method is similar to the traditional BSD route resolution method
(in fact its almost identical). It also happens to be pretty
inefficient and much better IP lookup algorithms have existed for a
number of years (though there may be some patent/IP issues preventing
some of them from being used that I'm not aware of... $FLAME=="no" if
that's the case).

Anyway, thanks for letting me take up your time with this largely
useless thread.

--
Tobias DiPasquale
[ 0x63626367545440676d61696c2e636f6d ]
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux