summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-03-03rustlibd: rust daemon templatedev/rust-skelChristian Hopps
Signed-off-by: Christian Hopps <chopps@labn.net>
2025-03-03lib: add FRR utility functions for rust codeChristian Hopps
Signed-off-by: Christian Hopps <chopps@labn.net>
2025-03-03lib: add extern available variadic zlog functionChristian Hopps
Signed-off-by: Christian Hopps <chopps@labn.net>
2025-03-03rustbind: remove: rust binary based daemon skeleton codeChristian Hopps
Signed-off-by: Christian Hopps <chopps@labn.net>
2025-03-03rustbind: capture rust binary based daemon skeleton code workChristian Hopps
Signed-off-by: Christian Hopps <chopps@labn.net>
2025-03-03Merge pull request #18289 from cscarpitta/fix/fix_no_srv6_staticdDonatas Abraitis
staticd: Fix `no srv6` command
2025-03-03Merge pull request #18290 from cscarpitta/fix/fix_frr_reload_static_sidsDonatas Abraitis
tools: Fix `frr-reload.py` error related to `static-sids`
2025-03-02tools: Fix `frr-reload.py` error related to `static-sids`Carmine Scarpitta
``` [...] segment-routing srv6 static-sids sid fcbb:bbbb:1::/48 locator MAIN behavior uN sid fcbb:bbbb:1:fe10::/64 locator MAIN behavior uDT4 vrf Vrf10 sid fcbb:bbbb:1:fe20::/64 locator MAIN behavior uDT6 vrf Vrf20 sid fcbb:bbbb:1:fe30::/64 locator MAIN behavior uDT46 vrf Vrf30 sid fcbb:bbbb:1:fe40::/64 locator MAIN behavior uA interface sr0 nexthop 2001::2 [...] ``` When the user has a configuration like the one above and runs the command `frr-reload.py --reload`, the following error occurs: ``` [1129654|mgmtd] sending configuration line 17: % Unknown command[76]: sid fcbb:bbbb:1::/48 locator MAIN behavior uN line 23: % Unknown command[76]: sid fcbb:bbbb:1:fe10::/64 locator MAIN behavior uDT4 vrf Vrf10 line 29: % Unknown command[76]: sid fcbb:bbbb:1:fe20::/64 locator MAIN behavior uDT6 vrf Vrf20 line 35: % Unknown command[76]: sid fcbb:bbbb:1:fe30::/64 locator MAIN behavior uDT46 vrf Vrf30 line 41: % Unknown command[76]: sid fcbb:bbbb:1:fe40::/64 locator MAIN behavior uA interface sr0 nexthop 2001::2 ``` The problem is that in `frr-reload-py` all commands that start a new multi-line context must be included in the `ctx_keyword` dictionary. However, the `static-sids` command is not part of the `ctx_keyword` dictionary. This commit fixes the problem by adding `static-sids` to `ctx_keyword`. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-03-01tests: Add test case to verify that SIDs can be re-addedCarmine Scarpitta
Add a test case to verify that staticd is able to re-install all SIDs after disabling and re-enabling SRv6. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-03-01tests: Add test case to verify `no srv6` commandCarmine Scarpitta
Add a test case to verify that staticd removes all SIDs when the `no srv6` command is executed. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-03-01staticd: Fix `no srv6` commandCarmine Scarpitta
A user can configure static SIDs as follows: [...] segment-routing srv6 static-sids sid fcbb:bbbb:1::/48 locator MAIN behavior uN sid fcbb:bbbb:1:fe00::/64 locator MAIN behavior uDT46 [...] When the user runs vtysh and executes the `no srv6` command, the expectation is that staticd will deallocate all SIDs. However, currently FRR does not behaves as expected. After the user executes `no srv6`, the SIDs are still present. The problem is that vtysh does not forward the `no srv6` command to mgmtd/staticd. The `no srv6` command is defined using the `DEFUN_YANG_NOSH` macro, which instructs `xref2vtysh.py` to skip the `no srv6` command during the generation of `vtysh_cmd.c`. As a result, vtysh is unaware that it should forward the `no srv6` command to mgmtd/staticd. This commit fixes the issue by replacing `DEFUN_YANG_NOSH` with `DEFUN_YANG`. This change ensures that `xref2vtysh.py` includes the `no srv6` command when generating `vtysh_cmd.c` and makes vtysh forward the `no srv6` command to mgmtd/staticd. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-28Merge pull request #18285 from opensourcerouting/pim-csDonald Sharp
pimd: fix null memory access on IGMP source limit
2025-02-28pimd: fix null memory access on IGMP source limitRafael Zalamena
When the IGMP group source limit is reached the function `igmp_get_source_by_addr` won't return a `struct gm_source` so we must test for that condition before attempting to access its fields. Fixes coverity scan issue 1637406. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2025-02-28Merge pull request #18263 from cscarpitta/fix/add_no_form_for_static_sids_cliDonald Sharp
staticd: Add `no` form for `static-sids` command
2025-02-28Merge pull request #18159 from pguibert6WIND/bgp_ecommlist_countDonatas Abraitis
Bgp ecommlist count
2025-02-27topotests: add bgp ecommunity-list match testPhilippe Guibert
Add a test suite that checks that it is possible to filter out BGP updates based on the extcommunity-list match operation of the route-map. Check also the extcommunity-limit option. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2025-02-27bgpd: add match ecommunity <exact|any> optionsPhilippe Guibert
The exact-match and the any options are missing for the extended communities. Add missing options that are present on the match operations for communities and large-communities. > route-map rmap permit 1 > match extcommunity 1 > exit > ! > route-map rmap permit 2 > match extcommunity 2 any > exit > ! > route-map rmap permit 3 > match extcommunity 3 exact-match > exit Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2025-02-27yang: enlarge community-limit count from [1-1024] to [0-1024]Philippe Guibert
It should be possible to configure the community-limit count to 0. Fixes: f19b8668b3cb ("bgpd: add 'match community-count' command to restrict comm count") Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2025-02-27bgpd: add 'match extcommunity-count' command to restrict comm countPhilippe Guibert
Add a mechanism in route-map to filter out route-map which have a list of extended communities greater than the given number. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2025-02-27Merge pull request #18264 from donaldsharp/mgmt_use_after_freeJafar Al-Gharaibeh
mgmtd: Prevent use after free
2025-02-27Merge pull request #18270 from donaldsharp/zclient_crash_in_label_chunkMark Stapp
lib: Prevent crash in getting label chunk
2025-02-27lib: Prevent crash in getting label chunkDonald Sharp
ldpd has this crash: (gdb) bt 0 __pthread_kill_implementation (no_tid=0, signo=11, threadid=140329211443648) at ./nptl/pthread_kill.c:44 1 __pthread_kill_internal (signo=11, threadid=140329211443648) at ./nptl/pthread_kill.c:78 2 __GI___pthread_kill (threadid=140329211443648, signo=signo@entry=11) at ./nptl/pthread_kill.c:89 3 0x00007fa0f0642476 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26 4 0x00007fa0f0b51944 in core_handler (signo=11, siginfo=0x7fff562810b0, context=0x7fff56280f80) at lib/sigevent.c:268 5 <signal handler called> 6 0x00007fa0f0b9534d in lm_get_label_chunk (zclient=0x0, keep=0 '\000', base=0, chunk_size=64, start=0x7fff56281bdc, end=0x7fff56281be0) at lib/zclient.c:3667 7 0x0000564e0d1c011e in lde_get_label_chunk () at ldpd/lde.c:2211 8 0x0000564e0d1c05f8 in lde_get_next_label () at ldpd/lde.c:2318 9 0x0000564e0d1bcb29 in lde_update_label (fn=0x564e16653050) at ldpd/lde.c:783 10 0x0000564e0d1c1fbe in lde_kernel_update (fec=0x7fff56281cb0) at ldpd/lde_lib.c:422 11 0x0000564e0d1b96c0 in l2vpn_pw_init (pw=0x564e165d1fa0) at ldpd/l2vpn.c:242 12 0x0000564e0d1b2d32 in merge_l2vpn (xconf=0x564e166424f0, l2vpn=0x564e166160a0, xl=0x564e165eabb0) at ldpd/ldpd.c:1883 13 0x0000564e0d1b28ea in merge_l2vpns (conf=0x564e166424f0, xconf=0x564e16653650) at ldpd/ldpd.c:1813 14 0x0000564e0d1b1244 in merge_config (conf=0x564e166424f0, xconf=0x564e16653650) at ldpd/ldpd.c:1321 15 0x0000564e0d1bc485 in lde_dispatch_parent (thread=0x7fff56282060) at ldpd/lde.c:611 16 0x00007fa0f0b6cebc in event_call (thread=0x7fff56282060) at lib/event.c:2019 17 0x0000564e0d1baee7 in lde () at ldpd/lde.c:155 18 0x0000564e0d1ae4b8 in main (argc=0, argv=0x7fff56282298) at ldpd/ldpd.c:312 (gdb) Since it is possible to be asking for label data before the zclient has been connected, let's just return -1 in the case where zclient is not initialized yet either, since this is effectively the same thing as the sock being < 0. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2025-02-27Merge pull request #18271 from cscarpitta/fix/fix_valgrind_errorChristian Hopps
staticd: Do not log uninitialized `nexthop` variable
2025-02-27tests: Add test case to verify that SIDs can be re-addedCarmine Scarpitta
Add a test case to verify that staticd is able to re-install all SIDs after deleting and re-adding them. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-27tests: Add test case to verify `no static-sids` commandCarmine Scarpitta
Add a test case to verify that staticd removes all SIDs when the `no static-sids` command is executed. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-27vtysh: Add `no static-sids` commandCarmine Scarpitta
Previous commits introduced the `no` form for the `static-sids` command. This change allow users to remove all static SIDs at once. This commit makes the `no static-sids` command available in vtysh. ``` router# config router(config)# segment-routing router(sr)# srv6 router(srv6)# no static-sids ``` Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-27staticd: Add `no` form for `static-sids` commandCarmine Scarpitta
Currently, when the user tries to delete all static SIDs with the `no static-sids` command, staticd returns an error. ``` router# config router(config)# segment-routing router(sr)# srv6 router(srv6)# no static-sids % Unknown command: no static-sids ``` The problem is the `static-sids` command does not support the `no` form. This PR enables the `no` form for the `static-sids` command. ``` router# config router(config)# segment-routing router(sr)# srv6 router(srv6)# no static-sids ``` Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-27staticd: Convert `static-sids` command to DEFPYCarmine Scarpitta
This commit converts the `static-sids` command from `DEFUN` to `DEFPY` to simplify the parsing of the command string definition. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-27staticd: Do not log uninitialized `nexthop` variableCarmine Scarpitta
When running valgrind, the following error is observed. ``` ==2474568== Memcheck, a memory error detector ==2474568== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==2474568== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info ==2474568== Command: /usr/lib/frr/staticd --command-log-always --log file:staticd.log --log-level debug -d ==2474568== Parent PID: 2474525 ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B32A: inet_ntop (ntop.c:105) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B334: inet_ntop (ntop.c:105) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B343: inet_ntop (ntop.c:105) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B34D: inet_ntop (ntop.c:105) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B35B: inet_ntop (ntop.c:105) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B367: inet_ntop (ntop.c:105) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B6B9: inet_ntop (ntop.c:105) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B6C6: inet_ntop (ntop.c:105) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B3AA: inet_ntop (ntop.c:105) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B708: inet_ntop (ntop.c:105) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B711: inet_ntop (ntop.c:105) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B3DE: inet_ntop (ntop.c:105) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B3E8: inet_ntop (ntop.c:105) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B499: puthex (ntop.c:64) ==2474568== by 0x490B499: inet_ntop (ntop.c:150) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B73D: puthex (ntop.c:66) ==2474568== by 0x490B73D: inet_ntop (ntop.c:150) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Conditional jump or move depends on uninitialised value(s) ==2474568== at 0x490B747: puthex (ntop.c:68) ==2474568== by 0x490B747: inet_ntop (ntop.c:150) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Use of uninitialised value of size 8 ==2474568== at 0x490B4D2: puthex (ntop.c:69) ==2474568== by 0x490B4D2: inet_ntop (ntop.c:150) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Use of uninitialised value of size 8 ==2474568== at 0x490B4DD: puthex (ntop.c:70) ==2474568== by 0x490B4DD: inet_ntop (ntop.c:150) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Use of uninitialised value of size 8 ==2474568== at 0x490B4A8: puthex (ntop.c:65) ==2474568== by 0x490B4A8: inet_ntop (ntop.c:150) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== Use of uninitialised value of size 8 ==2474568== at 0x490B4BC: puthex (ntop.c:67) ==2474568== by 0x490B4BC: inet_ntop (ntop.c:150) ==2474568== by 0x49AB9CB: printfrr_i6 (prefix.c:1614) ==2474568== by 0x4A24B19: printfrr_extp (glue.c:220) ==2474568== by 0x4A2286E: vbprintfrr (vfprintf.c:626) ==2474568== by 0x4A12AE2: zlog_msg_text (zlog.c:838) ==2474568== by 0x4A11B83: vzlog_tls (zlog.c:497) ==2474568== by 0x4A12561: vzlogx (zlog.c:722) ==2474568== by 0x129AE8: zlog_ref (zlog.h:84) ==2474568== by 0x12BD35: routing_control_plane_protocols_control_plane_protocol_staticd_segment_routing_srv6_local_sids_sid_paths_next_hop_modify (static_nb_config.c:1299) ==2474568== by 0x498ABF8: nb_callback_modify (northbound.c:1579) ==2474568== by 0x498BB35: nb_callback_configuration (northbound.c:1930) ==2474568== by 0x498A03C: nb_candidate_validate_code (northbound.c:1287) ==2474568== by 0x498A2C1: nb_candidate_commit_prepare (northbound.c:1358) ==2474568== by 0x496F414: mgmt_be_txn_cfg_prepare (mgmt_be_client.c:579) ==2474568== by 0x496FBB8: mgmt_be_process_cfgdata_req (mgmt_be_client.c:717) ==2474568== by 0x49703A9: mgmt_be_client_handle_msg (mgmt_be_client.c:851) ==2474568== by 0x49718B9: mgmt_be_client_process_msg (mgmt_be_client.c:1261) ==2474568== by 0x4976810: mgmt_msg_procbufs (mgmt_msg.c:193) ==2474568== by 0x497771A: msg_conn_proc_msgs (mgmt_msg.c:526) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== ==2474568== HEAP SUMMARY: ==2474568== in use at exit: 2,098 bytes in 8 blocks ==2474568== total heap usage: 48,668 allocs, 48,660 frees, 15,837,383 bytes allocated ==2474568== ==2474568== 69 bytes in 1 blocks are still reachable in loss record 3 of 8 ==2474568== at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==2474568== by 0x4D2058E: strdup (strdup.c:42) ==2474568== by 0x496CA96: qstrdup (memory.c:118) ==2474568== by 0x4A1DD4B: zlog_file_set_filename (zlog_targets.c:244) ==2474568== by 0x4969ADA: set_log_file (log_vty.c:371) ==2474568== by 0x4969CD0: command_setup_early_logging (log_vty.c:419) ==2474568== by 0x49576FE: frr_init (libfrr.c:770) ==2474568== by 0x1156C6: main (static_main.c:164) ==2474568== ==2474568== 69 bytes in 1 blocks are still reachable in loss record 4 of 8 ==2474568== at 0x4848899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==2474568== by 0x4D2058E: strdup (strdup.c:42) ==2474568== by 0x496CA96: qstrdup (memory.c:118) ==2474568== by 0x4A1DD4B: zlog_file_set_filename (zlog_targets.c:244) ==2474568== by 0x4969ADA: set_log_file (log_vty.c:371) ==2474568== by 0x496A052: config_log_file_magic (log_vty.c:542) ==2474568== by 0x496845F: config_log_file (log_vty_clippy.c:148) ==2474568== by 0x4915E8B: cmd_execute_command_real (command.c:1003) ==2474568== by 0x4916004: cmd_execute_command (command.c:1062) ==2474568== by 0x49165B4: cmd_execute (command.c:1228) ==2474568== by 0x49EB7EA: vty_command (vty.c:626) ==2474568== by 0x49ED70E: vty_execute (vty.c:1389) ==2474568== by 0x49EFF39: vtysh_read (vty.c:2408) ==2474568== by 0x49E40E2: event_call (event.c:2019) ==2474568== by 0x4958AD9: frr_run (libfrr.c:1246) ==2474568== by 0x11581D: main (static_main.c:193) ==2474568== ==2474568== LEAK SUMMARY: ==2474568== definitely lost: 0 bytes in 0 blocks ==2474568== indirectly lost: 0 bytes in 0 blocks ==2474568== possibly lost: 0 bytes in 0 blocks ==2474568== still reachable: 138 bytes in 2 blocks ==2474568== suppressed: 1,960 bytes in 6 blocks ==2474568== ==2474568== Use --track-origins=yes to see where uninitialised values come from ==2474568== For lists of detected and suppressed errors, rerun with: -s ==2474568== ERROR SUMMARY: 41 errors from 20 contexts (suppressed: 0 from 0) ``` The error is caused by staticd attempting to log the `nexthop` variable before it is initialized. Since logging that variable currently does not work and would not provide any useful information anyway, this commit fixes the problem by changing the staticd code to not log that variable. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-26Merge pull request #18254 from ↵Donald Sharp
LabNConsulting/aceelindem/ospf6-abr-calc-addr-sanity ospf6d: Fix use after free of router in OSPFv3 ABR route calculation.
2025-02-26Merge pull request #18261 from y-bharath14/srib-tests-v1Donald Sharp
tests: Fixed input dict at create_router_bgp
2025-02-26mgmtd: Prevent use after freeDonald Sharp
ci is picking up this use after free on occasion: ERROR: AddressSanitizer: attempting to call malloc_usable_size() for pointer which is not owned: 0x6030001d94a0 0 0x7fab994b7f04 in __interceptor_malloc_usable_size ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:119 1 0x7fab994264f6 in __sanitizer::BufferedStackTrace::Unwind(unsigned long, unsigned long, void*, bool, unsigned int) ../../../../src/libsanitizer/sanitizer_common/sanitizer_stacktrace.h:131 2 0x7fab994264f6 in __asan::asan_malloc_usable_size(void const*, unsigned long, unsigned long) ../../../../src/libsanitizer/asan/asan_allocator.cpp:1058 3 0x7fab99039bcf in mt_count_free lib/memory.c:78 4 0x7fab99039bcf in qfree lib/memory.c:130 5 0x7fab98ff971a in hash_clean lib/hash.c:290 6 0x56110cdb0e7f in mgmt_txn_hash_destroy mgmtd/mgmt_txn.c:1881 7 0x56110cdb0e7f in mgmt_txn_destroy mgmtd/mgmt_txn.c:2013 8 0x56110cd8e5de in mgmt_terminate mgmtd/mgmt.c:91 9 0x56110cd8e003 in sigint mgmtd/mgmt_main.c:90 10 0x7fab990bf4b0 in frr_sigevent_process lib/sigevent.c:117 11 0x7fab990ea7a1 in event_fetch lib/event.c:1740 12 0x7fab9901a24e in frr_run lib/libfrr.c:1245 13 0x56110cd8e21f in main mgmtd/mgmt_main.c:290 14 0x7fab98af9249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 15 0x7fab98af9304 in __libc_start_main_impl ../csu/libc-start.c:360 16 0x56110cd8dd30 in _start (/usr/lib/frr/mgmtd+0x3ad30) 0x6030001d94a0 is located 0 bytes inside of 24-byte region [0x6030001d94a0,0x6030001d94b8) freed by thread T0 here: 0 0x7fab994b76a8 in __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:52 1 0x7fab99039bf0 in qfree lib/memory.c:131 2 0x7fab98ff93e1 in hash_release lib/hash.c:227 3 0x56110cdaabdc in mgmt_txn_unlock mgmtd/mgmt_txn.c:1931 4 0x56110cdab049 in mgmt_txn_delete mgmtd/mgmt_txn.c:1841 5 0x56110cdab0ce in mgmt_txn_hash_free mgmtd/mgmt_txn.c:1864 6 0x7fab98ff970b in hash_clean lib/hash.c:288 7 0x56110cdb0e7f in mgmt_txn_hash_destroy mgmtd/mgmt_txn.c:1881 8 0x56110cdb0e7f in mgmt_txn_destroy mgmtd/mgmt_txn.c:2013 9 0x56110cd8e5de in mgmt_terminate mgmtd/mgmt.c:91 10 0x56110cd8e003 in sigint mgmtd/mgmt_main.c:90 11 0x7fab990bf4b0 in frr_sigevent_process lib/sigevent.c:117 12 0x7fab990ea7a1 in event_fetch lib/event.c:1740 13 0x7fab9901a24e in frr_run lib/libfrr.c:1245 14 0x56110cd8e21f in main mgmtd/mgmt_main.c:290 15 0x7fab98af9249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 previously allocated by thread T0 here: 0 0x7fab994b83b7 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:77 1 0x7fab990392fd in qcalloc lib/memory.c:106 2 0x7fab98ff8b4f in hash_get lib/hash.c:156 3 0x56110cdb13ae in mgmt_txn_create_new mgmtd/mgmt_txn.c:1825 4 0x56110cdb3b4d in mgmt_txn_notify_be_adapter_conn mgmtd/mgmt_txn.c:2212 5 0x56110cd91178 in mgmt_be_adapter_conn_init mgmtd/mgmt_be_adapter.c:842 6 0x7fab990ec6de in event_call lib/event.c:2019 7 0x7fab9901a243 in frr_run lib/libfrr.c:1246 8 0x56110cd8e21f in main mgmtd/mgmt_main.c:290 9 0x7fab98af9249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 The only time that mgmt_txn_hash_free is called is in hash_clean. There are other places that mgmt_txn_unlock/delete are called and hash_release should be called. Let's just notice when mgmtd is being called from the hash_clean and not call hash_release (since we know it is being released already) Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2025-02-26Merge pull request #18237 from LabNConsulting/chopps/oper-walk-treeDonald Sharp
support pre-built oper state in libyang tree
2025-02-26Merge pull request #18242 from kaffarell/masterDonald Sharp
fabricd: add option to treat dummy interfaces as loopback interfaces
2025-02-26Merge pull request #18198 from cscarpitta/feature/srv6_staticd_uaRuss White
staticd: Add support for SRv6 uA behavior
2025-02-26tests: add oper test using existing libyang state treeChristian Hopps
Signed-off-by: Christian Hopps <chopps@labn.net>
2025-02-26lib: nb: fix bug with oper-state query on list dataChristian Hopps
The capacity of the xpath string was not guaranteed to be sufficient to hold all the key predicates and so would truncate. Calculate the required space and guarantee that it is available. Signed-off-by: Christian Hopps <chopps@labn.net>
2025-02-26lib: nb: notification add locking support for multi-threadingChristian Hopps
Signed-off-by: Christian Hopps <chopps@labn.net>
2025-02-26fabricd: add option to treat dummy interfaces as loopback interfacesGabriel Goller
Enable dummy-interfaces to be used as router-id interfaces in openfabric networks. This allows multiple openfabric routers with different router-ids on a single node when using IP unnumbered setup (interfaces without IPs configured). Previously we were limited by having a single loopback interface, allowing only one openfabric router per node. Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
2025-02-26Merge pull request #18235 from donaldsharp/static_registering_unknown_vrfDonatas Abraitis
staticd: Fix crash because registering unknown vrf
2025-02-26doc: Add SRv6 uA SID configuration to staticd documentationCarmine Scarpitta
This commit adds detailed explanation on configuring SRv6 uA SIDs. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-26tests: Add test case to verify the programming of SRv6 uA SIDsCarmine Scarpitta
This commit adds a test case to ensure staticd correctly programs SRv6 uA SIDs in the RIB. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-26staticd: Extend SRv6 SIDs show CLI to display uA SIDsCarmine Scarpitta
This commit extends the SRv6 SIDs show CLI to display the configured SRv6 uA SIDs. ``` segment-routing srv6 static-sids sid fcbb:bbbb:1:fe40::/64 locator MAIN behavior uA interface sr0 nexthop 2001::2 ! ! ! ``` Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-26staticd: Extend CLI to unconfigure an SRv6 uA SIDCarmine Scarpitta
This commit extends the STATIC CLI to support the deletion of uA SIDs. ``` router(config)# no sid fcbb:bbbb:1:fe00::/64 locator MAIN behavior uA interface sr0 nexthop 2001::2 ``` Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-26staticd: Extend CLI to configure an SRv6 uA SIDCarmine Scarpitta
This commit extends the STATIC CLI to support the configuration of uA SIDs. ``` router(config)# sid fcbb:bbbb:1:fe00::/64 locator MAIN behavior uA interface sr0 nexthop 2001::2 ``` Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-26staticd: Extend `static_zebra_srv6_sid_uninstall` to uninstall SRv6 uA SIDsCarmine Scarpitta
This commit extends the `static_zebra_srv6_sid_uninstall` function to allow staticd to remove SRv6 uA SIDs from the zebra RIB. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-26staticd: Extend `static_zebra_srv6_sid_install` to install SRv6 uA SIDsCarmine Scarpitta
This commit extends the `static_zebra_srv6_sid_install` function to allow staticd to install SRv6 uA SIDs into the zebra RIB. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-26staticd: Extend `static_zebra_release_srv6_sid` to release SRv6 uA SIDsCarmine Scarpitta
When removing an SRv6 uA SID, staticd should ask SRv6 SID Manager to release the SID. Currently, `static_zebra_release_srv6_sid` does not allow to release uA SIDs. This commit extends `static_zebra_release_srv6_sid` to allow staticd to release SRv6 uA SIDs. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-26staticd: Extend `static_zebra_request_srv6_sid` to request SRv6 uA SIDsCarmine Scarpitta
In order to configure an SRv6 uA SID in staticd, staticd should request SRv6 SID Manager to allocate a SID bound to the uA behavior. Currently, `static_zebra_request_srv6_sid` does not support requesting SIDs bound to the uA behavior. This commit extends the `static_zebra_request_srv6_sid` function to enable staticd to request SIDs bound to the uA behavior. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2025-02-26staticd: Add nb callbacks to configure a nexthop for SRv6 uA behaviorCarmine Scarpitta
An SRv6 uA SID is associated with the interface and (optionally) the IPv6 address of the nexthop. This commit adds the modify and destroy nortbound callbacks required to set the nexthop. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>