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