constants.go raw

   1  /* SPDX-License-Identifier: MIT
   2   *
   3   * Copyright (C) 2017-2025 WireGuard LLC. All Rights Reserved.
   4   */
   5  
   6  package device
   7  
   8  import (
   9  	"time"
  10  )
  11  
  12  /* Specification constants */
  13  
  14  const (
  15  	RekeyAfterMessages      = (1 << 60)
  16  	RejectAfterMessages     = (1 << 64) - (1 << 13) - 1
  17  	RekeyAfterTime          = time.Second * 120
  18  	RekeyAttemptTime        = time.Second * 90
  19  	RekeyTimeout            = time.Second * 5
  20  	MaxTimerHandshakes      = 90 / 5 /* RekeyAttemptTime / RekeyTimeout */
  21  	RekeyTimeoutJitterMaxMs = 334
  22  	RejectAfterTime         = time.Second * 180
  23  	KeepaliveTimeout        = time.Second * 10
  24  	CookieRefreshTime       = time.Second * 120
  25  	HandshakeInitationRate  = time.Second / 50
  26  	PaddingMultiple         = 16
  27  )
  28  
  29  const (
  30  	MinMessageSize = MessageKeepaliveSize                  // minimum size of transport message (keepalive)
  31  	MaxMessageSize = MaxSegmentSize                        // maximum size of transport message
  32  	MaxContentSize = MaxSegmentSize - MessageTransportSize // maximum size of transport message content
  33  )
  34  
  35  /* Implementation constants */
  36  
  37  const (
  38  	UnderLoadAfterTime = time.Second // how long does the device remain under load after detected
  39  	MaxPeers           = 1 << 16     // maximum number of configured peers
  40  )
  41