]> git.ipfire.org Git - thirdparty/bird.git/log
thirdparty/bird.git
4 months agomerging: There is conflict in usage of bird_thread_commit. The problem is in adding... try-to-merge
Katerina Kubecova [Thu, 6 Mar 2025 11:53:39 +0000 (12:53 +0100)] 
merging: There is conflict in usage of bird_thread_commit. The problem is in adding struct config *old parameter and new usage of bird_thread_commit in main.c. (in addition, this causes include conflict with conf.h)

4 months agowhy the imports do not work?
Katerina Kubecova [Thu, 6 Mar 2025 10:24:05 +0000 (11:24 +0100)] 
why the imports do not work?

5 months agoTaming static checker: flow[64]_validate_cf() checks NULL data
Maria Matejka [Thu, 13 Feb 2025 17:25:44 +0000 (18:25 +0100)] 
Taming static checker: flow[64]_validate_cf() checks NULL data

This does not apply for the current code but if somebody chose to use
the flowspec validation functions for something totally broken, it may
unnecessarily crash.

5 months agoTaming static checker: MPLS static label policy requires static handles
Maria Matejka [Thu, 13 Feb 2025 12:10:04 +0000 (13:10 +0100)] 
Taming static checker: MPLS static label policy requires static handles

5 months agoTaming static checker: Do not request bits on negative positions in prefixes
Maria Matejka [Thu, 13 Feb 2025 11:12:20 +0000 (12:12 +0100)] 
Taming static checker: Do not request bits on negative positions in prefixes

The code is actually called. It's harmless, yet confusing.

5 months agoTaming static checker: Fixed hypothetical adata comparator crash
Maria Matejka [Thu, 13 Feb 2025 09:22:08 +0000 (10:22 +0100)] 
Taming static checker: Fixed hypothetical adata comparator crash

5 months agoAdded build for Debian 12
Maria Matejka [Wed, 12 Feb 2025 20:30:55 +0000 (21:30 +0100)] 
Added build for Debian 12

Needed right now for a customer. There is a better fix pending.

5 months agoBGP export table src fix
Maria Matejka [Wed, 12 Feb 2025 20:29:10 +0000 (21:29 +0100)] 
BGP export table src fix

When exchanging routes in BGP export table, we forgot to update
the src in cases of add path off. This led to falsely claiming another
origin of that route in export table dump and also holding protocols
in the flush state because of their srcs being kept in the export tables.

5 months agoBFD session handling rework
Maria Matejka [Mon, 3 Feb 2025 14:21:52 +0000 (15:21 +0100)] 
BFD session handling rework

The original implementation for BIRD 3 was rooted in the first
methods how I tried to go for multithreading and it had several flaws,
mostly incomprehensive notification and request pickup routines.
Also converting to a double-loop architecture where one of the
loops (low-latency) solely runs BFD socket communication, whereas
the other one does all the other shenanigans.

5 months agoFlowspec: allowed TES_PARTIAL in validator link state
Maria Matejka [Tue, 11 Feb 2025 18:57:46 +0000 (19:57 +0100)] 
Flowspec: allowed TES_PARTIAL in validator link state

This probably slipped through some refactoring, TES_PARTIAL
is definitely a valid state for a flowspec link export.

5 months agoProper thread group setup
Maria Matejka [Tue, 4 Feb 2025 20:13:26 +0000 (21:13 +0100)] 
Proper thread group setup

Now the thread groups can be explicitly configured with their
latency and timing values.

5 months agoIO loop: converted the thread group to a regular locked structure
Maria Matejka [Wed, 5 Feb 2025 12:08:48 +0000 (13:08 +0100)] 
IO loop: converted the thread group to a regular locked structure

5 months agoIO loop: refactored thread and loop lists to tlists
Maria Matejka [Tue, 4 Feb 2025 20:44:28 +0000 (21:44 +0100)] 
IO loop: refactored thread and loop lists to tlists

5 months agoTlist enlisted allows const pointer argument
Maria Matejka [Wed, 5 Feb 2025 20:41:32 +0000 (21:41 +0100)] 
Tlist enlisted allows const pointer argument

