]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: Fix openfabric crash
authorCarmine Scarpitta <cscarpit@cisco.com>
Fri, 3 Nov 2023 09:03:46 +0000 (10:03 +0100)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Sun, 5 Nov 2023 21:40:06 +0000 (21:40 +0000)
`isis_srv6_area_init` should not use `yang_get_default_*` functions for
fabricd.

Fixes: https://github.com/FRRouting/frr/issues/14722
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
(cherry picked from commit 7e5f1a0bb48c0589774de2ee244887d3c37d1b62)

isisd/isis_srv6.c
isisd/isis_srv6.h

index 0eb8ac3fb75fedce3d4f5a93fddc88d84d9a997e..e3432624b96ff5fd92cf66b7583888d8cb91b6df 100644 (file)
@@ -777,6 +777,7 @@ void isis_srv6_area_init(struct isis_area *area)
        srv6db->srv6_endx_sids = list_new();
 
        /* Pull defaults from the YANG module */
+#ifndef FABRICD
        srv6db->config.enabled = yang_get_default_bool("%s/enabled", ISIS_SRV6);
        srv6db->config.max_seg_left_msd =
                yang_get_default_uint8("%s/msd/node-msd/max-segs-left",
@@ -789,6 +790,14 @@ void isis_srv6_area_init(struct isis_area *area)
        srv6db->config.max_end_d_msd =
                yang_get_default_uint8("%s/msd/node-msd/max-end-d", ISIS_SRV6);
        strncpy(srv6db->config.srv6_ifname, yang_get_default_string("%s/interface", ISIS_SRV6), IF_NAMESIZE - 1);
+#else
+       srv6db->config.enabled = false;
+       srv6db->config.max_seg_left_msd = ISIS_DEFAULT_SRV6_MAX_SEG_LEFT_MSD;
+       srv6db->config.max_end_pop_msd = ISIS_DEFAULT_SRV6_MAX_END_POP_MSD;
+       srv6db->config.max_h_encaps_msd = ISIS_DEFAULT_SRV6_MAX_H_ENCAPS_MSD;
+       srv6db->config.max_end_d_msd = ISIS_DEFAULT_SRV6_MAX_END_D_MSD;
+       strlcpy(srv6db->config.srv6_ifname, ISIS_DEFAULT_SRV6_IFNAME, sizeof(srv6db->config.srv6_ifname));
+#endif
 
        /* Initialize SRv6 Locator chunks list */
        srv6db->srv6_locator_chunks = list_new();
index 65c0978bc55aa5c799ac9b7e9a64d4a95cc8687b..33864360c109336045f8c9328a1aecc60d80b2e3 100644 (file)
 #include "lib/srv6.h"
 #include "isisd/isis_tlvs.h"
 
+#define ISIS_DEFAULT_SRV6_MAX_SEG_LEFT_MSD        3
+#define ISIS_DEFAULT_SRV6_MAX_END_POP_MSD         3
+#define ISIS_DEFAULT_SRV6_MAX_H_ENCAPS_MSD        2
+#define ISIS_DEFAULT_SRV6_MAX_END_D_MSD           5
+#define ISIS_DEFAULT_SRV6_IFNAME                 "sr0"
+
 /* SRv6 SID structure */
 struct isis_srv6_sid_structure {
        uint8_t loc_block_len;