From a9f80d8c587df99c6e8f57704aef3fe1ac62d0db Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Fri, 29 Jan 2021 20:10:48 +0100 Subject: device: reduce number of append calls when padding Signed-off-by: Jason A. Donenfeld --- device/send.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/device/send.go b/device/send.go index 5261c2f..9d63c4e 100644 --- a/device/send.go +++ b/device/send.go @@ -367,7 +367,7 @@ func calculatePaddingSize(packetSize, mtu int) int { * Obs. One instance per core */ func (device *Device) RoutineEncryption() { - + var paddingZeros [PaddingMultiple]byte var nonce [chacha20poly1305.NonceSize]byte defer device.log.Verbosef("Routine: encryption worker - stopped") @@ -386,11 +386,8 @@ func (device *Device) RoutineEncryption() { binary.LittleEndian.PutUint64(fieldNonce, elem.nonce) // pad content to multiple of 16 - paddingSize := calculatePaddingSize(len(elem.packet), int(atomic.LoadInt32(&device.tun.mtu))) - for i := 0; i < paddingSize; i++ { - elem.packet = append(elem.packet, 0) - } + elem.packet = append(elem.packet, paddingZeros[:paddingSize]...) // encrypt content and release to consumer -- cgit v1.2.3