5 months agoMake implicit function declaration an actual error
Maria Matejka [Wed, 5 Feb 2025 17:42:29 +0000 (18:42 +0100)] 
Make implicit function declaration an actual error

5 months agoFixed SAME_TYPE to work with obviously nonzero pointers without warnings
Maria Matejka [Tue, 4 Feb 2025 09:41:05 +0000 (10:41 +0100)] 
Fixed SAME_TYPE to work with obviously nonzero pointers without warnings

5 months agoTaming static checker: rt_notify never sets net_addr to zero
Maria Matejka [Fri, 31 Jan 2025 22:54:29 +0000 (23:54 +0100)] 
Taming static checker: rt_notify never sets net_addr to zero

5 months agoTaming static checker: don't memcpy zero length
Maria Matejka [Fri, 31 Jan 2025 22:51:44 +0000 (23:51 +0100)] 
Taming static checker: don't memcpy zero length

5 months agoFix channel restart sequence
Maria Matejka [Mon, 10 Feb 2025 11:29:51 +0000 (12:29 +0100)] 
Fix channel restart sequence

If channel goes start -> pause -> start, the original code crashed
but it's a valid sequence for protocol half-restart, going from UP
to START and then back UP.

5 months agoOld config should not be freed early when reconfiguring in fast succession
Maria Matejka [Mon, 10 Feb 2025 13:18:19 +0000 (14:18 +0100)] 
Old config should not be freed early when reconfiguring in fast succession

5 months agoKernel: pause exports also on restart until scan is done
Maria Matejka [Wed, 12 Feb 2025 11:38:20 +0000 (12:38 +0100)] 
Kernel: pause exports also on restart until scan is done

To save some time, exports are disabled to kernel when the initial scan
is running. The same should happen when kernel protocol is restarting.

6 months agoBGP: fix shutdown crash when dynamic peer is just connected
Maria Matejka [Mon, 13 Jan 2025 21:15:52 +0000 (22:15 +0100)] 
BGP: fix shutdown crash when dynamic peer is just connected

In some edge cases, the dynamic BGP starts but doesn't yet pick up
the socket from the peer, when it gets shut down, typically on
a complete shutdown. Fixing this to just close the socket, not assert
it being already picked up.

6 months agoNEWS and version update v3.0.1
Maria Matejka [Thu, 9 Jan 2025 20:54:53 +0000 (21:54 +0100)] 
NEWS and version update

6 months agoMerge remote-tracking branch 'origin/stable-v2.16' into HEAD
Maria Matejka [Thu, 9 Jan 2025 20:54:15 +0000 (21:54 +0100)] 
Merge remote-tracking branch 'origin/stable-v2.16' into HEAD

6 months agoNEWS and version update v2.16.1
Maria Matejka [Thu, 9 Jan 2025 20:51:15 +0000 (21:51 +0100)] 
NEWS and version update

6 months agoMerge commit 'abecb5bb408f253cd24345ba94940ea0f7b59f4f' into HEAD
Maria Matejka [Thu, 9 Jan 2025 17:55:26 +0000 (18:55 +0100)] 
Merge commit 'abecb5bb408f253cd24345ba94940ea0f7b59f4f' into HEAD

6 months agoMerge commit '85aa283071ed75059fd8c889bc4ee33be1f901af' into HEAD
Maria Matejka [Thu, 9 Jan 2025 17:46:04 +0000 (18:46 +0100)] 
Merge commit '85aa283071ed75059fd8c889bc4ee33be1f901af' into HEAD

6 months agoMerge commit 'd221f39731be40ed3821f8db09d590edb849cb0c' into HEAD
Maria Matejka [Thu, 9 Jan 2025 17:45:50 +0000 (18:45 +0100)] 
Merge commit 'd221f39731be40ed3821f8db09d590edb849cb0c' into HEAD

