mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-27 10:04:18 +00:00
bgpd: Use bgp instance's default keepalive interval if < (holdtime/3)
bgp->default_keepalive was not considered when setting peer->v_keepalive, causing the effective keepalive interval to always be (holdtime/3), even when default_keepalive < (holdtime/3). This ensures that the default_keepalive is used when it's set and is < (holdtime/3). Signed-off-by: Trey Aspelund <taspelund@cumulusnetworks.com> (cherry picked from commit d8bf8c6128f2e493d473148213bd663a500c7f73)
This commit is contained in:
parent
0dd8f34328
commit
b3382a4c64
@ -1322,11 +1322,18 @@ static int bgp_open_receive(struct peer *peer, bgp_size_t size)
|
||||
else
|
||||
peer->v_holdtime = send_holdtime;
|
||||
|
||||
if ((CHECK_FLAG(peer->flags, PEER_FLAG_TIMER))
|
||||
&& (peer->keepalive < peer->v_holdtime / 3))
|
||||
peer->v_keepalive = peer->keepalive;
|
||||
else
|
||||
peer->v_keepalive = peer->v_holdtime / 3;
|
||||
/* Set effective keepalive to 1/3 the effective holdtime.
|
||||
* Use configured keeplive when < effective keepalive.
|
||||
*/
|
||||
peer->v_keepalive = peer->v_holdtime / 3;
|
||||
if (CHECK_FLAG(peer->flags, PEER_FLAG_TIMER)) {
|
||||
if (peer->keepalive && peer->keepalive < peer->v_keepalive)
|
||||
peer->v_keepalive = peer->keepalive;
|
||||
} else {
|
||||
if (peer->bgp->default_keepalive
|
||||
&& peer->bgp->default_keepalive < peer->v_keepalive)
|
||||
peer->v_keepalive = peer->bgp->default_keepalive;
|
||||
}
|
||||
|
||||
/* Open option part parse. */
|
||||
if (optlen != 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user