Hello!

Thank you for finding and fixing. Will check and include.

Maria

On 9/21/22 17:15, Alexander Zubkov via Bird-users wrote:
I made a trivial patch for the case.

On Tue, Sep 20, 2022 at 6:23 PM Alexander Zubkov <gr...@qrator.net> wrote:

Hi,

Bird from master branch ignores the default preference set in channel
for a kernel protocol, like that:

protocol kernel {
         learn yes;
         ipv4 {
                 preference 200;
                 import all;
                 export none;
         };
}

Version 2.0.10 seems ok. I suppose the change was introduced with this commit:

https://gitlab.nic.cz/labs/bird/-/commit/eb937358c087eaeb6f209660cc7ecfe6d6eff739

It adds setting of the preference to the krt_learn_async() function.
But as I understand when route is learned with netlink hook it is
processed like this:
nl_parse_route -> krt_got_route_async -> krt_learn_async
But when it is learned from scan, it is processed like this:
nl_parse_route -> krt_got_route -> krt_learn_scan

And setting preference was not added to krt_learn_scan() function.

I also saw that in my test - when I added a new route to the kernel
while bird was running, it appeared in bird with correct preference.
But some time after, the scan updated the route and it was replaced
with the default preference.

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to