cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
10182
Views
10
Helpful
0
Comments
yosef_manasseh
Cisco Employee
Cisco Employee

Before going further ...

This document describes BFD over IPv4 implementation on NCS5500 platform.

 

BFD over IPv6 implementation is not discussed in the current article, but you can find complete info here:

https://community.cisco.com/t5/service-providers-blogs/bfd-over-ipv6-implementation-on-ncs5500-platform/ba-p/3771621

 

There are many documentations already about XR implementation of BFD in general, this document took some info from them while also adding new data about specific NCS5500 implementation.

This is also a living document, the document will be updated if we have new information.

 

Update 4/15/2021, this article will not be updated anymore going forward.
The information in this document is accurate as of IOS XR 7.0.2.
Newer version of IOS XR might have new BFD features / enhancements that are not covered in this doc.
Whenever in doubt, please reach out to your friendly TAC team for assistance.

A list of particularly good reference is as follows:

 

 

A very high level overview of BFD

In the context of routing, purpose of BFD is to detect communication failure between two routers faster than what is supported by routing protocols detection timers.
BFD detects the failure by monitoring incoming BFD control packets from neighbor router.
If a number of packets are lost in transmission for whatever reason and thus not received by the monitoring router, the monitoring router will bring down routing session to the neighbor router.

BFD detects failure by monitoring incoming BFD control packets from neighbor router.BFD detects failure by monitoring incoming BFD control packets from neighbor router.BFD detects failure by monitoring incoming BFD control packets from neighbor router.






 

 

Keep in mind that BFD will bring down the routing session, but it will be up to the routing protocols to bring up the routing session again (i.e. BFD is only responsible to bring down, not to bring up routing sessions).
So it is possible that the following scenario might happen:

  • BFD misses BFD control packets from a specific neighbor.
  • BFD session goes down, down BFD session brings down routing session (say, OSPF) to that neighbor.
  • After a while, OSPF for some reason manages to recover on its own (maybe the problem only affects BFD packets and not OSPF packets).
  • OSPF session to the neighbor will recover.
  • But BFD session will still be down since it still experiences missing BFD packets.
    So now we have OSPF up and BFD down.
    This outcome is counter-intuitive but expected.

The above description applies when BFD is used in the context of routing, i.e. BFD client is routing protocols like OSPF, ISIS, and BGP.

 

BFD also supports the usecase where BFD client is not routing protocols. For instance, BOB ("BFD Over Bundle") whose client is bundlemgr instead of routing protocols.
In this context, down BFD session on a specific bundle member link can bring down the whole bundle interface (say when down member link would make number of available links to fall below required minimum).
Down bundle interface will in turn bring down routing session.

On NCS5500 platforms, BFD is hardware offloaded, meaning processing of the BFD packets will mostly be done in LC NPU.
LC CPU will process BFD packets only during BFD initialization process and no BFD packets are ever sent to RP.
This is different than default operation of ASR9K platform in which RP and LC will work together to support BFD sessions.

 

For NCS5500, BFD over IPv4 features are delivered in phases.
You can find which XR version supports which BFD over IPv4 feature below.
 

BFD over IPv4 features supported in release 6.1.2 and above

 

  • BFD over regular interface (VLAN or non VLAN)

    BFD client:
    Static route (non-VRF only)
    ISIS (non VRF only)
    OSPFv2 (non-VRF only)
    BGP-SH (non-VRF only)

    Currently NCS5500 doesn't support any other protocols as BFD client outside of what is listed above.

  • BOB ("BFD Over Bundle")

    BFD client:
    bundlemgr

    Currently NCS5500 doesn't support any other client outside of what is listed above.

 

BFD over IPv4 features supported in release 6.3.2 and above

 

  • BLB ("BFD Over Logical Bundle")

    BFD client:
    Same as "BFD over regular interface (VLAN or non VLAN)"

  • BFD-MH (Multihop BFD)

    BFD client:
    BGP-MH (non-VRF only)

    Currently NCS5500 doesn't support any other protocols as BFD client outside of what is listed above.

 

BFD over IPv4 features supported in release 6.6.1 and above

 

IPv4 BFD sessions over VRF interface is now supported, essentially making BFD to be "VRF aware", for all covered use cases:

  • BFD over regular interface (VLAN or non VLAN)
  • BOB ("BFD Over Bundle")
  • BLB ("BFD Over Logical Bundle")
  • BFD-MH (Multihop BFD)

One application for this might be in L3VPN scenario where you can deploy BFD in your PE-CE link (unlabeled).
Routing can be configured (OSPF, BGP-SH, BGP-MH, static) on that PE-CE link, all of which are now protected by BFD.

 