6 months agoMerge commit 'e063365590b9b857a5bd0acfa519783eba639bbf' into stable-v3.0
Maria Matejka [Thu, 9 Jan 2025 17:30:33 +0000 (18:30 +0100)] 
Merge commit 'e063365590b9b857a5bd0acfa519783eba639bbf' into stable-v3.0

6 months agolib: Unify alignment of allocators
Ondrej Zajicek [Thu, 9 Jan 2025 15:44:51 +0000 (16:44 +0100)] 
lib: Unify alignment of allocators

Different internal allocators (memory blocks, linpools, and slabs) used
different way to compute alignment. Unify it to use alignment based on
standard max_align_t type.

On x86_64, this does not change alignment of memory blocks and linpools
(both old and new is 16), but it increases alignment of slabs from 8 to
16.

Minor changes by commiter.

6 months agoTable: Fixed table debug settings reconfiguration
Maria Matejka [Wed, 8 Jan 2025 19:59:03 +0000 (20:59 +0100)] 
Table: Fixed table debug settings reconfiguration

6 months agoTable: more best route refeed fixes
Maria Matejka [Wed, 8 Jan 2025 19:22:21 +0000 (20:22 +0100)] 
Table: more best route refeed fixes

Best route refeed is tricky. The journal may include repeatedly the same
route in the old and/or in the new position in case of flaps. We don't
like checking that fully in the RCU critical section which is already
way too long, thus we filter out the repeated occurence of the current
best route while keeping possibly more old routes.

We also don't want to send spurious withdraws, and we need to check that
only one notification per net is sent for RA_OPTIMAL.

There was also missing a rejected map update in case of idempotent
squashed update, and last but not least, the best route journal should
not include invalid routes (import keep filtered).

6 months agoTable: old best route refeed fix
Maria Matejka [Tue, 7 Jan 2025 11:13:57 +0000 (12:13 +0100)] 
Table: old best route refeed fix

When refeeding with RA_OPTIMAL, the old best routes weren't announced,
leading to weird behavior of protocols, mostly kernel. Fixed.

6 months agoBGP: fixed deterministic med crashes
Maria Matejka [Tue, 7 Jan 2025 10:08:04 +0000 (11:08 +0100)] 
BGP: fixed deterministic med crashes

There were several places of forgotten NULL checks.

Thanks to Alarig Le Lay <alarig@swordarmor.fr> for reporting:
https://trubka.network.cz/pipermail/bird-users/2024-December/017990.html

6 months agoBGP: fix display name of bgp_otc attribute
Maria Matejka [Fri, 27 Dec 2024 15:22:59 +0000 (16:22 +0100)] 
BGP: fix display name of bgp_otc attribute

6 months agoAllocate the normalization buckets on stack
Maria Matejka [Tue, 24 Dec 2024 15:16:55 +0000 (16:16 +0100)] 
Allocate the normalization buckets on stack

Even though allocating from tmp_linpool is quite cheap,
it isn't cheap when the block is larger than a page, which is the case here.
Instead, we now allocate just the result which typically fits in a page,
avoiding a necessity of a malloc().

6 months agoBGP: TX bucket storage moved to Stonehenge
Maria Matejka [Tue, 24 Dec 2024 12:22:56 +0000 (13:22 +0100)] 
BGP: TX bucket storage moved to Stonehenge

6 months agoRoute attribute storage moved to Stonehenge
Maria Matejka [Tue, 24 Dec 2024 12:12:58 +0000 (13:12 +0100)] 
Route attribute storage moved to Stonehenge

6 months agoStonehenge: multi-slab allocator
Maria Matejka [Tue, 24 Dec 2024 11:18:39 +0000 (12:18 +0100)] 
Stonehenge: multi-slab allocator

To mid-term allocate and free lots of small blocks in a fast pace,
mb_alloc is too slow and causes heap bloating. We can already allocate
blocks from slabs, and if we allow for a little bit of inefficiency,
we can just use multiple slabs with stepped sizes.

This technique is already used in ea_list allocation which is gonna be
converted to Stonehenge.

