[ANNOUNCE] WireGuard Snapshot `0.0.20171005` Available
Jason A. Donenfeld
Jason at zx2c4.com
Fri Oct 6 03:37:43 CEST 2017
-----BEGIN PGP SIGNED MESSAGE-----
A new snapshot, `0.0.20171005`, has been tagged in the git repository.
Please note that this snapshot is, like the rest of the project at this point
in time, experimental, and does not consitute a real release that would be
considered secure and bug-free. WireGuard is generally thought to be fairly
stable, and most likely will not crash your computer (though it may).
However, as this is a pre-release snapshot, it comes with no guarantees, and
its security is not yet to be depended on; it is not applicable for CVEs.
With all that said, if you'd like to test this snapshot out, there are a
few relevent changes.
== Changes ==
* community: code welcomed
There's a small disorganized list of things to do, some of which are large
projects, and others are just little cleanups:
If anybody is interested in working on something, please don't hesitate to
send an email to this list, team at wireguard.com, or me directly.
* tools: simmer down silly compilers
* tools: compile on non-Linux
* contrib: remove worthless build artifact
* kernel-tree: remember UAPI in patch creation
* curve25519-neon-arm: force ARM encoding, since this is unrepresentable in Thumb
* compat: support ptr_ring for old kernels
* compat: conditionally redefine GENL_UNS_ADMIN_PERM
* compat: RHEL backported netlink changes
These here are all compatibility-related fixes mostly left over from churn of
the previous snapshots, where we lost some compatibility with old kernels and
weird toolchains. The above series of fixes brings us back up to par, and
should make life slightly easier for a few packagers who had to work-around
things in the last snapshot.
* compat: macro rewrite netlink instead of cluttering
* global: satisfy bitshift pedantry
* global: use _WG prefix for include guards
* global: add space around variable declarations
* queueing: cleanup skb_padding
* Makefile: add non-verbose mode to tools
* Makefile: clang now builds the kernel, so use scan-build
One touch static analysis: `make check`.
* receive: simplify message type validation
* receive: use local keypair, not ctx keypair in error path
* send: put keypair reference
* receive: we're not planning on turning that into a while loop now
* queueing: use ptr_ring instead of linked lists
* receive: do not store endpoint in ctx
* queueing: move from ctx to cb
This is another huge change, and the main motivation for releasing this
snapshot. We move from using a linked list-based queue to a ring buffer-based
queue, which yields considerable performance increases. It also allows us to
entirely rid ourselves of a memory cache object, which further increases
performance and decreases latency. The move to a ring buffer will also make
writing lock-less algorithms easier, which will eventually increase our
performance on systems with extremely high core counts.
As always, the source is available at https://git.zx2c4.com/WireGuard/ and
information about the project is available at https://www.wireguard.com/ .
This snapshot is available in tarball form here:
If you're a snapshot package maintainer, please bump your package version. If
you're a user, the WireGuard team welcomes any and all feedback on this latest
Finally, WireGuard development thrives on donations. By popular demand, we
have a webpage for this: https://www.wireguard.com/donations/
-----BEGIN PGP SIGNATURE-----
-----END PGP SIGNATURE-----
More information about the WireGuard