Commit Graph

313 Commits (e4ed53224c17606487c6351dc9f6b28385b88916)

Author SHA1 Message Date
Jeff Becker e4ed53224c
use weak_ptr on a path to reference its parent pathset instead of a bare pointer so crashes dont happen 3 years ago
Jeff Becker 2a76a3d081
treat ignored paths like established paths when dealing with expiration 3 years ago
Jeff Becker 23aa35b825
log when we ignore a path 3 years ago
Jeff Becker a86152e03c
decay path build limiter per path builder every tick 3 years ago
Jeff Becker 23a82c493f
* don't include failed at when we are the pivot router as that case never happens.
* mark paths as ingored instead of expired when we stop a path builder
* only remove path builder when we have no established paths
3 years ago
Jeff Becker 503db46eca
path and intro selection fixups:
* include stricter router profiling checks in path::Builder hop slection algorithm
* make intro selection function nicer by returning a std::optional instead of a bool with an "out" variable
3 years ago
Jeff Becker 174e1b247b
fix latency tests.
* do FEC for latency tests so if we fail one test it doesn't kill the entire path
* ignore FEC'd responses on latency tests
* track latency history and report the mean latency instead of just the last sample
3 years ago
Jeff Becker b1d30f9803
updates to lokinetmon
* add introset inspector mode
* add required parts for introset insecptor mode to rpc introspection
3 years ago
Jeff Becker 3c2334112c
when we stop a path builder we want to expire all of their paths so they go away 3 years ago
Jeff d53945b011
Merge pull request #1621 from majestrate/path-ptr-leak-2021-05-02
try fixing std::shared_ptr leak with paths
3 years ago
Jeff 34eb254959
Merge pull request #1626 from majestrate/edge-limiter-2021-05-05
limit path builds across all builders
3 years ago
Jeff Becker b1afe0f596
always do path tests
this reverts some stupid bullshit that broke 0.9.0
3 years ago
Jeff Becker ec62228149
limit path builds across all builders 3 years ago
Jeff Becker d563e3b340
if a path's latency is zero dont use it because it's not actually a zero latency path it's probably about to be failed or timed out
increase default path alignment timeout
3 years ago
Jeff Becker 397d8b01fc
try fixing std::shared_ptr leak with paths 3 years ago
Jeff Becker f69ccb73a8
limit path reanimation
* wait for a limited time for dead paths to reanimate and then remove them after that forever
3 years ago
Jeff Becker 6b115913bc
lokinetmon updates
* add country flags to lokinetmon
* expose hop ip addresses via rpc introspection for geoip in lokinetmon
3 years ago
Thomas Winget cecbddc912 Fixes subtle memory leak, adds comments
Fixes a subtle memory leak that was a result of outbound messages which
were in the shared queue (not yet sorted into a per-path queue) when a
path was removed, resulting in a ghost path queue (and thus round-robin
order entry as well).

Adds much needed documentation to the outbound message handler class.
3 years ago
Jeff Becker 545021aa3d
temp commit 3 years ago
Jeff Becker bb7b46c43d
fixes for testnet 3 years ago
Jeff Becker 07eaeb681a
try fixing deadlock 3 years ago
Jeff Becker 8b2ede5fc5
use rxid 3 years ago
Jeff Becker 1677ed40f6
dont persist sessions if we failed to build 3 years ago
Jeff Becker 2e8f47a7fa
various cleanups 3 years ago
Jeff Becker 0046de3e7a
service node logic change: simplify transit hop behavior to send protocol frames directly from a path transfer message 3 years ago
Jeff Becker 5b05d22bad
refactors
* add path sequence numbers on routing messages
* reduce log level in debug mode
* wire up loopback style sending to ourself
3 years ago
Jeff Becker 59c9e997f2
build paths faster and limit path builds at edge router instead of via a time counter for all edges 3 years ago
Jeff Becker 708e408c30
various fixups and cleanups
* wire up last of the quic stuff
* clean up udp packet generation code
* pass EndpointBase not quic tunnel for quic stuff
* add {n,h}uint16_t::FromString
* add nuint_t::FromString
* make AlignedBuffer::IsZero non constant time call for speed
3 years ago
Jeff Becker 59891d5d5f
wire up snode traffic to quic 3 years ago
Jeff Becker 9d483a12db
* add protocol type to snode traffic
* make path::PathSet::SendPacketToRemote know about protocol type
3 years ago
Jeff Becker 7a1ffc2df4
* lessen replay filter window
* dont have transit hops use a replay filter
* formatting
3 years ago
Jason Rhinelander 181953b4a6 Replace ::Hash nested structs with std::hash specializations 3 years ago
Thomas Winget 7caa87862e standardize include format and pragma once
All #ifndef guards on headers have been removed, I think,
in favor of #pragma once

Headers are now included as `#include "filename"` if the included file
resides in the same directory as the file including it, or any
subdirectory therein.  Otherwise they are included as
`#include <project/top/dir/relative/path/filename>`

The above does not include system/os headers.
3 years ago
Jason Rhinelander 91d6698a9d Reformat with clang-format-11 3 years ago
Jason Rhinelander c00de1e4ec Add wakeup call into transit_hop UpstreamHandler 3 years ago
Jason Rhinelander 89b582bf60 Modernize [[maybe_unused]] attribute 3 years ago
Jason Rhinelander f9dc308f75 Tick event loop on data queuing 3 years ago
Jason Rhinelander c4559d158e Make format 3 years ago
Jason Rhinelander ccc7b5c9e9 Merge Logic functions into EventLoop
loop->call(...) is similar to the old logic->Call(...), but is smart
about the current thread: if called from within the event loop it simply
runs the argument directly, otherwise it queues it.

Similarly most of the other event loop calls are also now thread-aware:
for example, `call_later(...)` can queue the job directly when called if
in the event loop rather than having to double-queue through the even
loop (once to call, then inside the call to initiate the time).
3 years ago
Jeff Becker ec0f45eeb7
plug memory leak in outbound message queue.
sometimes we use rxid in our pathid so we need to clear those queues too.
if we don't it'll leak from never clearing those queues.
3 years ago
Jeff Becker 3425069b41
feedback from jason
* use emplace in PeerSectionConfig::Acceptable use insert everywhere else
* use const l-value references
* fix typos and spelling mistakes
3 years ago
Jeff Becker 9457da27d9
add option to enforce unique netblocks per path. 3 years ago
Jeff Becker 1f1db29816
GetIf -> GetRandom 3 years ago
Jeff Becker f24cdb305b
clean up calls to NodeDB::GetIf to be cleaner and more concise 3 years ago
Jeff Becker d55705362a
use good routers 3 years ago
Jeff Becker b6dbbb4bef
consolidate pathbuilder logic
* deduplicate code for path hops selection
3 years ago
Jeff Becker df4ea34a56
nodedb refactor
* bump zmq static dep
* lokimq -> oxenmq
* llarp_nodedb -> llarp::NodeDB
* remove all crufty api parts of NodeDB
* make NodeDB rc selection api not suck
* make path builder api not suck
* propagate all above changes so that unit tests work and it all compiles
3 years ago
Jeff 5f0f4e0c70
prevent crash by removing duplicate logic (#1515)
when a path expires or fails or something causes its lifecycle to end we have cleanup
logic that handles clean up for it. this removes a code path that was crashing that
is duplicated elsewhere and is thus probably safe to bin. yolo.
3 years ago
Jeff e66522b9dd
fix path reference leak (#1451) 4 years ago
Jeff 8be7c46531
try fixing memory leak in path builder (#1442) 4 years ago