summaryrefslogtreecommitdiffstatshomepage
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* receive: assume we usually succeed with userspaceexperimental-0.0.20160711Jason A. Donenfeld2016-07-101-1/+1
|
* receive: no need to test for !lenJason A. Donenfeld2016-07-101-1/+1
|
* timers: apply slack to hotpath timersJason A. Donenfeld2016-07-102-2/+8
| | | | | | | | | | | For timers in the hotpath, we don't want them to be rescheduled so aggressively, and since they don't need to be that precise, we can set a decent amount of slack. With the persistent keepalive timer, we have something of a special case. Since the timeout isn't fixed like the others, we don't want to make it more often than the kernel ordinarily would. So, instead, we make it a minimum.
* timers: move timer calls out of hot loopJason A. Donenfeld2016-07-101-3/+6
| | | | | | We sacrifice a little bit of precision here, but this avoids jockeying around the timers for every packet, when we're sending in bundles anyway to minimize cache misses.
* timers: document conditions for callingJason A. Donenfeld2016-07-101-0/+8
|
* persistent keepalive: use unsigned long to avoid multiplication in hotpathJason A. Donenfeld2016-07-103-5/+5
|
* persistent keepalive: use authenticated keepalivesJason A. Donenfeld2016-07-108-16/+18
|
* keepalives: only queue keepalive when queue is emptyJason A. Donenfeld2016-07-081-6/+9
|
* timers: do not consider keepalives to be data sentJason A. Donenfeld2016-07-081-1/+3
|
* timers: rename *authorized* functions to *authenticated*Jason A. Donenfeld2016-07-083-4/+4
|
* persistent keepalive: start sending immediatelyexperimental-0.0.20160708.1Jason A. Donenfeld2016-07-082-1/+6
| | | | | | | | | | | | | | | Rather than only start sending the persistent keepalive packets when the device first sends data, this changes it to send the packets immediately on `ip link set up`. This makes things generally seem more stateless, since the administrator does not have to manually ping the endpoint. Of course, if you have a lot of peers and all of them have persistent keepalive enabled, this could cause a lot of unwanted immediate traffic. On the other hand, if all of those peers are at some point going to be sending packets, this would happen anyway. I suppose the moral of the story is that persistent keepalive is a feature really just for clients behind NAT, not for servers, and it should be used sparingly, which is why we've set it off by default in the first place.
* persistent keepalive: documentationJason A. Donenfeld2016-07-081-3/+18
|
* persistent keepalive: add userspace supportJason A. Donenfeld2016-07-084-11/+70
|
* persistent keepalive: add kernel mechanismJason A. Donenfeld2016-07-087-4/+42
|
* curve25519: unneeded zeros variableJason A. Donenfeld2016-07-071-2/+0
|
* tools: use pkg-config in MakefileJason A. Donenfeld2016-07-061-1/+2
|
* device: move unlikely check to if clauseJason A. Donenfeld2016-07-051-2/+2
|
* receive: protect against impossible conditionsJason A. Donenfeld2016-07-031-0/+4
| | | | | | | | | | It should never be the case that skb->head + skb->transport_header - skb->data is greater than 2^16, but in case the kernel network stack borks this at some point in the future, we don't want this to slyly introduce a vulnerability into WireGuard. Further, really smart compilers might be able to make deductions about data_offset, and optimize accordingly.
* tools: always fallback to /dev/urandomJason A. Donenfeld2016-07-031-10/+8
|
* tools: improve error reporting and detectionJason A. Donenfeld2016-07-034-24/+43
|
* tai64n: don't forget to add 2^62, to be in specJason A. Donenfeld2016-07-021-2/+2
|
* contrib: remove extraneous cruftJason A. Donenfeld2016-07-011-1/+3
| | | | | | | We don't want people packaging these or even using these scripts, which are only useful for limited development circumstances, so get rid of them. More widespread development testing techniques still exist in src/debug.mk and src/netns.sh
* wg.8: wording tweaksexperimental-0.0.20160630Jason A. Donenfeld2016-07-011-5/+7
| | | | Suggested-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
* receive: error conditions are unlikelyJason A. Donenfeld2016-07-011-3/+3
|
* Readme: use https instead of httpDaniel Kahn Gillmor2016-06-301-1/+1
| | | | | For the websites referenced that offer https instead of http, use https.
* Makefile: Add more verbose dependency errorsJason A. Donenfeld2016-06-301-0/+32
|
* device init: free wq after padataJason A. Donenfeld2016-06-301-3/+3
| | | | | The padata free functions make reference to their parent workqueue, so it's important that we wait to free the workqueue after the padata.
* chacha20poly1305: use more standard way of testing FPU featuresJason A. Donenfeld2016-06-291-7/+2
|
* device: remove updating of trans_startJason A. Donenfeld2016-06-291-2/+0
| | | | | | | | | | | | | | | | | | | | | Per http://lists.openwall.net/netdev/2016/05/03/87 dev->trans_start has been removed, and updates are now supposed to be handled with netif_trans_update, which now updates the particular txqueue's trans_start instead. However, netdev_start_xmit already updates this member after calling ndo_start_xmit, so the new netif_trans_update function smartly makes the comment that for drivers that don't use LLTX, it's not neccessary to call netif_trans_update. Except we do use LLTX, so it would seem again that we do need to be calling netif_trans_update. However, glancing at drivers like vxlan and other similar virtual tunnels, this doesn't seem to be the case. I suspect the reason is that we both also set IFF_NO_QUEUE, so we aren't even using a txqueue for updating. Thus, this patch removes updating of trans_start all together. I believe this should be okay for older kernels too.
* Kconfig: more fully select dependenciesJason A. Donenfeld2016-06-291-0/+3
|
* tests: make fatalJason A. Donenfeld2016-06-2513-20/+29
|
* nonce: switch to RFC6479 to better support packet reorderingJason A. Donenfeld2016-06-253-61/+95
| | | | | With packets hitting multiple cores, a 64bit backtrack was too small. This algorithm increases our backtrack to 1984bits.
* Initial commitJason A. Donenfeld2016-06-2565-0/+13888