diff options
author | Ondrej Filip <feela@network.cz> | 2001-08-11 16:01:54 +0200 |
---|---|---|
committer | Ondrej Filip <feela@network.cz> | 2001-08-11 16:01:54 +0200 |
commit | 78e2c6ccf16b41bc19a4cd69f959c8ae47e68b9d (patch) | |
tree | 447e98707f9a409d70d240fb6f302cd2518b6a09 /proto/ospf/ospf.c | |
parent | 5fc7c5c51344a8cc1fae2cc9077c2c331c1e419a (diff) | |
download | bird-78e2c6ccf16b41bc19a4cd69f959c8ae47e68b9d.tar bird-78e2c6ccf16b41bc19a4cd69f959c8ae47e68b9d.zip |
I will not originate the same lsa before MINLSINTERVAL.
Diffstat (limited to 'proto/ospf/ospf.c')
-rw-r--r-- | proto/ospf/ospf.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c index 151187f..8447e69 100644 --- a/proto/ospf/ospf.c +++ b/proto/ospf/ospf.c @@ -265,7 +265,8 @@ schedule_rtcalc(struct ospf_area *oa) * @timer: it's called every @ospf_area->tick seconds * * It ivokes aging and when @ospf_area->origrt is set to 1, start - * function for origination of router LSA. It also start routing + * function for origination of router LSA and network LSA's. + * It also start routing * table calculation when @ospf_area->calcrt is set. */ void @@ -273,13 +274,20 @@ area_disp(timer *timer) { struct ospf_area *oa=timer->data; struct top_hash_entry *en,*nxt; + struct proto_ospf *po=oa->po; + struct ospf_iface *ifa; /* First of all try to age LSA DB */ ospf_age(oa); /* Now try to originage rt_lsa */ if(oa->origrt) originate_rt_lsa(oa); - oa->origrt=0; + + /* Now try to originate network LSA's */ + WALK_LIST(ifa, po->iface_list) + { + if(ifa->orignet&&(ifa->an==oa->areaid)) originate_net_lsa(ifa); + } if(oa->calcrt) ospf_rt_spfa(oa); oa->calcrt=0; |