From e6a100b31a7637ee739338e4b933367707ec931f Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Tue, 17 Sep 2024 16:27:54 +0200 Subject: [PATCH] BMP: simplified update queuing and better memory performance This commit is quite a substantial rework of the underlying layers in BMP TX: - several unnecessary layers of indirection dropped, including most of the original BMP's buffer machinery - all messages are now written directly into one protocol's buffer allocated for the whole time big enough to fit every possible message - output blocks are allocated by pages and immediately returned when used, improving the overall memory footprint - no intermediary allocation is done from the heap altogether - there is a documented and configurable limit on the TX queue size --- doc/bird.sgml | 12 ++ proto/bgp/bgp.h | 2 +- proto/bgp/packets.c | 8 +- proto/bmp/Makefile | 4 +- proto/bmp/bmp.c | 503 +++++++++++++++++++++++++++----------------- proto/bmp/bmp.h | 25 ++- proto/bmp/buffer.c | 65 ------ proto/bmp/buffer.h | 77 ------- proto/bmp/config.Y | 5 + 9 files changed, 355 insertions(+), 346 deletions(-) delete mode 100644 proto/bmp/buffer.c delete mode 100644 proto/bmp/buffer.h diff --git a/doc/bird.sgml b/doc/bird.sgml index d1375caf..b6b77691 100644 --- a/doc/bird.sgml +++ b/doc/bird.sgml @@ -3808,6 +3808,15 @@ by default and have to be enabled during installation by the configure option routes (in ) and post-policy routes (in regular routing tables). All BGP protocols are monitored automatically. +Configuration (incomplete) +