Development discussion of WireGuard
 help / color / mirror / Atom feed
From: Manikandan Thiagarajan <tmani@prosimo.io>
To: wireguard@lists.zx2c4.com
Subject: Wireguard Go C API Callbacks
Date: Wed, 9 Mar 2022 17:00:48 -0800	[thread overview]
Message-ID: <0BDD2370-8F67-43BD-9186-76FF85EE1FC1@prosimo.io> (raw)
In-Reply-To: <DBFC0427-180B-4757-A93A-0D9DECD959EE@prosimo.io>

Hi,

We are using Wireguard Go C API to integrate with our packet tunnel network extension to forward traffic to WG Tunnel on Mac OS. Sometimes We encounter some issues with the tunnel that it doesn’t respond anymore. Below log is one of the scenarios where we see this issue. The Wireguard log says "no buffer space available”. Below are my questions regarding this issue and in general WG C API.

“[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Failed to read packet from TUN device: route ip+net: sysctl: no buffer space available"

1. When do we hit this issue? How do we prevent this.
2. I think we need some kind of callback C APIs that notifies such errors to the callers.
3. Also it would be nice to have status update callbacks such as Tunnel established, Handshake completed. Handshake failed, Tunnel file descriptor closed and any other updates.

We would like to handle these notifications and take some actions such as re create the tunnels, update our own UI, and etc

Thanks,
Mani

[Sun Mar  6 15:27:15 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: receive incoming v4 - started
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: event worker - stopped
replace_peers=true
public_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
endpoint=x.x.x.x:51820
persistent_keepalive_interval=0
replace_allowed_ips=true
allowed_ip=10.50.19.176/32
public_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
endpoint=x.x.x.x:51820
persistent_keepalive_interval=0
replace_allowed_ips=true
allowed_ip=10.255.254.170/32

 for interface 100.140.34.230/11
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:286 [INFO]: Update tunnel 0 CCConfig: private_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
replace_peers=true
public_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
endpoint=x.x.x.x:51820
persistent_keepalive_interval=0
replace_allowed_ips=true
allowed_ip=10.50.19.176/32
public_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
endpoint=x.x.x.x:51820
persistent_keepalive_interval=0
replace_allowed_ips=true
allowed_ip=10.255.254.170/32


[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: UAPI: Updating private key
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: UAPI: Removing all peers
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(EBXr…oDk8) - Stopping
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(EBXr…oDk8) - Routine: sequential sender - stopped
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(EBXr…oDk8) - Routine: sequential receiver - stopped
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(3wsi…8IXc) - Stopping
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(3wsi…8IXc) - Routine: sequential receiver - stopped
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(3wsi…8IXc) - Routine: sequential sender - stopped
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(EBXr…oDk8) - Starting
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(EBXr…oDk8) - Routine: sequential sender - started
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(EBXr…oDk8) - UAPI: Created
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(EBXr…oDk8) - Routine: sequential receiver - started
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(EBXr…oDk8) - UAPI: Updating endpoint
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(EBXr…oDk8) - UAPI: Updating persistent keepalive interval
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(EBXr…oDk8) - UAPI: Removing all allowedips
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(EBXr…oDk8) - UAPI: Adding allowedip
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(3wsi…8IXc) - Starting
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(3wsi…8IXc) - UAPI: Created
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(3wsi…8IXc) - Routine: sequential receiver - started
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(3wsi…8IXc) - Routine: sequential sender - started
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(3wsi…8IXc) - UAPI: Updating endpoint
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(3wsi…8IXc) - UAPI: Updating persistent keepalive interval
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(3wsi…8IXc) - UAPI: Removing all allowedips
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(3wsi…8IXc) - UAPI: Adding allowedip
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: receive incoming v4 - stopped
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: receive incoming v6 - stopped
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: UDP bind has been updated
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: receive incoming v6 - started
[Sun Mar  6 15:27:21 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: receive incoming v4 - started
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Failed to read packet from TUN device: route ip+net: sysctl: no buffer space available
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: TUN reader - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Device closing
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: receive incoming v4 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: receive incoming v6 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(EBXr…oDk8) - Stopping
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(EBXr…oDk8) - Routine: sequential sender - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(EBXr…oDk8) - Routine: sequential receiver - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(3wsi…8IXc) - Stopping
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(3wsi…8IXc) - Routine: sequential sender - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: peer(3wsi…8IXc) - Routine: sequential receiver - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Device closed
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: decryption worker 2 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: decryption worker 11 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: decryption worker 6 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: decryption worker 10 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: handshake worker 7 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: decryption worker 4 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: handshake worker 10 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: decryption worker 5 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: decryption worker 12 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: handshake worker 2 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: decryption worker 7 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: decryption worker 8 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: decryption worker 1 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: decryption worker 9 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: handshake worker 9 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: handshake worker 5 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: handshake worker 1 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: decryption worker 3 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: handshake worker 11 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: handshake worker 8 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: handshake worker 12 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: handshake worker 4 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: handshake worker 3 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: handshake worker 6 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: encryption worker 5 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: encryption worker 9 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: encryption worker 6 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: encryption worker 11 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: encryption worker 12 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: encryption worker 3 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: encryption worker 10 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: encryption worker 4 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: encryption worker 1 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: encryption worker 7 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: encryption worker 8 - stopped
[Sun Mar  6 15:27:22 2022] 832, AgentPacketTunnelProvider.mm:41 [INFO]: Routine: encryption worker 2 - stopped



      parent reply	other threads:[~2022-03-10  1:00 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-14 20:53 Netstat bytes count doesn't match with Wireguard Manikandan Thiagarajan
2021-09-15  7:31 ` Aaron Jones
2022-03-10  1:00 ` Manikandan Thiagarajan [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0BDD2370-8F67-43BD-9186-76FF85EE1FC1@prosimo.io \
    --to=tmani@prosimo.io \
    --cc=wireguard@lists.zx2c4.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).