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