summaryrefslogtreecommitdiffstats
path: root/proto/ospf/lsupd.c
diff options
context:
space:
mode:
authorOndrej Filip <feela@network.cz>2000-06-08 21:14:08 +0200
committerOndrej Filip <feela@network.cz>2000-06-08 21:14:08 +0200
commit135857e5777a4f1762fa6d948bb9d6b72e101c91 (patch)
tree3fb622e053dc8aa6c88e0d80e9873bf002c78e18 /proto/ospf/lsupd.c
parent054a352475437d924e473c95b5d3ad01ae4ab161 (diff)
downloadbird-135857e5777a4f1762fa6d948bb9d6b72e101c91.tar
bird-135857e5777a4f1762fa6d948bb9d6b72e101c91.zip
Acknoledge your own premature aged LSA.
Diffstat (limited to 'proto/ospf/lsupd.c')
-rw-r--r--proto/ospf/lsupd.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/proto/ospf/lsupd.c b/proto/ospf/lsupd.c
index 57d9575..a9bca02 100644
--- a/proto/ospf/lsupd.c
+++ b/proto/ospf/lsupd.c
@@ -195,8 +195,8 @@ ospf_lsupd_tx_list(struct ospf_neighbor *n, list *l)
if((en=ospf_hash_find(n->ifa->oa->gr,llsh->lsh.id,llsh->lsh.rt,
llsh->lsh.type))==NULL) continue; /* Probably flushed LSA */
- DBG("Sending ID=%I, Type=%u, RT=%I\n", llsh->lsh.id, llsh->lsh.type,
- llsh->lsh.rt);
+ DBG("Sending ID=%I, Type=%u, RT=%I Sn: 0x%x Age: %u\n",
+ llsh->lsh.id, llsh->lsh.type, llsh->lsh.rt, en->lsa.sn, en->lsa.age);
if(((u32)(len+en->lsa.length))>n->ifa->iface->mtu)
{
pk->lsano=htonl(lsano);
@@ -362,7 +362,11 @@ ospf_lsupd_rx(struct ospf_lsupd_packet *ps, struct proto *p,
{
struct top_hash_entry *en;
- if((lsatmp.age==LSA_MAXAGE)&&(lsatmp.sn==LSA_MAXSEQNO)) continue;
+ if((lsatmp.age==LSA_MAXAGE)&&(lsatmp.sn==LSA_MAXSEQNO))
+ {
+ ospf_lsack_direct_tx(n,lsa);
+ continue;
+ }
lsatmp.age=LSA_MAXAGE;
lsatmp.sn=LSA_MAXSEQNO;