mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-11-03 08:05:15 +00:00
[bgpd] Allow accepted peers to progress even if realpeer is in Connect
* bgpd/bgp_packet.c: (bgp_open_receive) Try fix the little race in the FSM, where a accept-peer that progress faster than realpeer gets closed down if realpeer is still just in Connect, by allowing the realpeer to be bgp_stop'ed and doing the regular swapping-of-FSM state.
This commit is contained in:
parent
2b2fc5606f
commit
6e19926388
@ -1304,8 +1304,8 @@ bgp_open_receive (struct peer *peer, bgp_size_t size)
|
||||
}
|
||||
else if (ret == 0 && realpeer->status != Active
|
||||
&& realpeer->status != OpenSent
|
||||
&& realpeer->status != OpenConfirm)
|
||||
|
||||
&& realpeer->status != OpenConfirm
|
||||
&& realpeer->status != Connect)
|
||||
{
|
||||
/* XXX: This is an awful problem..
|
||||
*
|
||||
@ -1363,8 +1363,9 @@ bgp_open_receive (struct peer *peer, bgp_size_t size)
|
||||
}
|
||||
|
||||
if (BGP_DEBUG (events, EVENTS))
|
||||
zlog_debug ("%s [Event] Transfer temporary BGP peer to existing one",
|
||||
peer->host);
|
||||
zlog_debug ("%s [Event] Transfer accept BGP peer to real (state %s)",
|
||||
peer->host,
|
||||
LOOKUP (bgp_status_msg, realpeer->status));
|
||||
|
||||
bgp_stop (realpeer);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user