summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Dugeon <olivier.dugeon@orange.com>2020-10-06 16:42:41 +0200
committerGitHub <noreply@github.com>2020-10-06 16:42:41 +0200
commit24d7ccfabdc707361670dd3c044d6442f24e67cb (patch)
treeaa9589aed56dc4535fabf125c730c88b7684f8e0
parentb0508095f18d376a692bff6da5ca3815ae51eec5 (diff)
parent4c63a76a63fd02ae2aa73e4e66b04b37b10fdd99 (diff)
Merge pull request #7202 from gromit1811/proposed_fix_7030
ospf6d: Fix flooding of old copies of self-originated LSAs
-rw-r--r--ospf6d/ospf6_flood.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/ospf6d/ospf6_flood.c b/ospf6d/ospf6_flood.c
index b144c6804e..56aac0f21f 100644
--- a/ospf6d/ospf6_flood.c
+++ b/ospf6d/ospf6_flood.c
@@ -1001,18 +1001,22 @@ void ospf6_receive_lsa(struct ospf6_neighbor *from,
* MAXAGEd and not removed.*/
if (OSPF6_LSA_IS_MAXAGE(old)
&& !OSPF6_LSA_IS_MAXAGE(new)) {
-
- if (is_debug)
- zlog_debug(
- "%s: Current copy of LSA %s is MAXAGE, but new has recent Age.",
- old->name, __func__);
-
- ospf6_lsa_purge(old);
if (new->header->adv_router
- != from->ospf6_if->area->ospf6->router_id)
+ != from->ospf6_if->area->ospf6->router_id) {
+ if (is_debug)
+ zlog_debug(
+ "%s: Current copy of LSA %s is MAXAGE, but new has recent age, flooding/installing.",
+ old->name, __PRETTY_FUNCTION__);
+ ospf6_lsa_purge(old);
ospf6_flood(from, new);
-
- ospf6_install_lsa(new);
+ ospf6_install_lsa(new);
+ } else {
+ if (is_debug)
+ zlog_debug(
+ "%s: Current copy of self-originated LSA %s is MAXAGE, but new has recent age, ignoring new.",
+ old->name, __PRETTY_FUNCTION__);
+ ospf6_lsa_delete(new);
+ }
return;
}