[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