4
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2025-06-14 10:26:06 +00:00
Commit Graph

295 Commits

Author SHA1 Message Date
387ae9ea6c Only replace call name with interface prefix when interface is set 2018-09-25 18:05:57 +01:00
3f8a4ab17d Add bytes_sent and bytes_recvd to getSwitchPorts 2018-09-25 17:59:01 +01:00
b368421dbd Fix addPeer to make interface= optional 2018-09-25 17:13:35 +01:00
1796000b05 Change to InterfacePeers instead of modifying the tcp:// URI format 2018-09-25 16:55:57 +01:00
aecc151baf Add support for specifying TCP source interface, i.e. tcp://a.b.c.d:e/eth0, for multiple simultaneous peerings to the same node over different interfaces 2018-09-25 15:32:45 +01:00
b4db89ea9d Avoid unnecessarily allocating coords slice if it's unchanged. 2018-07-30 13:44:46 +00:00
67b8a7a53d Ensure no memory allocations happen at hot path 2018-07-30 12:43:34 +00:00
c4e6894d6a Copy sinfo.coords for safety 2018-07-30 13:34:32 +01:00
ebb4ec7c33 Clean up the flow a bit (partly because I am allergic to huge compounded if statements) 2018-07-30 11:46:44 +01:00
68a482ed92 Simplify flowkey stuff further. 2018-07-30 02:15:57 +00:00
36dcab9300 optimize wire_put_uint64; use protokey for flowlabel fallback. 2018-07-30 01:58:52 +00:00
fec7100898 Clean up / clarify coords sending code. 2018-07-30 00:01:37 +00:00
11b0a82c4a Simpler flowlabel parsing; avoid using 0 flowlabel. 2018-07-29 22:09:16 +00:00
ddab8ecf33 Merge pull request #174 from cathugger/develop
Make TCP read timeouts configurable.
2018-07-29 10:39:43 -05:00
d171552577 Make TCP read timeouts configurable.
This should be helpful on high-latency networks, like Tor or I2P.
Also gofmt.
2018-07-29 14:30:13 +00:00
38e8b036d2 Use addUint64 instead to not interfere with coordinate parsing 2018-07-22 18:33:53 +01:00
81fde1a805 Use flow label instead of TCP/UDP/SCTP source/destination ports 2018-07-22 18:16:03 +01:00
3f4295f8cd Only split queues based on port number for TCP/UDP/SCTP, rely only on protocol number for other protos to prevent issues with IPIP, GRE, etc 2018-07-22 12:00:40 +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
996a593fa2 Sort dotgraph links by integer value 2018-07-20 23:02:25 -05:00
549d6f9dd2 Merge pull request #163 from neilalexander/tapmtu
Cap MTU on Linux in TAP mode
2018-07-19 18:25:03 -05:00
9ff08c1b34 Merge pull request #165 from cathugger/master
rearrange tcp reading loop
2018-07-19 18:18:51 -05:00
91a374d698 rearrange tcp reading loop
according to documentation of io.Reader interface,
"Callers should always process the n > 0 bytes returned before considering the error err. Doing so correctly handles I/O errors that happen after reading some bytes and also both of the allowed EOF behaviors."
2018-07-19 21:58:53 +00:00
55b56e8686 Normalise startup output for TUN/TAP on Linux and Windows 2018-07-19 10:15:26 +01:00
df9cadd938 Cap MTU on Linux in TAP mode 2018-07-19 10:01:12 +01:00
1baafdd17d Merge pull request #162 from cathugger/master
More verbose disconnect messages
2018-07-18 22:55:45 -05:00
f4bb2aaaeb More verbose disconnect messages 2018-07-19 01:03:24 +00:00
cff7ef026f Make yggdrasilctl less case-sensitive 2018-07-09 19:30:41 +01:00
f21cbaef9c Fix debug builds after changes in #155 2018-07-09 09:38:48 +01:00
d59bdfeb99 Fail to TCP when parsing AdminListen 2018-07-08 10:37:20 +01:00
bf90447cc4 update admin socket error message and run gofmt 2018-07-07 19:37:36 -05:00
b24c7ffa6b Resolve merge conflict with platformdefaults 2018-07-07 20:08:23 +01:00
a5af69df8a Use Close() for admin socket 2018-07-07 20:04:11 +01:00
2a931df07a Try to clean up UNIX domain admin sockets if shutdown properly 2018-07-07 12:34:10 +01:00
14d48597da Fix openbsd and netbsd 2018-07-07 12:18:03 +01:00
36c89da848 Stick with tcp://localhost:9001 as default for now 2018-07-07 12:16:55 +01:00
1692bd98fd Centralise platform defaults into the 'defaults' package 2018-07-07 12:08:52 +01:00
cd6030ec8f Add support for UNIX domain admin sockets and specifying URIs in AdminListen 2018-07-07 11:22:49 +01: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
9c028e1d0d switch to a separate queue per stream of traffic, FIXME for some reason this makes distance calculations more expensive in handleIdle? 2018-06-24 17:39:43 -05:00
189628b381 cleanup 2018-06-23 23:55:27 -05:00