<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div>Hi,</div>
<div><br>
</div>
<div>I'm running frr 7.5.1 and trying to configure BFD for an interface in a VRF. BFD counters don't show any "Control packet input" packets, and I think this is because FRR needs to listen on port 3784 inside the VRF, it's non-VRF socket won't receive any
 packets from the VRF. I manually tested this idea with "netcat -ul 3784", and I was only able to receive BFD packets if I create the netcat listening socket within the VRF (e.g. "ip vrf exec myvrf netcat -ul 3784"). BFDD does create a socket in the VRF, but
 it's for a high port not for 3784/4784. I'm running on RHEL8 / kernel 4.18.0-240.15.1.el8_3.x86_64 and using FRR from rpm.frrouting.org/repo/el8. Is there some config I'm missing, or should I file this as a bug?</div>
<div><br>
</div>
<div><br>
</div>
<div>For example,</div>
<div><br>
</div>
<div>bfd</div>
<div>  peer 192.0.2.12 vrf myvrf interface enp4s0f1</div>
<div><br>
</div>
<div>Results in </div>
<div><br>
</div>
<div># ss -abnp | fgrep bfd</div>
<div></div>
<div><br>
</div>
<div>udp UNCONN 0 0 0.0.0.0%myvrf:49155 0.0.0.0:* users:(("bfdd",pid=160681,fd=26))</div>
<div><br>
</div>
<div>udp UNCONN 0 0 0.0.0.0:3784 0.0.0.0:* users:(("bfdd",pid=160681,fd=14)) </div>
<div>udp UNCONN 0 0 0.0.0.0:3785 0.0.0.0:* users:(("bfdd",pid=160681,fd=18)) </div>
<div>udp UNCONN 0 0 [::]:4784 [::]:* users:(("bfdd",pid=160681,fd=17)) </div>
<div>udp UNCONN 0 0 [::]:3784 [::]:* users:(("bfdd",pid=160681,fd=16)) </div>
<div>udp UNCONN 0 0 [::]:3785 [::]:* users:(("bfdd",pid=160681,fd=19))</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div># vtysh -c "show bfd peers counter"</div>
<div>peer 192.0.2.12 multihop local-address 192.0.2.13 vrf internet</div>
<div>Control packet input: 0 packets</div>
<div>Control packet output: 5140 packets</div>
<div>Echo packet input: 0 packets</div>
<div>Echo packet output: 0 packets</div>
<div>Session up events: 0</div>
<div>Session down events: 0</div>
<div>Zebra notifications: 2</div>
<div><br>
</div>
<div>Compare with BGP, which does work for me in a VRF because it listens on port 179 inside the VRF.</div>
<div><br>
</div>
<div># ss -abnp 'sport = :179'</div>
<div>Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port </div>
<div>tcp LISTEN 0 128 0.0.0.0%myvrf:179 0.0.0.0:* users:(("bgpd",pid=160658,fd=26))
</div>
<div>tcp LISTEN 0 128 [::]%myvrf:179 [::]:* users:(("bgpd",pid=160658,fd=27))</div>
<div><br>
</div>
<div><br>
</div>
<div>Thank you,<br>
Andrew</div>
<div><span></span></div>
</body>
</html>