Hello Nico,

thanks for bringing this issue with multiple declaration of BFD protocols up.

The problem happening is that BFD protocol in BIRD works by default on all interfaces and the listed interfaces only modify options for them specifically. So the sessions are not assigned to protocols based on the listed interfaces. Furthermore multiple declared BFD protocols use the same socket for communication.

That means that in your case the bfd1 protocol took all the sessions and then it is fighting for packets with bfd2 on the same socket.

Currently, having multiple BFD protocols is not supported in BIRD.
You are, of course, right that this behavior should be described in the documentation and we will do so.

PS: BFD config with the desired outcome should be the following:

protocol bfd {
  interface "o*" {
    interval 500 ms;
    idle tx interval 2 s;
  };
  interface "i*" {
    interval 500 ms;
    idle tx interval 2 s;
  };
  # openvpn
  interface "tun*" {
    interval 500 ms;
    idle tx interval 2 s;
  };
  # transfer
  interface "eth0" {
    interval 500 ms;
    idle tx interval 2 s;
  };
}


Thank you for the report,
David

--
– David Petera (he/him) | BIRD Tech Support | CZ.NIC, z.s.p.o.

Reply via email to