[Xorp-cvs] XORP cvs commit: xorp/bgp
Pavlin Radoslavov
pavlin@icir.org
Sat Apr 29 09:23:56 PDT 2006
CVSROOT: /usr/local/share/doc/apache/cvs
Module name: xorp
Changes by: pavlin@xorpc.icir.org 2006-04-29 08:23:56 UTC
XORP CVS repository
Modified files:
bgp peer.cc
Log message:
If the TCP connection fails, and if the DelayOpenTimer is not
running, then change the peer state first to Idle
before changing it right after that to Active.
Note that in reality we are checking whether the DelayOpenTimer is
running, simply because there is no such timer (the _idle_hold timer
is reused instead). Hence, we check configured DelayOpenTime value,
by making the assumption that if it is zero then the DelayOpenTimer
is not running.
This fixes UNH BGP Test 2.2G.
A side note:
Typically we cannot trigger the "TCP connection fails (Event 18)"
scenario, because on Linux-2.6 for example it takes approximately
4 minutes to timeout the TCP connection if nothing is received from
the other side.
However, in the BGP implementation there is a timer in the interval
90-120 seconds that automatically tries to reconnect to the peer if
the previous attempt failed (the ConnectRetryTimer).
Hence, we try to reconnect before the TCP connection attempt times
out.
For testing purpose, the following command can be used on Linux
to reduce the TCP timeout value to approx. 60 seconds so we can
trigger the "TCP connection fails" event:
echo 3 > /proc/sys/net/ipv4/tcp_syn_retries
Bug found by: Mike Cleary <mcleary AT iol.unh.edu>
Revision Changes Path
1.136 +15 -3; commitid: 1759445320037ea6; xorp/bgp/peer.cc
More information about the Xorp-cvs
mailing list