[j-nsp] routing updates between PFEs and Kernal

Richard A Steenbergen ras at e-gerbil.net
Wed Nov 3 13:20:06 EDT 2010

On Wed, Nov 03, 2010 at 02:00:11PM +0500, Good One wrote:
> We started using MX-480 and I came to know that each DPC has four 
> PFEs. Now a question comes to mind that how the chemistry of routing 
> updates in between PFEs and RE(kernel) is being done. If kernel routes 
> are being exported to PFEs, does it means that each PFE contains a 
> full routing table? So if you have five DPCs than you have 20 PFEs and 
> you are exporting kernel routes to all 20 PFEs and each PFEs is having 
> a best route in the forwarding table.

Yes each PFE has a complete copy of the routing table and makes the 
routing decision for ingress packets, this is how distributed forwarding 
works. I suspect what actually happens is the kernel sends it's routing 
table (krt) to the CPU on the DPC, which then programs the individual 
PFEs on the card (4 per DPC), but I don't work for Juniper or anything 
so I have no special knowledge about their implementation.

There is also a fair amount of work that goes into locking and 
verification of the routes, to ensure that every PFE has a consistent 
view. Otherwise, you risk creating micro forwarding loops with every 
route update, or worse macro forwarding loops aka Cisco Customer 
Enragement Feature. :)

Richard A Steenbergen <ras at e-gerbil.net>       http://www.e-gerbil.net/ras
GPG Key ID: 0xF8B12CBC (7535 7F59 8204 ED1F CC1C 53AF 4C41 5ECA F8B1 2CBC)

More information about the juniper-nsp mailing list