0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 09:41:54 +00:00
Commit Graph

5299 Commits

Author SHA1 Message Date
Maria Matejka
792189e807 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.
2024-12-15 22:21:34 +01:00
Maria Matejka
2d7c8f4d5c More accurate allocator internal log 2024-12-14 21:33:47 +01:00
Maria Matejka
c82f7ed4aa Drop forgotten debug logs 2024-12-14 19:49:56 +01:00
Katerina Kubecova
4c3ac54ee3 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.
2024-12-13 21:42:09 +01:00
Maria Matejka
f2925d15fc Merge commit '1dbee120' into thread-next 2024-12-13 20:56:30 +01:00
Maria Matejka
060654066e Merge tag 'v2.16' into thread-next
v2.16
2024-12-13 20:56:08 +01:00
Katerina Kubecova
ef63946d2e 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.
2024-12-13 20:15:37 +01:00
Maria Matejka
af89c43413 Fixed a subtle memory leak in protocol restart routine 2024-12-13 19:10:55 +01:00
Maria Matejka
93621ed9f4 Merge commit '707cad61' into thread-next 2024-12-13 19:10:28 +01:00
Maria Matejka
b6f6ab0e5d Merge commit 'ef456118' into thread-next 2024-12-13 16:01:19 +01:00
Maria Matejka
731593685b 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
2024-12-13 15:58:10 +01:00
Maria Matejka
a9c1966f08 Merge remote-tracking branch 'origin/apkg-v3' into thread-next 2024-12-12 21:07:53 +01:00
Katerina Kubecova
4af3ee1f2f 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.
2024-12-12 21:02:34 +01:00
Maria Matejka
6e940c259d CLI: show threads all crash fixed
When socket dropped before finished, it failed to cleanup.
2024-12-12 15:00:26 +01:00
Maria Matejka
28b0adc15f Fix alignment requirements to include atomic u64.
Not having this led to bus errors on unaligned atomic u64 access
on architectures with 4B pointers.
2024-12-11 17:51:46 +01:00
Maria Matejka
73ace6acad Proto show: show creation and last autorestart time 2024-12-11 10:05:05 +01:00
Maria Matejka
fa5923289e Merge commit '4dd5b3d9' into thread-next 2024-12-10 23:57:59 +01:00
Maria Matejka
fa0bda2278 Merge commit '145830bd' into thread-next 2024-12-10 23:55:42 +01:00
Maria Matejka
1f8eb20710 Merge commit '946386f2' into thread-next 2024-12-10 23:55:05 +01:00
Maria Matejka
1fc569e32b Merge commit '7ee27418' into thread-next 2024-12-10 23:50:13 +01:00
Maria Matejka
cc0c8ce992 BMP: Fixing corner cases
Protocol state propagation collision, shutdown collision.
2024-12-10 23:41:48 +01:00
Maria Matejka
cde582977f BMP: Never touching the BGP directly
Dropped hopefully last remnants of BMP directly accessing BGP structures.
2024-12-10 23:41:48 +01:00
Maria Matejka
dc692ae06a Nest: proto/channel state table naming convention cleanup 2024-12-10 23:41:48 +01:00
Katerina Kubecova
d503204aa0 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.
2024-12-10 23:37:20 +01:00
Maria Matejka
bc15f0b9c7 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.
2024-12-10 10:59:30 +01:00
Jakub Ružička
eaadf3af3a 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]
2024-12-06 16:09:31 +01:00
Jakub Ružička
0f0a8d5027 Debian: Remove unneeded Pre-Depends: init-system-helpers
Lintian proclaims this is an essential package.
2024-12-06 16:09:31 +01:00
Jakub Ružička
2eba82fcda Debian: Add upstream lintian-overrides 2024-12-06 16:09:31 +01:00
Jakub Ružička
5e3fcd60f3 Debian: Add BuildDepends: ca-certificates
This should reportedly fix test issues on ARM.
2024-12-06 16:09:31 +01:00
Jakub Ružička
ce51b84df3 Debian: Add Rules-Requires-Root: no to d/control 2024-12-06 16:06:44 +01:00
Jakub Ružička
c7b6d8b436 Debian: Rename package to bird3
Also reformat using

    wrap-and-sort -bast
2024-12-06 16:05:00 +01:00
Maria Matejka
77a4b21365 BMP: Dropped remnants of unused channels 2024-12-05 15:10:15 +01:00
Maria Matejka
f1a04ce190 BMP: refactored lists and table locks to tlists 2024-12-05 14:59:54 +01:00
Maria Matejka
d5f01efbe6 BMP: protocol state ingestion refactoring 2024-12-05 12:12:34 +01:00
Maria Matejka
2128c648e0 BMP: Tamed a TX buffer warning 2024-12-04 10:16:42 +01:00
Ondrej Zajicek
63221eba2e Merge commit 'a47704a53db4f088e52e43f8b24785e5777ce147' into thread-next 2024-12-03 19:40:21 +01:00
Ondrej Zajicek
723a0fe424 Merge commit '73e7d3f5cede2e72eb9e77d61424a8c443672c09' into thread-next 2024-12-03 19:00:05 +01:00
Ondrej Zajicek
abc43c097a Merge commit '5205ff97448cc34cf7334e90172c28eb48f227f2' into thread-next 2024-12-03 18:48:20 +01:00
Ondrej Zajicek
7cbcb7b230 Merge commit 'e6a100b31a7637ee739338e4b933367707ec931f' into thread-next 2024-12-03 18:22:14 +01:00
Ondrej Zajicek
1dbee120d3 CI: Fix filter tests for ASPA
(broken by previous change)
2024-12-03 17:23:09 +01:00
Ondrej Zajicek
c926a6e105 Static: Fix ASPA static route argument
It seems that it should be 'providers' instead of 'provider'.

It matches keyword declaration and documentation. Mismatch beween keyword
declaration also breaks static-only builds.
2024-12-03 17:05:23 +01:00
Ondrej Zajicek
6aea356b2a Merge commit '460321cfe979459e3b78ba87694f29865d321612' into thread-next 2024-12-03 15:45:25 +01:00
Ondrej Zajicek
4fb8fe6f53 NEWS and version update 2024-12-03 15:12:50 +01:00
Maria Matejka
b8008791cd Documentation: Updating roadmap as of end of 2024 2024-12-03 15:10:14 +01:00
Maria Matejka
707cad6188 CLI: Dumping forces new file creation instead of truncating. 2024-12-03 10:57:10 +01:00
Maria Matejka
2ab3f22e4a CLI: show memory also displays cold pages
Minor changes by committer.
2024-12-03 04:07:53 +01:00
Ondrej Zajicek
ef45611850 RPKI: Fix several errors in handling of Error PDU
Fix several errors including:
 - Unaligned memory access to 'Length of Error Text' field
 - No validation of 'Length of Encapsulated PDU' field
 - No validation of 'Error Code' field
 - No validation of characters in diagnostic message
2024-12-03 01:19:44 +01:00
Ondrej Zajicek
89d548accb RPKI: Increase max PDU length to 64k
APSA records can be arbitrarily large, let's use 64k as
a reasonable limit.
2024-12-02 07:06:34 +01:00
Maria Matejka
d85fa48e3a Slab: Write out all block pointers when asked for dump 2024-12-02 06:54:54 +01:00
Maria Matejka
ceab028326 Linpool: Write out all block pointers when asked for dump 2024-12-02 06:54:54 +01:00