]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Do not start with huge OSPF FIBs.
authorOndrej Zajicek <santiago@crfreenet.org>
Wed, 2 Jun 2010 20:25:39 +0000 (22:25 +0200)
committerOndrej Zajicek <santiago@crfreenet.org>
Wed, 2 Jun 2010 20:25:39 +0000 (22:25 +0200)
Most OSPF instances don't need 64k FIB fields. This change halves
resident memory usage on small OSPF networks.

proto/ospf/ospf.c

index aa22d61bafd15e576d27b4d27a9bb168b73adbe3..316d7292f6ff61b32327dd9fc91514d240925cfc 100644 (file)
@@ -126,7 +126,7 @@ add_area_nets(struct ospf_area *oa, struct ospf_area_config *ac)
     struct area_net_config *anet;
     struct area_net *antmp;
 
-    fib_init(&oa->net_fib, p->pool, sizeof(struct area_net), 16, ospf_area_initfib);
+    fib_init(&oa->net_fib, p->pool, sizeof(struct area_net), 0, ospf_area_initfib);
 
     WALK_LIST(anet, ac->net_list)
     {
@@ -159,7 +159,7 @@ ospf_start(struct proto *p)
   po->lsab = mb_alloc(p->pool, po->lsab_size);
   init_list(&(po->iface_list));
   init_list(&(po->area_list));
-  fib_init(&po->rtf, p->pool, sizeof(ort), 16, ospf_rt_initort);
+  fib_init(&po->rtf, p->pool, sizeof(ort), 0, ospf_rt_initort);
   po->areano = 0;
   po->gr = ospf_top_new(p->pool);
   s_init_list(&(po->lsal));
@@ -180,7 +180,7 @@ ospf_start(struct proto *p)
     oa->rt = NULL;
     oa->po = po;
     add_area_nets(oa, ac);
-    fib_init(&oa->rtr, p->pool, sizeof(ort), 16, ospf_rt_initort);
+    fib_init(&oa->rtr, p->pool, sizeof(ort), 0, ospf_rt_initort);
 
     if (oa->areaid == 0)
     {
@@ -209,8 +209,8 @@ ospf_start(struct proto *p)
     oa->areaid = 0;
     oa->rt = NULL;
     oa->po = po;
-    fib_init(&oa->net_fib, p->pool, sizeof(struct area_net), 16, ospf_area_initfib);
-    fib_init(&oa->rtr, p->pool, sizeof(ort), 16, ospf_rt_initort);
+    fib_init(&oa->net_fib, p->pool, sizeof(struct area_net), 0, ospf_area_initfib);
+    fib_init(&oa->rtr, p->pool, sizeof(ort), 0, ospf_rt_initort);
     po->backbone = oa;
 #ifdef OSPFv2
     oa->options = OPT_E;