Note:
IOS XR 6.6.1 is an LA (limited availability) release.

 


BFD over IPv4 features supported in release 7.0.2 and above

 

BFD support is added on Jericho2 based LCs.
For first phase of deployment, following BFD features are supported:

  • BFD over regular interface (VLAN or non VLAN, VRF or non VRF) ; full parity with Jericho1 LCs.
  • BOB ("BFD Over Bundle") (VLAN or non VLAN, VRF or non VRF) ; full parity with Jericho1 LCs.

 

The following features are not supported on first phase and will come in later release:

  • BLB ("BFD Over Logical Bundle")
    Note that BLB for Jericho2 is not supported on first phase even if the BLB session is hosted on Jericho1 card.
    For first phase, a router where there are both Jericho1 and Jericho2 LCs, BLB can only be run on a bundle interface with all member links from Jericho1 cards, and the BLB session must be hosted on Jericho1 cards as well.

  • BFD-MH (Multihop BFD)

 

Note:
IOS XR 7.0.2 might be an LA (limited availability) release.

 

 

Supported Scale for Jericho1/Qumran ASIC

Items Maximum sessions supported
BFD (any type) per modular chassis (e.g. NCS-5508)
4000
BFD (any type) per fixed chassis (e.g. NCS-5501-SE) 500
BFD over regular interface VLAN/non-VLAN per NPU 500
BFD over regular interface VLAN/non-VLAN per LC
500
BOB (member link session) per NPU 500
BOB (member link session) per LC
500
[BLB + MH] per LC (Jericho NPU) 250
[BLB + MH] per LC (Qumran NPU) 125


There is limit of 500 BFD sessions combined between BFDv4 and BFDv6 per LC.
Within the above limit, BFDv4 and BFDv6 is independent with each other.

For example, the following mix is supported on an NCS-55A1-24H fixed chassis router (which rocks Jericho+ NPU):
1. 26 IPv4 BFD sessions on regular interface VLAN
2. 12 IPv4 BOB interfaces with 2 member links each (which gives us 12*2=24 BOB member link sessions)
3. 100 IPv4 BFD-MH sessions
4. 100 IPv4 BFD-BLB sessions
5. 125 IPv6 BFD-MH sessions
6. 125 IPv6 BFD-BLB sessions
    

 

Supported Scale for Jericho2 ASIC

Items Maximum sessions supported
BFD (any type) per modular chassis (e.g. NCS-5508)
4000
BFD (any type) per fixed chassis N/A ; no fixed chassis based on J2 at the time this info is added.
BFD over regular interface VLAN/non-VLAN per NPU 250
BFD over regular interface VLAN/non-VLAN per LC
250
BOB (member link session) per NPU 250
BOB (member link session) per LC
250
[BLB + MH] per LC N/A ; no BLB and MH support at the time this info is added.


There is limit of 250 BFD sessions combined between BFDv4 and BFDv6 per LC.
Within the above limit, BFDv4 and BFDv6 is independent with each other.

For example, the following mix is supported on an LC:
1. 95 IPv4 BFD sessions on regular interface VLAN
2. 15 IPv4 BOB interfaces with 2 member links each (which gives us 15*2=30 BOB member link sessions)
3. 95 IPv6 BFD sessions on regular interface VLAN
4. 15 IPv6 BOB interfaces with 2 member links each (which gives us 15*2=30 BOB member link sessions)


Supported Timers

  • BLB and MH
    minimum 300ms interval with minimum 3 multiplier
    The 300ms minimum interval in case of BLB/MH is because the implementation (BFD multipath) is depending on FIB to get BFD updates, and this FIB part is still done in software.
    Interval less than 300ms are likely to give false failure and thus can bring down BFD session.

  • All other BFD types
    minimum 4ms interval with minimum 3 multiplier

IPv6 BFD also supports this same minimum numbers.

Constraints on unique BFD intervals:
Support up to 6 unique BFD intervals per NP.


 

Supported Underlay

BFD can run on many different kind of interfaces (regular interface VLAN, non-VLAN, bundle, bundle VLAN) and different protocols can be configured on those interfaces (OSPF, ISIS, BGP, SR-MPLS, TE tunnel, GRE, etc), you can even have a dual stack IPv4 and IPv6 running on the same interfaces.

 

In the first phase of deployment, BFD sessions can run fine in any interfaces as long as the BFD destination is not resolving on labeled/MPLS path. It must resolve to IP. This is especially true for BFD-MH use case.
Additional support has been added since for BFD-MH over labeled/MPLS path use case:

  • 7.1.1 release: NCS5500 is now able to process incoming BFD-MH packets that is encapsulated with MPLS explicit null label.

 

