Commit Graph

  • da9f7151e3 more conn migration Arceliar 2019-08-24 00:17:37 -05:00
  • 6ecbc439f0 start migrating Conn to be an actor Arceliar 2019-08-23 23:36:00 -05:00
  • cac3444d9a fix debug builds Arceliar 2019-08-23 22:40:13 -05:00
  • cf9880464b explicitly consider the session finished case, and make a note that we could fix the packet drop situation by making the Conn into an actor too Arceliar 2019-08-23 22:36:59 -05:00
  • e3603c0462 clean up unused session code Arceliar 2019-08-23 22:25:40 -05:00
  • 533da351f9 fix actor EnqueueFrom stack overflow (use nil now to send from self) and replace session send/recv workers with actor functions Arceliar 2019-08-23 22:23:01 -05:00
  • 436c84ca33 refactor sessions to store a pointer to router instead of core Arceliar 2019-08-23 20:53:00 -05:00
  • 5bb85cf07b refactor searches to store a pointer to router instead of core Arceliar 2019-08-23 20:42:38 -05:00
  • e7024a00e7 have dht store a pointer to router instead of core Arceliar 2019-08-23 20:35:54 -05:00
  • ebd806f27a move router member initialization into router.init Arceliar 2019-08-23 20:29:16 -05:00
  • 9835c63818 refactor things the router owns (dht, sessions, searches) into that struct, to make the ownership more explicit Arceliar 2019-08-23 20:26:15 -05:00
  • bbcbbaf3b1 start migrating sessionInfo to be an actor Arceliar 2019-08-23 20:05:18 -05:00
  • 8e89816099 more router migration: rename functions that should only be called internally by the actor Arceliar 2019-08-23 18:59:34 -05:00
  • 232e6d3cb3 more router migration Arceliar 2019-08-23 18:55:41 -05:00
  • 9d7e7288c6 start migrating the router to an actor Arceliar 2019-08-23 18:47:15 -05:00
  • 562a7d1f19 Merge pull request #516 from yggdrasil-network/develop v0.3.8 Neil Alexander 2019-08-21 18:19:56 +01:00
  • 0cb99d522f Update changelog Neil Alexander 2019-08-21 18:18:46 +01:00
  • 1308cb37b9 Merge pull request #515 from Arceliar/tidy Neil Alexander 2019-08-21 07:11:07 +01:00
  • 0d5dd9c455 update crypto dependency and run go mod tidy Arceliar 2019-08-20 23:44:20 -05:00
  • 12ce8c6a0a Merge pull request #512 from neilalexander/cryptokey Arceliar 2019-08-20 20:23:00 -05:00
  • f9d28e80df Merge pull request #514 from Arceliar/bugfix Arceliar 2019-08-20 19:13:00 -05:00
  • 226dd6170d hopefully prevent a deadlock Arceliar 2019-08-20 18:49:53 -05:00
  • 4156aa3003 move ckr checks into the tunConn code Arceliar 2019-08-20 18:10:08 -05:00
  • b79829c43b Merge branch 'develop' into cryptokey Neil Alexander 2019-08-20 09:43:17 +01:00
  • ca73cf9e98 Merge pull request #513 from Arceliar/speedup Neil Alexander 2019-08-20 09:43:00 +01:00
  • b6e67bc0ba Check CKR remotes when receiving traffic Neil Alexander 2019-08-20 09:38:46 +01:00
  • 2b6462c8a9 Strict checking of Yggdrasil source/destination addresses Neil Alexander 2019-08-20 09:38:27 +01:00
  • 834a6a6f1a don't allocate a new child cancellation in Conn read/write calls if no deadline is set Arceliar 2019-08-19 18:06:05 -05:00
  • 2a629880fd Rename crypto-key config options, improve control flow Neil Alexander 2019-08-19 10:28:30 +01:00
  • c04816b4bd Merge pull request #510 from Arceliar/streamWrites Arceliar 2019-08-18 18:19:06 -05:00
  • 8af1a7086c when a link becomes idle and packet are buffered that the link could send, send at least 65535 bytes worth instead of 1 packet, this reduces syscall overhead when small packets are sent through the network Arceliar 2019-08-18 12:29:07 -05:00
  • 62337bcd64 allow links to send multiple packets at once, currently we still only bother to send 1 at a time from the switch level Arceliar 2019-08-18 12:17:54 -05:00
  • 009d9c9ec0 Merge pull request #505 from yggdrasil-network/develop v0.3.7 Neil Alexander 2019-08-18 11:20:50 +01:00
  • 039dd98f0d Update CHANGELOG.md Arceliar 2019-08-17 12:46:34 -05:00
  • 57e7acdda8 Update CHANGELOG.md Arceliar 2019-08-17 12:42:17 -05:00
  • 80535d402f Merge pull request #508 from Arceliar/nonce Neil Alexander 2019-08-17 10:55:21 +01:00
  • fd5f3ca764 fix heap pop order Arceliar 2019-08-16 23:07:40 -05:00
  • 03b8af9f1a keep track of recent nonces with a heap and a map instead of a fixed-size bitmask Arceliar 2019-08-16 18:37:16 -05:00
  • fdac8932a8 Update changelog Neil Alexander 2019-08-15 13:11:54 +01:00
  • ae0fe93de5 Update changelog Neil Alexander 2019-08-15 12:54:04 +01:00
  • adf69d0127 Merge pull request #506 from Arceliar/switchorder Neil Alexander 2019-08-15 11:00:12 +01:00
  • 5b054766a2 Update comments in handleIn, add switch_getFlowLabelFromCoords helper (in case it is useful if we try to consider flowlabels in multi-link scenarios) Neil Alexander 2019-08-15 10:54:04 +01:00
  • 382c2e6546 even more go.sum Arceliar 2019-08-14 18:14:24 -05:00
  • 1a2b7a8b60 test a change to how switch hops are selected when multiple links are idle Arceliar 2019-08-14 17:57:36 -05:00
  • 2abb71682f Update changelog, readme, go.mod/go.sum Neil Alexander 2019-08-14 22:21:30 +01:00
  • f26f071901 Merge pull request #497 from Slex/issues/488 Neil Alexander 2019-08-14 20:11:15 +01:00
  • 02bfe28399 Minor tweaks Neil Alexander 2019-08-14 20:09:02 +01:00
  • 2cec5bf108 Merge pull request #504 from neilalexander/netlink Neil Alexander 2019-08-14 19:59:30 +01:00
  • 33cd10c463 Merge branch 'issues/488' of github.com:slex/yggdrasil-go into issues/488 Neil Alexander 2019-08-14 19:58:45 +01:00
  • 4702da2bcb Use new netlink library (fixes #493) Neil Alexander 2019-08-14 19:32:40 +01:00
  • d9fabad8bc Merge pull request #502 from Arceliar/linkleak Neil Alexander 2019-08-14 07:17:39 +01:00
  • 46c5df1c23 when we abandon a link because we already have a connection to that peer, only wait for the connection to close if it's an *outgoing* link, otherwise incomming connection attempts can cause us to leak links Arceliar 2019-08-13 18:49:49 -05:00
  • 5e7df5a1c4 Merge pull request #499 from yggdrasil-network/sessionfix Neil Alexander 2019-08-13 08:27:30 +01:00
  • b2cb1d965c avoid leaking sessions when no listener exists, or blocking if it's busy Arceliar 2019-08-12 18:22:30 -05:00
  • c15976e4dc go.sum Arceliar 2019-08-12 18:08:02 -05:00
  • 70a118ae98 Update go.mod/go.sum Neil Alexander 2019-08-12 11:41:29 +01:00
  • 16076b53b9 Merge pull request #498 from Arceliar/search Neil Alexander 2019-08-11 21:13:49 +01:00
  • 277da1fe60 make sure searches don't end if try to continue (in parallel) with nowhere left to send, but we just sent a search and are still waiting for a response Arceliar 2019-08-11 13:11:14 -05:00
  • 7a28eb787e try to fix a few edge cases with searches that could lead them to ending without the callback being run or without cleaning up the old search info Arceliar 2019-08-11 13:00:19 -05:00
  • 589ad638ea Implement feature from https://github.com/yggdrasil-network/yggdrasil-go/issues/488 Slex 2019-08-11 00:31:22 +03:00
  • ae05683c73 Merge pull request #494 from Arceliar/bufpersession Arceliar 2019-08-07 18:15:20 -05:00
  • 5e81a0c421 Use a separate buffer per session for incoming packets, so 1 session that floods won't block other sessions Arceliar 2019-08-07 18:08:31 -05:00
  • 9ab08446ff make sure the sessionInfo.recvWorker doesn't block if sinfo.recv somehow fills Arceliar 2019-08-07 17:40:50 -05:00
  • 71e9ca25f7 Merge pull request #492 from neilalexander/fixlisten Neil Alexander 2019-08-07 10:57:55 +01:00
  • bbb35d7209 Transform Listen statement to new format if needed Neil Alexander 2019-08-07 10:52:19 +01:00
  • c99ed9fb60 Merge pull request #491 from Arceliar/flowkey Neil Alexander 2019-08-07 10:33:17 +01:00
  • d795ab1b65 minor allocation fix Arceliar 2019-08-06 20:51:38 -05:00
  • 790524bd1c copy/paste old flowkey logic into a util function, add a struct of key and packet, make WriteNoCopy accept this instead of a slice Arceliar 2019-08-06 19:25:55 -05:00
  • 6cb0ed91ad Merge pull request #486 from Arceliar/bugfix Arceliar 2019-08-05 19:17:30 -05:00
  • 679866d5ff have createSession fill the sessionInfo.cancel field, have Conn use Conn.session.cancel instead of storing its own cancellation, this should prevent any of these things from being both nil and reachable at the same time Arceliar 2019-08-05 19:11:28 -05:00
  • 032b86c9a3 Merge pull request #485 from Arceliar/bugfix Arceliar 2019-08-05 18:57:14 -05:00
  • 8a85149817 remove src/.DS_Store Arceliar 2019-08-05 18:50:08 -05:00
  • 84a4f54217 temporary fix to nil pointer, better to make sure it's never nil Arceliar 2019-08-05 18:49:15 -05:00
  • bd3b42022b Merge pull request #480 from Arceliar/speedup Neil Alexander 2019-08-05 10:24:54 +01:00
  • f046249ac6 Merge pull request #484 from neilalexander/config Neil Alexander 2019-08-05 10:24:43 +01:00
  • 2ee00fcc09 Return box_pub_key as hex string in JSON (replaces #481) Neil Alexander 2019-08-05 10:21:40 +01:00
  • 3a2ae9d902 Update API to represent coords as []uint64 Neil Alexander 2019-08-05 10:17:19 +01:00
  • 37533f157d Make some API changes (currently broken) Neil Alexander 2019-08-05 00:30:12 +01:00
  • 979c3d4c07 move some potentially blocking operations out of session pool workers, minor cleanup Arceliar 2019-08-04 16:29:58 -05:00
  • c55d7b4705 have the switch queue drop packts to ourself when the total size of all packets is at least queueTotalMaxSize, instead of an arbitrary unconfigurable packet count Arceliar 2019-08-04 16:16:49 -05:00
  • 6803f209b0 have tuntap code use Conn.ReadNoCopy and Conn.WriteNoCopy to avoid copying between slices Arceliar 2019-08-04 15:59:51 -05:00
  • 5d5486049b add Conn.ReadNoCopy and Conn.WriteNoCopy that transfer ownership of a slice instead of copying, have Read and Write use the NoCopy versions under the hood and just manage copying as needed Arceliar 2019-08-04 15:53:34 -05:00
  • 07f14f92ed disable crypto and switch buffer changes from testing Arceliar 2019-08-04 15:25:14 -05:00
  • 0ba8c6a34f have the stream code use bufio instead of copying manually to an input buffer, slightly reduces total uses of memmove Arceliar 2019-08-04 15:21:04 -05:00
  • 75b931f37e eliminate some more copying between slices Arceliar 2019-08-04 14:50:19 -05:00
  • f52955ee0f WARNING: CRYPTO DISABLED while speeding up stream writeMsg Arceliar 2019-08-04 14:18:59 -05:00
  • 1e6a6d2160 use session.cancel in the router to make blocking safe, reduce size of fromRouter buffer so the drops in the switch are closer to the intended front-drop behavior Arceliar 2019-08-04 02:21:41 -05:00
  • 7bf5884ac1 remove some lossy channel sends that should be safe to allow to block Arceliar 2019-08-04 02:14:45 -05:00
  • 6da5802ae5 don't block forever in Write if the session is cancelled, cleanup Conn.Read slightly Arceliar 2019-08-04 02:08:47 -05:00
  • 144c823bee just use a sync.Pool as the bytestore to not overcomplicate things, the allocations from interface{} casting don't seem to actually hurt in practice right now Arceliar 2019-08-04 00:28:13 -05:00
  • cbbb61b019 fix another drain on the bytestore Arceliar 2019-08-04 00:00:41 -05:00
  • 00e9c3dbd9 do session crypto work using the worker pool Arceliar 2019-08-03 23:27:52 -05:00
  • befd1b43a0 refactor session worker code slightly Arceliar 2019-08-03 23:14:51 -05:00
  • 7a9ad0c8cc add workerpool to util Arceliar 2019-08-03 23:10:37 -05:00
  • b9987b4fdc reduce time spent with a mutex held in sessionInfo.recvWorker Arceliar 2019-08-03 22:47:10 -05:00
  • 099bd3ae1e reduce part of sendWorker that needs to keep a mutex Arceliar 2019-08-03 22:35:10 -05:00
  • 72ed541bf3 a little cleanup to Conn functions Arceliar 2019-08-03 22:07:38 -05:00
  • 5dfc71e1ee put bytes back when done Arceliar 2019-08-03 22:00:47 -05:00
  • df0090e32a Add per-session read/write workers, work in progress, they still unfortunately need to take a mutex for safety Arceliar 2019-08-03 21:46:18 -05:00
  • a2966291b9 Merge pull request #478 from yggdrasil-network/develop v0.3.6 Neil Alexander 2019-08-03 12:00:00 +01:00