frr/zebra
Donald Sharp 97fa24e70b zebra: Fix leaked nhe
During route processing in zebra, Zebra will create a nexthop
group that matches the nexthops passed down from the routing
protocol.  Then Zebra will look to see if it can re-use a
nhe from a previous version of the route entry( say a interface
goes down ).  If Zebra decides to re-use an nhe it was just dropping
the route entry created.  Which led to nexthop group's that had
a refcount of 0 and in some cases these nexthop groups were installed
into the kernel.

Add a bit of code to see if the returned entry is not being used
and it has no reference count and if so, properly dispose of it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2025-01-09 12:34:50 -05:00
..
dpdk zebra: fix dpdk compilation error 2025-01-03 11:13:02 -08:00
.gitignore zebra: Add fpm_listener 2024-03-04 11:06:35 -05:00
connected.c zebra: Fix possible null deref discovered by coverity 2024-10-17 07:42:47 -04:00
connected.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
debug.c zebra: add 'debug zebra srv6' command 2024-10-28 16:40:33 +01:00
debug.h zebra: add 'debug zebra srv6' command 2024-10-28 16:40:33 +01:00
debug_nl.c zebra: add some more netlink RTA_ strings 2024-05-09 16:56:07 -04:00
dplane_fpm_nl.c zebra: avoid a race during FPM dplane plugin shutdown 2024-11-25 15:37:39 -05:00
fpm_listener.c Merge pull request #15082 from louis-6wind/fix-iff-lower-up 2024-05-29 00:01:20 +03:00
ge_netlink.c zebra: Fetch actual SRv6 encap src addr on startup 2023-12-14 14:58:35 +01:00
ge_netlink.h zebra: Fetch actual SRv6 encap src addr on startup 2023-12-14 14:58:35 +01:00
if_ioctl.c zebra: fix loading kernel routs without netlink 2024-08-16 10:42:33 +02:00
if_netlink.c zebra: use new per-NS interface iteration 2024-10-28 14:54:06 -04:00
if_netlink.h zebra: remove unused function from if_netlink.c 2024-10-06 19:25:44 -04:00
if_socket.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
if_sysctl.c zebra: fix loading kernel routs without netlink 2024-08-16 10:42:33 +02:00
interface.c zebra: check kernel routes when interface becomes up 2024-12-17 16:14:30 +08:00
interface.h zebra: removing use of per-NS if_table 2024-10-28 14:54:06 -04:00
ioctl.c zebra: Remove some unused functions on linux build 2024-11-25 13:12:10 -05:00
ioctl.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ipforward.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ipforward_proc.c zebra: don't try to read past EOF 2024-10-16 13:30:25 +02:00
ipforward_sysctl.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
irdp.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
irdp_interface.c zebra: convert interface configuration output to NB 2024-01-28 23:28:40 +02:00
irdp_main.c *: convert struct interface->connected to DLIST 2023-11-22 23:00:30 +01:00
irdp_packet.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
kernel_netlink.c bgpd: Fix wrong pthread event cancelling 2024-10-24 21:01:26 -04:00
kernel_netlink.h zebra: Remove nl_addraw_l 2024-09-19 08:28:48 -04:00
kernel_socket.c zebra: vlan to dplane Offload from main 2024-09-26 20:17:35 -07:00
kernel_socket.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
label_manager.c zebra: Cleanup linked list on shutdown in label manager 2023-12-11 15:26:20 -05:00
label_manager.h zebra: Cleanup linked list on shutdown in label manager 2023-12-11 15:26:20 -05:00
main.c zebra: separate zebra ZAPI server open and accept 2024-12-03 09:44:46 -05:00
Makefile
netconf_netlink.c *: zebra.h should not have fcntl.h 2024-01-09 12:50:40 -05:00
netconf_netlink.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
redistribute.c zebra: Add ability to import alternate tables into the MRIB 2024-10-29 20:17:59 +00:00
redistribute.h zebra: Add ability to import alternate tables into the MRIB 2024-10-29 20:17:59 +00:00
rib.h zebra,pimd,lib: Modify ZEBRA_NEXTHOP_LOOKUP_MRIB 2024-12-12 13:50:31 +00:00
router-id.c zebra: convert to mgmtd 2024-01-28 23:28:40 +02:00
router-id.h zebra: convert vrf configuration output to NB 2024-01-28 23:28:40 +02:00
rt.h *: Introduce Local Host Routes to FRR 2023-11-01 17:13:06 -04:00
rt_netlink.c zebra: EVPN add debug trace for HREP entry 2024-11-25 09:00:03 -08:00
rt_netlink.h zebra: support route replace semantics in FPM 2023-09-04 15:38:03 -03:00
rt_socket.c zebra: When installing a mroute, allow it to flow 2024-10-28 15:02:39 -04:00
rtadv.c *: Fix spelling errors found 2024-08-15 09:19:37 -04:00
rtadv.h zebra: convert interface ipv6 nd dnssl command to NB 2024-01-28 23:28:40 +02:00
rtread_netlink.c Merge pull request #12780 from opensourcerouting/spdx-license-id 2023-02-17 09:43:05 -05:00
rtread_sysctl.c lib: remove net/route.h it is not used 2024-01-09 12:50:40 -05:00
rule_netlink.c *: Remove netlink headers from lib/zebra.h 2023-11-07 06:46:19 -05:00
rule_netlink.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
rule_socket.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
sample_plugin.c *: Convert struct event_master to struct event_loop 2023-03-24 08:32:17 -04:00
subdir.am zebra: Add show fpm status [json] command 2024-03-04 11:06:35 -05:00
table_manager.c lib, mgmtd, zebra: cleanup of zebra conversion to mgmtd 2024-01-28 23:46:38 +02:00
table_manager.h zebra: Don't display the vrf if not using namespace based vrfs 2024-11-04 12:14:47 -05:00
tc_netlink.c zebra: remove unsued function from tc_netlink.c 2024-10-06 19:30:56 -04:00
tc_netlink.h zebra: remove unused function from tc_netlink.c 2024-10-06 19:08:44 -04:00
tc_socket.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
testrib.conf
zapi_msg.c zebra,pimd,lib: Modify ZEBRA_NEXTHOP_LOOKUP_MRIB 2024-12-12 13:50:31 +00:00
zapi_msg.h zebra: Do not forget to free opaque data for route entry 2024-08-13 18:00:30 +03:00
zebra_affinitymap.c zebra: rework affinity-map update hook 2024-01-19 03:47:11 +02:00
zebra_affinitymap.h lib,zebra: add affinity-map configuration hooks 2023-02-10 13:52:01 +01:00
zebra_cli.c zebra: add deprecation notice for no-op netns command 2024-12-07 17:02:58 +02:00
zebra_cli.h zebra: convert to mgmtd 2024-01-28 23:28:40 +02:00
zebra_dplane.c *: clang-SA friendly switch-enum-return-string 2024-10-16 13:00:11 +02:00
zebra_dplane.h Merge pull request #16737 from raja-rajasekar/rajasekarr/vlan_to_dplane 2024-10-15 08:06:34 -04:00
zebra_errors.c zebra: Add functions to alloc/release SRv6 SIDs 2024-06-13 14:54:16 +02:00
zebra_errors.h zebra: Add functions to alloc/release SRv6 SIDs 2024-06-13 14:54:16 +02:00
zebra_evpn.c zebra: Missed debug guard in zebra_evpn.c 2024-11-14 16:03:14 -05:00
zebra_evpn.h zebra: use new per-NS ifp iterators in vxlan code 2024-10-29 13:49:43 -04:00
zebra_evpn_mac.c zebra:check DAD freeze action before notifying bgp 2024-12-30 14:39:27 -08:00
zebra_evpn_mac.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
zebra_evpn_mh.c bgpd, lib, zebra: Extend ES_VTEP_LIST_STR_SZ to support IPv6 addresses 2024-05-31 10:27:22 -04:00
zebra_evpn_mh.h zebra: bridge flap handle vlan membership update 2024-05-03 10:52:33 -07:00
zebra_evpn_neigh.c *: Remove netlink headers from lib/zebra.h 2023-11-07 06:46:19 -05:00
zebra_evpn_neigh.h *: Convert THREAD_XXX macros to EVENT_XXX macros 2023-03-24 08:32:17 -04:00
zebra_evpn_vxlan.h Merge pull request #12780 from opensourcerouting/spdx-license-id 2023-02-17 09:43:05 -05:00
zebra_fpm.c *: Remove netlink headers from lib/zebra.h 2023-11-07 06:46:19 -05:00
zebra_fpm_dt.c *: Remove netlink headers from lib/zebra.h 2023-11-07 06:46:19 -05:00
zebra_fpm_netlink.c zebra: changes for code maintainability 2024-03-12 12:00:12 +05:30
zebra_fpm_private.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_fpm_protobuf.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_gr.c zebra: Do not assign time and then never use it 2024-08-18 16:18:54 -04:00
zebra_l2.c zebra: bridge flap handle vlan membership update 2024-05-03 10:52:33 -07:00
zebra_l2.h zebra: vlan to dplane Offload from main 2024-09-26 20:17:35 -07:00
zebra_l2_bridge_if.c *: Add a hash_clean_and_free() function 2023-03-21 08:54:21 -04:00
zebra_l2_bridge_if.h zebra: multiple vlan aware bridge data structure and related changes 2023-02-13 18:12:04 -05:00
zebra_mlag.c *: Let's use the native IFNAMSIZ instead of INTERFACE_NAMSIZ 2023-11-21 08:08:29 -05:00
zebra_mlag.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_mlag_private.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
zebra_mlag_vty.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_mlag_vty.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_mpls.c zebra: Reduce memory usage of streams for encoding packets 2024-12-09 12:31:29 -05:00
zebra_mpls.h zebra: return void zebra_mpls_lsp_install 2024-06-07 12:33:48 +02:00
zebra_mpls_netlink.c *: remove sys/stat.h from zebra.h 2024-01-09 12:39:23 -05:00
zebra_mpls_null.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_mpls_openbsd.c zebra: changes for code maintainability 2024-03-21 14:56:24 +05:30
zebra_mpls_vty.c zebra: fix mpls command 2024-05-16 23:30:41 +08:00
zebra_mroute.c zebra: Reduce memory usage of streams for encoding packets 2024-12-09 12:31:29 -05:00
zebra_mroute.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_nb.c zebra,yang: Completely remove multicast mode from zebra 2024-12-12 13:50:31 +00:00
zebra_nb.h zebra: add 'mpls fec nexthop-resolution' command to vtysh 2024-06-07 12:33:47 +02:00
zebra_nb_config.c Merge pull request #17474 from sougata-github-nvidia/rib_ip_protocol_cleanup 2025-01-07 08:45:07 -05:00
zebra_nb_rpcs.c zebra: clear evpn dup-addr return error-msg when there is no vni 2024-06-20 15:05:37 -07:00
zebra_nb_state.c *: clang-SA switch-enum initializer workarounds 2024-10-16 13:30:25 +02:00
zebra_neigh.c zebra: changes for code maintainability 2024-03-26 10:21:45 +05:30
zebra_neigh.h zebra: Remove static ARP entries on interface down events 2023-11-06 15:00:59 +02:00
zebra_netns_id.c zebra: don't misappropriate errno 2024-10-16 13:30:25 +02:00
zebra_netns_id.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_netns_notify.c zebra: check dirfd() result 2024-10-16 13:30:25 +02:00
zebra_netns_notify.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_nhg.c zebra: Fix leaked nhe 2025-01-09 12:34:50 -05:00
zebra_nhg.h *: Allow 16 bit size for nexthops 2024-10-08 09:26:57 -04:00
zebra_nhg_private.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_ns.c Merge pull request #17297 from mjstapp/mjs_ifp_table 2024-11-12 15:12:07 -05:00
zebra_ns.h zebra: remove if_table from the zebra NS 2024-10-29 13:49:43 -04:00
zebra_opaque.c zebra: clean up coverity warning in opaque api 2023-06-26 13:19:23 -04:00
zebra_opaque.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_pbr.c *: Let's use the native IFNAMSIZ instead of INTERFACE_NAMSIZ 2023-11-21 08:08:29 -05:00
zebra_pbr.h *: Let's use the native IFNAMSIZ instead of INTERFACE_NAMSIZ 2023-11-21 08:08:29 -05:00
zebra_ptm.c zebra: convert to mgmtd 2024-01-28 23:28:40 +02:00
zebra_ptm.h zebra: convert to mgmtd 2024-01-28 23:28:40 +02:00
zebra_ptm_redistribute.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_ptm_redistribute.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_pw.c zebra: Fix crash in pw code 2024-10-09 07:17:29 -04:00
zebra_pw.h zebra: Move pw status settting until after we get results 2024-10-07 20:36:45 -04:00
zebra_rib.c Merge pull request #17544 from anlancs/zebra/fix-plug-interface 2024-12-17 11:16:32 -05:00
zebra_rnh.c zebra: fix showing nexthop vrf for ipv6 blackhole 2024-10-18 14:45:50 +02:00
zebra_rnh.h zebra: include route source set by route-map in show output 2024-05-14 10:28:17 -04:00
zebra_routemap.c zebra: Fix ip protocol route-map issue. 2025-01-06 17:02:21 +05:30
zebra_routemap.h zebra: Add ability to import alternate tables into the MRIB 2024-10-29 20:17:59 +00:00
zebra_routemap_nb.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_routemap_nb.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_routemap_nb_config.c *: Add missing SPDX-License-Identifier for some .c/.h files 2024-03-21 16:46:58 +02:00
zebra_router.c zebra,yang: Completely remove multicast mode from zebra 2024-12-12 13:50:31 +00:00
zebra_router.h zebra,yang: Completely remove multicast mode from zebra 2024-12-12 13:50:31 +00:00
zebra_script.c zebra: vlan to dplane Offload from main 2024-09-26 20:17:35 -07:00
zebra_script.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_snmp.c zebra: Add missing proto translations 2024-09-25 12:14:50 -04:00
zebra_srte.c *: Fix up improper handling of nexthops for nexthop tracking 2024-10-15 11:57:23 -04:00
zebra_srte.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_srv6.c zebra: Fix wrong debug macro in release_srv6_sid_func_dynamic 2024-11-03 08:45:03 +01:00
zebra_srv6.h zebra: Alloc/Release SIDs to daemons upon request 2024-06-13 14:54:16 +02:00
zebra_srv6_vty.c zebra: Remove tests for srv6_locator_alloc failure 2024-12-22 09:01:59 +01:00
zebra_srv6_vty.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
zebra_tc.c zebra: Set Free Functions for Traffic Control Hash Tables 2023-11-29 16:33:54 +04:00
zebra_tc.h zebra: Set Free Functions for Traffic Control Hash Tables 2023-11-29 16:33:54 +04:00
zebra_trace.c *: Add missing SPDX-License-Identifier for some .c/.h files 2024-03-21 16:46:58 +02:00
zebra_trace.h zebra: remove unused function from if_netlink.c 2024-10-06 19:25:44 -04:00
zebra_vrf.c zebra: Don't display the vrf if not using namespace based vrfs 2024-11-04 12:14:47 -05:00
zebra_vrf.h zebra: add 'mpls fec nexthop-resolution' command to vtysh 2024-06-07 12:33:47 +02:00
zebra_vty.c zebra: Improve multicast safi route show commands 2024-12-12 13:50:31 +00:00
zebra_vxlan.c zebra: Reduce memory usage of streams for encoding packets 2024-12-09 12:31:29 -05:00
zebra_vxlan.h zebra: vlan to dplane Offload from main 2024-09-26 20:17:35 -07:00
zebra_vxlan_if.c zebra: EVPN fix code style in vlan vni map debugs 2024-11-26 09:06:44 -08:00
zebra_vxlan_if.h zebra: Fix for mcast-group update and delete per vni for svd 2023-02-13 18:12:05 -05:00
zebra_vxlan_private.h Merge pull request #12780 from opensourcerouting/spdx-license-id 2023-02-17 09:43:05 -05:00
zserv.c zebra: Give a bit more data about zclient connection on errors 2024-12-13 11:21:26 -05:00
zserv.h zebra: separate zebra ZAPI server open and accept 2024-12-03 09:44:46 -05:00