]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Merge branch 'dev' into ospf3
authorOndrej Zajicek <santiago@crfreenet.org>
Mon, 14 Dec 2009 19:37:32 +0000 (20:37 +0100)
committerOndrej Zajicek <santiago@crfreenet.org>
Mon, 14 Dec 2009 19:37:32 +0000 (20:37 +0100)
Conflicts:

proto/ospf/lsreq.c
proto/ospf/lsupd.c
proto/ospf/rt.c

1  2 
doc/bird.sgml
proto/ospf/lsupd.c

diff --cc doc/bird.sgml
Simple merge
index 8780e700ed01d774d416025e7b25bcdd98d679c1,f8195dcd30de067c2310fdc8511b084be7f25300..9bed374e0318d1513f3c2f5fee496371fe2b9e9c
@@@ -544,32 -453,37 +544,40 @@@ ospf_lsupd_receive(struct ospf_packet *
          }
        }
        }
 +#endif
  
 +      /* pg 145 (5f) - premature aging of self originated lsa */
        if (self)
        {
-       struct top_hash_entry *en;
        if ((lsatmp.age == LSA_MAXAGE) && (lsatmp.sn == LSA_MAXSEQNO))
        {
          ospf_lsack_enqueue(n, lsa, ACKL_DIRECT);
          continue;
        }
  
-       lsatmp.age = LSA_MAXAGE;
-       lsatmp.sn = LSA_MAXSEQNO;
-       lsa->age = htons(LSA_MAXAGE);
-       lsa->sn = htonl(LSA_MAXSEQNO);
-       OSPF_TRACE(D_EVENTS, "Premature aging self originated LSA.");
-       OSPF_TRACE(D_EVENTS, "Type: %04x, Id: %R, Rt: %R",
 -      OSPF_TRACE(D_EVENTS, "Received old self-originated LSA (Type: %04x, Id: %R, Rt: %R)", lsatmp.type, lsatmp.id, lsatmp.rt);
++      OSPF_TRACE(D_EVENTS, "Received old self-originated LSA (Type: %04x, Id: %R, Rt: %R)",
 +                 lsatmp.type, lsatmp.id, lsatmp.rt);
-       lsasum_check(lsa, (lsa + 1));   /* It also calculates chsum! */
-       lsatmp.checksum = ntohs(lsa->checksum);
-       ospf_lsupd_flood(po, NULL, lsa, &lsatmp, domain, 0);
-       if (en = ospf_hash_find_header(po->gr, domain, &lsatmp))
-       { /* FIXME verify hacks */
-         ospf_lsupd_flood(po, NULL, NULL, &en->lsa, domain, 1);
+       if (lsadb)
+       {
 -        OSPF_TRACE(D_EVENTS, "Reflooding new self-originated LSA with newer SN");
++        OSPF_TRACE(D_EVENTS, "Reflooding new self-originated LSA with newer sequence number");
+         lsadb->lsa.sn = lsatmp.sn + 1;
+         lsadb->lsa.age = 0;
+         lsadb->inst_t = now;
+         lsadb->ini_age = 0;
+         lsasum_calculate(&lsadb->lsa, lsadb->lsa_body);
 -        ospf_lsupd_flood(NULL, NULL, &lsadb->lsa, NULL, oa, 1);
++        ospf_lsupd_flood(po, NULL, NULL, &lsadb->lsa, domain, 1);
+       }
+       else
+       {
+         OSPF_TRACE(D_EVENTS, "Premature aging it");
+         lsatmp.age = LSA_MAXAGE;
+         lsatmp.sn = LSA_MAXSEQNO;
+         lsa->age = htons(LSA_MAXAGE);
+         lsa->sn = htonl(LSA_MAXSEQNO);
+         lsasum_check(lsa, (lsa + 1)); /* It also calculates chsum! */
+         lsatmp.checksum = ntohs(lsa->checksum);
 -        ospf_lsupd_flood(NULL, lsa, &lsatmp, NULL, oa, 0);
++        ospf_lsupd_flood(po, NULL, lsa, &lsatmp, domain, 0);
        }
        continue;
        }