Under high load instances with hundreds of thousands of prefixes this
could result in very unstable systems.
When maximum-prefix is set, but restart timer is not set then the session
flaps between Idle(Pfx) -> Established -> Idle(Pfx) states.
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
return -1;
}
- /* Check whether max prefix restart timer is set for the peer */
- if (peer1->t_pmax_restart) {
+ /* Do not try to reconnect if the peer reached maximum
+ * prefixes, restart timer is still running or the peer
+ * is shutdown.
+ */
+ if (BGP_PEER_START_SUPPRESSED(peer1)) {
if (bgp_debug_neighbor_events(peer1))
zlog_debug(
- "%s - incoming conn rejected - "
- "peer max prefix timer is active",
+ "[Event] Incoming BGP connection rejected from %s "
+ "due to maximum-prefix or shutdown",
peer1->host);
close(bgp_sock);
return -1;