Hi,

with bird 2.0.9 previously configured babel interfaces are removed after `birdc configure`.

To reproduce the issue I used the following config:

     router id 127.0.0.1;

     protocol device { }

     ipv4 table v4;
     ipv6 sadr table v6;

     protocol babel {
             randomize router id on;
             ipv4 { table v4; };
             ipv6 sadr { table v6; };

             interface "dummy0";
     }

And the following commands:

     # ip link add dev dummy0 type dummy
     # ip l set dummy0 up
     # birdc show babel interfaces
     BIRD 2.0.9 ready.
     babel1:
Interface State Auth RX cost Nbrs Timer Next hop (v4) Next hop (v6) dummy0 Up No 96 0 2.132 :: fe80::a00c:c0ff:fe44:e43e

     # birdc configure
     BIRD 2.0.9 ready.
     Reading configuration from /etc/bird.conf
     Reconfigured

     # birdc show babel interfaces
     BIRD 2.0.9 ready.
     babel1:
Interface State Auth RX cost Nbrs Timer Next hop (v4) Next hop (v6)

     #

As you can see, without changing the config file, the babel interface disappears after reconfiguring bird.

It was suggested to me (thanks nixxda!) that the bug may have been introduced in [1], specifically in line 1757:

+    if (ic && iface_is_valid(p, iface))
+      ic = NULL;

The issue might be a missing negation before `iface_is_valid`, though I have not confirmed it myself.

Cheers,

Johannes Kimmel

[1]: https://gitlab.nic.cz/labs/bird/-/commit/c1511b92cc9c215224314be38c28ed80843f55e4#3aaedc53acdac1af04a952110ef73e3e688c5bac_1750_1757

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to