]>
git.ipfire.org Git - thirdparty/bird.git/log
Maria Matejka [Wed, 2 Oct 2024 21:37:14 +0000 (23:37 +0200)]
Flock: fixed some random bugs but there are obviously some more
Maria Matejka [Wed, 2 Oct 2024 21:09:55 +0000 (23:09 +0200)]
Flock: the logger actually works, lol,
Maria Matejka [Wed, 2 Oct 2024 20:42:11 +0000 (22:42 +0200)]
Flock: Even more fd cleanupc
Maria Matejka [Wed, 2 Oct 2024 20:32:46 +0000 (22:32 +0200)]
Flock: looped container logger
Maria Matejka [Wed, 2 Oct 2024 17:42:25 +0000 (19:42 +0200)]
Flock: Even more fd cleanup
Maria Matejka [Wed, 2 Oct 2024 17:23:24 +0000 (19:23 +0200)]
Flock: a bit more fd closing
Maria Matejka [Wed, 2 Oct 2024 13:08:53 +0000 (15:08 +0200)]
Flock: one more cloexec
Maria Matejka [Wed, 2 Oct 2024 13:03:18 +0000 (15:03 +0200)]
Flock: more filedes cleanup
Maria Matejka [Wed, 2 Oct 2024 12:48:26 +0000 (14:48 +0200)]
Flock: filedescriptor cleanups in hypervisor
Maria Matejka [Tue, 1 Oct 2024 08:59:07 +0000 (10:59 +0200)]
Flock lower memory settings
Maria Matejka [Tue, 1 Oct 2024 07:45:49 +0000 (09:45 +0200)]
Flock minor fixes
Maria Matejka [Mon, 30 Sep 2024 21:05:49 +0000 (23:05 +0200)]
Flock: Now it is very hairy but the containers do actually run.
Maria Matejka [Sun, 29 Sep 2024 11:44:35 +0000 (13:44 +0200)]
Flock trying to overlayfs (bad)
Maria Matejka [Fri, 27 Sep 2024 19:38:56 +0000 (21:38 +0200)]
Flock: telnet to machines
Maria Matejka [Fri, 27 Sep 2024 18:09:51 +0000 (20:09 +0200)]
Flock: Stopping containers from CLI
Maria Matejka [Fri, 27 Sep 2024 16:49:49 +0000 (18:49 +0200)]
Flock: Container killing
Maria Matejka [Fri, 27 Sep 2024 11:22:04 +0000 (13:22 +0200)]
Flock CLI: starting containers
Maria Matejka [Fri, 27 Sep 2024 10:53:06 +0000 (12:53 +0200)]
Flock: CLI connects via telnet to hypervisor
Maria Matejka [Fri, 27 Sep 2024 10:45:17 +0000 (12:45 +0200)]
Flock: CLI first try (starts and stops the hypervisor)
Maria Matejka [Tue, 24 Sep 2024 11:09:41 +0000 (13:09 +0200)]
Flock: containers are actually created
Maria Matejka [Tue, 24 Sep 2024 10:51:11 +0000 (12:51 +0200)]
Flock: pausing
Maria Matejka [Tue, 24 Sep 2024 10:42:18 +0000 (12:42 +0200)]
Flock: Storing machines (TMP)
Maria Matejka [Sun, 22 Sep 2024 20:02:25 +0000 (22:02 +0200)]
Flock: seems like machines being actually created
Maria Matejka [Thu, 19 Sep 2024 07:28:27 +0000 (09:28 +0200)]
Flock: nicer logging (setting distinct thread ids)
Maria Matejka [Tue, 17 Sep 2024 20:51:19 +0000 (22:51 +0200)]
Flock: Now the container code looks like doing at least something
Maria Matejka [Mon, 16 Sep 2024 21:10:41 +0000 (23:10 +0200)]
Flock: misc
Maria Matejka [Mon, 16 Sep 2024 20:48:49 +0000 (22:48 +0200)]
Container runner basics
Maria Matejka [Sat, 14 Sep 2024 20:34:09 +0000 (22:34 +0200)]
Flock: Machine adding code in parser
Maria Matejka [Fri, 13 Sep 2024 10:29:04 +0000 (12:29 +0200)]
Flock: Polished the command-line options
Maria Matejka [Thu, 12 Sep 2024 10:28:28 +0000 (12:28 +0200)]
Flock: storing and passing telnet info
Maria Matejka [Wed, 11 Sep 2024 11:03:02 +0000 (13:03 +0200)]
Flock: Zombie children reaping
Maria Matejka [Tue, 10 Sep 2024 19:58:46 +0000 (21:58 +0200)]
Flock: Telnet connection to hypervisor seems to work well
Maria Matejka [Tue, 10 Sep 2024 18:43:55 +0000 (20:43 +0200)]
Flock: telnet request sends the request
Maria Matejka [Tue, 10 Sep 2024 10:04:44 +0000 (12:04 +0200)]
Flock: shutdown command sends a reply
Maria Matejka [Tue, 10 Sep 2024 09:27:28 +0000 (11:27 +0200)]
Flock: Fixed the exposed process mainloop
Maria Matejka [Tue, 10 Sep 2024 09:16:49 +0000 (11:16 +0200)]
Flock: Added a proper shutdown routine requestable also from CLI
Maria Matejka [Mon, 9 Sep 2024 20:19:44 +0000 (22:19 +0200)]
Flock: Converted signalling through sigatomic_t to full event sending
Maria Matejka [Mon, 9 Sep 2024 12:14:49 +0000 (14:14 +0200)]
Flock: Hypervisor control socket CBOR push parser
It reads some data, the actions are not implemented yet.
Maria Matejka [Wed, 4 Sep 2024 19:33:43 +0000 (21:33 +0200)]
Flock: Hypervisor has a control socket (not doing anything yet tho)
Maria Matejka [Thu, 29 Aug 2024 05:53:47 +0000 (07:53 +0200)]
Flock: Creating the hypervisor and the external-contact process
This is the first part of rewriting Flock to C to significantly reduce
memory footprint of individual machines from 20+M in Python to (goal)
less than 1M. Now the process eats ~460k and I suspect that this won't
even be the consumption per machine in total as fork() is involved and
some parts of the memory will be heavily shared.
Maria Matejka [Thu, 10 Oct 2024 09:59:25 +0000 (11:59 +0200)]
Socket: sending filedescriptors over UNIX sockets
Maria Matejka [Mon, 7 Oct 2024 07:45:16 +0000 (09:45 +0200)]
Lib: CBOR message streams and channels
Maria Matejka [Mon, 7 Oct 2024 13:05:21 +0000 (15:05 +0200)]
Lib: mostly rewritten CBOR encoder
Maria Matejka [Thu, 3 Oct 2024 21:02:34 +0000 (23:02 +0200)]
Lib: added a generic CBOR parser framework
Maria Matejka [Wed, 2 Oct 2024 20:32:07 +0000 (22:32 +0200)]
Lib: added tmp_v?sprintf and tmp_strdup allocating from tmp_linpool
Maria Matejka [Wed, 2 Oct 2024 17:02:53 +0000 (19:02 +0200)]
Birdloop pipe is set O_CLOEXEC.
If we decide to exec something, we shouldn't pass along our intenal fds.
Maria Matejka [Tue, 1 Oct 2024 13:30:00 +0000 (15:30 +0200)]
Debug: Do not compile allocator debug journals in unless requested.
These journals can become very memory-heavy when it comes to
constrained environments where every 100k of RAM matters.
Maria Matejka [Tue, 10 Sep 2024 09:25:59 +0000 (11:25 +0200)]
Minimalist mainloop implementation
Maria Matejka [Mon, 9 Sep 2024 20:19:05 +0000 (22:19 +0200)]
Properly handling situations when birdloops are created before spawning threads
Maria Matejka [Tue, 1 Oct 2024 08:24:04 +0000 (10:24 +0200)]
Allocator parameters can be configured now.
Maria Matejka [Tue, 24 Sep 2024 10:51:01 +0000 (12:51 +0200)]
Socket: pausing and restoring RX is a little bit more checked
Maria Matejka [Mon, 23 Sep 2024 12:17:02 +0000 (14:17 +0200)]
Socket: error hook is called from a function
Katerina Kubecova [Thu, 5 Sep 2024 09:59:02 +0000 (11:59 +0200)]
Porting the CBOR encoder from the YANG branch
Minor cleanups by commiter.
(source commit
43ff10204b1d9b76f6d5afc5252fb09480d5ffc5 but expected
to be rebased later, don't worry if you fail to find it)
Maria Matejka [Wed, 4 Sep 2024 18:34:54 +0000 (20:34 +0200)]
Added mb_strdup() to complement other similar functions
Maria Matejka [Wed, 4 Sep 2024 18:34:15 +0000 (20:34 +0200)]
Moved sk_open_unix() to common lib
Maria Matejka [Tue, 10 Sep 2024 09:40:41 +0000 (11:40 +0200)]
lib/socket.h: added missing include
Maria Matejka [Tue, 10 Sep 2024 09:16:11 +0000 (11:16 +0200)]
lib/obstacle.h: added missing include
Maria Matejka [Thu, 22 Aug 2024 19:07:13 +0000 (21:07 +0200)]
Splitting out BIRD static library for linking to other tools
Maria Matejka [Tue, 3 Sep 2024 10:24:27 +0000 (12:24 +0200)]
Thread config has an explicit structure
Maria Matejka [Mon, 2 Sep 2024 13:38:01 +0000 (15:38 +0200)]
Enabled LTO for LLVM and making use of jobserver for LTO in GCC
Maria Matejka [Mon, 2 Sep 2024 13:20:46 +0000 (15:20 +0200)]
Compiler vendor detection for autotools
Maria Matejka [Mon, 2 Sep 2024 09:52:00 +0000 (11:52 +0200)]
Kernel preferred interface address updater decoupled from the lib
Maria Matejka [Thu, 29 Aug 2024 08:21:08 +0000 (10:21 +0200)]
Moved hostname resolver to logger
Maria Matejka [Thu, 29 Aug 2024 08:10:37 +0000 (10:10 +0200)]
Displaced show threads command to its own file
Maria Matejka [Thu, 29 Aug 2024 07:56:28 +0000 (09:56 +0200)]
Interface CLI commands moved to a separate file.
This is a preparation both for CLI splitup and for lib splitup.
Maria Matejka [Wed, 28 Aug 2024 13:43:15 +0000 (15:43 +0200)]
Disabling the old IO event logger as it doesn't run from worker loops anyway
Maria Matejka [Wed, 28 Aug 2024 13:29:07 +0000 (15:29 +0200)]
Shutdown marker displaced to runtime
Maria Matejka [Tue, 27 Aug 2024 15:06:13 +0000 (17:06 +0200)]
Splitting out clock and tracked files from sysdep/unix/io.c
Maria Matejka [Tue, 27 Aug 2024 15:50:30 +0000 (17:50 +0200)]
Global runtime splitout to BIRD specific and lib things
Maria Matejka [Tue, 27 Aug 2024 13:04:32 +0000 (15:04 +0200)]
Moved stored_sock to io-loop.c (old hack for mainloop)
Maria Matejka [Mon, 26 Aug 2024 16:09:46 +0000 (18:09 +0200)]
Calling cf_warn from log_switch makes no sense
Maria Matejka [Mon, 26 Aug 2024 15:54:59 +0000 (17:54 +0200)]
Displaced bird_name to log.c where it rightfully belongs
Maria Matejka [Thu, 22 Aug 2024 16:55:53 +0000 (18:55 +0200)]
Sysdep: moved socket code into a separate file
Maria Matejka [Thu, 22 Aug 2024 16:13:53 +0000 (18:13 +0200)]
Moved flowspec configuration checks to the config file
Functions flow_check_cf_bmk_values, flow_check_cf_value_length,
flow4_validate_cf and flow6_validate_cf are now not built with lib but
with conf to enable for better semantic separation.
Maria Matejka [Thu, 9 Jan 2025 20:54:53 +0000 (21:54 +0100)]
NEWS and version update
Maria Matejka [Thu, 9 Jan 2025 20:54:15 +0000 (21:54 +0100)]
Merge remote-tracking branch 'origin/stable-v2.16' into HEAD
Maria Matejka [Thu, 9 Jan 2025 20:51:15 +0000 (21:51 +0100)]
NEWS and version update
Maria Matejka [Thu, 9 Jan 2025 17:55:26 +0000 (18:55 +0100)]
Maria Matejka [Thu, 9 Jan 2025 17:46:04 +0000 (18:46 +0100)]
Maria Matejka [Thu, 9 Jan 2025 17:45:50 +0000 (18:45 +0100)]
Maria Matejka [Thu, 9 Jan 2025 17:30:33 +0000 (18:30 +0100)]
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.
Maria Matejka [Wed, 8 Jan 2025 19:59:03 +0000 (20:59 +0100)]
Table: Fixed table debug settings reconfiguration
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).
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.
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
Maria Matejka [Fri, 27 Dec 2024 15:22:59 +0000 (16:22 +0100)]
BGP: fix display name of bgp_otc attribute
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().
Maria Matejka [Tue, 24 Dec 2024 12:22:56 +0000 (13:22 +0100)]
BGP: TX bucket storage moved to Stonehenge
Maria Matejka [Tue, 24 Dec 2024 12:12:58 +0000 (13:12 +0100)]
Route attribute storage moved to Stonehenge
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.
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.
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.
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.
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.
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>
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.
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.
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.
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.