6 months agoGraceful recovery: converted to obstacles
Maria Matejka [Mon, 23 Dec 2024 20:06:26 +0000 (21:06 +0100)] 
Graceful recovery: converted to obstacles

Yet another refcounting mechanism had a locking collision.

6 months agoKernel: feed only once during startup
Maria Matejka [Mon, 23 Dec 2024 10:58:05 +0000 (11:58 +0100)] 
Kernel: feed only once during startup

There was an inefficiency in the initial scan state machine,
causing routes to be fed several times instead of just once.
Now the export startup is postponed until first krt_scan()
finishes and we actually can do the pruning with full information.

6 months agoCLI: Flushing tmp_linpool after every shown net.
Maria Matejka [Sun, 22 Dec 2024 21:26:44 +0000 (22:26 +0100)] 
CLI: Flushing tmp_linpool after every shown net.

There is no reason to keep the allocated objects through multiple nets.

6 months agoCLI: allocate TX buffers as pages, not by malloc
Maria Matejka [Sun, 22 Dec 2024 21:10:38 +0000 (22:10 +0100)] 
CLI: allocate TX buffers as pages, not by malloc

Every malloc risks heap bloating and these blocks are already
the same size as pages.

6 months agoStatic: fixed ASPA reconfiguration
Maria Matejka [Thu, 26 Dec 2024 10:34:02 +0000 (11:34 +0100)] 
Static: fixed ASPA reconfiguration

Due to an oversight, the provider lists weren't compared on reconfiguration.

Reported-By: Ralph Covelli <rcovelli@he.net>
6 months agoNest: Fix handling of 64-bit rte_src.private_id
Ondrej Zajicek [Tue, 17 Dec 2024 08:00:42 +0000 (09:00 +0100)] 
Nest: Fix handling of 64-bit rte_src.private_id

The commit 21213be523baa7f2cbf0feaa617f265c55e9b17a expanded private_id
in route source to u64, but forgot to modify function arguments, so it
was still cropped at 32-bit, which may cause some collisions for L3VPN.
This patch fixes that.

6 months agoLib: Ensure that all net_addr structures have the same alignment
Ondrej Zajicek [Mon, 16 Dec 2024 17:56:30 +0000 (18:56 +0100)] 
Lib: Ensure that all net_addr structures have the same alignment

Also weaken the explicit alignment of net_addr to be u32, as VPN
is already u32-aligned.

6 months agoDoc: Fix protocol outline in RPKI
Ondrej Zajicek [Mon, 16 Dec 2024 18:29:27 +0000 (19:29 +0100)] 
Doc: Fix protocol outline in RPKI

Protocol outlines should not contain specific values.

Also fix some space intendation in code sections.

6 months agoLib: Data type for VPN route distinguishers
Ondrej Zajicek [Mon, 16 Dec 2024 17:27:42 +0000 (18:27 +0100)] 
Lib: Data type for VPN route distinguishers

Use a distinct data structure for VPN route distinguishers instead
of just u64.

6 months agoNetlink: Handle onlink flag on BSD-Netlink
Ondrej Zajicek [Thu, 12 Dec 2024 03:04:07 +0000 (04:04 +0100)] 
Netlink: Handle onlink flag on BSD-Netlink

On BSD, the onlink flag is not tracked or reported by kernel. We are
using an heuristic that assigns the onlink flag to routes scanned from
the kernel. We should use the same heuristic even in BSD-Netlink
case, as the onlink flag is not reported here too.

Thanks to Björn König for the original patch.

6 months agoBabel: fix seqno wrapping on seqno request
Fabian Bläse [Tue, 10 Dec 2024 01:14:06 +0000 (02:14 +0100)] 
Babel: fix seqno wrapping on seqno request

The Babel seqno wraps around when reaching its maximum value (UINT16_MAX).
When comparing seqnos, this has to be taken into account. Therefore,
plain number comparisons do not work.

7 months agoBFD: Fix session reconfiguration locking order
Maria Matejka [Sat, 21 Dec 2024 18:02:22 +0000 (19:02 +0100)] 
BFD: Fix session reconfiguration locking order

