[bgpd] bug #368: Fix possible loop between peers going Idle<->OpenSent

2007-06-22 Paul Jakma <paul.jakma@sun.com>

	* bgp_fsm.c: (struct FSM) Bug #368. TCP Errors during OpenSent
	  should cycle to Active, not to Idle or else peer bringup can
	  race and cycle Idle<->Active. Reported and fix tested by
	  Mukesh Agrawal.
This commit is contained in:
Paul Jakma 2007-06-22 19:11:14 +00:00
parent 11770e1086
commit 536792cd88
2 changed files with 10 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2007-06-22 Paul Jakma <paul.jakma@sun.com>
* bgp_fsm.c: (struct FSM) Bug #368. TCP Errors during OpenSent
should cycle to Active, not to Idle or else peer bringup can
race and cycle Idle<->Active. Reported and fix tested by
Mukesh Agrawal.
2007-05-25 Paul Jakma <paul.jakma@sun.com>
* bgp_route.c: (bgp_default_originate) Sanity check added

View File

@ -963,10 +963,10 @@ struct {
/* OpenSent, */
{bgp_ignore, OpenSent}, /* BGP_Start */
{bgp_stop, Idle}, /* BGP_Stop */
{bgp_stop, Idle}, /* TCP_connection_open */
{bgp_stop, Active}, /* TCP_connection_open */
{bgp_stop, Active}, /* TCP_connection_closed */
{bgp_ignore, Idle}, /* TCP_connection_open_failed */
{bgp_stop, Idle}, /* TCP_fatal_error */
{bgp_stop, Active}, /* TCP_connection_open_failed */
{bgp_stop, Active}, /* TCP_fatal_error */
{bgp_ignore, Idle}, /* ConnectRetry_timer_expired */
{bgp_fsm_holdtime_expire, Idle}, /* Hold_Timer_expired */
{bgp_ignore, Idle}, /* KeepAlive_timer_expired */