Bidirectional Forwarding Detection over Logical Bundle

The Bidirectional Forwarding Detection (BFD) over Logical Bundle feature implements and deploys BFD over bundle interfaces based on RFC 5880. The BFD over Logical Bundle (BLB) feature replaces the BVLAN feature and resolves certain interoperability issues with other platforms that run BFD over bundle interface in pure RFC5880 fashion. These platforms include products of other vendors, as well as other Cisco products running Cisco IOS or Cisco Nexus OS software.

BLB is a multipath (MP) single-hop session. BLB requires limited knowledge of the bundle interfaces on which the sessions run; this is because BFD treats the bundle as one big pipe. To function, BLB requires only information about IP addresses, interface types, and caps on bundle interfaces. Information such as list of bundle members, member states, and configured minimum or maximum bundle links are not required.

BLB is supported on IPv4 address. The current version of the software supports a total of 500 mixed BFD sessions (which include multi-hop, single-hop on regular interface, BFD over Bundle (BoB) and BLB). The maximum processing capability of BFD control packets, per line card, has also increased to 7000 pps (packets per second).


Note


ISSU is not supported for BFD over Logical Bundle feature.


Configuration

Perform the following tasks to configure BFD over Logical Bundle feature.

  • Create VLAN sub-interface under bundle interface

  • Enable BFD on a static route

  • Enable BFD on IS-IS

  • Enable BFD for OSPF on an interface

  • Enable BFD on a BGP neighbor

  • Configure multipath capability under BFD

Create VLAN sub-interface under bundle interface

Router# configure
Router(config)# interface Bundle-Ether 2.1
Router(config-if)# ipv4 address 10.1.1.1 255.255.255.0
Router(config-if)# encapsulation dot1q 1
Router(config-if)# end
	 

Enable BFD on a static route.

Router# configure
Router(config)# router static 
Router(config-static)# address-family ipv4 unicast
Router(config-static)# 10.158.3.13/32 10.1.1.2 bfd fast-detect minimum-interval 300
multiplier 3

Enable BFD on IS-IS.

Router# configure
Router(config)# router isis cybi
Router(config-isis)# interface Bundle-Ether 2.1
Router(config-isis-if)# bfd minimum-interval 300
Router(config-isis-if)# bfd multiplier 3
Router(config-isis-if)# bfd fast-detect ipv4 
Router(config-isis-if)# address-family ipv4 unicast
Router(config-isis-if-af)# 	end

Enable BFD for OSPF on an interface.

Router# configure
Router(config)# router ospf cybi
Router(config-ospf)# area 0
Router(config-ospf)# interface Bundle-Ether 2.1
Router(config-ospf-if)# bfd fast-detect
Router(config-ospf-if)# bfd minimum-interval 300
Router(config-ospf-if)# bfd multiplier 3
Router(config-ospf-if)# end

Enable BFD on a BGP neighbor

Router# configure
Router(config)# router bgp 4787
Router(config-bgp)# neighbor 10.158.1.1
Router(config-bgp-nbr)# remote-as 4787
Router(config-bgp-nbr)# update-source Bundle-Ether 2.1
Router(config-bgp-nbr)# bfd fast-detect
Router(config-bgp-nbr)# bfd minimum-interval 300
Router(config-bgp-nbr)# bfd multiplier 3
Router(config-bgp-nbr)# address-family ipv4 unicast
Router(config-bgp-nbr-af)# route-policy PASS-ALL in
Router(config-bgp-nbr-af)# route-policy PASS-ALL out
Router(config-bgp-nbr-af)# exit
Router(config-bgp-nbr)# commit

Configure a specific LC (or LCs) to host BFD sessions. The BFD sessions and bundle member links need not be configured on the same LC. For example, you can configure the bundle member links on LC slot 2 and slot 3, while you can configure BFD sessions on LC slot 5.

Router(config)# bfd
Router(config-bfd)# multipath include location 0/6/CPU0
Router(config-bfd)# multipath include location 0/2/CPU0

Running Configuration

This section shows the BFD over logical bundle configuration.

interface Bundle-Ether2.1
 ipv4 address 10.1.1.1 255.255.255.0
 encapsulation dot1q 1
!

router static
 address-family ipv4 unicast
  10.158.3.13/32 10.1.1.2 bfd fast-detect minimum-interval 300 multiplier 3
 !
!
router isis cybi
 interface Bundle-Ether2.1
   bfd minimum-interval 300
   bfd multiplier 3
   bfd fast-detect ipv4
   address-family ipv4 unicast
   !
 !
!
router ospf cybi
 area 0
  interface Bundle-Ether2.1
    bfd fast-detect
    bfd minimum-interval 300
    bfd multiplier 3
  !
 !
