"Barry Margolin" <
bar...@alum.mit.edu> wrote in message
news:barmar-2FD372....@news.eternal-september.org...
> Usually they each maintain separate tables. Each routing protocol
> typically needs to maintain its own state, because they operate
> independently -- a RIP route shouldn't normally be advertised via BGP.
> The hardware FIB is created by merging all the information from the
> different protocols.
Thanks for the reply. To be more specific -- a routing protocol maintains
its state and RIB table should reflect the RIB information down to the
kernel or/and hardware; so my question is -- should it be done on both
kernel and hardware, i.e. FIB in the hardware, or only FIB in hardware? (By
the hardware let's consider L3 switch, or network processor). Obviously if
we have a generic x86 machine with NICs and OS Linux, then the only FIB we
update is the kernel's FIB, but what if we have Linux and user-level
applications implementing routing protocols, and underlying network
processor capable of maintaining its own FIB tables?
> Also, the memory for the hardware FIB is usually limited, so you just
> want the minimal forwarding information. But routing protocols need to
> maintain state, sometimes quite a bit of it (e.g. the AS path in BGP).
>
Mark