device.state.stopping.Wait()
device.queue.encryption.wg.Add(cpus) // One for each RoutineHandshake
for i := 0; i < cpus; i++ {
- go device.RoutineEncryption()
- go device.RoutineDecryption()
- go device.RoutineHandshake()
+ go device.RoutineEncryption(i + 1)
+ go device.RoutineDecryption(i + 1)
+ go device.RoutineHandshake(i + 1)
}
device.state.stopping.Add(1) // RoutineReadFromTUN
if errors.Is(err, net.ErrClosed) {
return
}
- device.log.Verbosef("Routine: receive incoming %s - failed to receive packet: %v", recvName, err)
+ device.log.Verbosef("Failed to receive %s packet: %v", recvName, err)
if neterr, ok := err.(net.Error); ok && !neterr.Temporary() {
return
}
}
}
-func (device *Device) RoutineDecryption() {
+func (device *Device) RoutineDecryption(id int) {
var nonce [chacha20poly1305.NonceSize]byte
- defer device.log.Verbosef("Routine: decryption worker - stopped")
- device.log.Verbosef("Routine: decryption worker - started")
+ defer device.log.Verbosef("Routine: decryption worker %d - stopped", id)
+ device.log.Verbosef("Routine: decryption worker %d - started", id)
for elem := range device.queue.decryption.c {
// split message into fields
/* Handles incoming packets related to handshake
*/
-func (device *Device) RoutineHandshake() {
+func (device *Device) RoutineHandshake(id int) {
defer func() {
- device.log.Verbosef("Routine: handshake worker - stopped")
+ device.log.Verbosef("Routine: handshake worker %d - stopped", id)
device.queue.encryption.wg.Done()
}()
- device.log.Verbosef("Routine: handshake worker - started")
+ device.log.Verbosef("Routine: handshake worker %d - started", id)
for elem := range device.queue.handshake.c {
*
* Obs. One instance per core
*/
-func (device *Device) RoutineEncryption() {
+func (device *Device) RoutineEncryption(id int) {
var paddingZeros [PaddingMultiple]byte
var nonce [chacha20poly1305.NonceSize]byte
- defer device.log.Verbosef("Routine: encryption worker - stopped")
- device.log.Verbosef("Routine: encryption worker - started")
+ defer device.log.Verbosef("Routine: encryption worker %d - stopped", id)
+ device.log.Verbosef("Routine: encryption worker %d - started", id)
for elem := range device.queue.encryption.c {
// populate header fields