The first phase of deployment also does not support running BFD over VRF interfaces.
BFD over VRF interfaces is supported in later release 6.6.1 and above.

 

 


BFD Strict-mode

BFD has an option where once brought down by BFD, routing session will stay down as long as BFD is down, and will recover when BFD recovers. We call this feature "BFD strict-mode".

 

BFD strict-mode support is added in phases for NCS5500.

 

Phase 1 (before IOS XR 7.0.2)

 

We support strict-mode on following use cases:

  • BFD over OSPF regular interface with IP unnumbered and no VLAN.
  • BFD over OSPF bundle VLAN interface (a.k.a. BLB) with IP address


The mode is not guaranteed to work on other type of interface configuration.

 

Sample configuration:


interface HundredGigE0/2/0/20
 ipv4 point-to-point
 ipv4 unnumbered Loopback0
!
router ospf main
 area 0
  interface HundredGigE0/2/0/20
   bfd minimum-interval 4
   bfd fast-detect strict-mode
   bfd multiplier 3
   network point-to-point
  !
 !
!

 

 

Phase 2 (IOS XR 7.0.2 and above)

 

We support strict-mode on following use cases on all interface type, on both VRF/non-VRF scenarios:

  • ISIS
  • OSPFv2
    Note:
    When removing related BFD configuration under OSPF, the configuration removal needs to be done on both router and its peer. Failure to do so might cause the BFD protected OSPFv2 adjacency to flap.
  • BGP-SH
    Note:
    In the absence of background traffic that initiates ARP for BFD destination IP address, BGP session might be stuck in down state after issuing shut and no shut of a VLAN interface.
    The work around is to ping manually to BFD destination IP address after no-shut to force ARP resolve for that destination.

 


BFD and NSR

Same as with IPv6 BFD, RP switch over will not tear down existing BFD sessions when NSR is configured under each desired routing protocols.


Caveats

 

  • NCS5500 does not support BFD echo mode.

  • Since BFD processing is hardware offloaded, BFD packet counters will not increment when we issue certain show bfd commands like "show bfd session detail".
    This is expected since regular BFD CLI command will derive the counter from LC CPU, not from LC NPU.

  • BFD is not supported over VRF interface, VRRP interface, BVI interface, and IRB interface.
    BFD over VRF interface starts to be supported on XR release 6.6.1.

  • As mentioned before, BFD-MH is not supported over MPLS TE / RSVP tunnel.

  • BFD is also not supported to run on top of MPLS TE tunnel.
  • BFD MH will flap if underlay paths that consist of multiple bundle vlans flap.
    This is due to slow convergence on NCS5500 platform.

  • Unlike ASR9000, NCS5500 platform doesn't support BoB and BLB coexistence ("bfd bundle coexistence bob-blb <>" config).
    Given a bundle interface, users have to choose to configure either BOB or BLB, and not both at the same time.
    For example, NCS5500 won't have any problem when we have BOB on bundle-ether1 and BLB on bundle-ether2. What is not supported is when we have both BLB and BOB on same bundle interface.

 

  • For BLB use case, additional config is needed for IOS XR 6.6.2 and above: "cef proactive-arp-nd enable".
    This config will make sure that in some usecases BFD sessions will be able to come up after chassis/LC is reloaded.
    This config is not needed for earlier IOS XR releases.

  • We can run BFD over IP unnumbered interfaces as long as we satisfy the following criteria:
    - Interfaces are regular non-bundle interface
    - No VLAN is configured on these interfaces
    - The BFD end-points are back to back connected with no other device in between

  • Changing BFD multiplier must be done along with changing of BFD interval. Changing BFD multiplier alone won't work if BFD interval is not changed along with it (on same configuration commit).
  • "clear arp-cache location <>" command will flap existing BFD IPv4 sessions.
    If you have BFD IPv4 sessions present, only issue this command during maintenance window where all BFD protected routing sessions have been cost out.

 

Sample Configurations

BFD over regular interface (VLAN or non VLAN)

Say the interface is Hu0/0/1/0.78.

... static route as client
 
router static
 address-family ipv4 unicast
  <DESTINATION IP ADDRESS> <NEXT HOP IPv4 ADDRESS> bfd fast-detect minimum-interval <> multiplier <>
 !
!
 
The above can be configured under VRF context for IOS XR 6.6.1 and above:
 
router static
 vrf <VRF NAME>
  address-family ipv4 unicast
   <DESTINATION IP ADDRESS> <NEXT HOP IPv4 ADDRESS> bfd fast-detect minimum-interval <> multiplier <>
  !
 !
