4
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2025-07-15 20:48:55 +00:00
Commit Graph

81 Commits

Author SHA1 Message Date
9c01947b1c reduce allocations in switch 2019-05-16 18:10:47 -05:00
0b494a8255 Refactoring: move tuntap and icmpv6 into separate package 2019-03-28 00:30:25 +00:00
3c696c3e55 use idle time in switch decisions to force it to try all links 2019-03-09 19:27:52 -06:00
c7b4bfcef5 misc fixes 2019-03-09 18:08:26 -06:00
02b1892cc5 try to switch parents if a parent link is blocked 2019-03-07 21:36:12 -06:00
06df791efc buffer packets moving from the switch to the router, allow them front drop if there's too many 2019-02-28 19:08:56 -06:00
654407dc6d close long-dead connections in link.go instead of in switch.go, this is important in case a connection opens but never bothers to send even one switch message 2019-02-24 13:24:55 -06:00
042adb0516 make sure the only place traffic is ever dropped is in the switch. this currently disables the dedicated crypto workers 2019-02-23 00:07:00 -06:00
e31962de0f Merge branch 'develop' into switch 2019-02-16 16:26:20 -06:00
6f0bbbfb98 Debug some issues with the state machine that tracks idle connections in link.go 2019-02-15 19:35:10 -06:00
3c9c8672c9 Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into switch 2019-02-15 16:28:48 -06:00
21cecf4630 consistently prioritize which peer to forward to instead of letting it be partly random 2019-02-09 17:44:25 -06:00
ad43558fbb fix bug in switch time 2019-02-09 15:30:17 -06:00
74ac535d55 slightly faster switch logic, should be easier to have a useful tie-breaker for peers that are equally close to the destination via the tree metric 2019-02-08 19:46:11 -06:00
5ddf84f329 remove peers completely after a long switch timeout, this could use some improvement later 2019-02-03 15:22:14 -06:00
0838928668 Add support for flexible logging levels 2019-01-27 13:31:43 +00:00
3bf53796a7 Merge branch 'develop' into nodeconfig 2019-01-15 08:37:10 +00:00
08a71af2d8 Spelling fixes for switch.go 2019-01-09 11:49:12 +02:00
7fae1c993a Handle errors from reconfigure tasks 2018-12-30 12:04:42 +00:00
2925920c70 Use mutex in switch/tcp init 2018-12-29 19:53:31 +00:00
fa7c4117b4 Use Core.config in init functions 2018-12-29 19:14:26 +00:00
219fb96553 Support notifying components for config reload, listen for SIGHUP 2018-12-29 18:51:51 +00:00
ea4ca02681 fix code after moving address/crypto/util 2018-12-14 20:49:18 -06:00
bd2d706745 fix bug from go vet while I'm at it 2018-12-07 20:36:30 -06:00
fe772dd38e switch bugfixes 2018-12-05 18:22:39 -06:00
3d4b49b693 reset the switch speed info for a peer whenever it changes coords, instead of only if they're a parent and change coords. Also, make sure packets in the sim preserve order when sending, to avoid races when testing 2018-12-03 19:21:23 -06:00
684632eb3d Merge pull request #215 from Arceliar/switch
Latency-based parent selection for the switch
2018-12-02 17:26:26 -06:00
b5f4637b5c Enforce min 4MB switch queue total size 2018-12-02 23:20:11 +00:00
86da073226 Add SwitchOptions and MaxTotalQueueSize 2018-12-02 22:49:27 +00:00
dcfe55dae8 store 'faster' relationships between all pairs of peers, to make fallback easier when a parent goes offline 2018-12-02 16:36:25 -06:00
38093219fd dimensionless way to track how often nodes are faster than the current parent 2018-12-02 14:46:58 -06:00
e9cff0506c comment the switch a little better and limit how much uptime can affect which peer is used as a parent 2018-11-19 21:30:52 -06:00
3dbffae99f add search for successor, via parent, to the dht maintenance cycle 2018-10-20 19:09:25 -05:00
1d00131416 Hopefully fix a concurrent map read-write when removing peers 2018-10-08 22:09:55 +01:00
69cd736112 Show queue capacity in getSwitchQueues 2018-09-27 16:19:47 +01:00
0b1a6611fd Identify switchport for queue based on coords in stream ID 2018-09-27 15:05:45 +01:00
8113b4cc22 Update comments 2018-09-27 14:20:52 +01:00
b530916044 Show information about individual active queues 2018-09-27 12:14:55 +01:00
f57567ea56 Add getSwitchQueues 2018-09-27 10:53:19 +01:00
9cbcaf39ac Use coords for queue stream IDs in the switch, and append protocol/port information to coords when sending, to designate different streams 2018-07-21 18:59:29 -05:00
ba4047b51a correctly update buffer sizs when buffers overflow, and returned freed packets to the byte store 2018-07-06 17:27:04 -05:00
ad5dc9ea87 Drop 1 packet instead of a whole queue when overflowing 2018-07-06 00:55:00 -05:00
e6a47f705d when dropping a queue, select one at random based on queue size in bytes 2018-07-06 00:11:36 -05:00
1a65c065d0 prioritize sending from small queues that have been blocked for a long time 2018-07-05 23:56:37 -05:00
7da4967f5e Limit maximum queue size to 4 MB 2018-07-05 23:39:41 -05:00
a7c8be4d69 base backpressure decisions on queue size in bytes, instead of packet counts 2018-07-05 23:07:01 -05:00
b63b534fa7 drop packets that have been queued for longer than some timeout (currently 25ms) instead of using fixed length queues 2018-06-25 18:12:18 -05:00
7695a3fcbf try using a simpler FIFO order for each backpressure buffer, since there are other mechanisms to penalize the flooding node, leads to better TCP throughput without affecting traffic between other nodes (does affect traffic in the same session, but there's hypothetically workarounds to that) 2018-06-24 20:20:07 -05:00
4ad2446557 cleanup 2018-06-24 18:21:00 -05:00
03949dcf3f fix my terrible bug, I have no idea why the old one even worked 2018-06-24 18:05:00 -05:00