mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-29 02:37:00 +00:00
ospf6d: Send MAXAGE LS update for received old self-originated LSAs
Fixes OSPFv3-26.13 ANVL RFC conformance bug #8576 by improving the bugfix
for #7030 from 4c63a76a
. That commit changed handling of received old
non-MAXAGE LSAs with a MAXAGE counterpart in the LSDB from "add all LSAs to
LSDB and flood non-self-originated ones" to "add & flood only
non-self-originated LSAs and ignore self-originated LSAs". The new behaviour
is similar but adds sending a MAXAGE LS Update for received self-originated
LSAs to remove the old LSAs from the network, resulting in "add & flood
non-self-originated LSAs, don't add but send MAXAGE LS Update for
self-originated LSAs". The missing MAXAGE LS Update is what OSPFv3-26.13
ANVL complained about.
Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
This commit is contained in:
parent
83187b8285
commit
2d84ae9c29
@ -1016,18 +1016,20 @@ void ospf6_receive_lsa(struct ospf6_neighbor *from,
|
||||
if (is_debug)
|
||||
zlog_debug(
|
||||
"%s: Current copy of LSA %s is MAXAGE, but new has recent age, flooding/installing.",
|
||||
old->name, __PRETTY_FUNCTION__);
|
||||
__PRETTY_FUNCTION__, old->name);
|
||||
ospf6_lsa_purge(old);
|
||||
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;
|
||||
}
|
||||
return;
|
||||
/* For self-originated LSA, only trust
|
||||
* ourselves. Fall through and send
|
||||
* LS Update with our current copy.
|
||||
*/
|
||||
if (is_debug)
|
||||
zlog_debug(
|
||||
"%s: Current copy of self-originated LSA %s is MAXAGE, but new has recent age, re-sending current one.",
|
||||
__PRETTY_FUNCTION__, old->name);
|
||||
}
|
||||
|
||||
/* XXX, MinLSArrival check !? RFC 2328 13 (8) */
|
||||
|
Loading…
Reference in New Issue
Block a user