View Only
last person joined: 5 hours ago 

Ask questions and share experiences about ACX Series, CTP Series, MX Series, PTX Series, SSR Series, JRR Series, and all things routing, including portfolios and protocols.
  • 1.  BGP PIC core and FIB architecture on MX

    Posted 26 days ago

    Hi everyone,

    I am reading about BGP PIC core and hierarchical FIB architecture requirement to use BGP PIC core feature.


    Above we  see BGP 's next hop is resolved to immediate next hop  in FIB .

    Hierarchical FIB:

    Above we see BGP next's hop is not resolved to immediate next hop in hierarchical FIB. 

    Now if look at Juniper MX's forwarding table,  even routing table, we see BGP's next hop is resolved to immediate next hop and installed into inet.0  and forwarding table, i;e FLAT FIB architecture . But I  still see we can use BGP PIC core feature on MX, even though FIB is flat not hierarchical . How is it possible?

    Thanks !!

    Be kind!!

  • 2.  RE: BGP PIC core and FIB architecture on MX
    Best Answer

    Posted 26 days ago

    Hi Leebahi,

    If I understand you correctly, you're referring to these knobs:

    set routing-options resolution preserve-nexthop-hierarchy 
    set protocols bgp group <group_name> family <NLRI> <...> nexthop-resolution preserve-nexthop-hierarchy
    set routing-options rib inet.3 protect core
    set routing-options protect core
    set routing-instances <instance_name> routing-options protect core

    The knob protect core is related to BGP PIC. Whether it applies to the core or edge depends on whether it is configured under an instance or globally. It will make the second-best route active, create a weight, and install it into the forwarding table.

    It really depends on how the next-hop is reachable; it can be an directly connected or indirect next-hop via IGP, BGP, etc. 

    When the nextoph is an indirect next-hop is reachable via another indirect next-hop, it result in a longer hierarchy than usual, you may want to use preserve-nexthop-hierarchy (globally or per NLRI family) which will copy the next-hop hierarchy with its weight value from RIB to FIB. 

    Below is a link to some options and scenarios, I hope you will find it useful.

    Moshiko Nayman

  • 3.  RE: BGP PIC core and FIB architecture on MX

    Posted 26 days ago
    Thanks Nayman.
    I stumbled upon your  well written blog while learning the BGP PIC feature yesterday. 
    However, my question is not about the BGP PIC feature. It is about FIB architectures on JUNOS say MX. Does MX use hierarchical or Generalised FIB architecture?
    Much appreciated !!



  • 4.  RE: BGP PIC core and FIB architecture on MX

    Posted 25 days ago

    Yes, and that part is explained in the article. Please check the section for details provided with detail so you can see the hierarchy for the given route:

    "preserve-nexthop-hierarchy" – BGP Transport Layer Protection

    Moshiko Nayman

  • 5.  RE: BGP PIC core and FIB architecture on MX

    Posted 25 days ago

    A problem is that preserve-nexthop-hierarchy isn't properly documented on Juniper website and in Juniper documentation.

    Olivier Benghozi

  • 6.  RE: BGP PIC core and FIB architecture on MX

    Posted 22 days ago

    By the way, how much memory pressure does add preserve-nexthop-hierarchy on the FPCs memory?

    Olivier Benghozi

  • 7.  RE: BGP PIC core and FIB architecture on MX

    Posted 24 days ago
    Edited by spuluka 24 days ago

    Thanks Nayman!!

    Below is the awesome response from Nayman , so everyone can learn:

    I understand you're looking for hierarchical FIB. the knob preserve-nexthop-hierarchy will give you this functionality. 
    for each nexthop in the RIB you will have either unicast/unilist/composite and sometimes another layer of unilist and composite. 

    Without this feature, the FIB will be flattened means next-hop chain (just the direct/unicast nexthop) won't be copied as well as weight value will be flattened. 

    Try with and without this knob and check the forwarding table difference (don't forget to use extensive)

    RIB with new expanded-nh: show route extensive expanded-nh 

    Forwarding in the kernel: show route forwarding-table destination extensive

    for more info, you can go to the actual FPC

    start shell 
    % vty fpc4
    # show nhdb id 513  extensive

    and btw, unlike Cisco (limited to 3) MX Trio has enormous depth of nexthop, unicast behined unilist, composite, list and then again composite, you can continue to gigantic depth.

    Be kind!!