openwrt/package/network/services
Jason A. Donenfeld 2a9c2c0721 wireguard: bump to 1.0.20200506
* compat: timeconst.h is a generated artifact

Before we were trying to check for timeconst.h by looking in the kernel
source directory. This isn't quite correct on configurations in which
the object directory is separate from the kernel source directory, for
example when using O="elsewhere" as a make option when building the
kernel. The correct fix is to use $(CURDIR), which should point to
where we want.

* compat: use bash instead of bc for HZ-->USEC calculation

This should make packaging somewhat easier, as bash is generally already
available (at least for dkms), whereas bc isn't provided by distros by
default in their build meta packages.

* socket: remove errant restriction on looping to self

It's already possible to create two different interfaces and loop
packets between them. This has always been possible with tunnels in the
kernel, and isn't specific to wireguard. Therefore, the networking stack
already needs to deal with that. At the very least, the packet winds up
exceeding the MTU and is discarded at that point. So, since this is
already something that happens, there's no need to forbid the not very
exceptional case of routing a packet back to the same interface; this
loop is no different than others, and we shouldn't special case it, but
rather rely on generic handling of loops in general. This also makes it
easier to do interesting things with wireguard such as onion routing.
At the same time, we add a selftest for this, ensuring that both onion
routing works and infinite routing loops do not crash the kernel. We
also add a test case for wireguard interfaces nesting packets and
sending traffic between each other, as well as the loop in this case
too. We make sure to send some throughput-heavy traffic for this use
case, to stress out any possible recursion issues with the locks around
workqueues.

* send: cond_resched() when processing tx ringbuffers

Users with pathological hardware reported CPU stalls on CONFIG_
PREEMPT_VOLUNTARY=y, because the ringbuffers would stay full, meaning
these workers would never terminate. That turned out not to be okay on
systems without forced preemption. This commit adds a cond_resched() to
the bottom of each loop iteration, so that these workers don't hog the
core. We don't do this on encryption/decryption because the compat
module here uses simd_relax, which already includes a call to schedule
in preempt_enable.

* selftests: initalize ipv6 members to NULL to squelch clang warning

This fixes a worthless warning from clang.

* send/receive: use explicit unlikely branch instead of implicit coalescing

Some code readibility cleanups.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
(cherry picked from commit 4f6343ffe7)
2020-05-07 13:55:37 +02:00
..
dnsmasq dnsmasq: prefer localuse over resolvfile guesswork 2019-02-24 01:57:31 +00:00
dropbear dropbear: fix dropbear startup issue 2018-12-21 10:08:12 +01:00
ead network/services/ead: drop Build/Prepare rule in favor of default one 2016-10-15 11:36:52 +02:00
hostapd hostapd: remove erroneous $(space) redefinition 2020-02-08 11:54:23 +01:00
igmpproxy igmpproxy: drop SSDP packets 2018-12-18 10:16:16 +01:00
ipset-dns ipset-dns: bump to git HEAD 2017-10-08 20:51:03 +03:00
lldpd lldpd: inhibit linking of libbsd on !GLIBC 2018-12-18 11:28:13 +01:00
odhcpd odhcpd: fix onlink IA check (FS#2060) 2019-01-16 22:52:46 +01:00
omcproxy omcproxy: fix compilation on little-endian CPUs 2019-07-23 19:29:54 +02:00
openvpn openvpn: increase procd termination timeout to 15s 2018-12-18 09:47:39 +01:00
openvpn-easy-rsa openvpn-easy-rsa: update to 3.0.4 2018-12-18 10:27:37 +01:00
ppp ppp: backport security fixes 2020-02-26 16:42:06 +01:00
relayd relayd: bump to version 2020-04-25 2020-05-04 16:24:35 +01:00
samba36 samba36: Enable umdnsd support 2018-12-18 11:28:11 +01:00
uhttpd uhttpd: update to latest Git HEAD 2020-02-26 16:23:05 +01:00
umdns umdns: update to version 2020-04-25 2020-05-04 16:22:39 +01:00
wireguard wireguard: bump to 1.0.20200506 2020-05-07 13:55:37 +02:00