aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/peer.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* global: add SPDX tags to all filesGreg Kroah-Hartman2017-12-091-1/+4
| | | | | | | | | | | | | It's good to have SPDX identifiers in all files as the Linux kernel developers are working to add these identifiers to all files. Update all files with the correct SPDX license identifier based on the license text of the project or based on the license in the file itself. The SPDX identifier is a legally binding shorthand, which can be used instead of the full boiler plate text. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Modified-by: Jason A. Donenfeld <Jason@zx2c4.com>
* device: clear last handshake timer on ifdownJason A. Donenfeld2017-11-291-0/+1
| | | | | | | Otherwise new handshakes might not occur immediately when the interface goes up and down. Also initialize peers to having a proper zeroed handshake jiffies.
* allowedips: rename from routingtableJason A. Donenfeld2017-11-101-1/+1
| | | | Makes it more clear that this _not_ a routing table replacement.
* global: revert checkpatch.pl changesJason A. Donenfeld2017-11-021-1/+1
| | | | | These changes were suggested by checkpatch.pl, but actually cause big problems depending on the options. Revert.
* global: style nitsJason A. Donenfeld2017-10-311-1/+2
|
* global: infuriating kernel iterator styleJason A. Donenfeld2017-10-311-1/+1
| | | | | | | | | | | | | | | | | One types: for (i = 0 ... So one should also type: for_each_obj (obj ... But the upstream kernel style guidelines are insane, and so we must instead do: for_each_obj(obj ... Ugly, but one must choose his battles wisely.
* peer: store total number of peers instead of iteratingJason A. Donenfeld2017-10-311-12/+3
| | | | | | This is faster, since it means adding a new peer is O(1) instead of O(n). It's also safe to do because we're holding the device_update_lock on both the ++ and the --.
* global: accept decent check_patch.pl suggestionsJason A. Donenfeld2017-10-311-3/+4
|
* routingtable: only use device's mutex, not a special rt oneJason A. Donenfeld2017-10-091-1/+1
|
* queueing: use ptr_ring instead of linked listsJason A. Donenfeld2017-10-051-2/+4
|
* global: add space around variable declarationsJason A. Donenfeld2017-10-031-0/+4
|
* noise: use spinlock for rotating keysJason A. Donenfeld2017-10-021-1/+1
| | | | | This should only really be contended in extremely exceptional cases, so changing from a mutex to a spinlock is likely fine.
* peer: remove from RCU lists when the kref is zeroJason A. Donenfeld2017-10-021-4/+5
|
* peer: ensure that lookup tables are added lastJason A. Donenfeld2017-10-021-3/+3
|
* netlink: switch from ioctl to netlink for configurationJason A. Donenfeld2017-10-021-1/+1
|
* timers: convert to use netif_runningJason A. Donenfeld2017-09-241-2/+3
|
* queue: entirely rework parallel systemJason A. Donenfeld2017-09-181-10/+11
| | | | | | | | | | This removes our dependency on padata and moves to a different mode of multiprocessing that is more efficient. This began as Samuel Holland's GSoC project and was gradually reworked/redesigned/rebased into this present commit, which is a combination of his initial contribution and my subsequent rewriting and redesigning.
* global: use pointer to net_deviceJason A. Donenfeld2017-07-201-2/+2
| | | | | | DaveM prefers it to be this way per [1]. [1] http://www.spinics.net/lists/netdev/msg443992.html
* peer: explicitly initialize atomicJason A. Donenfeld2017-06-051-0/+3
|
* debug: print interface name in dmesgJason A. Donenfeld2017-05-311-2/+2
|
* style: spaces after for loopsJason A. Donenfeld2017-05-301-2/+2
|
* peer: use iterator macro instead of callbackJason A. Donenfeld2017-05-301-27/+0
|
* noise: precompute static-static ECDH operationJason A. Donenfeld2017-05-301-1/+4
|
* handshake: process in parallelJason A. Donenfeld2017-05-301-2/+2
|
* noise: redesign preshared key modeJason A. Donenfeld2017-05-171-3/+3
|
* data: cleanup parallel workqueue and use two max_activeJason A. Donenfeld2017-04-081-2/+2
|
* locking: always use _bhJason A. Donenfeld2017-04-041-4/+4
| | | | | All locks are potentially between user context and softirq, which means we need to take the _bh variant.
* Update copyrightJason A. Donenfeld2017-01-101-1/+1
|
* cookies: use xchacha20poly1305 instead of chacha20poly1305Jason A. Donenfeld2016-12-231-0/+1
| | | | | This allows us to precompute the blake2s calls and save cycles, since hchacha is fast.
* peer: don't use sockaddr_storage to reduce memory usageJason A. Donenfeld2016-12-131-1/+1
|
* headers: cleanup noticesJason A. Donenfeld2016-11-211-1/+1
|
* socket: keep track of src address in sending packetsJason A. Donenfeld2016-11-151-1/+1
|
* c89: the static keyword is okay in c99, but not in c89Jason A. Donenfeld2016-11-051-1/+1
|
* socket: use dst_cache instead of handrolled cacheJason A. Donenfeld2016-11-041-2/+6
|
* timers: take reference like a lookup tableJason A. Donenfeld2016-11-031-8/+15
|
* kref: elide checksJason A. Donenfeld2016-11-021-5/+3
|
* peer: kref is most likely to succeedJason A. Donenfeld2016-11-011-2/+2
|
* Rework headers and includesJason A. Donenfeld2016-09-291-5/+2
|
* c: specify static array size in function paramsJason A. Donenfeld2016-08-021-1/+1
| | | | | | | | | | | | | | | The C standard states: A declaration of a parameter as ``array of type'' shall be adjusted to ``qualified pointer to type'', where the type qualifiers (if any) are those specified within the [ and ] of the array type derivation. If the keyword static also appears within the [ and ] of the array type derivation, then for each call to the function, the value of the corresponding actual argument shall provide access to the first element of an array with at least as many elements as specified by the size expression. By changing void func(int array[4]) to void func(int array[static 4]), we automatically get the compiler checking argument sizes for us, which is quite nice.
* Initial commitJason A. Donenfeld2016-06-251-0/+144