summaryrefslogtreecommitdiffstats
path: root/nhrpd (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #16700 from louis-6wind/fix-nhrp-outputDonatas Abraitis2024-11-281-3/+4
|\ | | | | nhrpd: fix show ip nhrp output
| * nhrpd: normalize sh ip nhrp opennhrp outputLouis Scalbert2024-10-171-2/+2
| | | | | | | | | | | | The command outputs too much "\n". Normalize it. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
| * nhrpd: fix sh ip nhrp opennhrp json counterLouis Scalbert2024-10-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "show ip nhrp opennhrp json" counter is incorrect. > root@nhs1:/# vtysh -c 'sh ip nhrp opennhrp json' | jq . > { > "attr": { > "status": "ok", > "entriesCount": 1 <=== NOK > }, > "table": [ > { > "type": "dynamic", > "up": true, > "used": false, > "protocolAddress": "172.16.1.4", > "protocolAddressSize": 32, > "nbmaAddress": "192.168.2.4" > }, > { > "type": "dynamic", > "up": true, > "used": false, > "protocolAddress": "172.16.1.5", > "protocolAddressSize": 32, > "nbmaAddress": "192.168.2.5" > } > ] > } > Fixes: 87b9e98203 ("nhrpd: add json support to show nhrp vty commands") Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
* | nhrpd: Modify NHRP authentication feature loggingJoshua Muthii2024-10-293-9/+42
|/ | | | | | | | | | | | | | | | | | | | Modified nhrp_connection_authorized(). Initially, when writing debug information about incoming NHRP packets with authentication enabled, the nhrp_connection_authorized() function would print the passphrase of the incoming packet as if it were a null terminated string. This meant that if the passphrase on the incoming packet had non ASCII-complient bytes in it, it would attempt to print those bytes anyway. There was also no check that the size of the passphrase in the incoming packet matched the size of the passphrase on the interface. The changes in this commit log the passphrase on the incoming packet as well as the passphrase on interface in HEX to avoid issues with ASCII. It also performs a check that accounts for the sizes of the two different passphrases Moved CISCO_PASS_LENGTH_LEN from nhrp_vty.c to nhrp_protocol.h for easier access to the macro in other files Signed-off-by: Joshua Muthii <jmuthii@labn.net>
* Merge pull request #16788 from LabNConsulting/jmuthii/nhrpd-retry-resolutionJafar Al-Gharaibeh2024-09-242-24/+77
|\ | | | | nhrpd: Implement retrying resolution request
| * nhrpd: Implement retrying resolution requestJoshua Muthii2024-09-172-24/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In the event that a resolution request is sent and and resolution reply is never received, resolution requests will continue to be sent until either the newly created shortcut has been purged or a resolution reply is finally received. NHRPD_DEFAULT_PURGE_TIME and NHRPD_PURGE_EXPIRE are values that were previously hardcoded and moved into macros for the sake of readability. Signed-off-by: Joshua Muthii <jmuthii@labn.net>
* | nhrpd: fixes duplicate auth extensionDenys Haryachyy2024-09-121-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | When an NHRP peer was forwarding a message, it was copying all extensions from the originally received packet. The authentication extension must be regenerated hop by hop per RFC2332. This fix checks for the auth extension when copying extensions and omits the original packet auth and instead regenerates a new auth extension. Fix bug #16507 Signed-off-by: Denys Haryachyy <garyachy@gmail.com>
* | nhrpd: Added a command "no tunnel protection vici profile PROFILE"aapostoliuk2024-09-101-2/+7
| | | | | | | | | | | | | | | | For compatibility with frr-reload, a command "no tunnel protection [vici profile PROFILE [fallback-profile FALLBACK]]" was added. Signed-off-by: aapostoliuk <a.apostoliuk@vyos.io>
* | nhrpd: fix show nhrp shortcut jsonLouis Scalbert2024-08-301-1/+1
| | | | | | | | | | | | | | Fix show nhrp shortcut json Fixes: 87b9e98203 ("nhrpd: add json support to show nhrp vty commands") Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
* | nhrpd: fix sending /32 shortcutLouis Scalbert2024-08-231-0/+4
|/ | | | | | | | | | | | | | | | | | The remote spoke always sends a 32 prefix length to a shortcut request. In the example, the remote spoke as the IP address 192.168.2.1/24. spoke1# sh ip nhrp shortcut Type Prefix Via Identity dynamic 192.168.2.1/32 10.255.255.2 Do not deal with local routes in nhrpd. Now: spoke1# sh ip nhrp shortcut Type Prefix Via Identity dynamic 192.168.2.0/24 10.255.255.2 Fixes: d4aa24ba7d ("*: Introduce Local Host Routes to FRR") Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
* nhrpd: fixes duplicate auth extensionDave LeRoy2024-07-261-8/+11
| | | | | | | | | | | | | When an NHRP server was forwarding a message, it was copying all extensions from the originally received packet. The authentication extension must be regenerated hop by hop per RFC2332. The copied auth extension had an incorrect length. This fix checks for the auth extension when copying extensions and omits the original packet auth and instead regenerates a new auth extension. Fix bug #16466 Signed-off-by: Dave LeRoy <dleroy@labn.net>
* nhrpd: Fixes auth no redirect bugDave LeRoy2024-07-181-1/+8
| | | | | | | | | | | | The nhrp_peer_forward() routine was not explicitly handling the Authentication Extension in the switch statement and instead fell through to the default case which checked whether this was an unhandled Compulsory extension and errored out, never forwarding the Resolution Request. Fix bug #16371 Signed-off-by: Dave LeRoy <dleroy@labn.net>
* nhrpd: Fixes auth config change bugDave LeRoy2024-07-171-2/+6
| | | | | | | | | | Freeing auth-token does not set nifp->auth_token to NULL. Explicitly set auth_token to NULL when deleting auth config in order for write config logic to succeed. Fix bug #16359 Signed-off-by: Dave LeRoy <dleroy@labn.net>
* nhrpd: add cisco-authentication password supportDave LeRoy2024-06-113-17/+25
| | | | | | | | | | | | | | Taking over this development from https://github.com/FRRouting/frr/pull/14788 This commit addresses 4 issues found in the previous PR 1) FRR would accept messages from a spoke without authentication when FRR NHRP had auth configured. 2) The error indication was not being sent in network byte order 3) The debug print in nhrp_connection_authorized was not correctly printing the received password 4) The addresses portion of the mandatory part of the error indication was invalid on the wire (confirmed in wireshark) Signed-off-by: Dave LeRoy <dleroy@labn.net> Co-authored-by: Volodymyr Huti <volodymyr.huti@gmail.com>
* nhrp: add `cisco-authentication` password supportVolodymyr Huti2024-06-117-26/+184
| | | | | | | | | Implemented: - handling 8 char long password, aka Cisco style. - minimal error inidication routine - test case, password change affects conection Signed-off-by: Volodymyr Huti <v.huti@vyos.io>
* nhrpd: cleans up shortcut cache entries on terminationDave LeRoy2024-06-052-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | nhrp_shortcut_terminate() previously was just freeing the associated AFI shortcut RIBs and not addressing existing shortcut cache entries. This cause a use after free issue in vrf_terminate() later in the terminate sequence NHRP: Received signal 7 at 1717516286 (si_addr 0x1955d, PC 0x7098786912c0); aborting... NHRP: zlog_signal+0xf5 709878ad1255 7fff3d992eb0 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000) NHRP: core_handler+0xb5 709878b0db85 7fff3d992ff0 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000) NHRP: __sigaction+0x50 709878642520 7fff3d993140 /lib/x86_64-linux-gnu/libc.so.6 (mapped at 0x709878600000) NHRP: ---- signal ---- NHRP: __lll_lock_wait_private+0x90 7098786912c0 7fff3d9936d8 /lib/x86_64-linux-gnu/libc.so.6 (mapped at 0x709878600000) NHRP: pthread_mutex_lock+0x112 709878698002 7fff3d9936e0 /lib/x86_64-linux-gnu/libc.so.6 (mapped at 0x709878600000) NHRP: _event_add_read_write+0x63 709878b1f423 7fff3d993700 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000) NHRP: zclient_send_message+0xd4 709878b37614 7fff3d993770 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000) NHRP: nhrp_route_announce+0x1ad 5ab34d63d39d 7fff3d993790 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000) NHRP: nhrp_shortcut_cache_notify+0xd8 5ab34d63e758 7fff3d99d4e0 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000) NHRP: nhrp_cache_free+0x165 5ab34d632f25 7fff3d99d510 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000) NHRP: hash_iterate+0x4d 709878ab949d 7fff3d99d540 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000) NHRP: nhrp_cache_interface_del+0x37 5ab34d633eb7 7fff3d99d580 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000) NHRP: nhrp_if_delete_hook+0x26 5ab34d6350d6 7fff3d99d5a0 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000) NHRP: if_delete_retain+0x3d 709878abcd1d 7fff3d99d5c0 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000) NHRP: if_delete+0x4c 709878abd87c 7fff3d99d600 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000) NHRP: if_terminate+0x53 709878abda83 7fff3d99d630 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000) NHRP: vrf_terminate_single+0x24 709878b23c74 7fff3d99d670 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000) NHRP: nhrp_request_stop+0x34 5ab34d636844 7fff3d99d690 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000) NHRP: frr_sigevent_process+0x53 709878b0df53 7fff3d99d6a0 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000) NHRP: event_fetch+0x6c5 709878b20405 7fff3d99d6c0 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000) NHRP: frr_run+0xd3 709878ac8163 7fff3d99d840 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000) NHRP: main+0x195 5ab34d631915 7fff3d99d960 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000) NHRP: __libc_init_first+0x90 709878629d90 7fff3d99d980 /lib/x86_64-linux-gnu/libc.so.6 (mapped at 0x709878600000) NHRP: __libc_start_main+0x80 709878629e40 7fff3d99da20 /lib/x86_64-linux-gnu/libc.so.6 (mapped at 0x709878600000) NHRP: _start+0x25 5ab34d631b65 7fff3d99da70 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000) Signed-off-by: Dave LeRoy <dleroy@labn.net>
* nhrpd: fixes core dump on shutdowndleroy2024-05-301-2/+2
| | | | | | | | | | When nhrpd is shutdown via nhrp_request_stop() the shutdown sequence was not handling the case where there are active shortcut routes installed. The zebra client and shortcut rib were being cleaned up before vrf_terminate() had an opportunity to delete the active routes. Signed-off-by: dleroy <dleroy@labn.net>
* nhrp: replace hard coded retry time with value derived from holdtimeLou Berger2024-04-231-3/+9
| | | | Signed-off-by: Lou Berger <lberger@labn.net>
* *: Add missing SPDX-License-Identifier for some .c/.h filesDonatas Abraitis2024-03-214-0/+6
| | | | | | Adding them as others: GPL-2.0-or-later Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
* nhrp: fix race conditionLou Berger2024-02-081-0/+5
| | | | | | | where null lladdr recieved from zebra before nhrp next hop is installed. Signed-off-by: Lou Berger <lberger@labn.net>
* *: create a single registry of daemons' default port valuesMark Stapp2024-02-011-1/+0
| | | | | | | | Create a single registry of default port values that daemons are using. Most of these are vty ports, but there are some others for features like ospfapi and zebra FPM. Signed-off-by: Mark Stapp <mjs@labn.net>
* *: fix `frr_daemon_info` indentationDavid Lamparter2024-01-271-5/+10
| | | | | | | | | | clang-format doesn't understand FRR_DAEMON_INFO is a long macro where laying out items semantically makes sense. (Also use only one `FRR_DAEMON_INFO(` in isisd so editors don't get confused with the mismatching `( ( )`. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* nhrpd: remove netlink_configure_arp declarationLouis Scalbert2024-01-241-1/+0
| | | | | | Remove the unused netlink_configure_arp() declaration. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
* nhrpd: unset noarp flag using a zapi messageLouis Scalbert2024-01-244-21/+8
| | | | | | | Unset the IFF_NOARP interface flag using a ZAPI message. It removes the dependency to if.h headers. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
* lib, nhrpd: Move neighbor reg/unreg to lib/zclient.cDonald Sharp2024-01-222-27/+13
| | | | | | This is needed to be generic. Let's make it so. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* *: Rename ZEBRA_NHRP_NEIGH_XXX to ZEBRA_NEIGH_XXXDonald Sharp2024-01-222-12/+12
| | | | | | This does not need to be nhrp specific. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* *: zebra.h should not have fcntl.hDonald Sharp2024-01-092-0/+2
| | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* *: Remove sys/ioctl.h from zebra.hDonald Sharp2024-01-041-0/+1
| | | | | | | Practically no-one uses this and ioctls are pretty much wrappered. Further wrappering could make this even better. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* nhrpd: Cleanup a hash on nhrp shutdownDonald Sharp2023-12-161-0/+1
| | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* lib, bgpd, nhrpd: Cleanup memory in lib/resolver on shutdownDonald Sharp2023-12-161-0/+2
| | | | | | This memory was not being cleaned up on shutdown. Fix this. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* *: convert `struct interface->connected` to DLISTDavid Lamparter2023-11-221-2/+1
| | | | | | | | | | | | | | | | | Replace `struct list *` with `DLIST(if_connected, ...)`. NB: while converting this, I found multiple places using connected prefixes assuming they were IPv4 without checking: - vrrpd/vrrp.c: vrrp_socket() - zebra/irdp_interface.c: irdp_get_prefix(), irdp_if_start(), irdp_advert_off() (these fixes are really hard to split off into separate commits as that would require going back and reapplying the change but with the old list handling) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* *: Remove netlink headers from lib/zebra.hDonald Sharp2023-11-072-0/+8
| | | | | | | | | | | | The headers associated with netlink code really only belong in those that need it. Move these headers out of lib/zebra.h and into more appropriate places. bgp's usage of the RT_TABLE_XXX defines are probably not appropriate and will be cleaned up in future commits. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* lib: convert if_zapi_callbacks into actual hooksDavid Lamparter2023-11-031-2/+4
| | | | | | | | | ...so that multiple functions can be subscribed. The create/destroy hooks are renamed to real/unreal because that's what they *actually* signal. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* Merge pull request #14561 from idryzhov/implicit-fallthroughDonald Sharp2023-10-132-4/+4
|\ | | | | build: add -Wimplicit-fallthrough
| * build: add -Wimplicit-fallthroughIgor Ryzhov2023-10-122-4/+4
| | | | | | | | | | | | | | | | | | | | Also: - replace all /* fallthrough */ comments with portable fallthrough; pseudo keyword to accomodate both gcc and clang - add missing break; statements as required by older versions of gcc - cleanup some code to remove unnecessary fallthrough Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
* | nhrpd: Fix nhrp_peer leakKeelan102023-10-123-2/+5
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Addressed memory leak by removing `&c->peer_notifier` from the notifier list on termination. Retaining it caused the notifier list to stay active, preventing the deletion of `c->cur.peer` thereby causing a memory leak. - Reordered termination steps to call `vrf_terminate` before `nhrp_vc_terminate`, preventing a heap-use-after-free issue when `nhrp_vc_notify_del` is invoked in `nhrp_peer_check_delete`. - Added an if statement to avoid passing NULL as hash to `hash_release`, which leads to a SIGSEGV. The ASan leak log for reference: ``` *********************************************************************************** Address Sanitizer Error detected in nhrp_topo.test_nhrp_topo/r1.asan.nhrpd.20265 ================================================================= ==20265==ERROR: LeakSanitizer: detected memory leaks Direct leak of 112 byte(s) in 1 object(s) allocated from: #0 0x7f80270c9b40 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb40) #1 0x7f8026ac1eb8 in qmalloc lib/memory.c:100 #2 0x560fd648f0a6 in nhrp_peer_create nhrpd/nhrp_peer.c:175 #3 0x7f8026a88d3f in hash_get lib/hash.c:147 #4 0x560fd6490a5d in nhrp_peer_get nhrpd/nhrp_peer.c:228 #5 0x560fd648a51a in nhrp_nhs_resolve_cb nhrpd/nhrp_nhs.c:297 #6 0x7f80266b000f in resolver_cb_literal lib/resolver.c:234 #7 0x7f8026b62e0e in event_call lib/event.c:1969 #8 0x7f8026aa5437 in frr_run lib/libfrr.c:1213 #9 0x560fd6488b4f in main nhrpd/nhrp_main.c:166 #10 0x7f8025eb2c86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c86) SUMMARY: AddressSanitizer: 112 byte(s) leaked in 1 allocation(s). *********************************************************************************** *********************************************************************************** Address Sanitizer Error detected in nhrp_topo.test_nhrp_topo/r2.asan.nhrpd.20400 ================================================================= ==20400==ERROR: LeakSanitizer: detected memory leaks Direct leak of 112 byte(s) in 1 object(s) allocated from: #0 0x7fb6e3ca5b40 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb40) #1 0x7fb6e369deb8 in qmalloc lib/memory.c:100 #2 0x562652de40a6 in nhrp_peer_create nhrpd/nhrp_peer.c:175 #3 0x7fb6e3664d3f in hash_get lib/hash.c:147 #4 0x562652de5a5d in nhrp_peer_get nhrpd/nhrp_peer.c:228 #5 0x562652de1e8e in nhrp_packet_recvraw nhrpd/nhrp_packet.c:325 #6 0x7fb6e373ee0e in event_call lib/event.c:1969 #7 0x7fb6e3681437 in frr_run lib/libfrr.c:1213 #8 0x562652dddb4f in main nhrpd/nhrp_main.c:166 #9 0x7fb6e2a8ec86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c86) SUMMARY: AddressSanitizer: 112 byte(s) leaked in 1 allocation(s). *********************************************************************************** ``` Signed-off-by: Keelan Cannoo <keelan.cannoo@icloud.com>
* nhrpd: clean up locals in route zapi apiMark Stapp2023-07-101-3/+3
| | | | | | Clean up use of a nexthop pointer - seemed inconsistent. Signed-off-by: Mark Stapp <mjs@labn.net>
* nhrpd: Fix nhrpd memory leakKeelan102023-04-241-0/+1
| | | | | | Free NHRP peers associated with an interface when NHS is deleted on shutdown Signed-off-by: Keelan Cannoo <keelan.cannoo@icloud.com>
* Merge pull request #12837 from donaldsharp/unlikely_routemapRuss White2023-04-041-8/+0
|\ | | | | Unlikely routemap
| * babeld, lib, nhrpd: Add likely and unlikely macrosDonald Sharp2023-03-231-8/+0
| | | | | | | | | | | | | | | | We have 2 competing versions of likely and unlikely in babeld and nhrpd. Standardize onto lower case versions and consolidate in the code. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | *: Convert event.h to frrevent.hDonald Sharp2023-03-2412-12/+12
| | | | | | | | | | | | | | We should probably prevent any type of namespace collision with something else. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | *: Convert `struct event_master` to `struct event_loop`Donald Sharp2023-03-242-2/+2
| | | | | | | | | | | | Let's find a better name for it. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | *: Convert THREAD_XXX macros to EVENT_XXX macrosDonald Sharp2023-03-249-42/+42
| | | | | | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | *: Convert struct thread_master to struct event_master and it's ilkDonald Sharp2023-03-242-2/+2
| | | | | | | | | | | | | | Convert the `struct thread_master` to `struct event_master` across the code base. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | *: Convert thread_cancelXXX to event_cancelXXXDonald Sharp2023-03-241-1/+1
| | | | | | | | | | | | Modify the code base so that thread_cancel becomes event_cancel Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | *: Convert thread_add_XXX functions to event_add_XXXDonald Sharp2023-03-249-84/+83
| | | | | | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | *: Rename `struct thread` to `struct event`Donald Sharp2023-03-2410-36/+36
| | | | | | | | | | | | | | | | | | Effectively a massive search and replace of `struct thread` to `struct event`. Using the term `thread` gives people the thought that this event system is a pthread when it is not Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | *: Rename thread.[ch] to event.[ch]Donald Sharp2023-03-2412-12/+12
| | | | | | | | | | | | | | | | | | | | | | This is a first in a series of commits, whose goal is to rename the thread system in FRR to an event system. There is a continual problem where people are confusing `struct thread` with a true pthread. In reality, our entire thread.c is an event system. In this commit rename the thread.[ch] files to event.[ch]. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | *: Add a hash_clean_and_free() functionDonald Sharp2023-03-211-6/+1
|/ | | | | | | | | | Add a hash_clean_and_free() function as well as convert the code to use it. This function also takes a double pointer to the hash to set it NULL. Also it cleanly does nothing if the pointer is NULL( as a bunch of code tested for ). Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* nhrpd: drop peer references on freeing cache entryDavid Lamparter2023-03-191-0/+2
| | | | | | | | | When dropping an interface (e.g. at shutdown) while there are still valid cache entries, the reference held on the cache entries' peer pointers was leaking. Fixes: #12505 Signed-off-by: David Lamparter <equinox@opensourcerouting.org>