BIRD 3.0-alpha0
Maria Matejka
maria.matejka at nic.cz
Sat Mar 5 00:01:32 CET 2022
Hello!
On 3/4/22 11:14 PM, Toke Høiland-Jørgensen wrote:
> Maria Matejka <maria.matejka at nic.cz> writes:
>
>> To make it crystal clear, 3.0 stable won't be much optimized in the
>> algorithmic or data structure way, this will happen later on. Anyway,
>> thank you for all your wishes.
>
> One question: What changes (if any) are necessary for the protocols to
> run in multithreaded mode? I wouldn't mind taking a look at adding
> support to the Babel protocol if you'd be interested in taking patches
> at this stage?
Simply, almost none compared to other changes inside BIRD. One of my
goals is to keep the protocols untouched if possible. What is needed, as
far as I can remember (list may be incomplete):
* check that there is no global variable inside Babel (including static
variables inside functions)
* check that nothing inside Babel touches directly any global data
structure and no quirk in Nest touches Babel directly
* check that all timers are stopped before protocol sets itself DOWN
(this won't be needed in future, maybe)
* in config.Y, request to run the protocol in its own loop
* set the SKF_THREAD flag for all sockets
* explicitly lock by birdloop_enter() and birdloop_leave() in CLI
commands like "show babel ..."
For now, you can look at RPKI or BGP diff, anyway I'm going to write a
blogpost specifically about internal protocol API, where to lock and
how. Therefore, I think the most convenient time to do the Babel
patching will be after publishing that blogpost, if you don't mind waiting.
I won't refuse patches now, yet I think the best approach is postponing
the work to the time when the blogpost is out and the API gets its final
shape and description. I estimate that time to several months from now
as there are some tasks (as described in my previous email) with higher
priority.
Maria
More information about the Bird-users
mailing list