!

 
... ISIS as client
 
router isis <>
 address-family ipv4 unicast
!
interface Hu0/0/1/0.78
  bfd minimum-interval <>
  bfd multiplier <>
  bfd fast-detect ipv4
  address-family ipv4 unicast
  !
 !
!

Currently, NCS5500 does not support the above config with VRF context.


... OSPF as client
 
router ospf <>
 area 0
  interface Hu0/0/1/0.78
   bfd multiplier <>
   bfd fast-detect
   bfd minimum-interval <>
  !
 !
!
 
The above can be configured under VRF context for IOS XR 6.6.1 and above:
 
router ospf <>
 vrf <VRF NAME>

  area 0
   interface Hu0/0/1/0.78
    bfd multiplier <>
    bfd fast-detect
    bfd minimum-interval <>
   !
  !
 !
!
 
... BGP single-hop as client
 
router bgp <>
 neighbor <directly connected neighbor>
  bfd fast-detect
  bfd multiplier <>
  bfd minimum-interval <>
 !
!
 
The above can be configured under VRF context for IOS XR 6.6.1 and above:
 
router bgp <>
 vrf <VRF NAME>

  neighbor <directly connected neighbor>
   bfd fast-detect
   bfd multiplier <>
   bfd minimum-interval <>
  !
 !
!


BOB ("BFD Over Bundle")

Say the interface is Bundle-Ether11

interface Bundle-Ether11
 bfd mode ietf <--- Only ietf mode is supported for NCS5500 platform
 bfd address-family ipv4 multiplier <>
 bfd address-family ipv4 destination <peer's directly connected IP address>
 bfd address-family ipv4 fast-detect
 bfd address-family ipv4 minimum-interval <>
 ipv4 address <>
!
 
The above can be configured under VRF context for IOS XR 6.6.1 and above:

interface Bundle-Ether11
 bfd mode ietf <--- Only ietf mode is supported for NCS5500 platform
 bfd address-family ipv4 multiplier <>
 bfd address-family ipv4 destination <peer's directly connected IP address>
 bfd address-family ipv4 fast-detect
 bfd address-family ipv4 minimum-interval <>
 vrf <VRF NAME>
 ipv4 address <>

!

Note that we don't configure BFD under routing protocols for BOB. Remember, that BOB BFD client is bundlemgr instead of routing protocols.
Once BOB is configured under the bundle interface itself, any routing protocols that is running on top of the bundle will be automatically protected by BOB.

 

Note also that if you configure BFD for this bundle-ether11 under routing protocol, then by definition you're also configuring BLB. NCS5500 does not support a bundle interface being configured for both BOB and BLB at the same time.

Given a bundle interface, users have to choose to configure either BOB or BLB, and not both.


BLB ("BFD Over Logical Bundle")

First we need to configure multipath capability under BFD since BFD needs to use multiple paths (i.e. bundle member links) to reach BFD neighbor.

We can pick any LC to host BLB, the LC doesn't need to be the same LC where bundle member links reside.
Assuming we pick LC on slot 6 to host BFD:

bfd
 multipath include location 0/6/CPU0
!

We can also configure multiple LCs for load sharing / redundancy purpose:

bfd
 multipath include location 0/6/CPU0
 multipath include location 0/2/CPU0
!

Note that this config is needed even on NCS5500 fixed platform.
For NCS5500 fixed platform, the location should be defined as 0/0/CPU0.

 

Next, configure the following to ensure that an adjacency entry is created for the BFD peer IP address. Wihout this configuration, hardware session creation might fail.
This configuration is mandatory for IOS XR 6.6.2 and above.

 

cef proactive-arp-nd enable

 

Once this is configured, configuration is exactly the same as "BFD over regular interface (VLAN or non VLAN)".

Say the interface is BE10.220.

Note:

you don't need to configure VLAN under bundle interface to have BLB.

Even if you have non VLAN bundle interface, as soon as you put that bundle under BFD config under protocol, it will operate as BLB.

... static route as client
 
router static
 address-family ipv4 unicast
  <DESTINATION IP ADDRESS> <NEXT HOP IPv4 ADDRESS> bfd fast-detect minimum-interval <> multiplier <>
 !
!
 
The above can be configured under VRF context for IOS XR 6.6.1 and above:
 
router static
 vrf <VRF NAME>
  address-family ipv4 unicast
   <DESTINATION IP ADDRESS> <NEXT HOP IPv4 ADDRESS> bfd fast-detect minimum-interval <> multiplier <>
  !
 !
