[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