Same intent, different machines

Rosetta

Pick a protocol. The six required platforms sit side by side. Differences that are conceptual — not merely syntax — are the teaching.

Detects that a path has stopped forwarding in milliseconds, so routing protocols can stop inferring it from missed hellos seconds later.

Junos puts the local AS under routing-options and OSPF under [edit protocols], while IOS uses a process-id and network statements. That is a model difference, not a spelling difference. Draft snippets say so on the badge.

Cisco IOS-XE draft

Detect a transport failure in under a second and tell both routing protocols.

interface GigabitEthernet0/0/1
 bfd interval 300 min_rx 300 multiplier 3
router ospf 1
 bfd all-interfaces
router bgp 65001
 neighbor 10.255.0.1 fall-over bfd
bfd-template single-hop DAMPEN
 interval min-tx 300 min-rx 300 multiplier 3
 dampening half-life 30 reuse 1000 suppress 2000 max-suppress-time 120

Juniper Junos draft

The same, configured under each protocol rather than on the interface.

set protocols ospf area 0 interface ge-0/0/1 bfd-liveness-detection minimum-interval 300
set protocols ospf area 0 interface ge-0/0/1 bfd-liveness-detection multiplier 3
set protocols bgp group core neighbor 10.255.0.1 bfd-liveness-detection minimum-interval 300
set protocols bgp group peers neighbor 192.0.2.1 bfd-liveness-detection multihop
set protocols bgp group peers neighbor 192.0.2.1 bfd-liveness-detection minimum-interval 1000

FRRouting draft

A conservative session on a path that degrades rather than failing cleanly.

bfd
 peer 10.255.0.1
  receive-interval 300
  transmit-interval 300
  detect-multiplier 3
interface eth1
 ip ospf bfd
router bgp 65001
 neighbor 10.255.0.1 bfd
bfd
 peer 10.255.0.1
  receive-interval 900
  transmit-interval 900
  detect-multiplier 3