mirror_frr/bgpd
Donald Sharp 5bc104120b bgpd: Prevent rpki from hooking multiple times into rcu code
As far as I can tell, the rpki code creates a pthread that
is used to handle the i/o associated with talking to the
remote rpki server.  The problem that we are having is that
the rpki code in FRR wants to behave like FRR code and use
the zlog_XXX functions.  These functions all depend on
the RCU code.  Which is a bit picky( and rightly so!!! )
about being started up properly and shut down properly.

This commit is fixing the problem of shutdown.  From
playing with the rpki code, I was able to experimentally
determine that the rpki_create_socket callback function
can be called multiple times per pthread.  Additionally
I was able to clearly see multiple *different* pthreads
actually be created.  This leaves the possiblity
that each time it is called it might be hooking into the
RCU code.  Which makes the rcu code unhappy on shutdown.

Let's address the issue by checking to see if this pthread
has already hooked into the RCU code or not.  If so
then don't do this again.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-02-03 23:10:19 -05:00
..
rfapi bgpd: Save memory when using bgp_path_info_extra and vnc 2024-02-01 07:54:35 -05:00
rfp-example *: Convert struct event_master to struct event_loop 2023-03-24 08:32:17 -04:00
.gitignore
bgp_addpath_types.h bgpd: Implement neighbor X addpath-tx-best-selected command 2023-06-07 22:27:29 +03:00
bgp_addpath.c bgpd: Handle Addpath capability using dynamic capabilities 2023-10-03 17:44:19 +03:00
bgp_addpath.h bgpd: Handle Addpath capability using dynamic capabilities 2023-10-03 17:44:19 +03:00
bgp_advertise.c bgpd: fix attr comparaison bgp_adj_in_set 2024-01-30 15:24:32 +01:00
bgp_advertise.h bgpd: Convert the bgp_advertise_attr->adv to a fifo 2023-10-10 10:09:10 -04:00
bgp_aspath.c bgpd:aspath leak fix 2023-11-14 20:39:08 +04:00
bgp_aspath.h bgpd: add set as-path exclude acl-list command 2023-08-07 12:30:34 +02:00
bgp_attr_evpn.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_attr_evpn.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_attr.c bgpd: fix VRF leaking with 'network import-check' (3/4) 2024-01-29 10:46:43 +01:00
bgp_attr.h bgpd: One more attr struct memory optimization 2024-02-01 17:28:42 +02:00
bgp_bfd.c bgpd: Move the peer->su to connection->su 2023-09-10 08:31:25 -04:00
bgp_bfd.h *: Convert struct event_master to struct event_loop 2023-03-24 08:32:17 -04:00
bgp_bmp.c lib, bgpd, nhrpd: Cleanup memory in lib/resolver on shutdown 2023-12-16 09:18:41 -05:00
bgp_bmp.h bgpd: loc-rib uptime moved to bgp_path_info_extra and set in header 2023-11-04 12:17:48 +01:00
bgp_btoa.c *: zebra.h should not have fcntl.h 2024-01-09 12:50:40 -05:00
bgp_clist.c build: add -Wimplicit-fallthrough 2023-10-12 21:23:18 +03:00
bgp_clist.h bgpd: add 'match community-list any' function 2023-10-02 15:24:18 +02:00
bgp_community_alias.c *: Add a hash_clean_and_free() function 2023-03-21 08:54:21 -04:00
bgp_community_alias.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_community.c bgpd: Remove deprecated COMMUNITY_INTERNET community 2023-08-03 17:12:19 +03:00
bgp_community.h bgpd: Remove deprecated COMMUNITY_INTERNET community 2023-08-03 17:12:19 +03:00
bgp_conditional_adv.c bgpd: Flush attrs only if we don't have to announce a conditional route 2023-11-21 10:49:36 +02:00
bgp_conditional_adv.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_damp.c bgpd: Initialise timebuf arrays to zeros for dampening reuse timer 2023-09-22 12:04:17 +03:00
bgp_damp.h bgpd: Optimize memory usage for bgp_damp_config struct 2024-01-30 08:12:59 +02:00
bgp_debug.c bgpd: add hooks for displaying module debug messages 2024-01-11 14:38:23 +01:00
bgp_debug.h bgpd: add hooks for displaying module debug messages 2024-01-11 14:38:23 +01:00
bgp_dump.c *: remove sys/stat.h from zebra.h 2024-01-09 12:39:23 -05:00
bgp_dump.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_ecommunity.c bgpd: fix ecommunity_fill_pbr_action heap-buffer-overflow 2024-01-04 17:32:01 +01:00
bgp_ecommunity.h bgpd: fix export prefixes when rt extcomm set by route-map 2023-11-21 18:10:38 +01:00
bgp_encap_tlv.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_encap_tlv.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_encap_types.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_errors.c Revert "bgpd: store bgp link-state prefixes" 2023-10-10 16:45:00 -04:00
bgp_errors.h Revert "bgpd: store bgp link-state prefixes" 2023-10-10 16:45:00 -04:00
bgp_evpn_mh.c bgpd: revamp evpn debugs nexthop and l3vni 2023-12-27 16:13:13 -08:00
bgp_evpn_mh.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
bgp_evpn_private.h bgpd: Convert from struct bgp_node to struct bgp_dest 2023-08-22 09:35:46 +08:00
bgp_evpn_vty.c bgpd: MTYPE_BGP was being overused split up 2023-11-21 12:41:18 -05:00
bgp_evpn_vty.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_evpn.c Merge pull request #15068 from chiragshah6/zdev 2024-01-02 10:42:28 +02:00
bgp_evpn.h bgpd: aggr summary-only suppressed export to evpn 2023-11-29 21:44:08 -08:00
bgp_filter.c bgpd: add set as-path exclude acl-list command 2023-07-19 10:57:48 +02:00
bgp_filter.h bgpd: add set as-path exclude acl-list command 2023-07-19 10:57:48 +02:00
bgp_flowspec_private.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_flowspec_util.c bgpd: add some flowspec sanity returns 2023-04-28 22:28:16 +02:00
bgp_flowspec_util.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_flowspec_vty.c *: Let's use the native IFNAMSIZ instead of INTERFACE_NAMSIZ 2023-11-21 08:08:29 -05:00
bgp_flowspec.c bgpd: Free temp memory 2023-05-29 13:39:14 +04:00
bgp_flowspec.h bgpd: Treat withdraw variable as a bool 2023-04-06 17:41:32 -04:00
bgp_fsm.c bgpd: Fix format overflow for graceful-restart debug logs 2024-01-24 09:06:43 +02:00
bgp_fsm.h bgpd: Fix format overflow for graceful-restart debug logs 2024-01-24 09:06:43 +02:00
bgp_io.c bgpd: bgp_fsm_change_status/BGP_TIMER_ON and BGP_EVENT_ADD 2023-09-10 08:31:25 -04:00
bgp_io.h bgpd: Convert bgp_io.c to take struct peer_connection 2023-08-18 09:29:04 -04:00
bgp_keepalives.c bgpd: make bgp_keepalives_on|off connection oriented 2023-09-10 08:31:25 -04:00
bgp_keepalives.h bgpd: make bgp_keepalives_on|off connection oriented 2023-09-10 08:31:25 -04:00
bgp_label.c bgpd: Used %pBD instead of %pRN 2023-11-13 10:28:28 -05:00
bgp_label.h bgpd: add a function to compare two label lists 2023-06-16 10:54:58 +02:00
bgp_labelpool.c bgpd: bgp_sync_label_manager failure case 2024-01-06 20:26:14 -05:00
bgp_labelpool.h bgpd: Use synchronous way to get labels from Zebra 2023-06-20 20:50:10 +03:00
bgp_lcommunity.c bgpd: Fix lcom->str string length to correctly cover aliases 2023-04-20 16:51:56 -04:00
bgp_lcommunity.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_mac.c bgpd: peer_established should be connection oriented 2023-09-10 08:31:25 -04:00
bgp_mac.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_main.c *: fix frr_daemon_info indentation 2024-01-27 19:02:51 +01:00
bgp_memory.c bgpd: Save memory when using bgp_path_info_extra and vnc 2024-02-01 07:54:35 -05:00
bgp_memory.h bgpd: Save memory when using bgp_path_info_extra and vnc 2024-02-01 07:54:35 -05:00
bgp_mpath.c bgpd: Used %pBD instead of %pRN 2023-11-13 10:28:28 -05:00
bgp_mpath.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_mplsvpn_snmp.c bgpd: MTYPE_BGP was being overused split up 2023-11-21 12:41:18 -05:00
bgp_mplsvpn_snmp.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_mplsvpn.c bgpd: fix VRF leaking with 'network import-check' (3/4) 2024-01-29 10:46:43 +01:00
bgp_mplsvpn.h bgpd: fix export prefixes when rt extcomm set by route-map 2023-11-21 18:10:38 +01:00
bgp_network.c bgpd: Set correct TTL for the dynamic neighbor peers 2024-01-11 10:18:03 -08:00
bgp_network.h bgpd: Set TCP min MSS per listener 2023-09-18 22:34:45 +03:00
bgp_nexthop.c Revert "bgpd: combine import_check_table and nexthop_check_table" 2023-11-06 10:07:58 -05:00
bgp_nexthop.h bgpd: Ensure BGP does not stop monitoring nexthops 2023-12-06 11:42:01 -05:00
bgp_nhg.c bgpd: move l3nhg functions in separate bgp_nhg.[ch] file 2023-12-11 21:03:33 +01:00
bgp_nhg.h bgpd: move l3nhg functions in separate bgp_nhg.[ch] file 2023-12-11 21:03:33 +01:00
bgp_nht.c bgpd: fix VRF leaking with 'network import-check' (4/4) 2024-01-29 10:47:00 +01:00
bgp_nht.h bgpd: move l3nhg functions in separate bgp_nhg.[ch] file 2023-12-11 21:03:33 +01:00
bgp_open.c bgpd: add [no]neighbor capability fqdn command 2024-02-02 11:31:47 +01:00
bgp_open.h bgpd: Reuse orf_type_str/orf_mode_str for dynamic capabilities code 2023-10-17 16:01:00 +03:00
bgp_packet.c bgpd: data is set but never used 2024-01-09 13:03:43 -05:00
bgp_packet.h bgpd: First pass of BGP_EVENT_ADD 2023-09-10 08:31:25 -04:00
bgp_pbr.c bgpd: bgp_path_info_extra memory optimization 2023-08-08 10:48:07 +00:00
bgp_pbr.h *: Let's use the native IFNAMSIZ instead of INTERFACE_NAMSIZ 2023-11-21 08:08:29 -05:00
bgp_rd.c Merge pull request #12248 from pguibert6WIND/bgpasdot 2023-02-21 08:01:03 -05:00
bgp_rd.h bgpd: Optimize memory for rd_ip struct 2024-01-31 11:29:30 +02:00
bgp_regex.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_regex.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_route.c bgpd: Save memory when using bgp_path_info_extra and vnc 2024-02-01 07:54:35 -05:00
bgp_route.h bgpd: Save memory when using bgp_path_info_extra and vnc 2024-02-01 07:54:35 -05:00
bgp_routemap_nb_config.c bgpd: fix route-map match probability deconfiguration callback 2024-01-22 22:31:21 +02:00
bgp_routemap_nb.c bgpd: add 'match community-list any' function 2023-10-02 15:24:18 +02:00
bgp_routemap_nb.h bgpd: add 'match community-list any' function 2023-10-02 15:24:18 +02:00
bgp_routemap.c bgpd: Reinstall aggregated routes if using route-maps and it was changed 2024-01-30 15:47:49 +02:00
bgp_rpki.c bgpd: Prevent rpki from hooking multiple times into rcu code 2024-02-03 23:10:19 -05:00
bgp_rpki.h bgpd: create cache server socket in vrf 2024-01-18 13:22:19 +01:00
bgp_script.c bgpd: Convert struct peer_connection to dynamically allocated 2023-08-18 09:29:04 -04:00
bgp_script.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_snmp_bgp4.c bgpd: add [no] bgp snmp traps bgp4-mibv2 command 2023-10-24 17:16:47 +02:00
bgp_snmp_bgp4.h bgpd: add snmp traps for bgp4-mibv2 2023-10-24 17:16:47 +02:00
bgp_snmp_bgp4v2.c bgpd: Clean up issues found in SA with clang 14 2024-01-09 13:03:43 -05:00
bgp_snmp_bgp4v2.h bgpd: add snmp traps for bgp4-mibv2 2023-10-24 17:16:47 +02:00
bgp_snmp.c bgpd: fix new Formatting / Styling warning 2023-10-24 17:16:47 +02:00
bgp_snmp.h bgpd: add [no] bgp snmp traps bgp4-mibv2 command 2023-10-24 17:16:47 +02:00
bgp_table.c Revert "bgpd: store bgp link-state prefixes" 2023-10-10 16:45:00 -04:00
bgp_table.h bgpd: bgp_clear_adj_in|remove dest may be freed 2023-09-10 12:14:00 -04:00
bgp_trace.c *: make sure config.h or zebra.h is first 2021-04-23 12:06:35 +02:00
bgp_trace.h bgpd: lttng tp add ethtag to macip zebra send 2023-12-27 18:01:50 -08:00
bgp_updgrp_adv.c bgpd: Fix memory leak for default-originate with route-map 2024-01-08 20:48:56 +02:00
bgp_updgrp_packet.c bgpd: Assign explicit-null for default-originate according to the AFI 2023-08-11 10:52:40 +03:00
bgp_updgrp.c bgpd: Increase peer's struct cap from uint32 to uint64 2024-01-24 23:09:52 +02:00
bgp_updgrp.h bgpd: Convert variable withdraw integer to bool 2023-12-08 11:58:59 +02:00
bgp_vnc_types.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_vpn.c bgpd: show_adj_route_vpn always leaked json memory 2024-01-07 15:55:15 -05:00
bgp_vpn.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
bgp_vty.c bgpd: add [no]neighbor capability fqdn command 2024-02-02 11:31:47 +01:00
bgp_vty.h Revert "bgpd: add show bgp link-state link-state commands" 2023-10-10 16:43:38 -04:00
bgp_zebra.c Merge pull request #15001 from pguibert6WIND/zebra_nexthop_rework 2024-01-09 10:11:35 -05:00
bgp_zebra.h bgpd: fix hardset l3vpn label available in mpls pool 2023-10-18 09:41:02 +02:00
bgpd.c bgpd: add [no]neighbor capability fqdn command 2024-02-02 11:31:47 +01:00
bgpd.h Merge pull request #15192 from fdumontet6WIND/capa_nego 2024-02-03 12:19:53 +02:00
Makefile
subdir.am bgpd: move l3nhg functions in separate bgp_nhg.[ch] file 2023-12-11 21:03:33 +01:00