!

 
... ISIS as client
 
router isis <>
 address-family ipv4 unicast
!
interface BE10.220
  bfd minimum-interval <>
  bfd multiplier <>
  bfd fast-detect ipv4
  address-family ipv4 unicast
  !
 !
!

Currently, NCS5500 does not support the above config with VRF context.


... OSPF as client
 
router ospf <>
 area 0
  interface BE10.220
   bfd multiplier <>
   bfd fast-detect
   bfd minimum-interval <>
  !
 !
! 
 
The above can be configured under VRF context for IOS XR 6.6.1 and above:
 
router ospf <>
 vrf <VRF NAME>

  area 0
   interface BE10.220
    bfd multiplier <>
    bfd fast-detect
    bfd minimum-interval <>
   !
  !
 !
!

 
... BGP single-hop as client
 
router bgp <>
 neighbor <directly connected neighbor>
  bfd fast-detect
  bfd multiplier <>
  bfd minimum-interval <>
 !
! 
 
The above can be configured under VRF context for IOS XR 6.6.1 and above:
 
router bgp <>
 vrf <VRF NAME>

  neighbor <directly connected neighbor>
   bfd fast-detect
   bfd multiplier <>
   bfd minimum-interval <>
  !
 !
!

 


BFD-MH (Multihop BFD)

Same as BLB, first we need to configure multipath capability under BFD since BFD should be able to use multiple paths to reach BFD neighbor.

We can pick any LC to host BFD-MH.
Assuming we pick LC on slot 6 to host BFD:

bfd
 multipath include location 0/6/CPU0
!

We can also configure multiple LCs for load sharing / redundancy purpose:

bfd
 multipath include location 0/6/CPU0
 multipath include location 0/2/CPU0
!

 

Note that this config is needed even on NCS5500 fixed platform.
For NCS5500 fixed platform, the location should be defined as 0/0/CPU0.


Once this is configured, we configure BFD under BGP.
 
router bgp <>
 neighbor <neighbor that is hops away>
  bfd fast-detect
  bfd multiplier <>
  bfd minimum-interval <>
 !
!
 
The above can be configured under VRF context for IOS XR 6.6.1 and above:
 
router bgp <>
 vrf <VRF NAME>
  neighbor <neighbor that is hops away>
   bfd fast-detect
   bfd multiplier <>
   bfd minimum-interval <>
  !
 !
!

 


Sample Show Commands

... Command that shows all BFD sessions

RP/0/RP0/CPU0:Soekarno--NCS-55A1-24H#sh bfd ipv4 session

Tue Mar 26 11:18:37.754 GMT+7

Interface           Dest Addr           Local det time(int*mult)      State    

                                    Echo             Async   H/W   NPU    

------------------- --------------- ---------------- ---------------- ----------

Hu0/0/0/22.93       61.1.93.2       0s(0s*0)         12ms(4ms*3)      UP       

                                                             Yes   0/0/CPU0      

BE10.201            50.1.201.2      0s(0s*0)         900ms(300ms*3)   UP       

                                                             Yes   0/0/CPU0      

 

Src Addr            Dest Addr       VRF Name                        

                                        Local det time(int*mult)      State    

                                    Echo             Async          

------------------- --------------- ---------------- ---------------- ----------

53.1.0.1            52.1.0.1        default        

                                    n/a              900ms(300ms*3)   UP       

53.1.201.1          52.1.201.1      default        

                                    n/a              900ms(300ms*3)   UP       

   


... Command that shows only BFD-MH sessions

RP/0/RP0/CPU0:Soekarno--NCS-55A1-24H#sh bfd ipv4 multihop session

Tue Mar 26 11:28:07.918 GMT+7

Src Addr            Dest Addr       VRF Name                         

                                        Local det time(int*mult)      State    

                                    Echo             Async          

------------------- --------------- ---------------- ---------------- ----------

53.1.0.1            52.1.0.1        default        

                                    n/a              900ms(300ms*3)   UP       

53.1.201.1          52.1.201.1      default        

                                    n/a              900ms(300ms*3)   UP  



... Command that shows specific BOB session (based on BFD destination address).
... This is showing BOB on BE24 that have 2 member links.

RP/0/RP0/CPU0:Hatta--NCS-5501-SE#sh bfd ipv4 session destination 99.1.24.1

Tue Mar 26 11:34:57.572 GMT+7

Interface           Dest Addr           Local det time(int*mult)      State    

                                    Echo             Async   H/W   NPU    

------------------- --------------- ---------------- ---------------- ----------

Te0/0/0/14          99.1.24.1       0s(0s*0)         12ms(4ms*3)      UP       

                                                             Yes   0/0/CPU0      