!
bfd
   multipath include location 0/6/CPU0
   multipath include location 0/2/CPU0

 !
router bgp 4787
 neighbor 10.158.1.1
  remote-as 4787
  update-source Bundle-Ether 2.1
  bfd fast-detect
  bfd minimum-interval 300
  bfd multiplier 3
  address-family ipv4 unicast
   route-policy PASS-ALL in
   route-policy PASS-ALL out
  !
  
 !


Verification

The show outputs given in the following section display the details of the configuration of the BFD over logical bundle feature, and the status of their configuration.

/* Verify the BFD session summary information. */
 
RP/0/RSP0/CPU0:router# show bfd session    

Interface           Dest Addr        Local det time(int*mult)      State   Echo    Async   H/W   NPU     
------------------- --------------- ---------------- ----------   ------  ------   ------  ----  ---
BE2.1               10.158.1.2       0s(0s*0)  900ms(300ms*3)       UP     Yes            0/6/CPU0       
BE2.2               10.158.2.2       0s(0s*0)  900ms(300ms*3)       UP     Yes            0/6/CPU0     



/* Verify the BFD session detail information for the specified interface. */
 
RP/0/RSP0/CPU0:router# show bfd session detail interface Bundle-Ether 2.1

I/f: Bundle-Ether2.1, Location: 0/6/CPU0
Dest: 10.158.1.2
Src: 10.158.1.1
 State: UP for 0d:21h:35m:54s, number of times UP: 1
 Session type: SW/V4/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: 12584150, your discr: 845, 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: 845, your discr: 12584150, 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: 64119/0xfa77
Local Stats:
 Intervals between async packets:
   Tx: Number of intervals=3, min=160 ms, max=726 ms, avg=385 ms
       Last packet transmitted 77754 s ago
   Rx: Number of intervals=4, min=100 ms, max=270 ms, avg=183 ms
       Last packet received 77753 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 14 18:38:06.721
Session owner information:
                            Desired               Adjusted
  Client               Interval   Multiplier Interval   Multiplier
  -------------------- --------------------- ---------------------
  ospf-cybi            300 ms     3          300 ms     3         
  ipv4_static          300 ms     3          300 ms     3         

H/W Offload Info:
 H/W Offload capability : Y, Hosted NPU     : 0/6/CPU0
 Async Offloaded        : Y, Echo Offloaded : N
 Async rx/tx            : 5/4 

Platform Info:
NPU ID: 0 
Async RTC ID        : 1          Echo RTC ID        : 0
Async Feature Mask  : 0x0        Echo Feature Mask  : 0x0
Async Session ID    : 0x34d      Echo Session ID    : 0x0
Async Tx Key        : 0x34d  Echo Tx Key        : 0x0
Async Tx Stats addr : 0x0   Echo Tx Stats addr : 0x0
Async Rx Stats addr : 0x0   Echo Rx Stats addr : 0x0



/* Verify the BFD session detail information for the specified IP address. */
 
RP/0/RSP0/CPU0:router# show bfd session detail destination 10.158.2.2    

I/f: Bundle-Ether2.2, Location: 0/6/CPU0
Dest: 10.158.1.2
Src:  10.158.1.1
 State: UP for 0d:21h:39m:36s, number of times UP: 1
 Session type: SW/V4/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: 12584129, your discr: 824, 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: 824, your discr: 12584129, 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: 64098/0xfa62
Local Stats:
 Intervals between async packets:
   Tx: Number of intervals=3, min=160 ms, max=616 ms, avg=383 ms
       Last packet transmitted 77975 s ago
   Rx: Number of intervals=4, min=100 ms, max=374 ms, avg=209 ms
       Last packet received 77975 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 14 18:38:06.721
Session owner information:
                            Desired               Adjusted
  Client               Interval   Multiplier Interval   Multiplier
  -------------------- --------------------- ---------------------
  isis-cybi            300 ms     3          300 ms     3         
  bgp-default          300 ms     3          300 ms     3         

H/W Offload Info:
 H/W Offload capability : Y, Hosted NPU     : 0/6/CPU0
 Async Offloaded        : Y, Echo Offloaded : N
 Async rx/tx            : 5/4 

Platform Info:
NPU ID: 0 
Async RTC ID        : 1          Echo RTC ID        : 0
Async Feature Mask  : 0x0        Echo Feature Mask  : 0x0
Async Session ID    : 0x338      Echo Session ID    : 0x0
Async Tx Key        : 0x338      Echo Tx Key        : 0x0
Async Tx Stats addr : 0x0        Echo Tx Stats addr : 0x0
Async Rx Stats addr : 0x0        Echo Rx Stats addr : 0x0