aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* handshake: process in parallelJason A. Donenfeld2017-05-307-35/+61
|
* compat: ship padata if kernel doesn't have itJason A. Donenfeld2017-05-303-11/+1055
|
* man: update wg-quick(8) to show Debian resolvconf braindamageJason A. Donenfeld2017-05-301-2/+2
| | | | | | | | | | | | | | | | | | | | While OpenResolv supports explicit ordering directives such as `-m` and exclusivity directives such as `-x`, Debian's own resolvconf supports none of this, instead using a hard coded list of interface name templates for determining ordering. While trying to emulate `-x` is difficult [*], we can at least try to mostly emulate `-m 0` by masquerading as a `tun*` interface to resolvconf. Ugly, but it works. [*] One heavy handed way of emulating `-x` would be something like: # echo nameserver 8.8.8.8 > /etc/resolv.conf.wg0-exclusive # mount --bind -o ro /etc/resolv.conf.wg0-exclusive /etc/resolv.conf # rm -f /etc/resolv.conf.wg0-exclusive This in practice works quite well, but is a bit heavy to put in a man page. It also doesn't "stack" well. For example, if we simply run `umount /etc/resolv.conf`, how do we know which resolv.conf entry we're unmounting?
* chacha20poly1305: add NEON versions for ARM and ARM64Jason A. Donenfeld2017-05-306-12/+1048
|
* chacha20poly1305: move constants to rodataJason A. Donenfeld2017-05-215-14/+27
|
* wg-quick: use src routing for default routes in v6Jason A. Donenfeld2017-05-181-3/+11
| | | | | Otherwise, traffic is sent with the IP address of a different interface, and then packets don't actually get delivered.
* man: fix psk mention in wg-quick man pageJason A. Donenfeld2017-05-181-2/+2
|
* version: bump snapshot0.0.20170517Jason A. Donenfeld2017-05-172-2/+2
|
* tools: opt-in globally to GNU-isms to keep the BSDs happyJason A. Donenfeld2017-05-172-2/+1
|
* tools: support text-based ipcJason A. Donenfeld2017-05-178-131/+321
|
* tools: check for proto error on set tooJason A. Donenfeld2017-05-171-3/+4
|
* Kbuild: optimize debug builds tooJason A. Donenfeld2017-05-171-1/+1
|
* tests: check for stats counter increasesJason A. Donenfeld2017-05-171-0/+4
| | | | | The kernel API for this has changed a lot, so this test is important to ensure our compat layer is doing the right thing.
* qemu: new location for test kernelsJason A. Donenfeld2017-05-171-3/+3
|
* tools: stricter key file readingJason A. Donenfeld2017-05-171-31/+40
|
* jerry-rig: symlinks are better for tree patchingJason A. Donenfeld2017-05-171-1/+1
| | | | | | Use a symlink instead of lots of ../../.. Suggested-by: Benedikt Morbach <benedikt.morbach@googlemail.com>
* noise: redesign preshared key modeJason A. Donenfeld2017-05-1715-210/+203
|
* chacha20poly1305: implement vectorized hchacha20Jason A. Donenfeld2017-05-172-21/+157
|
* qemu: new packages and better debuggingJason A. Donenfeld2017-05-172-12/+13
|
* tools: wg-quick: auto MTU discoveryJason A. Donenfeld2017-05-172-1/+28
|
* tools: retry name resolution on temporary failureJason A. Donenfeld2017-05-171-1/+10
| | | | This should solve many problems at init time.
* compat: remember to call iptunnel_xmit_statsJason A. Donenfeld2017-05-171-4/+13
| | | | Upstream's 039f50629b7f860f36644ed1f34b27da9aa62f43 only came in 4.5
* compat: use real crypto_memneqJason A. Donenfeld2017-05-174-14/+181
|
* compat: work around ubnt offloadingJason A. Donenfeld2017-05-171-0/+4
|
* compat: ssse3 supportJason A. Donenfeld2017-05-041-0/+4
|
* compat: use existing iptunnel_xmit function for statsJason A. Donenfeld2017-04-241-7/+2
|
* version: bump snapshot0.0.20170421Jason A. Donenfeld2017-04-212-2/+2
|
* routingtable: rewrite core functionsJason A. Donenfeld2017-04-215-439/+634
| | | | | | | | | | | | | | | | | | | | | When removing by peer, prev needs to be set to *nptr in order to traverse that part of the trie. The other remove by IP function can simply be removed, as it's not in use. The root freeing function can use pre-order traversal instead of post-order. The pre-order traversal code in general is now a nice iterator macro. The common bits function can use the fast fls instructions and the match function can be rewritten to simply compare common bits. While we're at it, let's add tons of new tests, randomized checking against a dumb implementation, and graphviz output. And in general, it's nice to clean things up.
* compat: work on old 3.10Jason A. Donenfeld2017-04-212-0/+35
|
* config: don't allow no-privatekey to mask presharedJason A. Donenfeld2017-04-211-1/+2
|
* cookie: move the bangsJason A. Donenfeld2017-04-211-2/+2
|
* tools: no hyphen in preshared, to keep uniformityJason A. Donenfeld2017-04-204-5/+5
|
* tools: argc is always 1Jason A. Donenfeld2017-04-191-1/+1
|
* tools: check for malloc failureJason A. Donenfeld2017-04-191-0/+4
|
* tools: side channel resistant base64Jason A. Donenfeld2017-04-1910-260/+87
|
* netns: cleanup and add diagramJason A. Donenfeld2017-04-141-7/+18
|
* device: use rcu_barrier_bhJason A. Donenfeld2017-04-141-2/+2
|
* qemu: work on ARM64Jason A. Donenfeld2017-04-143-5/+21
|
* receive: netif_rx consumesJason A. Donenfeld2017-04-091-1/+3
|
* version: bump snapshot0.0.20170409Jason A. Donenfeld2017-04-092-2/+2
|
* compat: warn on < 4.1Jason A. Donenfeld2017-04-091-0/+2
|
* compat: careful with destructorsJason A. Donenfeld2017-04-092-7/+7
|
* compat: support 3.10Jason A. Donenfeld2017-04-093-5/+106
|
* compat: support 3.12Jason A. Donenfeld2017-04-098-7/+240
|
* compat: support 3.14Jason A. Donenfeld2017-04-093-8/+132
|
* compat: support 3.16Jason A. Donenfeld2017-04-098-111/+579
|
* data: alloca is actually as dangerous as they sayJason A. Donenfeld2017-04-091-6/+4
| | | | | | | | | | | | | It turns out that calling alloca from an inline function means that the memory isn't ever deallocated until the caller function exits, which means we were using tons of stack space for every iteration of the call. So, we hard code the sg array. While 128 seems like a reasonable number, we actually wind up using "MAX_SKB_FRAGS * 2 + 1". An skb has its data segment, so that's 1. Then it has its frags, which are MAX_SKB_FRAGS at max. Then it has its frag list, which, so far as I can tell, are potentially unbounded. So we just hope it's no more than MAX_SKB_FRAGS, and so we plan for at most two of those.
* debug: cleanupsJason A. Donenfeld2017-04-082-3/+3
|
* qemu: ensure kernel is configured before headers are installedJason A. Donenfeld2017-04-081-1/+1
|
* data: cleanup parallel workqueue and use two max_activeJason A. Donenfeld2017-04-087-29/+31
|