]> git.puffer.fish Git - mirror/frr.git/commit
isisd: Add func to process a deleted SRv6 locator
authorCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Thu, 9 Feb 2023 18:11:05 +0000 (19:11 +0100)
committerCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Mon, 11 Sep 2023 15:34:54 +0000 (17:34 +0200)
commitd223a8167e471c9297a6b33cd97fec37e97ca3c5
tree6dc173ecfde04aa65c7af87881ed06426087a510
parent5b9c03b0d36f680d5f4cd5134443d4e79d629c0f
isisd: Add func to process a deleted SRv6 locator

Add a callback function `isis_zebra_process_srv6_locator_delete()` that
is called when an SRv6 locator is deleted in zebra.

When an existing SRv6 locator is deleted in zebra, zebra sends a
ZEBRA_SRV6_LOCATOR_DELETE notification to all daemons informing them of
the deleted locator.

In IS-IS, we register the new `isis_zebra_process_srv6_locator_delete()`
callback as the handler for ZEBRA_SRV6_LOCATOR_DELETE.

This callback iterates over all areas of the current IS-IS instance and
looks for an area for which the deleted locator was configured.
If a match is found, we remove
the locator's chunks from the area's chunks list and call
`lsp_regenerate_schedule` to remove the locator from the SRv6 Locator
TLV advertised in the LSPs and regenerate the LSPs.
If no match is found, we do nothing.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
isisd/isis_zebra.c