mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-27 06:50:25 +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
|
else
|
||||||
peer->v_holdtime = send_holdtime;
|
peer->v_holdtime = send_holdtime;
|
||||||
|
|
||||||
if ((CHECK_FLAG(peer->flags, PEER_FLAG_TIMER))
|
/* Set effective keepalive to 1/3 the effective holdtime.
|
||||||
&& (peer->keepalive < peer->v_holdtime / 3))
|
* Use configured keeplive when < effective keepalive.
|
||||||
peer->v_keepalive = peer->keepalive;
|
*/
|
||||||
else
|
|
||||||
peer->v_keepalive = peer->v_holdtime / 3;
|
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. */
|
/* Open option part parse. */
|
||||||
if (optlen != 0) {
|
if (optlen != 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user