From: Ondrej Zajicek Date: Mon, 1 Apr 2024 16:24:10 +0000 (+0200) Subject: Merge commit '0b684a43bd7ce4a32c9cd7754b88286bcd1815bb' into thread-next X-Git-Tag: v3.0.0~248 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d5c431a3c23ad7ed2ed5e769d9857e7f3a1e626;p=thirdparty%2Fbird.git Merge commit '0b684a43bd7ce4a32c9cd7754b88286bcd1815bb' into thread-next --- 5d5c431a3c23ad7ed2ed5e769d9857e7f3a1e626 diff --cc NEWS index aecaa725e,4016179a0..cc1deff87 --- a/NEWS +++ b/NEWS @@@ -1,35 -1,9 +1,41 @@@ +Version 3.0alpha2 (2023-05-11) + o Fixed memory leaks and use-after free bugs + o Simple thread work balancing + o MRT switched off + o Slow kernel route synchronization to be fixed later + +Version 3.0alpha1 (2023-04-18) + o Worker threads for BGP, Pipe, RPKI and BFD + o Configurable number of threads + o Asynchronous route export + o Flat attribute structure + o Inline import tables + o Export tables merged with BGP prefix / attribute buckets + o Fixed ROA check locking inversion in route table dumps + o MRT switched off + +Version 3.0-alpha0 (2022-02-07) + o Removal of fixed protocol-specific route attributes + o Asynchronous route export + o Explicit table import / export hooks + o Partially lockless route attribute cache + o Thread-safe resource management + o Thread-safe interface notifications + o Thread-safe protocol API + o Adoption of BFD IO loop for general use + o Parallel Pipe protocol + o Parallel RPKI protocol + o Parallel BGP protocol + o Lots of refactoring + o Bugfixes and improvements as they came along + + + Version 2.15.1 (2024-03-22) + o OSPF: Fix regression in handling PtP links + o RPKI: Handle connection resets properly + o Static: Reject invalid combination of options + o Fix builds with limited set of protocols + Version 2.15 (2024-03-10) o BGP: Send hold timer o BGP: New options to specify required BGP capabilities diff --cc proto/rpki/rpki.c index 13a0afd29,4ec48e3ba..9c494f517 --- a/proto/rpki/rpki.c +++ b/proto/rpki/rpki.c @@@ -387,21 -365,12 +388,20 @@@ rpki_stop_expire_timer_event(struct rpk tm_stop(cache->expire_timer); } +static void +rpki_stop_all_timers(struct rpki_cache *cache) +{ + rpki_stop_refresh_timer_event(cache); + rpki_stop_retry_timer_event(cache); + rpki_stop_expire_timer_event(cache); +} + static int - rpki_do_we_recv_prefix_pdu_in_last_seconds(struct rpki_cache *cache) + rpki_sync_is_stuck(struct rpki_cache *cache) { - if (!cache->last_rx_prefix) - return 0; - - return ((current_time() - cache->last_rx_prefix) <= 2 S); + return !sk_rx_ready(cache->tr_sock->sk) && ( + !cache->last_rx_prefix || (current_time() - cache->last_rx_prefix > 10 S) + ); } /**