diff options
-rw-r--r-- | server/fsm.go | 3 |
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 |