cancel
Showing results for 
Search instead for 
Did you mean: 
cancel

BFD over IPv6 implementation on NCS5500 platform

5416
Views
5
Helpful
1
Comments
yosef_manasseh
Cisco Employee

Before going further ...

This document describes BFD over IPv6 implementation on NCS5500 platform.
BFD over IPv4 has been supported on these platform since IOS XR 6.1.2.
BFD over IPv6 is supported on these platform starting from IOS XR 6.6.1.

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

 

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 features / enhancements that are not covered in this doc.
Whenever in doubt, please reach out to your friendly TAC team for assistance.

 

BFD over IPv4 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-ipv4-implementation-on-ncs5500-platform/ba-p/3825926


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.

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.






 

 

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, OSPFv3) to that neighbor.
  • After a while, OSPFv3 for some reason manages to recover on its own (maybe the problem only affects BFD packets and not OSPFv3 packets).
  • OSPFv3 session to the neighbor will recover.
  • But BFD session will still be down since it still experiences missing BFD packets.
    So now we have OSPFv3 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 OSPFv3, 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.
 

BFD over IPv6 features supported in this release (6.6.1)

 

  • BFDv6 over regular interface (VLAN or non VLAN)

    BFD client:
    Static route (both VRF and non-VRF)
    ISIS (non VRF only)
    OSPFv3 (both VRF and non-VRF)
    BGP-SH (both VRF and non-VRF)

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

  • BOBv6 ("BFD Over Bundle")

    BFD client:
    bundlemgr

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

  • BLBv6 ("BFD Over Logical Bundle")

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

  • BFD-MHv6 (Multihop BFD)

    BFD client:
    BGP-MH (both VRF and non-VRF)

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

    

 