The sessions have to be updated asynchronously to avoid
cross-locking between protocols.

Testsuite: cf-ibgp-bfd-switch, cf-ibgp-multi-bfd-auth
Fixes: #139
Thanks to Daniel Suchy <danny@danysek.cz> for reporting:
https://trubka.network.cz/pipermail/bird-users/2024-December/017984.html

7 months agoBGP: fix locking order error on dynamic protocol spawn
Maria Matejka [Fri, 20 Dec 2024 10:28:00 +0000 (11:28 +0100)] 
BGP: fix locking order error on dynamic protocol spawn

We missed that the protocol spawner violates the prescribed
locking order. When the rtable level is locked, no new protocol can be
started, thus we need to:

* create the protocol from a clean mainloop context
* in protocol start hook, take the socket

Testsuite: cf-bgp-autopeer
Fixes: #136
Thanks to Job Snijders <job@fastly.com> for reporting:
https://trubka.network.cz/pipermail/bird-users/2024-December/017980.html

7 months agoKernel: when channel traces, we have to trace the final result
Maria Matejka [Thu, 19 Dec 2024 11:28:27 +0000 (12:28 +0100)] 
Kernel: when channel traces, we have to trace the final result

Otherwise it looks like we are sending too much traffic to netlink
every other while, which is not true. Now we can disambiguate between
in-kernel updates and ignored routes.

7 months agoTable: not feeding twice, once is enough
Maria Matejka [Thu, 19 Dec 2024 10:54:05 +0000 (11:54 +0100)] 
Table: not feeding twice, once is enough

If there is no feed pending, the requested one should be
activated immediately, otherwise it is activated only after
the full run, effectively running first a full feed and
then the requested one.

7 months agoKernel: Fix crash for merge paths on if no route is in BIRD
Maria Matejka [Thu, 19 Dec 2024 10:00:15 +0000 (11:00 +0100)] 
Kernel: Fix crash for merge paths on if no route is in BIRD

There was a missing check for a NULL return value.
Also fixed an indenting error.

Thanks to Radu Anghel for reporting it:
https://bird.network.cz/pipermail/bird-users/2024-December/017977.html

7 months agoNEWS and version update v3.0.0
Maria Matejka [Tue, 17 Dec 2024 08:42:16 +0000 (09:42 +0100)] 
NEWS and version update

7 months agoDebian: Depend on libssh's default flavor
Jakub Ružička [Mon, 16 Dec 2024 13:23:12 +0000 (14:23 +0100)] 
Debian: Depend on libssh's default flavor

This mirrors Debian bird2 change, gcrypt flavor is deprecated.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1074257

7 months agoBGP: Print warnings when the allocated memory is larger than given acceptable maximum.
Katerina Kubecova [Mon, 16 Dec 2024 10:37:10 +0000 (11:37 +0100)] 
BGP: Print warnings when the allocated memory is larger than given acceptable maximum.

7 months agoTable exporter journal dumping and memsize
Maria Matejka [Mon, 16 Dec 2024 09:59:59 +0000 (10:59 +0100)] 
Table exporter journal dumping and memsize

The show-memory command wasn't showing the consumed memory
properly because it ignored the journal size. Now it does.

7 months agoFix mallopt configure checks
Maria Matejka [Mon, 16 Dec 2024 08:50:20 +0000 (09:50 +0100)] 
Fix mallopt configure checks

Some systems do have malloc.h but don't have mallopt.

7 months agoTable cork compromise
Maria Matejka [Mon, 16 Dec 2024 08:34:08 +0000 (09:34 +0100)] 
Table cork compromise

The original values were way too low but what was set
later was too high and caused memory buildup upon startup.

7 months agoTable prune inhibited during reconfiguration
Maria Matejka [Sun, 15 Dec 2024 20:04:22 +0000 (21:04 +0100)] 
Table prune inhibited during reconfiguration

When many changes are done during reconfiguration, the table may
start pruning old routes before everything is settled down, slowing
down not only the reconfiguration, but also the shutdown process.

