github.com/sagernet/wireguard-go@v0.0.0-20231215174105-89dec3b2f3e8/device/constants.go (about)

     1  /* SPDX-License-Identifier: MIT
     2   *
     3   * Copyright (C) 2017-2023 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  )