mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-29 20:04:11 +00:00
ospf6d: Fix flooding of old copies of self-originated LSAs
When receiving old copies (e.g. originated before the local ospf6d was restarted) of supposedly self-originated LSAs which we previously tried to flush from the network (by setting them to MaxAge), neither flood them nor add them to our LSDB. Instead, keep the MaxAge version until we actually (re-)originate them. Possible fix for #7030. Testcase in #7168 (tests/topotests/ospf6-dr-no-netlsa-bug7030). Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
This commit is contained in:
parent
0ce5baaab1
commit
4c63a76a63
@ -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 (new->header->adv_router
|
||||
!= 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.",
|
||||
old->name, __func__);
|
||||
|
||||
"%s: Current copy of LSA %s is MAXAGE, but new has recent age, flooding/installing.",
|
||||
old->name, __PRETTY_FUNCTION__);
|
||||
ospf6_lsa_purge(old);
|
||||
if (new->header->adv_router
|
||||
!= from->ospf6_if->area->ospf6->router_id)
|
||||
ospf6_flood(from, 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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user