+ rib_process() speedup for multi-nexthop route nodes
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index d4c5678..0b5cefe 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -1,3 +1,8 @@
+2007-10-04 Denis Ovsienko
+
+ * zebra_rib.c: (rib_process) escape from the nexthop
+ iteration cycle earliest possible to save CPU time.
+
2007-10-03 Denis Ovsienko
* zebra_rib.c: (rib_process, rib_link, rib_addnode,
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index 67dc810..37b84a6 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -1118,9 +1118,10 @@
*/
for (nexthop = select->nexthop; nexthop; nexthop = nexthop->next)
+ if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB))
{
- if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB))
- installed = 1;
+ installed = 1;
+ break;
}
if (! installed)
rib_install_kernel (rn, select);