Te0/0/0/15          99.1.24.1       0s(0s*0)         12ms(4ms*3)      UP       

                                                             Yes   0/0/CPU0      

BE24                99.1.24.1       n/a              n/a              UP       

                                                             No    n/a    

... Command that shows BFD session in detail

RP/0/RP0/CPU0:Sjahrir--NCS-5508#sh bfd ipv4 session destination 202.158.0.3 detail

Tue Mar 26 11:37:39.653 GMT+7

 

Location: 0/0/CPU0

Dest: 202.158.0.3

Src: 202.158.0.1

VRF Name/ID: default/0x60000000

 State: UP for 0d:19h:20m:0s, number of times UP: 1

 Session type: SW/V4/MH

Received parameters:

 Version: 1, desired tx interval: 300 ms, required rx interval: 300 ms

 Multiplier: 3, diag: None

 My discr: 1, your discr: 4, state UP, D/F/P/C/A: 0/0/0/1/0

Transmitted parameters:

 Version: 1, desired tx interval: 300 ms, required rx interval: 300 ms

 Multiplier: 3, diag: None

 My discr: 4, your discr: 1, state UP, D/F/P/C/A: 0/1/0/1/0

Timer Values:

 Local negotiated async tx interval: 300 ms

 Remote negotiated async tx interval: 300 ms

async detection time: 900 ms(300 ms*3)

Local Stats:

 Intervals between async packets:

   Tx: Number of intervals=3, min=217 ms, max=12 s, avg=4636 ms

       Last packet transmitted 69600 s ago

   Rx: Number of intervals=11, min=86 ms, max=1700 ms, avg=1214 ms

       Last packet received 69600 s ago

MP download state: BFD_MP_DOWNLOAD_ACK

State change time: Mar 25 16:17:25.434

Session owner information:

                            Desired               Adjusted

  Client               Interval   Multiplier Interval   Multiplier

  -------------------- --------------------- ---------------------

  bgp-default          300 ms     3          300 ms     3        

 

H/W Offload Info:

 H/W Offload capability : Y, Hosted NPU     : 0/0/CPU0

 Async Offloaded        : Y, Echo Offloaded : N

 Async rx/tx            : 0/0

 

Platform Info:

NPU ID: 0

Async RTC ID        : 1          Echo RTC ID        : 0

Async Feature Mask  : 0x0        Echo Feature Mask  : 0x0

Async Session ID    : 0x4        Echo Session ID    : 0x0

Async Tx Key        : 0x4  Echo Tx Key        : 0x0

Async Tx Stats addr : 0x0   Echo Tx Stats addr : 0x0

Async Rx Stats addr : 0x0   Echo Rx Stats addr : 0x0

 

 

... Command that shows the BFD status history

RP/0/RP0/CPU0:Sjahrir--NCS-5508#sh bfd ipv4 session status history destination 202.158.0.3 location 0/0/cpu0      

Tue Mar 26 11:39:25.120 GMT+7

 

Location: 0/0/CPU0, VRF Name/ID: default/0x60000000

State: UP, flags:0x80040

Async dest addr: 202.158.0.3

Async src addr: 202.158.0.1

Additional info from Flags:

 FIB is READY

 Session Active on 0/0/CPU0

Platform Info: 0x0, Mac Length: 0

Redundancy session info:

 Created from active BFD server

Last Down Diag: None

Last Rx Pkt Down Diag: None

Last UP Time: Mar 25 16:17:39.121

 

Received parameters:

 Version: 1, desired tx interval: 300 ms, required rx interval: 300 ms

 Multiplier: 3, diag: None

 My discr: 1, your discr: 4, state UP, D/F/P/C/A: 0/0/0/1/0

 

Transmitted parameters:

 Version: 1, desired tx interval: 300 ms, required rx interval: 300 ms

 Multiplier: 3, diag: None

 My discr: 4, your discr: 1, state UP, D/F/P/C/A: 0/1/0/1/0

 

 

History:

[Mar 26 10:57:13.744] Redundancy flag cleared: session request from standby

    server, currently set flags (0x1)

[Mar 25 16:21:29.471] Redundancy flag set: session request from standby server,

    currently set flags (0x3)

[Mar 25 16:17:39.121] Session (v1) state change, triggered by event 'Remote

    state up', from INIT to UP with current diag being None

[Mar 25 16:17:26.279] Session (v1) state change, triggered by event 'Remote

    state down', from DOWN to INIT with current diag being None

[Mar 25 16:17:25.14051887] Session (v1) state change, triggered by event

    'Session create', from Unknown to DOWN with current diag being None