7 months agoDisable multiple malloc arenas
Maria Matejka [Sat, 14 Dec 2024 22:21:07 +0000 (23:21 +0100)] 
Disable multiple malloc arenas

In our usecase, these are impossibly greedy because we often
free memory in a different thread than where we allocate, forcing
the default allocator to scatter the used memory all over the place.

7 months agoMore accurate allocator internal log
Maria Matejka [Sat, 14 Dec 2024 20:33:47 +0000 (21:33 +0100)] 
More accurate allocator internal log

7 months agoDrop forgotten debug logs
Maria Matejka [Sat, 14 Dec 2024 18:49:56 +0000 (19:49 +0100)] 
Drop forgotten debug logs

7 months agoROA: Extended and more thorough test
Katerina Kubecova [Fri, 13 Dec 2024 15:16:59 +0000 (16:16 +0100)] 
ROA: Extended and more thorough test

There was a suspicion that maybe the BIRD 3 version of ROA gets the
digesting wrong. This test covers the nastiest cornercases we could
think about, so now we can expect it to be right.

7 months agoMerge commit '1dbee120' into thread-next
Maria Matejka [Fri, 13 Dec 2024 19:56:30 +0000 (20:56 +0100)] 
Merge commit '1dbee120' into thread-next

7 months agoMerge tag 'v2.16' into thread-next
Maria Matejka [Fri, 13 Dec 2024 19:56:08 +0000 (20:56 +0100)] 
Merge tag 'v2.16' into thread-next

v2.16

7 months agoAllow allocating cold pages inside RCU critical section
Katerina Kubecova [Fri, 13 Dec 2024 11:35:02 +0000 (12:35 +0100)] 
Allow allocating cold pages inside RCU critical section

We have quite large critical sections and we need to allocate inside
them. This is something to revise properly later on, yet for now,
instead of slowly but surely growing the virtual memory address space,
it's better to optimize the cold page cache pickup and count situations
where this happened inside the critical section.

7 months agoFixed a subtle memory leak in protocol restart routine
Maria Matejka [Fri, 13 Dec 2024 18:10:55 +0000 (19:10 +0100)] 
Fixed a subtle memory leak in protocol restart routine

7 months agoMerge commit '707cad61' into thread-next
Maria Matejka [Fri, 13 Dec 2024 17:40:11 +0000 (18:40 +0100)] 
Merge commit '707cad61' into thread-next

7 months agoMerge commit 'ef456118' into thread-next
Maria Matejka [Fri, 13 Dec 2024 15:01:19 +0000 (16:01 +0100)] 
Merge commit 'ef456118' into thread-next

7 months agoMerge commit 'd85fa48e' into thread-next
Maria Matejka [Fri, 13 Dec 2024 14:23:01 +0000 (15:23 +0100)] 
Merge commit 'd85fa48e' into thread-next

The resource dumping routines needed to be updated in v3 to use the new
API introduced in v2.

Conflicts:
filter/f-util.c
filter/filter.c
lib/birdlib.h
lib/event.c
lib/mempool.c
lib/resource.c
lib/resource.h
lib/slab.c
lib/timer.c
nest/config.Y
nest/iface.c
nest/iface.h
nest/locks.c
nest/neighbor.c
nest/proto.c
nest/route.h
nest/rt-attr.c
nest/rt-table.c
proto/bfd/bfd.c
proto/bmp/bmp.c
sysdep/unix/io.c
sysdep/unix/krt.c
sysdep/unix/main.c
sysdep/unix/unix.h

7 months agoMerge remote-tracking branch 'origin/apkg-v3' into thread-next
Maria Matejka [Thu, 12 Dec 2024 20:07:53 +0000 (21:07 +0100)] 
Merge remote-tracking branch 'origin/apkg-v3' into thread-next

7 months agoEAttr normalization rewritten to use bucket sort
Katerina Kubecova [Wed, 20 Nov 2024 15:53:13 +0000 (16:53 +0100)] 
EAttr normalization rewritten to use bucket sort

