diff options
author | Ondrej Filip <feela@network.cz> | 2012-08-07 11:15:23 +0200 |
---|---|---|
committer | Ondrej Filip <feela@network.cz> | 2012-08-07 11:15:23 +0200 |
commit | 60c412b9368fd7c3b0a8df2200f02140adcb0cf3 (patch) | |
tree | 237d3c0b8aa86c6f3a88a76141ab51ca94b1fcd7 /proto/ospf/topology.c | |
parent | 3fe1d9e4a40663b93b59f5b6f9d61af9dc6a8ae6 (diff) | |
parent | 94e2f1c111721d6213ea65cac5c53036e38e3973 (diff) |
Merge branch 'master' of ssh://git.nic.cz/birdv1.3.8
Diffstat (limited to 'proto/ospf/topology.c')
-rw-r--r-- | proto/ospf/topology.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/proto/ospf/topology.c b/proto/ospf/topology.c index 7e9bad50..ec012b22 100644 --- a/proto/ospf/topology.c +++ b/proto/ospf/topology.c @@ -862,6 +862,9 @@ flush_sum_lsa(struct ospf_area *oa, struct fib_node *fn, int type) if ((en = ospf_hash_find_header(po->gr, oa->areaid, &lsa)) != NULL) { + OSPF_TRACE(D_EVENTS, "Flushing summary-LSA (id=%R, type=%d)", + en->lsa.id, en->lsa.type); + if ((type == ORT_NET) && check_sum_net_lsaid_collision(fn, en)) { log(L_ERR "%s: LSAID collision for %I/%d", @@ -873,9 +876,6 @@ flush_sum_lsa(struct ospf_area *oa, struct fib_node *fn, int type) en->lsa.age = LSA_MAXAGE; en->lsa.sn = LSA_MAXSEQNO; lsasum_calculate(&en->lsa, sum); - - OSPF_TRACE(D_EVENTS, "Flushing summary-LSA (id=%R, type=%d)", - en->lsa.id, en->lsa.type); ospf_lsupd_flood(po, NULL, NULL, &en->lsa, oa->areaid, 1); if (can_flush_lsa(po)) flush_lsa(en, po); } @@ -1131,15 +1131,11 @@ originate_ext_lsa(struct ospf_area *oa, struct fib_node *fn, int src, } void -flush_ext_lsa(struct ospf_area *oa, struct fib_node *fn) +flush_ext_lsa(struct ospf_area *oa, struct fib_node *fn, int nssa) { struct proto_ospf *po = oa->po; struct proto *p = &po->proto; struct top_hash_entry *en; - int nssa = oa_is_nssa(oa); - - OSPF_TRACE(D_EVENTS, "Flushing %s-LSA for %I/%d", - nssa ? "NSSA" : "AS-external", fn->prefix, fn->pxlen); u32 dom = nssa ? oa->areaid : 0; u32 type = nssa ? LSA_T_NSSA : LSA_T_EXT; @@ -1147,6 +1143,9 @@ flush_ext_lsa(struct ospf_area *oa, struct fib_node *fn) if (en = ospf_hash_find(po->gr, dom, lsaid, po->router_id, type)) { + OSPF_TRACE(D_EVENTS, "Flushing %s-LSA for %I/%d", + nssa ? "NSSA" : "AS-external", fn->prefix, fn->pxlen); + if (check_ext_lsa(en, fn, 0, IPA_NONE, 0) < 0) { log(L_ERR "%s: LSAID collision for %I/%d", |