]> git.puffer.fish Git - mirror/frr.git/commit
[bgpd] Fix bug where FSM can stay hung forever in Idle/Clrng
authorPaul Jakma <paul.jakma@sun.com>
Thu, 4 May 2006 08:08:15 +0000 (08:08 +0000)
committerPaul Jakma <paul.jakma@sun.com>
Thu, 4 May 2006 08:08:15 +0000 (08:08 +0000)
commit65ca75e0d1e7e440bf0d2a6a031d4148024c9d12
tree71826429ce3985bf3900be4a965de238ac668e82
parenta3b6ea56a0add7d0972a66d96e1fbcf5461eecdb
[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.
bgpd/ChangeLog
bgpd/bgp_route.c