device: allow reducing queue constants on iOS
Heavier network extensions might require the wireguard-go component to use less ram, so let users of this reduce these as needed. At some point we'll put this behind a configuration method of sorts, but for now, just expose the consts as vars. Requested-by: Josh Bleecher Snyder <josh@tailscale.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
99e8b4ba60
commit
c27ff9b9f6
@ -35,7 +35,6 @@ const (
|
|||||||
/* Implementation constants */
|
/* Implementation constants */
|
||||||
|
|
||||||
const (
|
const (
|
||||||
UnderLoadQueueSize = QueueHandshakeSize / 8
|
|
||||||
UnderLoadAfterTime = time.Second // how long does the device remain under load after detected
|
UnderLoadAfterTime = time.Second // how long does the device remain under load after detected
|
||||||
MaxPeers = 1 << 16 // maximum number of configured peers
|
MaxPeers = 1 << 16 // maximum number of configured peers
|
||||||
)
|
)
|
||||||
|
@ -210,7 +210,7 @@ func (device *Device) Down() error {
|
|||||||
func (device *Device) IsUnderLoad() bool {
|
func (device *Device) IsUnderLoad() bool {
|
||||||
// check if currently under load
|
// check if currently under load
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
underLoad := len(device.queue.handshake.c) >= UnderLoadQueueSize
|
underLoad := len(device.queue.handshake.c) >= QueueHandshakeSize/8
|
||||||
if underLoad {
|
if underLoad {
|
||||||
atomic.StoreInt64(&device.rate.underLoadUntil, now.Add(UnderLoadAfterTime).UnixNano())
|
atomic.StoreInt64(&device.rate.underLoadUntil, now.Add(UnderLoadAfterTime).UnixNano())
|
||||||
return true
|
return true
|
||||||
|
@ -7,13 +7,15 @@
|
|||||||
|
|
||||||
package device
|
package device
|
||||||
|
|
||||||
/* Fit within memory limits for iOS's Network Extension API, which has stricter requirements */
|
// Fit within memory limits for iOS's Network Extension API, which has stricter requirements.
|
||||||
|
// These are vars instead of consts, because heavier network extensions might want to reduce
|
||||||
const (
|
// them further.
|
||||||
QueueStagedSize = 128
|
var (
|
||||||
QueueOutboundSize = 1024
|
QueueStagedSize = 128
|
||||||
QueueInboundSize = 1024
|
QueueOutboundSize = 1024
|
||||||
QueueHandshakeSize = 1024
|
QueueInboundSize = 1024
|
||||||
MaxSegmentSize = 1700
|
QueueHandshakeSize = 1024
|
||||||
PreallocatedBuffersPerPool = 1024
|
PreallocatedBuffersPerPool uint32 = 1024
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const MaxSegmentSize = 1700
|
||||||
|
Loading…
Reference in New Issue
Block a user