summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--isisd/isis_affinitymap.c6
-rw-r--r--isisd/isis_flex_algo.c12
-rw-r--r--isisd/isis_spf.c9
-rw-r--r--isisd/isisd.c2
4 files changed, 16 insertions, 13 deletions
diff --git a/isisd/isis_affinitymap.c b/isisd/isis_affinitymap.c
index e681e820be..41bad0a7d9 100644
--- a/isisd/isis_affinitymap.c
+++ b/isisd/isis_affinitymap.c
@@ -20,6 +20,9 @@ static bool isis_affinity_map_check_use(const char *affmap_name)
struct affinity_map *map;
uint16_t pos;
+ if (!isis)
+ return false;
+
map = affinity_map_get(affmap_name);
pos = map->bit_position;
@@ -46,6 +49,9 @@ static void isis_affinity_map_update(const char *affmap_name, uint16_t old_pos,
struct flex_algo *fa;
bool changed;
+ if (!isis)
+ return;
+
for (ALL_LIST_ELEMENTS_RO(isis->area_list, area_node, area)) {
changed = false;
for (ALL_LIST_ELEMENTS_RO(area->flex_algos->flex_algos, fa_node,
diff --git a/isisd/isis_flex_algo.c b/isisd/isis_flex_algo.c
index 742a862fcd..0efc519eab 100644
--- a/isisd/isis_flex_algo.c
+++ b/isisd/isis_flex_algo.c
@@ -243,8 +243,6 @@ bool isis_flex_algo_constraint_drop(struct isis_spftree *spftree,
{
bool ret;
struct isis_ext_subtlvs *subtlvs = reach->subtlvs;
- uint8_t lspid_orig[ISIS_SYS_ID_LEN + 2];
- uint8_t lspid_neigh[ISIS_SYS_ID_LEN + 2];
struct isis_router_cap_fad *fad;
struct isis_asla_subtlvs *asla;
struct listnode *node;
@@ -286,15 +284,11 @@ bool isis_flex_algo_constraint_drop(struct isis_spftree *spftree,
if (link_admin_group && link_ext_admin_group) {
link_ext_admin_group_bitmap0 =
admin_group_get_offset(link_ext_admin_group, 0);
- if (*link_admin_group != link_ext_admin_group_bitmap0) {
- memcpy(lspid_orig, lsp->hdr.lsp_id,
- ISIS_SYS_ID_LEN + 2);
- memcpy(lspid_neigh, reach->id, ISIS_SYS_ID_LEN + 2);
+ if (*link_admin_group != link_ext_admin_group_bitmap0)
zlog_warn(
- "ISIS-SPF: LSP from %pLS neighbor %pLS. Admin-group 0x%08x differs from ext admin-group 0x%08x.",
- lspid_orig, lspid_neigh, *link_admin_group,
+ "ISIS-SPF: LSP from %pPN neighbor %pPN. Admin-group 0x%08x differs from ext admin-group 0x%08x.",
+ lsp->hdr.lsp_id, reach->id, *link_admin_group,
link_ext_admin_group_bitmap0);
- }
}
/*
diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c
index 732853796a..466e96b3a2 100644
--- a/isisd/isis_spf.c
+++ b/isisd/isis_spf.c
@@ -2884,7 +2884,8 @@ static void show_isis_route_common(struct vty *vty, int levels,
spftree = area->spftree[SPFTREE_IPV4]
[level - 1];
- isis_print_spftree(vty, spftree);
+ if (!json)
+ isis_print_spftree(vty, spftree);
isis_print_routes(vty, spftree,
json ? &json_val : NULL,
@@ -2905,7 +2906,8 @@ static void show_isis_route_common(struct vty *vty, int levels,
spftree = area->spftree[SPFTREE_IPV6]
[level - 1];
- isis_print_spftree(vty, spftree);
+ if (!json)
+ isis_print_spftree(vty, spftree);
isis_print_routes(vty, spftree,
json ? &json_val : NULL,
@@ -2927,7 +2929,8 @@ static void show_isis_route_common(struct vty *vty, int levels,
spftree = area->spftree[SPFTREE_DSTSRC]
[level - 1];
- isis_print_spftree(vty, spftree);
+ if (!json)
+ isis_print_spftree(vty, spftree);
isis_print_routes(vty, spftree,
json ? &json_val : NULL,
prefix_sid, backup);
diff --git a/isisd/isisd.c b/isisd/isisd.c
index f65d21405b..4b01a18ecd 100644
--- a/isisd/isisd.c
+++ b/isisd/isisd.c
@@ -3144,7 +3144,7 @@ static void area_resign_level(struct isis_area *area, int level)
for (ALL_LIST_ELEMENTS_RO(area->flex_algos->flex_algos, node,
fa)) {
data = fa->data;
- if (data->spftree[level - 1]) {
+ if (data->spftree[tree][level - 1]) {
isis_spftree_del(
data->spftree[tree][level - 1]);
data->spftree[tree][level - 1] = NULL;