cloudflare / cloudflare/boringtun
Persistent keepalive waits a full interval before the initial send
- Dominant language
- Rust
- Stars
- 7.2k
- Forks
- 532
- PR merge metrics
- No merged PRs in 30d
Description
A peer configured with persistent keepalive waits one full interval before its first send. An idle peer therefore does not initiate a handshake until, for example, 25 seconds after startup (if set to 25sec).
Official implementations send immediately: [wireguard-go sends a keepalive when the interface comes up](https://git.zx2c4.com/wireguard-go/tree/device/device.go#n712), and [Linux sends one when persistent keepalive is enabled](https://git.zx2c4.com/wireguard-linux/tree/drivers/net/wireguard/netlink.c#n1028).
Contributor guide
Research direction
Start by tracing how persistent keepalive is scheduled when the interface or peer is initialized, then compare the behavior with the wireguard-go entry point in device/device.go and the Linux netlink.c reference linked in the issue. Reproduce the startup delay and confirm that an idle peer sends its initial keepalive immediately rather than waiting for the configured interval.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100