[Xorp-cvs] XORP cvs commit: xorp/rib
Pavlin Radoslavov
pavlin@icir.org
Sun, 2 Oct 2005 05:33:32 GMT
CVSROOT: /usr/local/share/doc/apache/cvs
Module name: xorp
Changes by: pavlin@xorpc.icir.org 2005-10-02 05:33:32 UTC
XORP CVS repository
Modified files:
rib route.hh rt_tab_extint.cc rt_tab_extint.hh
Log message:
Fix a bug when deleting some unresolved RIB routes could take too
long (up to 30ms).
* Add new class UnresolvedIPRouteEntry and use it to store
routing entries that have unresolved next-hop.
* Refactor the mechanism for storing the unresolved routing entries
in the ExtIntTable so now each entry contains the iterator for
the multimap entry it belongs to.
This refactoring makes the removal of an unresolved entry much faster.
Previously, if there were 150K unresolved entries all of them pointing
to the same (unresolved) next-hop router, deletion of a single
(unresolved) route could take up to 30ms. Most of this time
was spent inside ExtIntTable<A>::delete_unresolved_nexthop()
which practically scanned the whole multimap to find the matching
entry that is to be deleted.
After the refactoring deleting the same route now takes 60us.
Revision Changes Path
1.19 +82 -1; commitid: 108f0433f6f007ea6; xorp/rib/route.hh
1.26 +32 -25; commitid: 108f0433f6f007ea6; xorp/rib/rt_tab_extint.cc
1.13 +5 -3; commitid: 108f0433f6f007ea6; xorp/rib/rt_tab_extint.hh