mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-17 20:09:38 +00:00
[bgpd] Bug #302, bgpd can get stuck in state Clearing
2006-12-07 Paul Jakma <paul.jakma@sun.com> * bgp_fsm.c: Bug #302 fix, diagnosis, suggestions and testing by Juergen Kammer <j.kammer@eurodata.de>. Fix follows from his suggested fix, just made in a slightly different way. (bgp_event) Transitions into Clearing always must call bgp_clear_route_all(). (bgp_stop) No need to clear routes here, BGP FSM should do it.
This commit is contained in:
parent
ed589c1577
commit
95fdcd8a79
@ -1,3 +1,13 @@
|
|||||||
|
2006-12-07 Paul Jakma <paul.jakma@sun.com>
|
||||||
|
|
||||||
|
* bgp_fsm.c: Bug #302 fix, diagnosis, suggestions and testing
|
||||||
|
by Juergen Kammer <j.kammer@eurodata.de>. Fix follows from
|
||||||
|
his suggested fix, just made in a slightly different way.
|
||||||
|
(bgp_event) Transitions into Clearing always must call
|
||||||
|
bgp_clear_route_all().
|
||||||
|
(bgp_stop) No need to clear routes here, BGP FSM should do
|
||||||
|
it.
|
||||||
|
|
||||||
2006-11-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
|
2006-11-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
|
||||||
|
|
||||||
* bgp_debug.h: Declare new bgp_debug_zebra conf and term flags,
|
* bgp_debug.h: Declare new bgp_debug_zebra conf and term flags,
|
||||||
|
@ -483,9 +483,6 @@ bgp_stop (struct peer *peer)
|
|||||||
/* Reset uptime. */
|
/* Reset uptime. */
|
||||||
bgp_uptime_reset (peer);
|
bgp_uptime_reset (peer);
|
||||||
|
|
||||||
/* Need of clear of peer. */
|
|
||||||
bgp_clear_route_all (peer);
|
|
||||||
|
|
||||||
/* Reset peer synctime */
|
/* Reset peer synctime */
|
||||||
peer->synctime = 0;
|
peer->synctime = 0;
|
||||||
}
|
}
|
||||||
@ -1092,7 +1089,13 @@ bgp_event (struct thread *thread)
|
|||||||
{
|
{
|
||||||
/* If status is changed. */
|
/* If status is changed. */
|
||||||
if (next != peer->status)
|
if (next != peer->status)
|
||||||
|
{
|
||||||
|
/* Transition into Clearing must /always/ clear all routes.. */
|
||||||
|
if (next == Clearing)
|
||||||
|
bgp_clear_route_all (peer);
|
||||||
|
|
||||||
bgp_fsm_change_status (peer, next);
|
bgp_fsm_change_status (peer, next);
|
||||||
|
}
|
||||||
|
|
||||||
/* Make sure timer is set. */
|
/* Make sure timer is set. */
|
||||||
bgp_timer_set (peer);
|
bgp_timer_set (peer);
|
||||||
|
Loading…
Reference in New Issue
Block a user