The EAttr ID space is dense so we can just walk once, sweep the whole
input and go home.

There is a little bit of memory inefficiency in allocating always the
largest possible block, yet it isn't too bad.

There are also unit tests for this.

7 months agoCLI: show threads all crash fixed
Maria Matejka [Thu, 12 Dec 2024 14:00:26 +0000 (15:00 +0100)] 
CLI: show threads all crash fixed

When socket dropped before finished, it failed to cleanup.

7 months agoFix alignment requirements to include atomic u64.
Maria Matejka [Wed, 11 Dec 2024 16:51:46 +0000 (17:51 +0100)] 
Fix alignment requirements to include atomic u64.

Not having this led to bus errors on unaligned atomic u64 access
on architectures with 4B pointers.

7 months agoProto show: show creation and last autorestart time
Maria Matejka [Wed, 11 Dec 2024 09:05:05 +0000 (10:05 +0100)] 
Proto show: show creation and last autorestart time

7 months agoMerge commit '4dd5b3d9' into thread-next
Maria Matejka [Tue, 10 Dec 2024 22:57:59 +0000 (23:57 +0100)] 
Merge commit '4dd5b3d9' into thread-next

7 months agoMerge commit '145830bd' into thread-next
Maria Matejka [Tue, 10 Dec 2024 22:55:42 +0000 (23:55 +0100)] 
Merge commit '145830bd' into thread-next

7 months agoMerge commit '946386f2' into thread-next
Maria Matejka [Tue, 10 Dec 2024 22:55:05 +0000 (23:55 +0100)] 
Merge commit '946386f2' into thread-next

7 months agoMerge commit '7ee27418' into thread-next
Maria Matejka [Tue, 10 Dec 2024 22:50:13 +0000 (23:50 +0100)] 
Merge commit '7ee27418' into thread-next

7 months agoBMP: Fixing corner cases
Maria Matejka [Tue, 10 Dec 2024 21:31:53 +0000 (22:31 +0100)] 
BMP: Fixing corner cases

Protocol state propagation collision, shutdown collision.

7 months agoBMP: Never touching the BGP directly
Maria Matejka [Mon, 9 Dec 2024 10:21:01 +0000 (11:21 +0100)] 
BMP: Never touching the BGP directly

Dropped hopefully last remnants of BMP directly accessing BGP structures.

7 months agoNest: proto/channel state table naming convention cleanup
Maria Matejka [Mon, 9 Dec 2024 14:34:11 +0000 (15:34 +0100)] 
Nest: proto/channel state table naming convention cleanup

7 months agoLockfree journal: Cleanup hook runs only when needed.
Katerina Kubecova [Fri, 6 Dec 2024 12:16:18 +0000 (13:16 +0100)] 
Lockfree journal: Cleanup hook runs only when needed.

The function lfjour_cleanup_hook() was scheduled each time any of the
journal recipients reached end of a block of journal items or read all
of journal items. Because lfjour_cleanup_hook() can clean only journal
items every recipient has processed, it was often called uselessly.

This commit restricts most of the unuseful scheduling. Only some
recipients are given a token alowing them to try to schedule the
cleanup hook. When a recipient wants to schedule the cleanup hook, it
checks whether it has a token. If yes, it decrements number of tokens
the journal has given (issued_tokens) and discards its own token. If
issued_tokens reaches zero, the recipient is allowed to schedule the
cleanup hook.

There is a maximum number of tokens a journal can give to its recipients
(max_tokens). A new recipient is given a token in its init, unless the
maximum number of tokens is reached. The rest of tokens is given to
customers in lfjour_cleanup_hook().

In the cleanup hook, the issued_tokens number is increased in order to
avoid calling the hook before it finishes. Then, tokens are given to the
slowest recipients (but never to more than max_token recipients). Before
leaving lfjour_cleanup_hook(), the issued_tokens number is decreased back.
If no other tokens are given, we have to make sure the
lfjour_cleanup_hook will be called again. If every item in journal was
read by every recipient, tokens are given to random recipients. If all
recipients with tokens managed to finish until now, we give the token to
the first unfinished customer we find, or we just call the hook again.

