Commit Graph

1460 Commits

Author SHA1 Message Date
Arceliar
6c63b02385 Merge branch 'future' of https://github.com/yggdrasil-network/yggdrasil-go into future 2021-06-13 05:44:32 -05:00
Arceliar
8f91f0c050 fix nodeinfo and debug admin functions, this is ugly / a hack, but it works i guess... 2021-06-13 05:43:03 -05:00
Neil Alexander
c8938a3527 Add missing icmpv6.go 2021-06-13 11:34:59 +01:00
Arceliar
3393db8e77 move ICMP PacketTooBig sending into core 2021-06-13 05:25:13 -05:00
Arceliar
816356ea65 mostly finish migration of IP stuff to core, tuntap is still responsible for ICMP PacketTooBig 2021-06-13 04:54:06 -05:00
Arceliar
1147ee1934 WIP moving IP-specific checks from tuntap to core 2021-06-13 04:22:21 -05:00
Arceliar
91235980af fix logging for socks 2021-06-12 07:03:32 -05:00
Arceliar
eeadffe4a5 move position of log line on shutdown 2021-06-12 06:07:33 -05:00
Arceliar
5b6f730f18 keep a context in the core, use it for listen/dial, cancel it when closing 2021-06-12 06:06:39 -05:00
Arceliar
3815b13ad5 use DialContext 2021-06-12 05:58:14 -05:00
Neil Alexander
acdc3dd3c0 Replace ?ed25519= with ?key= in peering URIs 2021-06-11 21:12:27 +01:00
Arceliar
f7607557c1 fix nBytes check in multicast code 2021-06-06 04:48:00 -05:00
Arceliar
e7da3d72c4 remove session firewall, this can't prevent memory use so it's better to just use OS native tools 2021-06-06 02:35:02 -05:00
Neil Alexander
2e2566d248 Remove src/core/doc.go 2021-06-05 21:56:31 +01:00
Neil Alexander
4a684e7caf Don't add mutex to config output 2021-06-05 21:48:20 +01:00
Neil Alexander
ea15eeee7e Ensure PublicKey option is unused, map old config options 2021-06-05 21:32:04 +01:00
Neil Alexander
99973b2757 Remove module package, it didn't really give us anything anyway 2021-06-05 20:57:03 +01:00
Neil Alexander
cb536a7322 Clean up util package 2021-06-05 20:55:08 +01:00
Arceliar
414c100125 add public keys to multicast, public key pinning to multicast peering 2021-06-05 05:07:04 -05:00
Neil Alexander
ff751a5409 Fix lint error 2021-06-02 14:46:04 +01:00
Neil Alexander
8932ab0519 Fix lint errors 2021-06-02 14:40:09 +01:00
Neil Alexander
166336a418 Remove config.NodeState (hot reconfig is no longer supported) 2021-06-02 14:19:32 +01:00
Arceliar
978124dbb1 update dependency (ironwood), fix units in core benchmark 2021-05-31 06:39:53 -05:00
Arceliar
1db7437b80 more cleanup and fix a busyloop when the admin socket is shut down 2021-05-29 21:37:13 -05:00
Arceliar
e25ad9ed21 cleanup unused code 2021-05-29 20:42:06 -05:00
Arceliar
180654c495 possibly fix src/core/core_test.go 2021-05-29 11:13:59 -05:00
Arceliar
8a60c605f6 remove metric stuff, there's already enough new stuff to test, maybe revisit this in a future release 2021-05-24 18:53:54 -05:00
Arceliar
c60dd42baa cleanup 2021-05-23 21:51:09 -05:00
Arceliar
5f2bcaa71f add Listen to api and listenURL to tcp 2021-05-23 21:47:12 -05:00
Arceliar
fd5cda6329 read metric from urls for listen and peers 2021-05-23 20:58:34 -05:00
Arceliar
70c5b06286 use url.URL in place of string for most internal listen/peer address handling 2021-05-23 20:34:13 -05:00
Arceliar
58af92812e add metric to metadata exchange, but currently left at default 0 value 2021-05-23 18:40:36 -05:00
Arceliar
6bc2044ced update ironwood dependency, fix ansible code, go mod tidy 2021-05-23 17:52:10 -05:00
Arceliar
018f35d9a2 rename src/yggdrasil to src/core 2021-05-23 14:42:26 -05:00
Arceliar
0343dad934 remove obsolete crypto package 2021-05-23 14:33:28 -05:00
Arceliar
f69f02386d rename debug admin socket functions 2021-05-23 13:37:46 -05:00
Arceliar
e6f86a9bd7 cleanup proto admin socket response formats 2021-05-23 12:19:27 -05:00
Arceliar
29dda650b5 tun session protocol traffic cleanup 2021-05-23 11:58:52 -05:00
Arceliar
233cf0c962 add remote debugGetSelf and fix some return type things in the other debug functions 2021-05-22 21:27:11 -05:00
Arceliar
c7b004d36f get debugGetPeers and debugGetDHT working in the admin socket 2021-05-22 20:25:14 -05:00
Arceliar
8668abf481 WIP adding crawling debug packets 2021-05-22 19:54:52 -05:00
Arceliar
b11cf7a2f2 update ironwood dependency, fix api 2021-05-18 20:43:38 -05:00
Arceliar
8d09e68e80 admin socket getpaths 2021-05-16 16:16:58 -05:00
Arceliar
eb4a22724f possibly fix admin socket getnodeinfo 2021-05-16 15:55:30 -05:00
Arceliar
fad071ffe9 WIP on nodeinfo admin handler 2021-05-16 15:27:51 -05:00
Neil Alexander
058dec0cca Fix getself, gettuntap etc 2021-05-16 21:01:59 +01:00
Neil Alexander
31c1c9b586 Fix admin socket list 2021-05-16 20:53:40 +01:00
Neil Alexander
6413e95c48 Fix bug 2021-05-16 20:05:22 +01:00
Neil Alexander
62a13e87c4
Merge branch 'future' into cleanup 2021-05-16 20:02:28 +01:00
Neil Alexander
416eadbcff Use uint64 for MTU for forward-compatibility 2021-05-16 20:00:45 +01:00
Arceliar
a6c254c87a more nodeinfo WIP, still needs admin socket support 2021-05-16 14:00:37 -05:00
Arceliar
2e45e970c6 work-in-progress adding nodeinfo 2021-05-16 13:52:52 -05:00
Neil Alexander
2d01386d6e Refactor admin socket, export request/response structs, remove types package 2021-05-16 19:51:09 +01:00
Arceliar
2c7b22db92 allow for multiple traffic types inside the session at the tuntap level, only implement typeSessionTraffic for now 2021-05-16 13:01:54 -05:00
Arceliar
dfca87ba80 start a reader to disard traffic if the tun is disabled 2021-05-15 16:44:56 -05:00
Arceliar
f61507238e cleanup unused MTU code from tun keystore 2021-05-15 16:23:44 -05:00
Arceliar
5b00273dfc move sessionfirewall into the tuntap. this needs testing. the name is also slightly wrong, since a crypto session can still be set up, packets are just accepted/rejected at the tun/tap level instead 2021-05-15 15:55:47 -05:00
Arceliar
7e10025ef0 get minimal admin socket working (introspection only, no ability to add peers etc) 2021-05-15 15:16:35 -05:00
Arceliar
85fae23919 remove TunnelRouting from config, remove Signing from key names 2021-05-15 15:00:12 -05:00
Arceliar
e83b5d08a8 remove ckr 2021-05-15 14:54:25 -05:00
Arceliar
cd4144f22b add minimal src/yggdrasil/api.go functions inspect internal state 2021-05-15 14:50:56 -05:00
Arceliar
7d49b86456 set version to an obviously unstable value, fix peer address formatting in the connect/disconnect messages 2021-05-15 13:44:55 -05:00
Neil Alexander
577b7118ad remove debug logging 2021-05-10 23:16:22 +01:00
Neil Alexander
815f2a2822 Respond with ICMPv6 Packet Too Big over network 2021-05-10 23:09:59 +01:00
Neil Alexander
57ea61b338 Remove reconfiguration on SIGHUP - it didn't work reliably anyway 2021-05-10 22:47:28 +01:00
Neil Alexander
e12c639c21 Remove obsolete switch options 2021-05-10 22:42:57 +01:00
Neil Alexander
05caf36f4e Fix AllowedPublicKeys 2021-05-10 22:39:12 +01:00
Neil Alexander
c20b66f3b6 Metadata/version tweaks 2021-05-10 22:31:01 +01:00
Neil Alexander
bb92e61e68 Remove encryption public key options (they are now derived from ed25519 key conversion in IW), also bump link version number 2021-05-10 22:06:38 +01:00
Arceliar
b48962a69a limit MTU to no more than what the packetconn claims to support 2021-05-09 11:27:37 -05:00
Arceliar
3bfd891fd4 reduce time keystore mutex is held and (apparently) fix a deadlock 2021-05-09 09:20:28 -05:00
Arceliar
ed85cf08f2 WIP close the ironwood PacketConn when shutting down 2021-05-08 12:31:26 -05:00
Arceliar
8bed79370b (broken state) WIP, compiles and passes the netns ping test 2021-05-08 11:52:22 -05:00
Arceliar
b345806e3f (broken state) more WIP (cleanup) 2021-05-08 11:35:04 -05:00
Arceliar
0f787364de (broken state) more tuntap WIP to add out-of-band key lookup 2021-05-08 11:32:57 -05:00
Arceliar
5b22392c66 (broken state) more WIP on tuntap stuff 2021-05-08 11:14:50 -05:00
Arceliar
0cff56fcc1 (broken state) WIP on tuntap 2021-05-08 10:39:07 -05:00
Arceliar
f1c37f8440 (broken state) WIP rewriting core to use ironwood 2021-05-08 08:35:58 -05:00
Arceliar
ace7b43b6d (broken state) WIP address migration 2021-05-08 07:25:53 -05:00
Arceliar
ae96148008 Merge branch 'pathfinder' of https://github.com/Arceliar/yggdrasil-go into future 2021-05-08 06:45:10 -05:00
Arceliar
6eb74a40e1
Merge pull request #751 from Arceliar/bugfix
Fix goroutine leak in link.go
2020-12-19 11:04:13 -06:00
Arceliar
78073429a2 Merge branch 'pathfinder' of https://github.com/Arceliar/yggdrasil-go into pathfinder 2020-12-19 06:03:59 -06:00
Arceliar
0ba2ad74fe use source routes in the dht (when available) 2020-12-19 06:03:28 -06:00
Arceliar
a8810c7ee9 if the link handler exits early due to an existing connection, then have it return a channel to that connection which closes when the connection is closed, so we can choose to block on that to avoid spamming connection attempts with dial 2020-12-13 16:29:03 -06:00
Arceliar
1daf3e7bd7 remove link.go block on oldIntf if we already have a connection to the same node, this spams connections, so it's not a good long-term fix if that's where the goroutine leak is 2020-12-13 16:16:14 -06:00
Neil Alexander
b9f35c5530
Return ICMPv6 Destination Unreachable for unknown destinations (#748)
* Return ICMPv6 Destination Unreachable for unknown destinations

* Update go.mod/go.sum for yggdrasil-extras

* go mod tidy
2020-12-06 19:47:25 +00:00
Neil Alexander
cb3d8647de
Merge pull request #744 from octeep/master
Fix DefaultIfName for OpenBSD
2020-12-06 13:48:09 +00:00
Arceliar
df1239b054 attempting to debug/fix a possible goroutine leak 2020-11-25 02:44:13 -06:00
Arceliar
939ffb02f8 adjust when dht reqs are reset 2020-11-14 15:05:02 -06:00
octeep
04e890fcc3
Change DefaultIfName from "/dev/tun0" to "tun0"
Specifying the full path to the interface in OpenBSD would result in:
panic: Interface name must be tun[0-9]*

Therefore, DefaultIfName should be changed to tun0 in order to make yggdrasil work out of the box.
2020-11-13 06:38:27 +00:00
Arceliar
428789f24c simplify switch parent selection and minor source routing improvements 2020-11-09 19:01:11 -06:00
Arceliar
144d42c773 send dht responses via reverse path (fixes some possible DDoS issues with the old coord approach) 2020-11-08 06:09:55 -06:00
Arceliar
0ac203b007 adjust how sessions learn source routes, try to recover faster if coords change (but assume the old path still works until we get a ping through that gives us a new path) 2020-11-08 05:39:30 -06:00
Arceliar
e19e938f64 safer pathfinding behavior 2020-11-07 15:19:09 -06:00
Arceliar
994c26e5f7 simplify pathfinder 2020-11-07 12:08:01 -06:00
Arceliar
b5cd40b801 WIP very simple insecure proof-of-concept for pathfinding and source routing 2020-11-07 10:50:55 -06:00
Arceliar
e2521de94d add path information to (protocol) traffic packets as they flow through the network, and a field for a reply path 2020-11-07 09:44:34 -06:00
Arceliar
36e4ce4b0b WIP rough implementation of the source routed part of hybrid routing, does not work if coord length is too long (>127 hops) 2020-11-07 07:10:13 -06:00
Arceliar
92dbb48eda add (but don't use) offset field for (protocol) traffic packets 2020-11-07 06:18:09 -06:00
Arceliar
1d1c6efa1f attempt to keep TCP listener alive if there's a temporary error (e.g. too many open files), just pause and retry later 2020-10-18 11:01:18 -05:00
Arceliar
b6c894bc01 Merge branch 'future' of https://github.com/yggdrasil-network/yggdrasil-go into develop-future 2020-10-11 07:35:28 -05:00
Arceliar
afebc1f93d
Merge pull request #712 from Arceliar/bugfix
[future] possibly fix missing switch peer issue
2020-10-11 07:34:19 -05:00
Neil Alexander
fdb296047b
Merge branch 'future' into develop-future 2020-09-27 20:28:26 +01:00
Ryan Westlund
d6d2d9c19a
Accept some golint suggestions (#690)
* Fixed some linter issues

* Simplified isBetter method

* Accept some linter suggestions

* Fix typo

Co-authored-by: klesomik <klesomiks@gmail.com>
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2020-09-27 14:42:46 +01:00
Neil Alexander
48bf0ce210
Revert "Fix build"
This reverts commit e09ca6a089.
2020-09-27 13:28:13 +01:00
Neil Alexander
e09ca6a089
Fix build 2020-09-27 13:26:37 +01:00
Ryan Westlund
fcb6f5ca36
Set default conf file on FreeBSD to /usr/local/etc/yggdrasil.conf (#717) 2020-09-27 13:22:49 +01:00
Arceliar
33e3679458
multicast, use the prebuilt interface map when checking active listeners (#707) 2020-09-27 13:16:51 +01:00
Neil Alexander
d9fd68f18c
Fix build 2020-07-06 14:21:28 +01:00
Neil Alexander
a4a346c498
Merge branch 'develop' into future 2020-07-06 14:16:38 +01:00
George
48f008a8e2
Implement Core.RemovePeer method (#699) (#709)
Co-authored-by: George <zhoreeq@users.noreply.github.com>
2020-07-06 14:14:34 +01:00
Arceliar
3fded209df try to fix some possible races with how peers are added/removed and how they're blocked in the switch when they enter a bad state 2020-06-06 12:30:54 -05:00
Arceliar
aec82d7a39
Merge pull request #702 from Arceliar/switch
Precompute more for the switch lookup table
2020-05-30 18:39:43 -05:00
Arceliar
a1856258a9
Merge pull request #704 from Arceliar/queues
Faster queue logic
2020-05-30 18:39:33 -05:00
Arceliar
35e7542889
Merge pull request #706 from Arceliar/buffers
More buffer fine-tuning
2020-05-30 18:39:24 -05:00
Arceliar
c83b070c69 remove old switch lookup functions 2020-05-30 13:12:49 -05:00
Arceliar
0f28862e99 remove unused sequence number from switch 2020-05-30 10:48:59 -05:00
Arceliar
5e170e22e1 more switch fixes 2020-05-30 10:47:54 -05:00
Arceliar
3dc2242712 fix handling of keepAliveTimer and blocked state in link.go 2020-05-30 10:32:15 -05:00
Arceliar
8775075c18 debugging 2020-05-27 19:35:19 -05:00
Arceliar
905c28f7b2 fix some issues with the rewritten switch lookup tables 2020-05-27 19:31:17 -05:00
Arceliar
1df305d31c simplify how blocking is detected and packets are dequeued 2020-05-27 18:53:14 -05:00
Arceliar
09f9f4e8e4 use heap.Fix instead of heap.Remove + heap.Push when updating queues, this is theoretically faster 2020-05-25 20:09:57 -05:00
Arceliar
674d8b58b6 get things compiling again 2020-05-25 19:27:17 -05:00
Arceliar
152e9057a0 Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into future 2020-05-25 19:25:05 -05:00
Arceliar
85eec5ba8e tcp ygg-over-ygg debug logging 2020-05-25 19:13:37 -05:00
Arceliar
8345ae1fa3 don't allow ygg tcp connections to/from a local ygg address 2020-05-25 19:08:04 -05:00
Arceliar
dbc3b9b4c4
Merge pull request #701 from Arceliar/buffers
More buffer fine-tuning
2020-05-25 16:30:43 -05:00
Arceliar
366a8ba3dd Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into future 2020-05-25 16:28:12 -05:00
Neil Alexander
45810fa184
Merge pull request #703 from Arceliar/dht
Store less in the DHT
2020-05-25 22:18:00 +01:00
Arceliar
1f65ffb310 work-in-progress heap-based queue structure 2020-05-25 16:07:56 -05:00
Arceliar
761ae531cb work-in-progress faster queue logic 2020-05-25 15:19:32 -05:00
Arceliar
eefabb5f9f disregard nodes if they're unimportant, even if they're already in the DHT 2020-05-25 12:44:06 -05:00
Arceliar
40bfd207f5 don't store every node we hear from in the DHT, only ones we already know about or that are important 2020-05-25 12:23:38 -05:00
Arceliar
f9bc0b7aee use a more elaborate precomputed lookup table from the switch 2020-05-25 11:49:25 -05:00
Arceliar
38dcbb1e2f cleaner way to handle seq/idle checks for the peer 2020-05-24 17:49:48 -05:00
Arceliar
4382368b08 make sure the peer isn't idle before entering drop mode 2020-05-24 17:43:35 -05:00
Arceliar
9574308545 have the peer delay setting a max buffer size, in case things have unblocked in the mean time 2020-05-24 17:35:49 -05:00
Arceliar
7778a47a8f fix darwin compile problem 2020-05-24 15:46:18 -05:00
Arceliar
98816f34b2 don't spam calls to net.Interfaces and net.Interface.Addrs (hopefully) 2020-05-24 15:24:39 -05:00
Arceliar
1e471e3712 back to master's version of multicast, lets try rewriting it again 2020-05-24 14:43:38 -05:00
Arceliar
c2d6e9e8f1 close listener when a multicast interface is removed 2020-05-24 14:09:06 -05:00
Arceliar
77ded84ea5 simplify routerInterface 2020-05-23 12:21:23 -05:00
Arceliar
f2b9e95895 simplify routerInterface 2020-05-23 12:21:01 -05:00
Arceliar
07206b5d46 resolve merge conflicts 2020-05-23 11:33:37 -05:00
Arceliar
169b8747d4
Merge pull request #696 from Arceliar/bugfix
Bugfix
2020-05-23 11:24:03 -05:00
Arceliar
7063ddcc73 slightly cleaner fix to conn String deadlock issue 2020-05-23 11:16:03 -05:00
Arceliar
bc48e4bb80 fix deadlock in conn (unsafe use of phony.Block) 2020-05-23 11:11:11 -05:00
Arceliar
59896f17fd more cleanup 2020-05-23 10:28:57 -05:00
Arceliar
ef1e506a0c work-in-progress on more cleanup 2020-05-23 10:23:55 -05:00
Arceliar
59c5644a52 some peer/link cleanup 2020-05-23 10:08:23 -05:00
Arceliar
cf2edc99d1 correctly set peer.max 2020-05-17 13:32:58 -05:00
Arceliar
d43b93f60a safer check for the queues if we're blocked on a send, should work even if we're blocked on a link packet send 2020-05-17 13:23:15 -05:00
Arceliar
ff3c8cb687 less aggresive queue size reduction 2020-05-17 12:58:57 -05:00
Arceliar
d96ae156a1 slight change to peer function names/args 2020-05-17 12:27:43 -05:00
Arceliar
7720e169f2 when we detect we're blocked, only drop packets often enough to make sure the existing queue's size is non-increasing, and always drop the worst packet from a random flow with odds based on the total size of packets queued for that flow 2020-05-17 12:09:40 -05:00
Arceliar
6e92af1cd2 re-enable a minimum queue size of ~1 big packet 2020-05-17 08:49:40 -05:00
Arceliar
0dcc555eab cleaner startup/shutdown of the link writer's worker 2020-05-17 08:34:22 -05:00
Arceliar
15ac2595aa use a dedicated per-stream writer goroutine, send messages to it over a 1-buffered channel, this eliminates most of the false positive blocking that causes drops 2020-05-17 08:22:02 -05:00
Arceliar
527d443916 move where the queue size check before dropping would occur 2020-05-17 07:21:09 -05:00
Arceliar
62b9fab5f8 more work-in-progress, debugging why things are dropping so often 2020-05-16 18:56:04 -05:00
Arceliar
b17a035a05 workarounds to dropping being too aggressive 2020-05-16 17:40:11 -05:00
Arceliar
b132560f65 it helps to actually run the notifyQueued stuff... 2020-05-16 17:24:26 -05:00
Arceliar
052de98f12 work-in-progress on buffering overhaul 2020-05-16 17:07:47 -05:00
Arceliar
dc128121e5 update switch blockPeer/unblockPeer logic and dht reset when coords change 2020-05-16 09:25:57 -05:00
Neil Alexander
f70b2ebcea
Fix bad check 2020-05-09 12:49:02 +01:00
Neil Alexander
2a2ad76479
Use maps instead of slices 2020-05-09 12:38:20 +01:00
Arceliar
433e392bdf Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into future 2020-05-09 06:13:52 -05:00
Neil Alexander
a59fd2a489
Merge branch 'develop' into neilalexander/pinning 2020-05-09 12:12:24 +01:00
Arceliar
7779d86c5b maybe fix multicast deadlock on darwin 2020-05-09 05:56:36 -05:00
Neil Alexander
13a2d99fdc
Set SOCKS peer addr to resolved address 2020-05-09 11:26:09 +01:00
Neil Alexander
8b180e941a
Add SOCKS proxy auth (closes #423) 2020-05-09 11:24:32 +01:00
Neil Alexander
58345ac198
Track proxy addr and real peer addr in SOCKS mode 2020-05-09 10:53:58 +01:00
Neil Alexander
fbf59184ee
Use query string instead, allow specifying multiple keys (might be useful for DNS RR) 2020-05-09 00:43:19 +01:00
Neil Alexander
e849b3e119
Initial support for pinning public keys in peering strings 2020-05-08 23:23:48 +01:00
Arceliar
107d9f0e8b Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into future 2020-05-03 05:20:30 -05:00
Arceliar
95f4ec52a4 save only the link-local addresses for multicast 2020-05-03 05:06:59 -05:00
Arceliar
de79401bb2 only call (net.Interface).Addrs() once per minute per interface 2020-05-03 02:50:04 -05:00
Arceliar
02e1cb180d possibly reduce multicast cpu usage even more 2020-05-02 17:23:20 -05:00
Neil Alexander
127b7e311c
Clean up a bit 2020-05-02 22:37:12 +01:00
Neil Alexander
0c7cf65d27
Move some logging back to debug 2020-05-02 22:33:25 +01:00
Neil Alexander
a115d18595
Refactor the multicast code a bit 2020-05-02 22:26:41 +01:00
Arceliar
20ef591013 fix some crashes with races during peer setup 2020-05-02 11:16:11 -05:00
Arceliar
15162ee952 fix a panic from a doubly closed channel in the simlink 2020-05-02 10:51:26 -05:00
Arceliar
12d448f6d5 Merge branch 'future' of https://github.com/yggdrasil-network/yggdrasil-go into sim 2020-05-02 10:40:00 -05:00
Arceliar
22526d89ec Merge branch 'future' of https://github.com/yggdrasil-network/yggdrasil-go into sim 2020-05-02 10:09:03 -05:00
Arceliar
72afa05029 test dial/listen in the sim 2020-05-02 10:01:09 -05:00
Arceliar
6d89570860 eliminate most sync.Pool use, gives a safer but slightly slower interface 2020-05-02 06:44:51 -05:00
Arceliar
9c818c6278 work-in-progress on a new sim 2020-04-26 07:33:03 -05:00
Arceliar
9d0969db2b prevent a hypothetical block on link message sending 2020-04-05 14:57:05 -05:00
Arceliar
09efdfef9a fix bug in switch actor's cleanRoot, strict nonce handling at the session level, and add separate queues per stream to the packetqueue code 2020-04-03 19:26:48 -05:00
Arceliar
03a19997b8 Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into buffers 2020-04-03 00:33:01 -05:00
Arceliar
945930aa2c WIP have peer actors queue packets, temporarily a single simple FIFO queue with head drop 2020-04-03 00:32:26 -05:00
Arceliar
7a314afb31 check if an error was returned by Core._init and return it if so 2020-03-31 18:14:20 -05:00
Arceliar
9834f222db more work in progress actorizing the remaining parts of the switch 2020-03-29 19:01:50 -05:00
Arceliar
15b850be6e fix deadlock when running updateTable in the switch 2020-03-29 01:38:32 -05:00
Arceliar
d47797088f fix shutdown deadlock 2020-03-29 00:48:41 -05:00
Arceliar
e926a3be6d work in progress actorizing core.peers and replacing switch worker with per-peer switch-generated lookupTable 2020-03-29 00:23:38 -05:00
Arceliar
16309d2862 Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into buffers 2020-03-28 21:10:34 -05:00
Arceliar
1ac3a18aab
Fix a typo in search.go's comments 2020-03-23 18:03:31 -05:00
Arceliar
a09a83530f update search description in comments 2020-03-22 18:42:42 -05:00
Arceliar
b651e57203 allow searches to continue as long as the next hop is closer than the Nth closest node found so far where N is currently 16 instead of 1 (makes searches more reliable), and cache all intermediate search steps in the dht 2020-03-19 21:11:17 -05:00
Arceliar
4809879995 refactor switch code so calling lookupTable.lookup does most of the important work 2020-03-10 01:03:07 -05:00
Arceliar
cfd8641925 fix conflicts with memleak bugfix 2020-03-10 00:03:26 -05:00
Arceliar
8075a60900 possibly fix memory leak (if this works, i don't yet understand how the leak was happening originally) 2020-03-08 19:32:14 -05:00
Arceliar
f308e81bf3 in the switch, keep a separate set of queues per peer instead of a global queue 2020-02-18 20:13:39 -06:00
Neil Alexander
471fcd7fdf
Update doc.go dial example 2020-02-16 23:57:05 +00:00
Neil Alexander
6c731c4efc
Fix comment on LocalAddr 2020-02-16 23:45:11 +00:00
Neil Alexander
429189d11d
Use 'curve25519' instead of 'pubkey' 2020-02-16 23:44:20 +00:00
Neil Alexander
6b0b704645
Update comments 2020-02-16 23:30:47 +00:00
Neil Alexander
d16505e417
Update CKR 2020-02-16 23:26:18 +00:00
Neil Alexander
63936c11b5
Update tuntap module, return pointers 2020-02-16 23:21:58 +00:00
Neil Alexander
c107f891d2
Implement pubkeys in API functions 2020-02-16 23:12:39 +00:00
Arceliar
657777881b actually schedule the search cleanup code to run 2020-02-08 20:33:35 -06:00
Arceliar
8e05c6c6a7 better search cleanup, but needs more testing to make sure it really works 2020-02-08 20:26:37 -06:00
Arceliar
d0e6846173 work in progress to make searches use parallel threads per response, so one malicious node doesn't block progress from honest ones 2020-02-08 20:15:48 -06:00
Arceliar
d7d0c2629c don't deduplicate search responses, but limit the max number of nodes handled per response 2020-02-08 17:04:00 -06:00
Arceliar
cd9613fddc add some additional debug timing info and logging to dials, and fix an unnecessary delay in search startup 2020-02-07 22:34:54 -06:00
Arceliar
3faa0b2854 deduplicate the list of nodes to visit in a search (keeping newest rumors) 2020-02-06 20:47:53 -06:00
Arceliar
7c2cb9a02d more search fixes/updates 2020-02-06 20:21:17 -06:00
Arceliar
cd856426e5 search timing changes 2020-02-06 18:37:58 -06:00
Arceliar
70659bfb91 sort search response results before sending requests 2020-02-06 17:38:42 -06:00
Arceliar
7e64f54c1f log some info about searches and reduce search traffic (especially when things dead-end) 2020-02-01 13:58:08 -06:00
Neil Alexander
c48c4ddc80
Merge pull request #641 from Arceliar/misc
Misc tuning
2020-01-10 11:35:51 +00:00
Neil Alexander
2fc6f9a71d
Merge pull request #643 from adamruzicka/mtu
Unify MTU datatypes across the codebase
2020-01-07 22:39:38 +00:00
Neil Alexander
ef4d5553b6
Merge pull request #636 from cathugger/develop
util: fix possible OOB in IPv4 flowkey calc, use switch there
2020-01-07 22:38:31 +00:00
Arceliar
c3b1a6af65 some nodeinfo actor fixes and adjust search timeout 2020-01-06 18:37:43 -06:00
Neil Alexander
8c12fc4fdb
Merge branch 'develop' into misc 2020-01-05 23:04:51 +00:00
Neil Alexander
9304873047
Convert nodeinfo to actor 2020-01-05 22:15:52 +00:00
Adam Ruzicka
8358fe5c5c Unify MTU datatypes across the codebase
The codebase uses int and unit16 to represent MTU randomly. This change
unifies it to a MTU type from types package, which is currently uint16.
2020-01-05 18:01:22 +00:00
Arceliar
8513f8f4dc constant space searches that should play nicer if searching for an unreachable destination 2020-01-04 16:08:48 -06:00
Arceliar
201dbec63d always keep the 2 closest nodes in each direction around the dht ring, possibly helps things recover faster after joins/leaves 2019-12-25 19:01:20 -06:00
Arceliar
9fac5355eb make searches more parallel 2019-12-25 18:55:29 -06:00
cathugger
ff5de89762
util: fix possible OOB in IPv4 flowkey calc, use switch there
ihl may grow upto 15*4=60 so extract and check it before using it as offset in flowkey calculation.
also replace IFs with switches for protocol matching as it's less redundant and nicer to document.
2019-12-11 15:24:43 +02:00
Anatolii Kurotych
4159ccb893 Fix return value in Multicast.Stop() 2019-11-30 16:05:44 +02:00
Arceliar
729d2ca2ba
Update crypto.go 2019-11-29 17:14:27 -06:00
Dimitris Apostolou
73f50af3b7
Fix typos 2019-11-29 11:45:02 +02:00
Arceliar
c2a8b4bb57 get rid of an allocation in tunWriter's _write 2019-11-28 12:00:00 -06:00
Neil Alexander
ad8d30ce74
Revert "Force packets through the switch to be buffered (seems to help the reordering problem on Windows)"
This reverts commit 837e7da792.
2019-11-26 09:44:35 +00:00
Neil Alexander
328dd6c054
Merge branch 'develop' into goodbyewater 2019-11-26 09:20:15 +00:00
Arceliar
98339cdc3f possible fix if monotonic time resolution is related to packet reordering 2019-11-25 17:40:58 -06:00
Neil Alexander
837e7da792
Force packets through the switch to be buffered (seems to help the reordering problem on Windows) 2019-11-25 20:13:41 +00:00
Arceliar
3e07995518 it helps to actually set the flag... 2019-11-24 18:53:58 -06:00
Arceliar
27cc57dbbc attempt to prevent incorrect idle notification in switch, needs testing 2019-11-24 18:24:17 -06:00
Arceliar
2e95a3131c comment out pointless error that prints on some platforms and not others 2019-11-24 15:37:37 -06:00
Arceliar
2982b53555 make offset generic over TUN_OFFSET_BYTES so we can make this platform dependent 2019-11-24 15:09:28 -06:00
Arceliar
f6f9b3ef76 include offset in expected bytes written 2019-11-24 15:01:20 -06:00
Arceliar
6560aac1e9 fix error spam on shutdown 2019-11-24 13:42:56 -06:00
Neil Alexander
746fac6594
Fix go.mod/go.sum again and update DoAsSystem call 2019-11-23 13:56:48 +00:00
Neil Alexander
d0a307db97
Use Wireguard's DoAsSystem, fix build tags and go.mod/go.sum 2019-11-23 13:46:05 +00:00