[Mar 25 16:17:25.11606333] Flag cleared: session creation is in-progress,

    currently set flags (0x80040)

[Mar 25 16:17:25.57877931] Application requested parameter set:

desired_tx_interval_usecs 300000, desired_detect_mult 3, echo mode desired

    locally FALSE, echo_desired_tx_interval_usecs 0

[Mar 25 16:17:25.9018] Flag set: session creation is in-progress, currently set

    flags (0x80060)

[Mar 25 16:17:25.69148] Flag set: session is active, currently set flags

    (0x80040)

[Mar 25 16:17:25.428] FIB reachability: validation not needed, ready, reconnect

    FALSE, ip path 0, connect ifh 0x0

[Mar 25 16:17:25.34734541] Successfully obtained table info: VR ID 0x20000000,

    VRF ID 0x60000000, TBL ID 0xe0000000

[Mar 25 16:17:25.4723] Successfully allocated local discriminator: 0x4

[Mar 25 16:17:25.428] Redundancy flag set: session request from active server,

    currently set flags (0x1)

[Mar 25 16:17:25.428] Successfully associated to persistent objectSession

    (0x9c246de0), persist (0x9c21aa20)ifhandle (0x0), ISB (0x0)

 

Offload history:

[Mar 25 16:17:39.638] Packet punted to sw: Packet word0 : (0x20c80318),

desired_min_tx_interval 300000, required_min_rx_interval 300000, multiplier 3,

Last punted pkt required_min_rx_interval 300000, Last punted pkt

    desired_min_tx_interval 300000

[Mar 25 16:17:39.424] Payload update: Async XID 10, Flags : Up,

    desired_min_tx_interval 300000, required_min_rx_interval 300000

[Mar 25 16:17:39.424] Rx timer update: Async XID 9, Rx timer programmed 300000

multiplier 3, Last updated rx_timer 2000000, Last updated tx_timer 300000, Last

    updated multiplier 3

[Mar 25 16:17:39.424] Packet punted to sw: Packet word0 : (0x20d80318),

desired_min_tx_interval 300000, required_min_rx_interval 300000, multiplier 3,

Last punted pkt required_min_rx_interval 300000, Last punted pkt

    desired_min_tx_interval 300000

[Mar 25 16:17:39.338] Payload update: Async XID 8, Flags : P/F/SN/Up,

    desired_min_tx_interval 300000, required_min_rx_interval 300000

[Mar 25 16:17:39.338] Packet punted to sw: Packet word0 : (0x20e80318),

desired_min_tx_interval 300000, required_min_rx_interval 300000, multiplier 3,

Last punted pkt required_min_rx_interval 300000, Last punted pkt

    desired_min_tx_interval 300000

[Mar 25 16:17:39.121] Payload update: Async XID 7, Flags : P/SN/Up,

    desired_min_tx_interval 300000, required_min_rx_interval 300000

[Mar 25 16:17:39.121] Tx timer update: Async XID 6, Tx timer programmed 300000,

    Last updated tx_timer 2000000, Last updated rx_timer 2000000

[Mar 25 16:17:39.121] Packet punted to sw: Packet word0 : (0x20c80318),

desired_min_tx_interval 300000, required_min_rx_interval 300000, multiplier 3,

Last punted pkt required_min_rx_interval 2000000, Last punted pkt

    desired_min_tx_interval 2000000

[Mar 25 16:17:38.180] Packet punted to sw: Packet word0 : (0x20480318),

desired_min_tx_interval 2000000, required_min_rx_interval 2000000, multiplier 3,

Last punted pkt required_min_rx_interval 2000000, Last punted pkt

    desired_min_tx_interval 2000000

[Mar 25 16:17:36.480] Packet punted to sw: Packet word0 : (0x20480318),

desired_min_tx_interval 2000000, required_min_rx_interval 2000000, multiplier 3,

Last punted pkt required_min_rx_interval 2000000, Last punted pkt

    desired_min_tx_interval 2000000

[Mar 25 16:17:34.780] Packet punted to sw: Packet word0 : (0x20480318),

desired_min_tx_interval 2000000, required_min_rx_interval 2000000, multiplier 3,

Last punted pkt required_min_rx_interval 2000000, Last punted pkt

    desired_min_tx_interval 2000000

[Mar 25 16:17:33.080] Packet punted to sw: Packet word0 : (0x20480318),

desired_min_tx_interval 2000000, required_min_rx_interval 2000000, multiplier 3,

Last punted pkt required_min_rx_interval 2000000, Last punted pkt

    desired_min_tx_interval 2000000