BFD over IPv6 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
BFDv6 (any type) per chassis 250
BFDv6 over regular interface VLAN/non-VLAN per NPU 250
BOBv6 (member link session) per NPU 250
[BLBv6 + MHv6] per LC (Jericho NPU) 250
[BLBv6 + MHv6] 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 router (which rocks Jericho+ NPU):
1. 26 BFDv6 sessions on regular interface VLAN
2. 12 BOBv6 interfaces with 2 member links each (which gives us 12*2=24 BOBv6 (member link sessions)
3. 100 BFD-MHv6 sessions
4. 100 BFD-BLBv6 sessions
5. 125 BFD-MHv4 sessions
6. 125 BFD-BLBv4 sessions
    

Supported Scale for Jericho2 ASIC

Items Maximum sessions supported
BFDv6 (any type) per chassis 250
BFDv6 over regular interface VLAN/non-VLAN per NPU 250
BOBv6 (member link session) per NPU 250
[BLBv6 + MHv6] 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

  • BLBv6 and MHv6
    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 BFDv6 types
    minimum 4ms interval with minimum 3 multiplier

IPv4 BFD also supports this same minimum numbers.

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

 

Supported Underlay

BFDv6 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 (OSPFv3, ISIS, BGP, SR-MPLS, SRv6, TE tunnel, GRE, etc), you can even have a dual stack IPv4 and IPv6 running on the same interfaces.

However, on NCS5500 platform, only the following IPv6 underlay is supported to run in conjunction with BFDv6 on those interfaces:

  • Static route (both VRF and non-VRF)
  • ISIS (non VRF only)
  • OSPFv3 (both VRF and non-VRF)
  • BGP-SH (both VRF and non-VRF)
  • BGP-MH (both VRF and non-VRF)
  • SRv6 (non VRF only)

Existence of other protocols as IPv6 underlay might cause BFD to stop work properly.

 

 

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

 

This feature is supported for BFD IPv6 starting from IOS XR 7.0.2.
We support strict-mode on following use cases on all interface type, on both VRF/non-VRF scenarios:

  • ISIS
  • OSPFv3
    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 OSPF adjacency to flap.
  • BGP-SH
    Note:
    In the absence of background traffic that initiates L2 network discovery 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 L2 network discovery for that destination.


BFDv6 and NSR

Same as with IPv4 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 ipv6 session detail".
    This is expected since regular BFD CLI command will derive the counter from LC CPU, not from LC NPU.

  • BFDv6 is not supported on NCS-500 platform.

  • BFDv6 is not supported over MPLS LDP interface, VRRP interface, BVI interface, and IRB interface.

  • BFD-MHv6 is not supported over MPLS TE / RSVP tunnel.

  • BFD Dampening is automatically disabled for IPv6 BFD. It can be configured in CLI, but won't take effect.

  • BLBv6 or MHv6 can't be hosted on LC slot that is higher than slot 8.
    For instance, these sessions can't be hosted on slot 9 of an NCS-5516.
    This constraint will be removed in future release post 6.6.1.

  • 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 IOS XR 6.6.1.

  • "clear ipv6 neighbors" command will flap existing BFD IPv6 sessions.
    If you have BFD IPv6 sessions present, only issue this command during maintenance window where all BFD protected routing sessions have been cost out.

Sample Configurations

BFDv6 over regular interface (VLAN or non VLAN)

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

... static route as client
 
router static
 address-family ipv6 unicast
  <DESTINATION IP ADDRESS> <NEXT HOP IPv6 ADDRESS> bfd fast-detect minimum-interval <> multiplier <>
 !
!
 
The above can also be configured under VRF context:
 
router static
 vrf <VRF NAME>
  address-family ipv6 unicast
   <DESTINATION IP ADDRESS> <NEXT HOP IPv6 ADDRESS> bfd fast-detect minimum-interval <> multiplier <>
  !
 !
!

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


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

 

... OSPFv3 as client
 
router ospfv3 <>
 area 0
  interface Hu0/0/1/0.78
   bfd multiplier <>
   bfd fast-detect
   bfd minimum-interval <>
  !
 !
!
 
The above can also be configured under VRF context:

 

router ospfv3 <>
 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 also be configured under VRF context:

 

router bgp <>
 vrf <VRF NAME>

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



BOBv6 ("BFD Over Bundle")

Say the interface is Bundle-Ether11

... option 1, BOB with global unicast address

interface Bundle-Ether11
 bfd mode ietf <--- Only ietf mode is supported for NCS5500 platform
 bfd address-family ipv6 multiplier <>
 bfd address-family ipv6 destination <global unicast address>
 bfd address-family ipv6 fast-detect
 bfd address-family ipv6 minimum-interval <>
 ipv6 address <global unicast address>
!

... option 2, BOB with link-local address

interface Bundle-Ether11
 bfd mode ietf <--- Only ietf mode is supported for NCS5500 platform
 bfd address-family ipv6 multiplier <>
 bfd address-family ipv6 destination fe80::<>
 bfd address-family ipv6 fast-detect
 bfd address-family ipv6 minimum-interval <>
 ipv6 address fe80::<> link-local <--- current implementation of BOBv6 on NCS5500 does not suppport dynamically assigned link-local address, so this needs to be configured explicitly
!
 
The above can also be configured under VRF context:

 

interface Bundle-Ether11
 bfd mode ietf <--- Only ietf mode is supported for NCS5500 platform
 bfd address-family ipv6 multiplier <>
 bfd address-family ipv6 destination <>
 bfd address-family ipv6 fast-detect
 bfd address-family ipv6 minimum-interval <>
 vrf <VRF NAME>
 ipv6 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.




BLBv6 ("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 "BFDv6 over regular interface (VLAN or non VLAN)".

Say the interface is BE10.220

... static route as client
 
router static
 address-family ipv6 unicast
  <DESTINATION IP ADDRESS> <NEXT HOP IPv6 ADDRESS> bfd fast-detect minimum-interval <> multiplier <>
 !
!
 
The above can also be configured under VRF context:
 
router static
 vrf <VRF NAME>
  address-family ipv6 unicast
   <DESTINATION IP ADDRESS> <NEXT HOP IPv6 ADDRESS> bfd fast-detect minimum-interval <> multiplier <>
  !
 !
!

 
... ISIS as client
 
router isis <>
 address-family ipv6 unicast
!
interface BE10.220
  bfd minimum-interval <>
  bfd multiplier <>
  bfd fast-detect ipv6
  address-family ipv6 unicast
  !
 !
!
 
Currently, NCS5500 does not support the above config with VRF context. 

 

... OSPFv3 as client
 
router ospfv3 <>
 area 0
  interface BE10.220
   bfd multiplier <>
   bfd fast-detect
   bfd minimum-interval <>
  !
 !
!
 

The above can also be configured under VRF context:

 

router ospfv3 <>
 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 also be configured under VRF context:

 

router bgp <>
 vrf <VRF NAME>

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

 


BFD-MHv6 (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 also be configured under VRF context:

 

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 BFDv6 sessions

RP/0/RP0/CPU0:Katon--NCS-55A2-MOD#sh bfd ipv6 session
Wed Jan  2 15:07:54.159 GMT+8
Interface           Dest Addr      
                                        Local det time(int*mult)      State     
H/W                 NPU             Echo             Async           
------------------- --------------- ---------------- ---------------- ----------
BE7.2               fe80::28a:96ff:fed6:9cdb                      
Yes                 0/0/CPU0        0s(0s*0)         900ms(300ms*3)   UP        
BE7.4               fe80::28a:96ff:fed6:9cdb                      
Yes                 0/0/CPU0        0s(0s*0)         900ms(300ms*3)   UP        
 

Src Addr                                 Dest Addr                               
VRF Name                                Local det time(int*mult)      State     
                                    Echo             Async           
------------------- --------------- ---------------- ---------------- ----------
202:158::1                               202:158::3                              
default                             0s(0s*0)         900ms(300ms*3)   UP        
202:158::1                               202:158::4                              
default                             0s(0s*0)         900ms(300ms*3)   UP        
202:158::1                               202:158::5                              
default                             0s(0s*0)         900ms(300ms*3)   UP     
RP/0/RP0/CPU0:Katon--NCS-55A2-MOD#

... Command that shows only BFD-MHv6 sessions

RP/0/RP0/CPU0:Katon--NCS-55A2-MOD#sh bfd ipv6 multihop session
Thu Jan  3 13:32:39.142 GMT+8
Src Addr                                 Dest Addr                               
VRF Name                                Local det time(int*mult)      State     
                                    Echo             Async           
------------------- --------------- ---------------- ---------------- ----------
202:158::1                               202:158::3                              
default                             0s(0s*0)         900ms(300ms*3)   UP        
202:158::1                               202:158::4                              
default                             0s(0s*0)         900ms(300ms*3)   UP        
202:158::1                               202:158::5                              
default                             0s(0s*0)         900ms(300ms*3)   UP        
RP/0/RP0/CPU0:Katon--NCS-55A2-MOD#

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

RP/0/RP0/CPU0:Lilo--NCS-5501-SE#sh bfd ipv6 session destination fe80::99:1:e:1
Thu Jan  3 13:33:42.686 GMT+8
Interface           Dest Addr      
                                        Local det time(int*mult)      State     
H/W                 NPU             Echo             Async           
------------------- --------------- ---------------- ---------------- ----------
Te0/0/0/37          fe80::99:1:e:1                                
Yes                 0/0/CPU0        0s(0s*0)         12ms(4ms*3)      UP        
Te0/0/0/36          fe80::99:1:e:1                                
Yes                 0/0/CPU0        0s(0s*0)         12ms(4ms*3)      UP        
BE14                fe80::99:1:e:1                                
No                  n/a             n/a              n/a              UP        

RP/0/RP0/CPU0:Lilo--NCS-5501-SE#

... Command that shows BFDv6 session in detail

RP/0/RP0/CPU0:Adi--NCS-55A1-24H#sh bfd ipv6 session interface BE10.101 detail
Thu Jan  3 13:35:36.583 GMT+8
I/f: Bundle-Ether10.101, Location: 0/0/CPU0
Dest: 50:1:65::2
Src: 50:1:65::1
 State: UP for 12d:16h:48m:8s, number of times UP: 1
 Session type: SW/V6/SH/BL
Received parameters:
 Version: 1, desired tx interval: 300 ms, required rx interval: 300 ms
 Required echo rx interval: 0 ms, multiplier: 3, diag: None
 My discr: 2428, your discr: 1553, 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
 Required echo rx interval: 0 ms, multiplier: 3, diag: None
 My discr: 1553, your discr: 2428, 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
 Desired echo tx interval: 0 s, local negotiated echo tx interval: 0 ms
 Echo detection time: 0 ms(0 ms*3), async detection time: 900 ms(300 ms*3)
Label:
 Internal label: 24037/0x5de5
Local Stats:
 Intervals between async packets:
   Tx: Number of intervals=2, min=1990 ms, max=72 s, avg=37 s
       Last packet transmitted 1097288 s ago
   Rx: Number of intervals=5, min=226 ms, max=1993 ms, avg=659 ms
       Last packet received 1097287 s ago
 Intervals between echo packets:
   Tx: Number of intervals=0, min=0 s, max=0 s, avg=0 s
       Last packet transmitted 0 s ago
   Rx: Number of intervals=0, min=0 s, max=0 s, avg=0 s
       Last packet received 0 s ago
 Latency of echo packets (time between tx and rx):
   Number of packets: 0, min=0 ms, max=0 ms, avg=0 ms
MP download state: BFD_MP_DOWNLOAD_ACK
State change time: Dec 21 20:46:13.917
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            : 6/3

Platform Info:
NPU ID: 0
Async RTC ID        : 1          Echo RTC ID        : 0
Async Feature Mask  : 0x0        Echo Feature Mask  : 0x0
Async Session ID    : 0x611      Echo Session ID    : 0x0
Async Tx Key        : 0x611  Echo Tx Key        : 0x0
Async Tx Stats addr : 0x0   Echo Tx Stats addr : 0x0
Async Rx Stats addr : 0x0   Echo Rx Stats addr : 0x0
          
RP/0/RP0/CPU0:Adi--NCS-55A1-24H#

... Command that shows the BFD status history

RP/0/RP0/CPU0:Adi--NCS-55A1-24H#sh bfd ipv6 session status history interface BE10.101 location 0/0/cpU0
Thu Jan  3 13:37:08.772 GMT+8
I/f: Bundle-Ether10.101, Location: 0/0/CPU0 table_id:0xe0800001
State: UP, flags:0x80040
Iftype: 0x19, basecaps: 0
Async dest addr: 50:1:65::2
Async src addr: 50:1:65::1
Echo dest addr: 50:1:65::1
Echo src addr: 50:1:65::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: Dec 21 20:47:28.122

Received parameters:
 Version: 1, desired tx interval: 300 ms, required rx interval: 300 ms
 Required echo rx interval: 0 ms, multiplier: 3, diag: None
 My discr: 2428, your discr: 1553, 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
 Required echo rx interval: 0 ms, multiplier: 3, diag: None
 My discr: 1553, your discr: 2428, state UP, D/F/P/C/A: 0/1/0/1/0

Tx Echo pkt :
 Version: 0, Local Discr: 1553, Sequence No: 0

History:
[Dec 21 20:47:28.122] Session (v1) state change, triggered by event 'Remote
    state up', from INIT to UP with current diag being None
[Dec 21 20:47:26.129] Session (v1) state change, triggered by event 'Remote
    state down', from DOWN to INIT with current diag being None
[Dec 21 20:46:13.900] Session (v1) state change, triggered by event 'Session
    create', from Unknown to DOWN with current diag being None
[Dec 21 20:46:13.900] Flag cleared: session creation is in-progress, currently
    set flags (0x80040)
[Dec 21 20:46:13.14026594] Application requested parameter set:
desired_tx_interval_usecs 300000, desired_detect_mult 3, echo mode desired
    locally FALSE, echo_desired_tx_interval_usecs 0
[Dec 21 20:46:13.69180942] Flag set: session creation is in-progress, currently
    set flags (0x80060)
[Dec 21 20:46:13.68590868] Flag set: session is active, currently set flags
    (0x80040)
[Dec 21 20:46:13.73914] FIB reachability: validation not needed, ready,
    reconnect FALSE, ip path 0, connect ifh 0x0
[Dec 21 20:46:13.69619] Successfully obtained table info: VR ID 0x20000000, VRF
    ID 0x60000001, TBL ID 0xe0800001
[Dec 21 20:46:13.899] Control packet IPv6 source address is set to 50:1:65::1
[Dec 21 20:46:13.899] Successfully allocated local discriminator: 0x611
[Dec 21 20:46:13.899] Redundancy flag set: session request from active server,
    currently set flags (0x1)
[Dec 21 20:46:13.899] Successfully associated to persistent objectSession
    (0xc648fb78), persist (0xc64a5508)ifhandle (0x8000384), ISB (0xc6479c90)

Offload history:
[Dec 21 20:47:29.423] 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
[Dec 21 20:47:29.131] 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
[Dec 21 20:47:28.903] Payload update: Async XID 10, Flags : Up,
    desired_min_tx_interval 300000, required_min_rx_interval 300000
[Dec 21 20:47:28.903] 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
[Dec 21 20:47:28.903] 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
[Dec 21 20:47:28.657] Payload update: Async XID 8, Flags : P/Up,
    desired_min_tx_interval 300000, required_min_rx_interval 300000
[Dec 21 20:47:28.657] 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
[Dec 21 20:47:28.122] Payload update: Async XID 7, Flags : P/F/SN/Up,
    desired_min_tx_interval 300000, required_min_rx_interval 300000
[Dec 21 20:47:28.122] Tx timer update: Async XID 6, Tx timer programmed 300000,
    Last updated tx_timer 2000000, Last updated rx_timer 2000000
[Dec 21 20:47:28.122] 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 2000000, Last punted pkt
    desired_min_tx_interval 2000000
[Dec 21 20:47:26.129] Payload update: Async XID 5, Flags : SN/Init,
    desired_min_tx_interval 2000000, required_min_rx_interval 2000000
[Dec 21 20:47:26.129] 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
[Dec 21 20:47:26.129] 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
[Dec 21 20:46:13.900] Payload update: Async XID 3, Flags : SN/Down,
    desired_min_tx_interval 2000000, required_min_rx_interval 2000000
[Dec 21 20:46:13.900] Tx timer update: Async XID 2, Tx timer programmed 2000000,
    Last updated tx_timer 0, Last updated rx_timer 0
[Dec 21 20:46:13.900] Create/Recreate a offloaded session : flags v6/Down, Tx
    interval 2000000, Rx interval 0, Multiplier 0

Rx Counters and Timestamps :
Async valid packets received: count 4
  [Dec 21 20:47:29.423]  [Dec 21 20:47:29.131]  [Dec 21 20:47:28.903]
Async valid packets while session is not in Up state: count 2
  [Dec 21 20:47:28.122]  [Dec 21 20:47:26.129]

Tx Counters and Timestamps :


RP/0/RP0/CPU0:Adi--NCS-55A1-24H#


Logs to provide to Cisco TAC for BFDv6 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 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
1 Comment