summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-04-08Merge pull request #18612 from FRRouting/mergify/bp/stable/10.3/pr-18526Jafar Al-Gharaibeh
pimd: Fix memory leak on shutdown (backport #18526)
2025-04-08Merge pull request #18616 from FRRouting/mergify/bp/stable/10.3/pr-18598Jafar Al-Gharaibeh
nhrpd: Add Hop Count Validation Before Forwarding in nhrp_peer_recv() (backport #18598)
2025-04-09Merge pull request #18619 from FRRouting/mergify/bp/stable/10.3/pr-18614Donatas Abraitis
bgpd: On shutdown free up memory leak found by topotest (backport #18614)
2025-04-08bgpd: On shutdown free up memory leak found by topotestDonald Sharp
This commit fixes two types of problems: a) Avoidance of cleaning up memory when a instance is hidden, thus causing it never to be freed on shutdown b) In some instances bgp_create is called 2 times for some code. We are double allocating memory and dropping it on the second allocation. Signed-off-by: Donald Sharp <sharpd@nvidia.com> (cherry picked from commit b18c309015f3b91bc65af2f64ed3e6f845b855eb)
2025-04-08nhrpd: Add Hop Count Validation Before Forwarding in nhrp_peer_recv()zmw12306
According to [RFC 2332, Section 5.1], if an NHS receives a packet that it would normally forward and the hop count is zero, it must send an error indication back to the source and drop the packet. Signed-off-by: zmw12306 <zmw12306@gmail.com> (cherry picked from commit 7c877164820bfc1cd7f84b3f7529f716b0f897cd)
2025-04-08Merge pull request #18609 from ↵Jafar Al-Gharaibeh
cscarpitta/fix/backport_check_sid_loc_block_beforehand staticd: Avoid requesting SRv6 sid from zebra when loc and sid block don't match (manual backport #18580)
2025-04-08pimd: Fix memory leak on shutdownDonald Sharp
The gm_join_list has a setup where it attempts to only create the list upon need and deletes it when the list is empty. On interface shutdown it was calling the function to empty the list but it was not empty so the list was being left at the end. Just add a bit of code to really clean up the list in the shutdown case. Direct leak of 40 byte(s) in 1 object(s) allocated from: 0 0x7f84850b83b7 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:77 1 0x7f8484c391c4 in qcalloc lib/memory.c:106 2 0x7f8484c1ad36 in list_new lib/linklist.c:49 3 0x55d982827252 in pim_if_gm_join_add pimd/pim_iface.c:1354 4 0x55d982852b59 in lib_interface_gmp_address_family_join_group_create pimd/pim_nb_config.c:4499 5 0x7f8484c6a5d3 in nb_callback_create lib/northbound.c:1512 6 0x7f8484c6a5d3 in nb_callback_configuration lib/northbound.c:1910 7 0x7f8484c6bb51 in nb_transaction_process lib/northbound.c:2042 8 0x7f8484c6c164 in nb_candidate_commit_apply lib/northbound.c:1381 9 0x7f8484c6c39f in nb_candidate_commit lib/northbound.c:1414 10 0x7f8484c6cf1c in nb_cli_classic_commit lib/northbound_cli.c:57 11 0x7f8484c72f67 in nb_cli_apply_changes_internal lib/northbound_cli.c:195 12 0x7f8484c73a2e in nb_cli_apply_changes lib/northbound_cli.c:251 13 0x55d9828bd30f in interface_ip_igmp_join_magic pimd/pim_cmd.c:5436 14 0x55d9828bd30f in interface_ip_igmp_join pimd/pim_cmd_clippy.c:6366 15 0x7f8484bb5cbd in cmd_execute_command_real lib/command.c:1003 16 0x7f8484bb5fdc in cmd_execute_command lib/command.c:1062 17 0x7f8484bb6508 in cmd_execute lib/command.c:1228 18 0x7f8484cfb6ec in vty_command lib/vty.c:626 19 0x7f8484cfbc3f in vty_execute lib/vty.c:1389 20 0x7f8484cff9f0 in vtysh_read lib/vty.c:2408 21 0x7f8484cec846 in event_call lib/event.c:1984 22 0x7f8484c1a10a in frr_run lib/libfrr.c:1246 23 0x55d9828fc765 in main pimd/pim_main.c:166 24 0x7f848470c249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h: Signed-off-by: Donald Sharp <sharpd@nvidia.com> (cherry picked from commit 521b58945ca5c8c75ccdb1f7f1cb9e2eb10ab83f)
2025-04-08staticd: Avoid requesting SRv6 sid from zebra when loc and sid block dont matchCarmine Scarpitta
Currently, when the locator block and sid block differs, staticd would still go ahead and request zebra to allocate the SID which it does if there is atleast one match (from any locators). Only when staticd tries to install the route, it sees that the locator block and sid block are different and avoids installing the route. Fix: Check if the locator block and sid block match before even requesting Zebra to allocate one. Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com> (cherry picked from commit dbd9fed0b30dd1d3475686f71f87d326eeafd26c)
2025-04-04Merge pull request #18576 from FRRouting/mergify/bp/stable/10.3/pr-18567Donatas Abraitis
pimd: Initialize gm proxy to false (backport #18567)
2025-04-03pimd: Initialize gm proxy to falseNathan Bahr
Signed-off-by: Nathan Bahr <nbahr@atcorp.com> (cherry picked from commit 153d9ea3b99d07015191924866ae14bb0525365a)
2025-04-03Merge pull request #18573 from FRRouting/mergify/bp/stable/10.3/pr-18572Jafar Al-Gharaibeh
tests: Fix typo when configuring delayopen timer (backport #18572)
2025-04-03tests: Fix typo when configuring delayopen timerDonatas Abraitis
`"` was accidentally added, and random tests failures happening. Fixes: a4f61b78dd382c438ff4fec2fda7450ecc890edf ("tests: Check if routes are marked as stale and retained with N-bit for GR") Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> (cherry picked from commit 55d88ee3de422ff6dc206c6ebe5ba96b3ff67967)
2025-04-03Merge pull request #18569 from FRRouting/mergify/bp/stable/10.3/pr-18494Donatas Abraitis
lib: Return duplicate prefix-list entry test (backport #18494)
2025-04-03Merge pull request #18565 from FRRouting/mergify/bp/stable/10.3/pr-18561Donatas Abraitis
lib: Return duplicate ipv6 prefix-list entry test (backport #18561)
2025-04-03lib: Return duplicate prefix-list entry testDonatas Abraitis
If we do e.g.: ip prefix-list PL_LoopbackV4 permit 10.1.0.32/32 ip prefix-list PL_LoopbackV4 permit 10.1.0.32/32 ip prefix-list PL_LoopbackV4 permit 10.1.0.32/32 We end up, having duplicate records with a different sequence number only. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> (cherry picked from commit 8384d41144496019725c1e250abd0ceea854341f)
2025-04-02lib: Return duplicate ipv6 prefix-list entry testDonatas Abraitis
Fixes: 8384d41144496019725c1e250abd0ceea854341f ("lib: Return duplicate prefix-list entry test") Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> (cherry picked from commit 24ae7cd30a055dc17fc9d75762320e1359e005b2)
2025-04-01Merge pull request #18527 from FRRouting/mergify/bp/stable/10.3/pr-18502Russ White
bgpd: Set the label for MP_UNREACH_NLRI 0x800000 instead of 0x000000 (backport #18502)
2025-04-01Merge pull request #18511 from FRRouting/mergify/bp/stable/10.3/pr-18498Russ White
bgpd: Retain the routes if we do a clear with N-bit set for Graceful-Restart (backport #18498)
2025-03-30Merge pull request #18509 from FRRouting/mergify/bp/stable/10.3/pr-18503Donatas Abraitis
ospf6d: Fix LSA memory leaks related to graceful restart (backport #18503)
2025-03-28tests: Use label 0x800000 instead of 0x000000 for BMP testsmergify/bp/stable/10.3/pr-18502Donatas Abraitis
Related-to: 94e2aadf7187d7d695babce21033b5bc8e454f25 ("bgpd: Set the label for MP_UNREACH_NLRI 0x800000 instead of 0x000000") Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> (cherry picked from commit e69459c7144568381c05bbaf962adecd914975d5)
2025-03-28bgpd: Set the label for MP_UNREACH_NLRI 0x800000 instead of 0x000000Donatas Abraitis
RFC8277 says: The procedures in [RFC3107] for withdrawing the binding of a label or sequence of labels to a prefix are not specified clearly and correctly. => How to Explicitly Withdraw the Binding of a Label to a Prefix Suppose a BGP speaker has announced, on a given BGP session, the binding of a given label or sequence of labels to a given prefix. Suppose it now wishes to withdraw that binding. To do so, it may send a BGP UPDATE message with an MP_UNREACH_NLRI attribute. The NLRI field of this attribute is encoded as follows: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Compatibility | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Prefix ~ ~ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4: NLRI for Withdrawal Upon transmission, the Compatibility field SHOULD be set to 0x800000. Upon reception, the value of the Compatibility field MUST be ignored. [RFC3107] also made it possible to withdraw a binding without specifying the label explicitly, by setting the Compatibility field to 0x800000. However, some implementations set it to 0x000000. In order to ensure backwards compatibility, it is RECOMMENDED by this document that the Compatibility field be set to 0x800000, but it is REQUIRED that it be ignored upon reception. In FRR case where a single label is used per-prefix, we should send 0x800000, and not 0x000000. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> (cherry picked from commit 94e2aadf7187d7d695babce21033b5bc8e454f25)
2025-03-28bgpd: Remove unused defines from bgp_label.hDonatas Abraitis
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> (cherry picked from commit 42b9d985ccced6ee4ccc70b139c78cd47867b2ba)
2025-03-28tests: Fix wait times in test_ospf6_gr_topo1 topotestMartin Buck
Increase wait times to at least the minimum wait time accepted by topotest.run_and_expect(). Also change poll interval to 1s, no point in doings this more frequently. Finally, slightly improve the topology diagram to also include area numbers. Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org> (cherry picked from commit b73e3ae69dfd2050dc061b81040a4748d8992ddd)
2025-03-28ospf6d: Fix LSA memory leaks related to graceful restartMartin Buck
Fixes leaks reported by ospf6_gr_topo1 topotest. Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org> (cherry picked from commit 0db0e7fbd7c6d6c5ba32c741385bc1b2d1acfa77)
2025-03-28tests: Check if routes are marked as stale and retained with N-bit for GRmergify/bp/stable/10.3/pr-18498Donatas Abraitis
Related-to: b7c657d4e065f310fcf6454abae1a963c208c3b8 ("bgpd: Retain the routes if we do a clear with N-bit set for Graceful-Restart") Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> (cherry picked from commit a4f61b78dd382c438ff4fec2fda7450ecc890edf)
2025-03-28bgpd: Retain the routes if we do a clear with N-bit set for Graceful-RestartDonatas Abraitis
On receiving side we already did the job correctly, but the peer which initiates the clear does not retain the other's routes. This commit fixes that. Fixes: 20170775da3a3c5d41aba714d0c1d5a29b0da61c ("bgpd: Activate Graceful-Restart when receiving CEASE/HOLDTIME notifications") Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> (cherry picked from commit b7c657d4e065f310fcf6454abae1a963c208c3b8)
2025-03-27Merge pull request #18522 from opensourcerouting/fix/revert_18478Mark Stapp
Revert backport for crash when modifying SRv6 SID for stable/10.3 branch
2025-03-27Revert "staticd: Fix crash that occurs when modifying an SRv6 SID"Donatas Abraitis
This reverts commit c80c2b2a4226640464a38f8ee9f8b2b4be8bd094.
2025-03-27Revert "tests: Add test case to verify SRv6 SID modify"Donatas Abraitis
This reverts commit 8f1313392f70ff2e7e8f924e238564879d5e3aeb.
2025-03-25Merge pull request #18478 from FRRouting/mergify/bp/stable/10.3/pr-18467Russ White
staticd: Fix a crash that occurs when modifying an SRv6 SID (backport #18467)
2025-03-25Merge pull request #18485 from FRRouting/mergify/bp/stable/10.3/pr-18483Donald Sharp
bgpd: Fix holdtime not working properly when busy (backport #18483)
2025-03-25bgpd: Fix holdtime not working properly when busymergify/bp/stable/10.3/pr-18483Donald Sharp
Commit: cc9f21da2218d95567eff1501482ce58e6600f54 Modified the bgp_fsm code to dissallow the extension of the hold time when the system is under extremely heavy load. This was a attempt to remove the return code but it was too aggressive and messed up this bit of code. Put the behavior back that was introduced in: d0874d195d0127009a7d9c06920c52c95319eff9 Signed-off-by: Donald Sharp <sharpd@nvidia.com> (cherry picked from commit 9a26a56c5188fd1c95e244932bc17f97b9051935)
2025-03-24tests: Add test case to verify SRv6 SID modifyCarmine Scarpitta
This commit adds a test case that modifies a SID and verifies that the RIB is as expected. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com> (cherry picked from commit 23403e01a3ece0b206bc8acf36c08b4bb538cb79)
2025-03-24staticd: Fix crash that occurs when modifying an SRv6 SIDCarmine Scarpitta
When the user modifies an SRv6 SID and then removes all SIDs, staticd crashes: ``` 2025/03/23 08:37:22.691860 STATIC: lib/memory.c:74: mt_count_free(): assertion (mt->n_alloc) failed STATIC: Received signal 6 at 1742715442 (si_addr 0x8200007cf0); aborting... STATIC: zlog_signal+0x390 fcc704a844b8 ffffd7450390 /usr/lib/frr/libfrr.so.0 (mapped at 0xfcc704800000) STATIC: core_handler+0x1f8 fcc704b79990 ffffd7450590 /usr/lib/frr/libfrr.so.0 (mapped at 0xfcc704800000) STATIC: ---- signal ---- STATIC: ? fcc705c008f8 ffffd74507a0 linux-vdso.so.1 (mapped at 0xfcc705c00000) STATIC: pthread_key_delete+0x1a0 fcc70458f1f0 ffffd7451a00 /lib/aarch64-linux-gnu/libc.so.6 (mapped at 0xfcc704510000) STATIC: raise+0x1c fcc70454a67c ffffd7451ad0 /lib/aarch64-linux-gnu/libc.so.6 (mapped at 0xfcc704510000) STATIC: abort+0xe4 fcc704537130 ffffd7451af0 /lib/aarch64-linux-gnu/libc.so.6 (mapped at 0xfcc704510000) STATIC: _zlog_assert_failed+0x3c4 fcc704c407c8 ffffd7451c40 /usr/lib/frr/libfrr.so.0 (mapped at 0xfcc704800000) STATIC: mt_count_free+0x12c fcc704a93c74 ffffd7451dc0 /usr/lib/frr/libfrr.so.0 (mapped at 0xfcc704800000) STATIC: qfree+0x28 fcc704a93fa0 ffffd7451e70 /usr/lib/frr/libfrr.so.0 (mapped at 0xfcc704800000) STATIC: static_srv6_sid_free+0x1c adc1df8fa544 ffffd7451e90 /usr/lib/frr/staticd (mapped at 0xadc1df8a0000) STATIC: delete_static_srv6_sid+0x14 adc1df8faafc ffffd7451eb0 /usr/lib/frr/staticd (mapped at 0xadc1df8a0000) STATIC: list_delete_all_node+0x104 fcc704a60eec ffffd7451ed0 /usr/lib/frr/libfrr.so.0 (mapped at 0xfcc704800000) STATIC: list_delete+0x8c fcc704a61054 ffffd7451f00 /usr/lib/frr/libfrr.so.0 (mapped at 0xfcc704800000) STATIC: static_srv6_cleanup+0x20 adc1df8fabdc ffffd7451f20 /usr/lib/frr/staticd (mapped at 0xadc1df8a0000) STATIC: sigint+0x40 adc1df8be544 ffffd7451f30 /usr/lib/frr/staticd (mapped at 0xadc1df8a0000) STATIC: frr_sigevent_process+0x148 fcc704b79460 ffffd7451f40 /usr/lib/frr/libfrr.so.0 (mapped at 0xfcc704800000) STATIC: event_fetch+0x1c4 fcc704bc0834 ffffd7451f60 /usr/lib/frr/libfrr.so.0 (mapped at 0xfcc704800000) STATIC: frr_run+0x650 fcc704a5d230 ffffd7452080 /usr/lib/frr/libfrr.so.0 (mapped at 0xfcc704800000) STATIC: main+0x1d0 adc1df8be75c ffffd7452270 /usr/lib/frr/staticd (mapped at 0xadc1df8a0000) STATIC: __libc_init_first+0x7c fcc7045373fc ffffd74522b0 /lib/aarch64-linux-gnu/libc.so.6 (mapped at 0xfcc704510000) STATIC: __libc_start_main+0x98 fcc7045374cc ffffd74523c0 /lib/aarch64-linux-gnu/libc.so.6 (mapped at 0xfcc704510000) STATIC: _start+0x30 adc1df8be0f0 ffffd7452420 /usr/lib/frr/staticd (mapped at 0xadc1df8a0000) ``` Tracking this down, the crash occurs because every time we modify a SID, staticd executes some callbacks to modify the SID and finally it calls `apply_finish`, which re-adds the SID to the list `srv6_sids`. This leads to having the same SID multiple times in the `srv6_sids` list. When we delete all SIDs, staticd attempts to deallocate the same SID multiple times, which leads to the crash. This commit fixes the issue by moving the code that adds the SID to the list from the `apply_finish` callback to the `create` callback. This ensures that the SID is inserted into the list only once, when it is created. For all subsequent modifications, the SID is modified but not added to the list. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com> (cherry picked from commit 6037ea350c98fbce60d0a287720cd4e60f7a21ec)
2025-03-23Merge pull request #18463 from FRRouting/mergify/bp/stable/10.3/pr-18378Donald Sharp
bgpd: fix `set evpn gateway-ip ipv[46]` route-map (backport #18378)
2025-03-23bgpd: fix evpn attributes being dropped on inputmergify/bp/stable/10.3/pr-18378Tuetuopay
All assignments of the EVPN attributes (ESI and Gateway IP) are gated behind the peer being set up for inbound soft-reconfiguration. There are no actual reasons for this limitation, so let's perform the EVPN attribute assignment no matter what when soft reconfiguration is not enabled. Fixes: 6e076ba5231 ("bgpd: Fix for ain->attr corruption during path update") Signed-off-by: Tuetuopay <tuetuopay@me.com> (cherry picked from commit 7320659f78cbe86dd983d5101831120fc14583d7)
2025-03-23tests: add route-map evpn set gateway-ip topotestTuetuopay
This test does not actually look at the route since the gateway-ip is not exposed in vtysh output. However, this ensures such a route-map does not crash bgpd. Signed-off-by: Tuetuopay <tuetuopay@me.com> (cherry picked from commit 05a74323b9d440590074f22be11c34a605da69ad)
2025-03-23bgpd: fix `set evpn gateway-ip ipv[46]` route-mapTuetuopay
The `route_set_evpn_gateway_ip` function copies `gw_ip->ip.addr` in the route's gateway ip. In a nutshell, this skips the `ipa_type` field, writing the actual IP in the IP type. This later rightfully trips asserts about unknown IP types. The following route-map... ``` route-map test permit 10 set evpn gateway-ip ipv4 1.1.1.1 ``` ...will make the following gateway IP in the route: ``` (gdb) p/x a1->evpn_overlay->gw_ip $11 = {ipa_type = 0x1010101, ip = {addr = 0x0, addrbytes = { 0x0 <repeats 16 times>}, _v4_addr = {s_addr = 0x0}, _v6_addr = { __in6_u = {__u6_addr8 = {0x0 <repeats 16 times>}, __u6_addr16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, __u6_addr32 = {0x0, 0x0, 0x0, 0x0}}}}} ``` We do indeed see the IP Address in the `ipa_type` field. Fix by starting the memcpy at the root of `struct ipaddr` instead of skipping the `ipa_type` field. Fixes: d0a4ee6010a ("bgpd: Add "set evpn gateway-ip" clause for route-map") Signed-off-by: Tuetuopay <tuetuopay@me.com> (cherry picked from commit 0b0e7015971a788c14dd1dc9b5bac8cb66175c29)
2025-03-22Merge pull request #18455 from FRRouting/mergify/bp/stable/10.3/pr-18108Donald Sharp
zebra: Do not flush an existing vni configuration trying to remove wrong vni (backport #18108)
2025-03-22zebra: Do not flush an existing vni configuration trying to remove wrong vnimergify/bp/stable/10.3/pr-18108Donatas Abraitis
Before: ``` pc.donatas.net(config)# do sh run | include vni vni 1 pc.donatas.net(config)# no vni 2 pc.donatas.net(config)# do sh run | include vni pc.donatas.net(config)# ``` Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> (cherry picked from commit 44fe3981ee388f7c60ab2635309bce34774116e1)
2025-03-20Merge pull request #18437 from FRRouting/mergify/bp/stable/10.3/pr-18435Donald Sharp
bgpd: Fix leaked memory when showing some bgp routes (backport #18435)
2025-03-20Merge pull request #18439 from Jafaral/rpm-fixDonald Sharp
Fix rpm packaging for 10.3 (manual backport #18426)
2025-03-20redhat: Make sure zeromq is always disabledMartin Winter
Fix issue where zeromq is getting enabled if build system has the libs installed. For RPMs, we want it always based on intended config options. (and currently the zeromq is not part of the packages) Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2025-03-20redhat: Make docs and rpki optional for RPM package buildMartin Winter
Adding options to disable docs and rpki during the build. By default they are always built. RPKI sub-package will not be built (and not available) if built without the RPKI support. Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2025-03-20Revert "redhat: Add option to build pkg without docs and rpki support, allow ↵Martin Winter
for different system environments by including all built .so files" This reverts commit d89f21fc0602761f5adb0dd82b8c6e24a5636a20. Reverting original change from PR 17793. This commit breaks RPKI and SNMP sub-packages Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2025-03-20bgpd: Fix leaked memory when showing some bgp routesDonald Sharp
The two memory leaks: ==387155== 744 (48 direct, 696 indirect) bytes in 1 blocks are definitely lost in loss record 222 of 262 ==387155== at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==387155== by 0x4C1B982: json_object_new_object (in /usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0) ==387155== by 0x2E4146: peer_adj_routes (bgp_route.c:15245) ==387155== by 0x2E4F1A: show_ip_bgp_instance_neighbor_advertised_route_magic (bgp_route.c:15549) ==387155== by 0x2B982B: show_ip_bgp_instance_neighbor_advertised_route (bgp_route_clippy.c:722) ==387155== by 0x4915E6F: cmd_execute_command_real (command.c:1003) ==387155== by 0x4915FE8: cmd_execute_command (command.c:1062) ==387155== by 0x4916598: cmd_execute (command.c:1228) ==387155== by 0x49EB858: vty_command (vty.c:626) ==387155== by 0x49ED77C: vty_execute (vty.c:1389) ==387155== by 0x49EFFA7: vtysh_read (vty.c:2408) ==387155== by 0x49E4156: event_call (event.c:2019) ==387155== by 0x4958ABD: frr_run (libfrr.c:1247) ==387155== by 0x206A68: main (bgp_main.c:557) ==387155== ==387155== 2,976 (192 direct, 2,784 indirect) bytes in 4 blocks are definitely lost in loss record 240 of 262 ==387155== at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==387155== by 0x4C1B982: json_object_new_object (in /usr/lib/x86_64-linux-gnu/libjson-c.so.5.1.0) ==387155== by 0x2E45CA: peer_adj_routes (bgp_route.c:15325) ==387155== by 0x2E4F1A: show_ip_bgp_instance_neighbor_advertised_route_magic (bgp_route.c:15549) ==387155== by 0x2B982B: show_ip_bgp_instance_neighbor_advertised_route (bgp_route_clippy.c:722) ==387155== by 0x4915E6F: cmd_execute_command_real (command.c:1003) ==387155== by 0x4915FE8: cmd_execute_command (command.c:1062) ==387155== by 0x4916598: cmd_execute (command.c:1228) ==387155== by 0x49EB858: vty_command (vty.c:626) ==387155== by 0x49ED77C: vty_execute (vty.c:1389) ==387155== by 0x49EFFA7: vtysh_read (vty.c:2408) ==387155== by 0x49E4156: event_call (event.c:2019) ==387155== by 0x4958ABD: frr_run (libfrr.c:1247) ==387155== by 0x206A68: main (bgp_main.c:557) For the 1st one, if the operator issues a advertised-routes command, the json_ar variable was never being freed. For the 2nd one, if the operator issued a command where the output_count_per_rd is 0, we need to free the json_routes value. Signed-off-by: Donald Sharp <sharpd@nvidia.com> (cherry picked from commit 9651b159ccd18c81450251dbd3bae9c493b7a866)
2025-03-19Merge pull request #18433 from FRRouting/mergify/bp/stable/10.3/pr-18430Donald Sharp
lib: Create VRF if needed (backport #18430)
2025-03-19lib: Create VRF if neededmergify/bp/stable/10.3/pr-18430Nathan Bahr
When creating a control plane protocol through NB, create the vrf if needed instead of only looking up and asserting if it doesn't exist yet. Fixes 18429. Signed-off-by: Nathan Bahr <nbahr@atcorp.com> (cherry picked from commit b6ae01f907c071be6cd197df0f3ca6fe9baa631a)
2025-03-19Merge pull request #18422 from FRRouting/mergify/bp/stable/10.3/pr-18393Jafar Al-Gharaibeh
ospf6d: Disable and delete OSPFv3 areas that no longer have interfaces or configuration. (backport #18393)
2025-03-19 ospf6d: Disable and delete OSPFv3 areas that no longer have interfaces or ↵Acee Lindem
configuration. This fix will delete an OSPFv3 area when all the interfaces and configuration (ranges, NSSA ranges, stub area, NSSA area, filter-list, import-list and export-list) have been removed. The changes provides a general solution to https://github.com/FRRouting/frr/issues/18324. Signed-off-by: Acee Lindem <acee@lindem.com> (cherry picked from commit 04994891fe164b4d5a2819d3bc90e5346f94dc53)