<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 11pt; color: rgb(0, 0, 0); font-family: Tahoma, Geneva, sans-serif, "EmojiFont", "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p dir="auto">Hi everyone,</p>
<p dir="auto"><br>
</p>
<p dir="auto">I have a setup with a BFD/BGP session between an FRR instance (version 10.3) and an Arista router. Generally, everything works well, and routes are learned correctly between the devices.</p>
<p dir="auto"><br>
</p>
<p dir="auto">However, during failure testing, specifically when the Arista device is reloaded, issues arise. In this scenario, the BGP and BFD sessions fail to establish properly. The FRR instance sends BFD packets (UDP 3784) to the peer while the Arista device
 attempts to establish a BGP session. FRR bgp state stay in Idle.</p>
<p dir="auto"><br>
</p>
<p dir="auto">From the documentation, it seems that FRR operates like BFD strict mode ? refusing to establish BGP before the BFD session is up.
<br>
</p>
<p dir="auto">Here is the relevant documentation link: <a href="https://docs.frrouting.org/en/latest/bfd.html#clicmd-neighbor-A.B.C.D-X-X-X-X-WORD-bfd-strict-hold-time-seconds" class="OWAAutoLink">
https://docs.frrouting.org/en/latest/bfd.html#clicmd-neighbor-A.B.C.D-X-X-X-X-WORD-bfd-strict-hold-time-seconds</a></p>
<p dir="auto"><br>
</p>
<p dir="auto"><br>
</p>
<p dir="auto">Here is a sample of my FRR conf:</p>
<div id="divtagdefaultwrapper" dir="ltr" style="font-size:11pt; color:rgb(0,0,0); font-family:Tahoma,Geneva,sans-serif,"EmojiFont","Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<p><br>
</p>
<blockquote>
<p>frr version 10.3<br>
frr defaults traditional<br>
!<br>
hostname frr1<br>
!<br>
! Setup logging<br>
log daemon bgpd file /var/log/frr/bgpd.log debugging<br>
log daemon bfdd file /var/log/frr/bfdd.log debugging<br>
!<br>
debug bgp updates<br>
debug bgp neighbor-events<br>
debug bgp keepalives<br>
debug bgp bfd<br>
debug bfd distributed<br>
debug bfd peer<br>
debug bfd network</p>
<p><br>
</p>
<p>router bgp 64512<br>
 bgp router-id 192.168.0.5<br>
 no bgp default ipv4-unicast<br>
 neighbor PG_EDGE_V4 peer-group<br>
 neighbor PG_EDGE_V4 remote-as 64534<br>
 neighbor PG_EDGE_V4 bfd<br>
 neighbor PG_EDGE_V4 bfd profile edge<br>
 neighbor 192.168.0.1 peer-group PG_EDGE_V4<br>
 neighbor 192.168.0.2 peer-group PG_EDGE_V4<br>
 !<br>
 address-family ipv4 unicast<br>
  neighbor PG_EDGE_V4 activate<br>
  neighbor PG_EDGE_V4 addpath-tx-all-paths<br>
  neighbor PG_EDGE_V4 soft-reconfiguration inbound<br>
 exit-address-family<br>
 !<br>
!<br>
bfd<br>
 profile edge<br>
  detect-multiplier 8<br>
  transmit-interval 500<br>
  receive-interval 500<br>
 exit<br>
 !<br>
 peer 192.168.0.1<br>
  profile edge<br>
 exit<br>
 !<br>
 peer 192.168.0.2<br>
  profile edge<br>
 exit<br>
 !<br>
 !<br>
exit<br>
!<br>
end <br>
</p>
</blockquote>
<p><br>
<br>
</p>
<p>The only way I have found to recover the sessions is to disable and then re-enable BFD on the router BGP configuration:</p>
<p><br>
</p>
<blockquote>
<p>configure terminal<br>
router bgp 64512<br>
no neighbor PG_EDGE_V4 bfd<br>
no neighbor PG_EDGE_V4 bfd profile edge<br>
do clear bgp external<br>
neighbor PG_EDGE_V4 bfd<br>
neighbor PG_EDGE_V4 bfd profile edge</p>
</blockquote>
<p><br>
</p>
<p><br>
</p>
<div id="Signature">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size:11pt; color:rgb(0,0,0); background-color:rgb(255,255,255); font-family:Verdana,Geneva,sans-serif,"EmojiFont","Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<p dir="auto">Has anyone encountered a similar issue or have suggestions on how to resolve this?</p>
<p dir="auto">Thank you in advance for your help.</p>
<p dir="auto"><br>
</p>
<p dir="auto">Regards,</p>
</div>
<div dir="ltr" style="font-size:11pt; color:rgb(0,0,0); background-color:rgb(255,255,255); font-family:Verdana,Geneva,sans-serif,"EmojiFont","Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<br>
</div>
<div dir="ltr" style="font-size:11pt; color:rgb(0,0,0); background-color:rgb(255,255,255); font-family:Verdana,Geneva,sans-serif,"EmojiFont","Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
Julien </div>
</div>
</div>
</div>
</body>
</html>