Skip to content

Commit

Permalink
Merge pull request #16241 from zhou-run/202406191740
Browse files Browse the repository at this point in the history
isisd: The neighbor entry still displays the deleted hostname of the neighbor.
  • Loading branch information
riw777 authored Jul 9, 2024
2 parents 22db85a + f54970f commit 685712d
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 8 deletions.
2 changes: 1 addition & 1 deletion isisd/isis_adjacency.c
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ const char *isis_adj_name(const struct isis_adjacency *adj)
struct isis_dynhn *dyn;

dyn = dynhn_find_by_id(adj->circuit->isis, adj->sysid);
if (dyn)
if (adj->circuit->area->dynhostname && dyn)
return dyn->hostname;

snprintfrr(buf, sizeof(buf), "%pSY", adj->sysid);
Expand Down
24 changes: 17 additions & 7 deletions isisd/isis_lsp.c
Original file line number Diff line number Diff line change
Expand Up @@ -482,13 +482,19 @@ static void lsp_update_data(struct isis_lsp *lsp, struct isis_lsp_hdr *hdr,

lsp->tlvs = tlvs;

if (area->dynhostname && lsp->tlvs->hostname
&& lsp->hdr.rem_lifetime) {
isis_dynhn_insert(
area->isis, lsp->hdr.lsp_id, lsp->tlvs->hostname,
(lsp->hdr.lsp_bits & LSPBIT_IST) == IS_LEVEL_1_AND_2
? IS_LEVEL_2
: IS_LEVEL_1);
if (area->dynhostname && lsp->hdr.rem_lifetime) {
if (lsp->tlvs->hostname) {
isis_dynhn_insert(area->isis, lsp->hdr.lsp_id,
lsp->tlvs->hostname,
(lsp->hdr.lsp_bits & LSPBIT_IST) ==
IS_LEVEL_1_AND_2
? IS_LEVEL_2
: IS_LEVEL_1);
} else {
if (!LSP_PSEUDO_ID(lsp->hdr.lsp_id) &&
!LSP_FRAGMENT(lsp->hdr.lsp_id))
isis_dynhn_remove(area->isis, lsp->hdr.lsp_id);
}
}

return;
Expand Down Expand Up @@ -2220,6 +2226,10 @@ void lsp_tick(struct event *thread)
&area->lspdb[level],
next);

if (!LSP_PSEUDO_ID(lsp->hdr.lsp_id))
isis_dynhn_remove(area->isis,
lsp->hdr.lsp_id);

lspdb_del(&area->lspdb[level], lsp);
lsp_destroy(lsp);
lsp = NULL;
Expand Down
3 changes: 3 additions & 0 deletions tests/topotests/isis_topo1/test_isis_topo1.py
Original file line number Diff line number Diff line change
Expand Up @@ -679,6 +679,9 @@ def _check_lsp_overload_bit(router, overloaded_router_lsp, att_p_ol_expected):
)

database_json = json.loads(isis_database_output)
if "lsps" not in database_json["areas"][0]["levels"][1]:
return "The LSP of {} has not been synchronized yet ".format(router.name)

att_p_ol = database_json["areas"][0]["levels"][1]["lsps"][0]["attPOl"]
if att_p_ol == att_p_ol_expected:
return True
Expand Down

0 comments on commit 685712d

Please sign in to comment.