BFD
Bidirectional Forwarding Detection (BFD) is a lightweight protocol designed to provide fast failure detection for network paths between adjacent systems, enabling rapid convergence of routing protocols. It operates by sending periodic control packets between systems to detect path failures in milliseconds rather than the seconds or minutes required by traditional routing protocol hello mechanisms. BFD can be integrated with various routing protocols like OSPF, BGP, and EIGRP to dramatically improve network convergence times and overall network stability.
Diagram
Section titled “Diagram”Classes
Section titled “Classes”configuration (iosxe.devices)
Section titled “configuration (iosxe.devices)”Name | Type | Constraint | Mandatory | Default Value |
---|---|---|---|---|
bfd | Class | [bfd] | No |
bfd (iosxe.devices.configuration)
Section titled “bfd (iosxe.devices.configuration)”Name | Type | Constraint | Mandatory | Default Value |
---|---|---|---|---|
multi_hop_templates | List | [multi_hop_templates] | No | |
single_hop_templates | List | [single_hop_templates] | No | |
ipv4_maps | List | [ipv4_maps] | No | |
ipv6_maps | List | [ipv6_maps] | No | |
slow_timers | Integer | min: 1000 , max: 30000 | No |
multi_hop_templates (iosxe.devices.configuration.bfd)
Section titled “multi_hop_templates (iosxe.devices.configuration.bfd)”Name | Type | Constraint | Mandatory | Default Value |
---|---|---|---|---|
name | String | Yes | ||
echo | Boolean | true , false | No | |
interval_milliseconds_both | Integer | No | ||
interval_milliseconds_min_tx | Integer | No | ||
interval_milliseconds_min_rx | Integer | No | ||
interval_milliseconds_multiplier | Integer | min: 3 , max: 50 | No | |
interval_microseconds | Boolean | true , false | No | |
interval_microseconds_both | Integer | No | ||
interval_microseconds_min_tx | Integer | No | ||
interval_microseconds_min_rx | Integer | No | ||
interval_microseconds_multiplier | Integer | No | ||
authentication_md5_keychain | String | No | ||
authentication_meticulous_md5_keychain | String | No | ||
authentication_meticulous_sha1_keychain | String | No | ||
authentication_sha1_keychain | String | No | ||
dampening_half_time | Integer | min: 1 , max: 30 | No | |
dampening_unsuppress_time | Integer | min: 1 , max: 18000 | No | |
dampening_suppress_time | Integer | min: 1 , max: 18000 | No | |
dampening_max_suppressing_time | Integer | min: 1 , max: 420 | No | |
dampening_threshold | Integer | No | ||
dampening_down_monitoring | Boolean | true , false | No |
single_hop_templates (iosxe.devices.configuration.bfd)
Section titled “single_hop_templates (iosxe.devices.configuration.bfd)”Name | Type | Constraint | Mandatory | Default Value |
---|---|---|---|---|
name | String | Yes | ||
echo | Boolean | true , false | No | |
interval_milliseconds_both | Integer | No | ||
interval_milliseconds_min_tx | Integer | No | ||
interval_milliseconds_min_rx | Integer | No | ||
interval_milliseconds_multiplier | Integer | No | ||
interval_microseconds_min_tx | Integer | No | ||
interval_microseconds_min_rx | Integer | No | ||
authentication_md5_keychain | String | No | ||
authentication_meticulous_md5_keychain | String | No | ||
authentication_meticulous_sha1_keychain | String | No | ||
authentication_sha1_keychain | String | No | ||
dampening_half_time | Integer | min: 1 , max: 30 | No | |
dampening_unsuppress_time | Integer | min: 1 , max: 18000 | No | |
dampening_suppress_time | Integer | min: 1 , max: 18000 | No | |
dampening_max_suppressing_time | Integer | min: 1 , max: 420 | No |
ipv4_maps (iosxe.devices.configuration.bfd)
Section titled “ipv4_maps (iosxe.devices.configuration.bfd)”Name | Type | Constraint | Mandatory | Default Value |
---|---|---|---|---|
destination_vrf | String | No | ||
destination_prefix | IP | Yes | ||
source_vrf | String | No | ||
source_prefix | IP | Yes | ||
template | String | Yes |
ipv6_maps (iosxe.devices.configuration.bfd)
Section titled “ipv6_maps (iosxe.devices.configuration.bfd)”Name | Type | Constraint | Mandatory | Default Value |
---|---|---|---|---|
destination_vrf | String | No | ||
destination_prefix | IP | Yes | ||
source_vrf | String | No | ||
source_prefix | IP | Yes | ||
template | String | Yes |
Examples
Section titled “Examples”iosxe: devices: - name: Device1 configuration: bfd: slow_timers: 2000 ipv4_maps: - destination_vrf: VRF-A destination_prefix: 192.168.1.1 source_vrf: VRF-B source_prefix: 10.1.1.1 template: single-hop-template-1 - destination_prefix: 172.16.1.1 source_prefix: 10.2.2.1 template: multi-hop-template-1 ipv6_maps: - destination_vrf: VRF-IPv6 destination_prefix: 2001:db8:1::1 source_vrf: VRF-IPv6 source_prefix: 2001:db8:2::1 template: single-hop-template-2 single_hop_templates: - name: single-hop-template-1 echo: true interval_milliseconds_both: 100 interval_milliseconds_multiplier: 3 authentication_md5_keychain: md5-keychain-1 dampening_half_time: 5 dampening_unsuppress_time: 300 dampening_suppress_time: 600 dampening_max_suppressing_time: 60 - name: single-hop-template-2 interval_microseconds_min_tx: 50000 interval_microseconds_min_rx: 50000 authentication_sha1_keychain: sha1-keychain-1 multi_hop_templates: - name: multi-hop-template-1 echo: false interval_milliseconds_both: 200 interval_milliseconds_multiplier: 5 authentication_meticulous_md5_keychain: meticulous-md5-keychain dampening_half_time: 10 dampening_threshold: 1000 dampening_down_monitoring: true - name: multi-hop-template-2 interval_microseconds: true interval_microseconds_both: 100000 interval_microseconds_multiplier: 4 authentication_meticulous_sha1_keychain: meticulous-sha1-keychain