7 months agoNest: fixed a race-condition between import and export
Maria Matejka [Tue, 10 Dec 2024 09:52:52 +0000 (10:52 +0100)] 
Nest: fixed a race-condition between import and export

There was a leaking stack pointer to the global memory.
Fixed by making that temporary structure thread local static.

7 months agoFix typos found by lintian
Jakub Ružička [Fri, 6 Dec 2024 14:51:26 +0000 (15:51 +0100)] 
Fix typos found by lintian

I: bird3: spelling-error-in-binary "an other" "another" [usr/sbin/bird]
I: bird3: spelling-error-in-binary Reseting Resetting [usr/sbin/bird]
I: bird3: spelling-error-in-binary authenication authentication [usr/sbin/bird]

I was unable to fix the following:

I: bird3: spelling-error-in-binary upto up to [usr/sbin/bird]

7 months agoDebian: Remove unneeded Pre-Depends: init-system-helpers
Jakub Ružička [Thu, 5 Dec 2024 12:27:56 +0000 (13:27 +0100)] 
Debian: Remove unneeded Pre-Depends: init-system-helpers

Lintian proclaims this is an essential package.

7 months agoDebian: Add upstream lintian-overrides
Jakub Ružička [Fri, 6 Dec 2024 14:45:44 +0000 (15:45 +0100)] 
Debian: Add upstream lintian-overrides

7 months agoDebian: Add BuildDepends: ca-certificates
Jakub Ružička [Wed, 4 Dec 2024 18:24:38 +0000 (19:24 +0100)] 
Debian: Add BuildDepends: ca-certificates

This should reportedly fix test issues on ARM.

7 months agoDebian: Add Rules-Requires-Root: no to d/control
Jakub Ružička [Tue, 10 Oct 2023 11:04:08 +0000 (13:04 +0200)] 
Debian: Add Rules-Requires-Root: no to d/control

7 months agoDebian: Rename package to bird3
Jakub Ružička [Thu, 5 Dec 2024 12:20:19 +0000 (13:20 +0100)] 
Debian: Rename package to bird3

Also reformat using

    wrap-and-sort -bast

7 months agoBMP: Dropped remnants of unused channels
Maria Matejka [Thu, 5 Dec 2024 14:07:56 +0000 (15:07 +0100)] 
BMP: Dropped remnants of unused channels

7 months agoBMP: refactored lists and table locks to tlists
Maria Matejka [Thu, 5 Dec 2024 13:59:54 +0000 (14:59 +0100)] 
BMP: refactored lists and table locks to tlists

7 months agoBMP: protocol state ingestion refactoring
Maria Matejka [Thu, 5 Dec 2024 11:12:34 +0000 (12:12 +0100)] 
BMP: protocol state ingestion refactoring

8 months agoBMP: Tamed a TX buffer warning
Maria Matejka [Wed, 4 Dec 2024 09:16:42 +0000 (10:16 +0100)] 
BMP: Tamed a TX buffer warning

8 months agoMerge commit 'a47704a53db4f088e52e43f8b24785e5777ce147' into thread-next
Ondrej Zajicek [Tue, 3 Dec 2024 18:40:21 +0000 (19:40 +0100)] 
Merge commit 'a47704a53db4f088e52e43f8b24785e5777ce147' into thread-next

8 months agoMerge commit '73e7d3f5cede2e72eb9e77d61424a8c443672c09' into thread-next
Ondrej Zajicek [Tue, 3 Dec 2024 18:00:05 +0000 (19:00 +0100)] 
Merge commit '73e7d3f5cede2e72eb9e77d61424a8c443672c09' into thread-next

8 months agoMerge commit '5205ff97448cc34cf7334e90172c28eb48f227f2' into thread-next
Ondrej Zajicek [Tue, 3 Dec 2024 17:48:20 +0000 (18:48 +0100)] 
Merge commit '5205ff97448cc34cf7334e90172c28eb48f227f2' into thread-next