[Xorp-cvs] XORP cvs commit: xorp/bgp

Pavlin Radoslavov pavlin at icir.org
Mon Apr 9 11:45:55 PDT 2007


CVSROOT:	/usr/local/share/doc/apache/cvs
Module name:	xorp
Changes by:	pavlin at xorpc.icir.org	2007-04-09 18:45:55 UTC

XORP CVS repository


Modified files:
	bgp           route_table_ribout.cc socket.cc 

Log message:
	* Change the priority of the "Pull Routes Task" from PRIORITY_HIGH
	  to PRIORITY_DEFAULT. Otherwise, handling this task might keep
	  BGP busy for very long time (e.g., 40 seconds or more) without
	  processing socket events (including XRLs).
	  If we don't handle promptly the XRLs then the XRL Finder
	  will declare BGP being dead.
	
	* Decrease the async reader priority of the TCP sockets that handle
	  the BGP peering to PRIORITY_LOWEST so it is lower than the
	  "Pull Routes Task" priority. Otherwise, on startup the
	  handling of high volume data from the BGP peers might delay
	  the "Pull Routes Task" handling for a number of minutes.
	  The result of that delay would be that no BGP routes will
	  be send to the RIB (and the kernel).
	
	  Also, decrease the corresponding async writer priority from
	  PRIORITY_HIGH to PRIORITY_DEFAULT, because it just has to be
	  better priority than the async reader.
	
	Note that the above refactoring of the priorities is far from
	being ideal and it might create some other issues (e.g., delaying the
	reading of BGP data for too long while handling processing of
	various internal events).
	Further refactoring/adjusting of the priorities needs to be done by
	someone who is familiar with the details of the BGP implementation.
	Alternatively, the eventloop needs to be refactored such that the
	processing of one type of events does not starve other types.
	
	This fixes Bugzilla entry #704.
	
	Bug found by:   Vyatta

Revision  Changes                               Path
1.34      +2 -2;  commitid: 17083461a877c7ea6;  xorp/bgp/route_table_ribout.cc
1.51      +9 -5;  commitid: 17083461a877c7ea6;  xorp/bgp/socket.cc



More information about the Xorp-cvs mailing list