BFD
BFD is a protocol used to detect faults between two forwarding engines connected by a link. On IOS-XR, BFD provides sub-second failure detection for routing protocols such as BGP, IS-IS, and OSPF, enabling faster convergence than protocol-native keepalive timers. It supports single-hop, multi-hop, and bundle-member sessions with configurable dampening to prevent route flapping during unstable link conditions.
Diagram
Section titled “Diagram”Classes
Section titled “Classes”configuration (iosxr.devices)
Section titled “configuration (iosxr.devices)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| bfd | Class | [bfd] | No |
bfd (iosxr.devices.configuration)
Section titled “bfd (iosxr.devices.configuration)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| echo_disable | Boolean | true, false | No | |
| echo_latency_detect | Boolean | true, false | No | |
| echo_latency_detect_percentage | Integer | min: 100, max: 250 | No | |
| echo_latency_detect_count | Integer | min: 1, max: 10 | No | |
| echo_startup_validate_force | Boolean | true, false | No | |
| echo_ipv4_source | IP | No | ||
| echo_ipv4_bundle_per_member_minimum_interval | Integer | min: 15, max: 2000 | No | |
| trap_singlehop_pre_mapped | Boolean | true, false | No | |
| multipath_locations | List | [multipath_locations] | No | |
| multihop_ttl_drop_threshold | Integer | min: 0, max: 254 | No | |
| dampening_initial_wait | Integer | min: 1, max: 3600000 | No | |
| dampening_secondary_wait | Integer | min: 1, max: 3600000 | No | |
| dampening_maximum_wait | Integer | min: 1, max: 3600000 | No | |
| dampening_threshold | Integer | min: 60000, max: 3600000 | No | |
| dampening_extensions_down_monitoring | Boolean | true, false | No | |
| dampening_disable | Boolean | true, false | No | |
| dampening_bundle_member_l3_only_mode | Boolean | true, false | No | |
| dampening_bundle_member_initial_wait | Integer | min: 1, max: 518400000 | No | |
| dampening_bundle_member_secondary_wait | Integer | min: 1, max: 518400000 | No | |
| dampening_bundle_member_maximum_wait | Integer | min: 1, max: 518400000 | No | |
| bundle_coexistence_bob_blb | Choice | inherit, logical | No | |
| ipv6_checksum_disable | Boolean | true, false | No | |
| interfaces | List | [interfaces] | No |
multipath_locations (iosxr.devices.configuration.bfd)
Section titled “multipath_locations (iosxr.devices.configuration.bfd)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| location_id | String | Yes |
interfaces (iosxr.devices.configuration.bfd)
Section titled “interfaces (iosxr.devices.configuration.bfd)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| interface_name | String | Yes | ||
| echo_disable | Choice | disable, enable | No | |
| echo_ipv4_source | IP | No | ||
| ipv6_checksum_disable | Boolean | true, false | No | |
| disable | Boolean | true, false | No | |
| local_address | IP | No | ||
| tx_interval | Integer | min: 3000, max: 30000000 | No | |
| rx_interval | Integer | min: 3000, max: 30000000 | No | |
| multiplier | Integer | min: 2, max: 50 | No |
Example YAML Code:
Section titled “Example YAML Code:”Example-1: Configure BFD with echo latency detection.
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: hostname: router-1 bfd: echo_latency_detect_percentage: 200 echo_latency_detect_count: 10 echo_startup_validate_force: trueExample-2: Configure BFD with echo IPv4 source and trap settings.
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: hostname: router-1 bfd: echo_ipv4_source: 10.1.1.1 echo_ipv4_bundle_per_member_minimum_interval: 200 trap_singlehop_pre_mapped: trueExample-3: Configure BFD dampening settings.
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: hostname: router-1 bfd: dampening_initial_wait: 3600 dampening_secondary_wait: 3200 dampening_maximum_wait: 3100 dampening_threshold: 60000 dampening_extensions_down_monitoring: trueExample-4: Configure BFD with interface-specific settings.
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: hostname: router-1 bfd: bundle_coexistence_bob_blb: "inherit" ipv6_checksum_disable: true interfaces: - interface_name: GigabitEthernet0/0/0/0 echo_ipv4_source: 12.1.1.1 ipv6_checksum_disable: true local_address: 12.1.1.1 tx_interval: 300000 rx_interval: 300000 multiplier: 40