summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--server/fsm.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/server/fsm.go b/server/fsm.go
index d657b404..53cfc55c 100644
--- a/server/fsm.go
+++ b/server/fsm.go
@@ -511,6 +511,9 @@ func (h *FSMHandler) openconfirm() bgp.FSMState {
h.holdTimer = &time.Timer{}
} else {
sec := time.Second * time.Duration(fsm.peerConfig.Timers.KeepaliveInterval)
+ if fsm.negotiatedHoldTime < fsm.peerConfig.Timers.HoldTime {
+ sec = time.Second * time.Duration(fsm.negotiatedHoldTime) / 3
+ }
fsm.keepaliveTicker = time.NewTicker(sec)
// RFC 4271 P.65