[Mar 25 16:17:31.380] Packet punted to sw: Packet word0 : (0x20480318),

desired_min_tx_interval 2000000, required_min_rx_interval 2000000, multiplier 3,

Last punted pkt required_min_rx_interval 2000000, Last punted pkt

    desired_min_tx_interval 2000000

[Mar 25 16:17:29.679] Packet punted to sw: Packet word0 : (0x20480318),

desired_min_tx_interval 2000000, required_min_rx_interval 2000000, multiplier 3,

Last punted pkt required_min_rx_interval 2000000, Last punted pkt

    desired_min_tx_interval 2000000

[Mar 25 16:17:27.979] Packet punted to sw: Packet word0 : (0x20480318),

desired_min_tx_interval 2000000, required_min_rx_interval 2000000, multiplier 3,

Last punted pkt required_min_rx_interval 2000000, Last punted pkt

    desired_min_tx_interval 2000000

[Mar 25 16:17:26.279] Payload update: Async XID 5, Flags : SN/Init,

    desired_min_tx_interval 2000000, required_min_rx_interval 2000000

[Mar 25 16:17:26.279] Rx timer update: Async XID 4, Rx timer programmed 2000000

multiplier 3, Last updated rx_timer 0, Last updated tx_timer 2000000, Last

    updated multiplier 0

[Mar 25 16:17:26.279] Packet punted to sw: Packet word0 : (0x20480318),

desired_min_tx_interval 2000000, required_min_rx_interval 2000000, multiplier 3,

Last punted pkt required_min_rx_interval 0, Last punted pkt

    desired_min_tx_interval 0

[Mar 25 16:17:25.429] Payload update: Async XID 3, Flags : SN/Down,

    desired_min_tx_interval 2000000, required_min_rx_interval 2000000

[Mar 25 16:17:25.429] Tx timer update: Async XID 2, Tx timer programmed 2000000,

    Last updated tx_timer 0, Last updated rx_timer 0

[Mar 25 16:17:25.429] Create/Recreate a offloaded session : flags Down, Tx

    interval 2000000, Rx interval 0, Multiplier 0

 

Rx Counters and Timestamps :

Async valid packets received: count 3

  [Mar 25 16:17:39.638]  [Mar 25 16:17:39.424]  [Mar 25 16:17:39.338]

Async valid packets while session is not in Up state: count 9

  [Mar 25 16:17:39.121]  [Mar 25 16:17:38.180]  [Mar 25 16:17:36.480]

 

Tx Counters and Timestamps :

 

 

 

RP/0/RP0/CPU0:Sjahrir--NCS-5508#




Logs to provide to Cisco TAC for BFD related issues on NCS5500 platform
 

As BFD runs between 2 routers, we need to provide logs from both routers.

Gather the following set of logs from each router:

Replace "NAME_OF_ROUTER"with the name of your router.
Replace "HOSTLC" with the location of the LC, e.g: 00cpu0 for 0/0/CPU0.

  • Timestamp when the problem occurs (e.g. Dec 21 20:49:33.708 GMT+8), the more exact, the better.
    It's best if the timestamp can be copied from a specific line of "show log" output.

  • show dpa trace location <> | file harddisk:/NAME_OF_ROUTER_show_dpa_trace_location_HOSTLC.txt

  • show controller fia trace all location <>  | file harddisk:/NAME_OF_ROUTER_show_controller_fia_trace_all_location_HOSTLC.txt

  • show bfd ipv4 session detail <> | file harddisk:/NAME_OF_ROUTER_show_bfd_ipv4_session_detail.txt

  • show bfd ipv6 session detail <> | file harddisk:/NAME_OF_ROUTER_show_bfd_ipv6_session_detail.txt

  • show tech bfd-hw-off location <>

  • show tech routing bfd

  • show logging | file harddisk:/NAME_OF_ROUTER_show_log.txt

  • show version | file harddisk:/NAME_OF_ROUTER_show_version.txt

  • run cat /etc/build-info.txt | file harddisk:/NAME_OF_ROUTER_cat_etc_build.txt

  • show install active summary | file harddisk:/NAME_OF_ROUTER_sh_install_active_summ.txt

  • show grid trace location all | file harddisk:/NAME_OF_ROUTER_sh_grid_trace_all.txt

    # In case of BFD Multihop session, gather these too

  • show route <BFD-MH destination> | file harddisk:/NAME_OF_ROUTER_sh_route_bfd_mh.txt
  • show cef <BFD-MH destination> hardware egress  detail  location <> | file harddisk:/NAME_OF_ROUTER_sh_cef_bfd_mh.txt
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: