kernel protocol ignores default preference during scan

Maria Matejka maria.matejka at nic.cz
Wed Sep 21 17:54:28 CEST 2022


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 <green at 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2839 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20220921/b93f32e8/attachment.p7s>


More information about the Bird-users mailing list