BIRD 3 thread group configuration syntax
David Petera
david.petera at nic.cz
Wed Aug 27 10:55:53 CEST 2025
Hello Robert,
you are totally right!
We investigated this for a bit and found that due to our oversight in
the grammar of the config, it was only possible to write a *single*
option in the thread group block.
It should be fixed on a branch here:
https://gitlab.nic.cz/labs/bird/-/tree/dp-fix-thead-group-conf?ref_type=heads
We will try to back-port this patch to v3.1 so hopefully it will land in
v3.1.3.
Thanks a lot for the bug report!
Have a good rest of the week,
David
David Petera (he/him) | BIRD Tech Support | CZ.NIC, z.s.p.o.
On 8/21/25 21:16, Robert Lister wrote:
>
> Hello,
>
> According to the docs for v3.1.2 and v3.1.1:
>
> https://bird.nic.cz/doc/bird-3.1.2.html#global-opts
>
> *Thread setup*
> [..]
>
> Thread groups are configured by writing thread group /name /{} blocks,
> which contain
> the following options:
>
> threads /number/
> default /bool/
> /[...]/
>
>
> It also notes the following:
>
> There is also a "simple" thread group setting. If you write *threads
> */number/ on top level, it is equivalent to
> setting the worker group thread count to that number, and the express
> group thread count to one.
> This setting is deprecated and may disappear in some future version.
>
>
> So.. now I come to setting up a new server, I thought I'd better try
> to use this
> "new" config style. But whatever I try doesn't seem to work. I've
> tried various
> iterations of:
>
>
> thread group worker {
> threads 1;
> }
>
> --> <FATAL> /etc/bird/bird.conf:55:10 No default thread group configured
>
> thread group worker {
> default;
> threads 1;
> }
>
> --> <FATAL> /etc/bird/bird.conf:43:2 syntax error, unexpected THREADS,
> expecting '}'
>
> thread group worker {
> threads 1;
> default yes;
> }
>
> --> <FATAL> /etc/bird/bird.conf:43:2 syntax error, unexpected DEFAULT,
> expecting '}'
>
> thread group worker {
> threads 1;
> default;
> }
>
> --> <FATAL> /etc/bird/bird.conf:43:2 syntax error, unexpected DEFAULT,
> expecting '}'
>
>
> Weirdly, if I configure only "default;" with no other options, it
> accepts the config:
>
> thread group worker {
> default;
> }
>
> root at rc01:/# /usr/local/sbin/bird -c /etc/bird/bird.conf -p
> root at rc01:/#
>
> If I add the (deprecated) top-level "threads", it complains I've got
> them both configured:
>
> threads 1;
>
> thread group worker {
> default;
> threads 1;
> }
>
> --> <FATAL> /etc/bird/bird.conf:41:14 Mixing of `threads NUM` and
> `threads worker {}` is not allowed.
>
>
> As soon as I try any other config options, it doesn't accept it:
>
> thread group worker {
> default;
> wakeup time 31415 s;
> }
>
> --> <FATAL> /etc/bird/bird.conf:43:2 syntax error, unexpected WAKEUP,
> expecting '}'
>
>
> Also tried:
>
>
> thread group {
> worker {
> threads 1;
> default;
> };
> }
>
> ---
>
> - nope.
>
>
> thread group worker {
> threads 1;
> }
>
> thread group express {
> threads 1;
> }
>
> --> <FATAL> /etc/bird/bird.conf:45:14 syntax error, unexpected
> EXPRESS, expecting CF_SYM_KNOWN or CF_SYM_UNDEFINED
>
> ---
>
> thread group worker {
> threads 2;
> default;
> }
>
> --> <FATAL> /etc/bird/bird.conf:43:2 syntax error, unexpected DEFAULT,
> expecting '}'
>
> ---
>
> thread worker {
> threads 2;
> default;
> }
>
> --> <FATAL> /etc/bird/bird.conf:41:8 syntax error, unexpected
> CF_SYM_UNDEFINED, expecting GROUP
>
>
> So, it seems the "default" option must be present, but if I add /any
> /other option,
> it doesn't accept it. Oddly, if I put another option before default,
> it doesn't complain
> about that, but instead complains about "default" being there.
>
> I tried various 3.x versions 3.1.1, 3.1.2 and a couple of recent
> branches from git repo.
>
> As for the config - I just have the default bird.conf which ships with
> the BIRD
> debian package, and I've added the thread group option somewhere near
> the top.
>
> Any hints on the correct config would be appreciated. Or is this maybe
> a bug?
>
>
> Thanks!
>
>
> Rob
>
> --
> Rob Lister
> rob at lonap.net
> +44 20 3137 8330
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20250827/915c4782/attachment.htm>
More information about the Bird-users
mailing list