summaryrefslogtreecommitdiffstats
path: root/proto/ospf/lsalib.c
diff options
context:
space:
mode:
Diffstat (limited to 'proto/ospf/lsalib.c')
-rw-r--r--proto/ospf/lsalib.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/proto/ospf/lsalib.c b/proto/ospf/lsalib.c
index cd29421..3cd62a9 100644
--- a/proto/ospf/lsalib.c
+++ b/proto/ospf/lsalib.c
@@ -29,6 +29,9 @@ flush_lsa(struct top_hash_entry *en, struct ospf_area *oa)
*
* RFC says, that router should check checksum of every LSA to detect some
* hardware problem. BIRD does not do it to minimalize CPU utilization.
+ *
+ * If routing table calculation is scheduled, it also invalidates old routing
+ * table calculation results.
*/
void
ospf_age(struct ospf_area *oa)
@@ -41,6 +44,15 @@ ospf_age(struct ospf_area *oa)
WALK_SLIST_DELSAFE(en,nxt,oa->lsal)
{
+ if(oa->calcrt)
+ {
+ en->color=OUTSPF;
+ en->dist=LSINFINITY;
+ en->nhi=NULL;
+ en->nh=ipa_from_u32(0);
+ DBG("Infinitying Type: %u, Id: %I, Rt: %I\n", en->lsa.type, en->lsa.id,
+ en->lsa.rt);
+ }
if(en->lsa.age==LSA_MAXAGE)
{
if(flush) flush_lsa(en,oa);