diff options
author | Paul Jakma <paul.jakma@sun.com> | 2006-05-04 08:08:15 +0000 |
---|---|---|
committer | Paul Jakma <paul.jakma@sun.com> | 2006-05-04 08:08:15 +0000 |
commit | 65ca75e0d1e7e440bf0d2a6a031d4148024c9d12 (patch) | |
tree | 71826429ce3985bf3900be4a965de238ac668e82 /bgpd/ChangeLog | |
parent | a3b6ea56a0add7d0972a66d96e1fbcf5461eecdb (diff) |
[bgpd] Fix bug where FSM can stay hung forever in Idle/Clrng
2006-05-04 Paul Jakma <paul.jakma@sun.com>
* bgp_route.c: (general) Fix logical bug in clearing, noted
by Chris Caputo in [quagga-users 6728] - clearing depended on
at least one route being added to workqueue, in order for
workqueue completion function to restart FSM. However, if no
routes are cleared, then the completion function never is
called, it needs to be called manually if the workqueue
didn't get scheduled.
Finally, clearing is per-peer-session, not per AFI/SAFI, so
the FSM synchronisation should be in bgp_clear_route_table.
(bgp_clear_route_table) Wrong place for FSM/clearing
synchronisation, move to..
(bgp_clear_route) FSM/clearing synchronisation should be
here.
If no routes were cleared, no workqueue scheduled, call
the completion func to ensure FSM kicks off again.
Diffstat (limited to 'bgpd/ChangeLog')
-rw-r--r-- | bgpd/ChangeLog | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog index a0ba520c..5599801e 100644 --- a/bgpd/ChangeLog +++ b/bgpd/ChangeLog @@ -7,6 +7,21 @@ * bgp_packet.c: (bgp_{update,withdraw}_packet) Enable some VPNv4 code which inexplicably was ifdef'd out. comments from a tester on IRC suggest this fixes bug #210. + * bgp_route.c: (general) Fix logical bug in clearing, noted + by Chris Caputo in [quagga-users 6728] - clearing depended on + at least one route being added to workqueue, in order for + workqueue completion function to restart FSM. However, if no + routes are cleared, then the completion function never is + called, it needs to be called manually if the workqueue + didn't get scheduled. + Finally, clearing is per-peer-session, not per AFI/SAFI, so + the FSM synchronisation should be in bgp_clear_route_table. + (bgp_clear_route_table) Wrong place for FSM/clearing + synchronisation, move to.. + (bgp_clear_route) FSM/clearing synchronisation should be + here. + If no routes were cleared, no workqueue scheduled, call + the completion func to ensure FSM kicks off again. 2006-03-30 Paul Jakma <paul.jakma@sun.com> |