Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Computing > Cisco > relation between kernel FIB and hardware FIB

Reply
Thread Tools

relation between kernel FIB and hardware FIB

 
 
Mark
Guest
Posts: n/a
 
      09-20-2012
Hello

This is more a genric question on the implementation of routers. Does a
software in the control plane (let's consider RIP, OSPF or BGP protocols)
have to install routing entries in both kernel and underlying hardware
(given that the hardware is capable to maintain its FIB), or in such case
the kernel doesn't need to have a routing table and the routing table is
constructed and maintained entirely by the control plane routing prototols ?

Thanks.

Mark


 
Reply With Quote
 
 
 
 
Barry Margolin
Guest
Posts: n/a
 
      09-20-2012
In article <k3fes8$fo9$(E-Mail Removed)>,
"Mark" <(E-Mail Removed)> wrote:

> Hello
>
> This is more a genric question on the implementation of routers. Does a
> software in the control plane (let's consider RIP, OSPF or BGP protocols)
> have to install routing entries in both kernel and underlying hardware
> (given that the hardware is capable to maintain its FIB), or in such case
> the kernel doesn't need to have a routing table and the routing table is
> constructed and maintained entirely by the control plane routing prototols ?


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.

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).

--
Barry Margolin, http://www.velocityreviews.com/forums/(E-Mail Removed)
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
 
Reply With Quote
 
 
 
 
Mark
Guest
Posts: n/a
 
      09-20-2012

"Barry Margolin" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)-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


 
Reply With Quote
 
Barry Margolin
Guest
Posts: n/a
 
      09-21-2012
In article <k3fpih$ch7$(E-Mail Removed)>,
"Mark" <(E-Mail Removed)> wrote:

> "Barry Margolin" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)-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?


If you're implementing a router, you can do whatever you want. The main
benefit of keeping a copy of the FIB in the kernel is that it doesn't
have to interrupt the hardware if an application asks to view the FIB.

--
Barry Margolin, (E-Mail Removed)
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Kernel#autoload ignores custom monkey patched Kernel#require Lars Gierth Ruby 6 03-20-2010 10:35 PM
Howto Show RIB and FIB ? frederic.metz@gmail.com Cisco 5 03-18-2007 08:49 PM
beginner Q: Kernel#puts, STDOUT, $stdout relation Andreas S Ruby 3 12-09-2006 12:39 AM
Why "Kernel.puts" and not "Kernel.put"? shadytrees@gmail.com Ruby 3 04-08-2006 01:42 PM
kernel hangs after "UNCOMPRESSING KERNEL OK BOOTING KERNEL" yogesh C Programming 3 02-12-2006 11:19 AM



Advertisments