diff options
| author | Russ White <russ@riw.us> | 2025-02-13 11:16:42 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-13 11:16:42 -0500 |
| commit | fbff0436d337cf525abe33c389ac36939cf5afdd (patch) | |
| tree | a0c7f26824fc0221f8c6813ecb456e588a3de920 /ospfd/ospf_lsa.c | |
| parent | f70530c8e8ada9fcc7fd6a83e7a1e211b11b2131 (diff) | |
| parent | b44258413f4b6569f8f94869b207ee655bac70ae (diff) | |
Merge pull request #18046 from LabNConsulting/aceelindem/ospf-lsa-add-delete-hook
ospfd: Replace LSDB callbacks with LSA Update/Delete hooks.
Diffstat (limited to 'ospfd/ospf_lsa.c')
| -rw-r--r-- | ospfd/ospf_lsa.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c index ac53f3a19f..1d5c0be5c4 100644 --- a/ospfd/ospf_lsa.c +++ b/ospfd/ospf_lsa.c @@ -61,6 +61,12 @@ static struct ospf_lsa * ospf_exnl_lsa_prepare_and_flood(struct ospf *ospf, struct external_info *ei, struct in_addr id); +/* + * LSA Update and Delete Hook LSAs. + */ +DEFINE_HOOK(ospf_lsa_update, (struct ospf_lsa *lsa), (lsa)); +DEFINE_HOOK(ospf_lsa_delete, (struct ospf_lsa *lsa), (lsa)); + uint32_t get_metric(uint8_t *metric) { uint32_t m; @@ -3146,6 +3152,11 @@ struct ospf_lsa *ospf_lsa_install(struct ospf *ospf, struct ospf_interface *oi, zlog_debug("LSA[%s]: Install LSA %p, MaxAge", dump_lsa_key(new), lsa); ospf_lsa_maxage(ospf, lsa); + } else { + /* + * Invoke the LSA update hook. + */ + hook_call(ospf_lsa_update, new); } return new; @@ -3364,6 +3375,11 @@ void ospf_lsa_maxage(struct ospf *ospf, struct ospf_lsa *lsa) zlog_debug("LSA[%s]: MaxAge LSA remover scheduled.", dump_lsa_key(lsa)); + /* + * Invoke the LSA delete hook. + */ + hook_call(ospf_lsa_delete, lsa); + OSPF_TIMER_ON(ospf->t_maxage, ospf_maxage_lsa_remover, ospf->maxage_delay); } |
