diff options
| author | zhou-run <166502045+zhou-run@users.noreply.github.com> | 2024-05-27 11:08:53 +0800 |
|---|---|---|
| committer | baozhen (RD) <bao.zhen@h3c.com> | 2024-05-27 16:39:30 +0800 |
| commit | 1f5446d2fc83e2eba9e693bc5f439723d5f48865 (patch) | |
| tree | 9a1e9224b8ab32ebfb7ccb5a1d6f40d376f1151a /isisd/isis_nb_config.c | |
| parent | ebdbb0e3fedd89514e4e40edc6e967b62a7e450c (diff) | |
isisd: When operating multiple areas, the system ID behaves abnormally.
When clearing the net in one of the areas, the system ID is unconditionally cleared, even if the net does not include the current system ID.
Signed-off-by: zhou-run <166502045+zhou-run@users.noreply.github.com>
isisd: When operating multiple areas, the system ID behaves abnormally.
When deleting one of the areas, even if the net under the area includes the current system ID, the system ID still remains.
Signed-off-by: zhou-run <166502045+zhou-run@users.noreply.github.com>
isisd: fix frrbot styling issues found
fix frrbot styling issues found
Signed-off-by: zhou-run <166502045+zhou-run@users.noreply.github.com>
isisd: fix frrbot styling issues found
fix frrbot styling issues found
Signed-off-by: zhou-run <166502045+zhou-run@users.noreply.github.com>
isisd: Resolve compilation issues.
The higher version updates 'struct area_addr' to 'struct iso_address'.
Signed-off-by: zhou-run <166502045+zhou-run@users.noreply.github.com>
isisd: fix frrbot styling issues found
fix frrbot styling issues found
Signed-off-by: zhou-run <166502045+zhou-run@users.noreply.github.com>
Diffstat (limited to 'isisd/isis_nb_config.c')
| -rw-r--r-- | isisd/isis_nb_config.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/isisd/isis_nb_config.c b/isisd/isis_nb_config.c index 763b8b73d2..0a343ddc29 100644 --- a/isisd/isis_nb_config.c +++ b/isisd/isis_nb_config.c @@ -252,11 +252,12 @@ int isis_instance_area_address_destroy(struct nb_cb_destroy_args *args) return NB_ERR_INCONSISTENCY; listnode_delete(area->area_addrs, addrp); - XFREE(MTYPE_ISIS_AREA_ADDR, addrp); /* * Last area address - reset the SystemID for this router */ - if (listcount(area->area_addrs) == 0) { + if (!memcmp(addrp->area_addr + addrp->addr_len, area->isis->sysid, + ISIS_SYS_ID_LEN) && + listcount(area->area_addrs) == 0) { for (ALL_LIST_ELEMENTS_RO(area->circuit_list, cnode, circuit)) for (lvl = IS_LEVEL_1; lvl <= IS_LEVEL_2; ++lvl) { if (circuit->u.bc.is_dr[lvl - 1]) @@ -268,6 +269,8 @@ int isis_instance_area_address_destroy(struct nb_cb_destroy_args *args) zlog_debug("Router has no SystemID"); } + XFREE(MTYPE_ISIS_AREA_ADDR, addrp); + return NB_OK; } |
