summaryrefslogtreecommitdiffstats
path: root/ospfd/ospf_abr.c
diff options
context:
space:
mode:
authorJR Rivers <jrrivers@cumulusnetworks.com>2012-09-24 19:26:50 +0200
committerDavid Lamparter <equinox@opensourcerouting.org>2012-10-25 19:15:58 +0200
commit821755530e328182c885c98891af799926bd56bd (patch)
tree5227803e0f5cd089a41c1fc06a47cef18612b6a7 /ospfd/ospf_abr.c
parentospfd: blackhole route removal for area range (diff)
downloadfrr-821755530e328182c885c98891af799926bd56bd.tar.xz
frr-821755530e328182c885c98891af799926bd56bd.zip
ospfd: ABR algorithm not propagating MAXAGE LSAs into area
When a range (or sub-range) is deleted, the area is notified by propagating a MAXAGE LSA. This LSA stays in the database for a while to both insure propagation as well as in the off chance that it's useful in the near future. Unfortunately, the ABR algorithm was treating these MAXAGE LSAs as unchanged and not propagating them within the areas. Signed-off-by: JR Rivers <jrrivers@cumulusnetworks.com> Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com> Reviewed-by: Dinesh Dutt <ddutt@cumulusnetworks.com> Reviewed-by: Shrijeet Mukherjee <shm@cumulusnetworks.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'ospfd/ospf_abr.c')
-rw-r--r--ospfd/ospf_abr.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/ospfd/ospf_abr.c b/ospfd/ospf_abr.c
index ef1048b23..2876eaa71 100644
--- a/ospfd/ospf_abr.c
+++ b/ospfd/ospf_abr.c
@@ -729,8 +729,9 @@ ospf_abr_announce_network_to_area (struct prefix_ipv4 *p, u_int32_t cost,
zlog_debug ("ospf_abr_announce_network_to_area(): "
"old metric: %d, new metric: %d",
GET_METRIC (sl->metric), cost);
-
- if (GET_METRIC (sl->metric) == cost)
+
+ if ((GET_METRIC (sl->metric) == cost) &&
+ ((old->flags & OSPF_LSA_IN_MAXAGE) == 0))
{
/* unchanged. simply reapprove it */
if (IS_DEBUG_OSPF_EVENT)