* Sim - only test pings between regular nodes (not adversaries)
* Sim - recalculate graph used for stretch when appropriate
* Set read deadline to prevent sim deadlock
* Cleanup read deadline
* Move read deadline behind router actor access
* Change read deadline to be atomic
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
* Initial soft-state testing
* Fix `pineconeip`
* Try raising the intervals a bit
* Tighter expiry
* Tweaks
* Try to speed up convergence but reduce idle noise
* More tweaks
* Handle disconnections on destination ports, tweak next-hops
* All traffic is either bootstrap or not, more tweaking
* Protocol calming, loop detection, bootstrap signatures
* Tidy up sim
* Fix unit test
* Don't drop pong responses as looping traffic
* Remove unused snake path id
* Remove unused variable from nextHopsSNEK
* Unassign setup acks capability from soft state capabilites
* Cleanup comments to reflect new softstate logic
* Remove unused candidate variable from state
* Update sim and events to reflect softstate changes
* Update wireshark dissector to match softstate frames
* Add unit test for snake bootstrap
* Fix incorrect comment about bootstrap forwarding conditions
* Add `queue` interface
* Initial docs update for softstate algorithm
* Softstate doc updates
* Fix logic for selecting lowest latency links
* Update docs with watermark information (#52)
* Update docs with watermark information
* Further clarifications to watermark docs
* Fix `pinecone.lua`
Co-authored-by: Devon Hudson <devonhudson@librem.one>
* Sim - add snake route info to the sim
* Add table size info to sim node hover text
* Sim - add routing table size histogram
* Add integrity check to chart lib
* Sim - limit ping worker count to prevent overfilling peer queues
* Log when dropping frames due to a full queue
* Add proper logging to the queues
* Fix queue unit test
* Stub in node ping toggle ui
* Sim - stub in api commands for ping toggling
* Sim - hookup basic pinging
* Sim - sync clients to server ping state
* Sim - better sync ui ping state to server
* Sim - flush out websocket events for pinging
* Sim - add snek and tree convergence data
* Sim - report stretch values
* Sim - add printout for total network stretch
* Remove duplicate coordinate info from frames
* Update unit tests to match new frame layouts
* Remove frame ID offset for ping frames
* Update wireshark dissector to match new frame layouts
* Use QUIC instead of uTP
* Various tweaks
* The `pinecone` standalone doesn't need sessions
* Allow multiple protocols
* More QUIC tweaks
* De-race connection setup
* Gobind package doesn't need sessions
* Logger interface, more queue metrics