llarp::Router

Inherits from llarp::AbstractRouter, std::enable_shared_from_this< AbstractRouter >

Inherited by tooling::HiveRouter

Public Types

Name
using std::chrono::steady_clock Clock_t
using Clock_t::time_point TimePoint_t

Public Functions

Name
virtual path::BuildLimiter & pathBuildLimiter() override
virtual const llarp::net::Platform & Net() const override
virtual llarp_dht_context * dht() const override
virtual std::optional< std::variant< nuint32_t, nuint128_t > > OurPublicIP() const override
get what our real public ip is if we can know it
virtual const std::shared_ptr< NodeDB > & nodedb() const override
virtual const path::PathContext & pathContext() const override
virtual path::PathContext & pathContext() override
virtual const RouterContact & rc() const override
virtual void TearDown() override
Issue immediate teardown of all resources.
virtual void ModifyOurRC(std::function< std::optional< RouterContact >(RouterContact)> modify) override
modify our rc modify returns nullopt if unmodified otherwise it returns the new rc to be sigend and published out
virtual void SetRouterWhitelist(const std::vector< RouterID > & whitelist, const std::vector< RouterID > & greylist, const std::vector< RouterID > & unfundedlist) override
set router's service node whitelist
virtual std::unordered_set< RouterID > GetRouterWhitelist() const override
virtual exit::Context & exitContext() override
virtual const std::shared_ptr< KeyManager > & keyManager() const override
virtual const SecretKey & identity() const override
virtual const SecretKey & encryption() const override
virtual Profiling & routerProfiling() override
virtual const EventLoop_ptr & loop() const override
virtual vpn::Platform * GetVPNPlatform() const override
virtual void QueueWork(std::function< void(void)> ) override
call function in crypto worker
virtual void QueueDiskIO(std::function< void(void)> ) override
call function in disk io thread
bool LooksDecommissioned() const
return true if we look like we are a decommissioned service node
bool LooksFunded() const
return true if we look like we are a registered, fully-staked service node (either active or decommissioned).
bool LooksRegistered() const
return true if we a registered service node; not that this only requires a partial stake, and does not imply that this service node is active or fully funded.
bool ShouldTestOtherRouters() const
return true if we look like we are allowed and able to test other routers
virtual llarp_time_t Uptime() const override
returns milliseconds since started
virtual bool Sign(Signature & sig, const llarp_buffer_t & buf) const override
virtual service::Context & hiddenServiceContext() override
virtual const service::Context & hiddenServiceContext() const override
virtual void SetDownHook(std::function< void(void)> hook) override
virtual bool LooksAlive() const override
virtual const std::shared_ptr< RoutePoker > & routePoker() const override
virtual void TriggerPump() override
Trigger a pump of low level links. Idempotent.
void PumpLL()
virtual std::string status_line() override
virtual IOutboundMessageHandler & outboundMessageHandler() override
virtual IOutboundSessionMaker & outboundSessionMaker() override
virtual ILinkManager & linkManager() override
virtual I_RCLookupHandler & rcLookupHandler() override
virtual int OutboundUDPSocket() const override
virtual void GossipRCIfNeeded(const RouterContact rc) override
gossip an rc if required
Router(EventLoop_ptr loop, std::shared_ptr< vpn::Platform > vpnPlatform)
~Router() override
virtual bool HandleRecvLinkMessageBuffer(ILinkSession * from, const llarp_buffer_t & msg) override
void InitInboundLinks()
void InitOutboundLinks()
virtual bool GetRandomGoodRouter(RouterID & r) override
bool InitServiceNode()
initialize us as a service node return true on success
virtual bool IsRunning() const override
virtual bool IsServiceNode() const override
return true if we are running in service node mode
virtual std::optional< std::string > OxendErrorState() const override
Called to determine if we're in a bad state (which gets reported to our oxend) that should prevent uptime proofs from going out to the network (so that the error state gets noticed).
void Close()
virtual bool Configure(std::shared_ptr< Config > conf, bool isSNode, std::shared_ptr< NodeDB > nodedb) override
virtual void Freeze() override
indicate we are about to sleep for a while
virtual void Thaw() override
thaw from long sleep or network changed event
virtual bool Run() override
virtual void Stop() override
stop running the router logic gracefully
virtual void Die() override
non graceful stop router
void StopLinks()
close all sessions and shutdown all links
virtual void PersistSessionUntil(const RouterID & remote, llarp_time_t until) override
bool EnsureIdentity()
bool EnsureEncryptionKey()
virtual bool SessionToRouterAllowed(const RouterID & router) const override
virtual bool PathToRouterAllowed(const RouterID & router) const override
void HandleSaveRC() const
bool SaveRC()
virtual bool HasClientExit() const override
return true if we are a client with an exit configured
virtual const byte_t * pubkey() const override
void try_connect(fs::path rcfile)
virtual bool TryConnectAsync(RouterContact rc, uint16_t tries) override
virtual bool SendToOrQueue(const RouterID & remote, const ILinkMessage & msg, SendStatusHandler handler) override
send to remote router or queue for sending returns false on overflow returns true on successful queue NOT threadsafe MUST be called in the logic thread
virtual void ForEachPeer(std::function< void(const ILinkSession *, bool)> visit, bool randomize =false) const override
visit each connected link session
void ForEachPeer(std::function< void(ILinkSession *)> visit)
virtual bool IsBootstrapNode(RouterID ) const override
virtual bool CheckRenegotiateValid(RouterContact newRc, RouterContact oldRC) override
check if newRc matches oldRC and update local rc for this remote contact if valid returns true on valid and updated returns false otherwise
virtual void SessionClosed(RouterID remote) override
called by link when a remote session has no more sessions open
void ConnectionTimedOut(ILinkSession * session)
called by link when an unestablished connection times out
bool ConnectionEstablished(ILinkSession * session, bool inbound)
called by link when session is fully established
void Tick()
call internal router ticker
virtual llarp_time_t Now() const override
returns system clock milliseconds since epoch
virtual bool ParseRoutingMessageBuffer(const llarp_buffer_t & buf, routing::IMessageHandler * h, const PathID_t & rxid) override
parse a routing message in a buffer and handle it with a handler if successful parsing return true on parse and handle success otherwise return false
virtual void ConnectToRandomRouters(int N) override
connect to N random routers
virtual size_t NumberOfConnectedRouters() const override
count the number of unique service nodes connected via pubkey
virtual size_t NumberOfConnectedClients() const override
count the number of unique clients connected by pubkey
virtual bool GetRandomConnectedRouter(RouterContact & result) const override
virtual void HandleDHTLookupForExplore(RouterID remote, const std::vector< RouterContact > & results) override
virtual void LookupRouter(RouterID remote, RouterLookupHandler resultHandler) override
lookup router by pubkey if we are a service node this is done direct otherwise it's done via path
virtual bool HasSessionTo(const RouterID & router) const override
return true if we have at least 1 session to this router in either direction
virtual std::string ShortName() const override
virtual uint32_t NextPathBuildNumber() override
void AfterStopLinks()
void AfterStopIssued()
virtual std::shared_ptr< Config > GetConfig() const override

Protected Functions

Name
virtual void HandleRouterEvent(tooling::RouterEventPtr event) const override
Virtual function to handle RouterEvent.
virtual bool disableGossipingRC_TestingOnly()

Public Attributes

Name
llarp_time_t _lastPump
bool ready
fs::path transport_keyfile
fs::path ident_keyfile
fs::path encryption_keyfile
fs::path our_rc_file
bool m_UseFileLogging
RouterContact _rc
bool whitelistRouters
should we obey the service node whitelist?
path::BuildLimiter m_PathBuildLimiter
std::shared_ptr< EventLoopWakeup > m_Pump
std::unique_ptr< EventLoopWork > m_CurrentEvLoopWork
std::shared_ptr< EventLoopWakeup > m_LoopWorkPumper
std::optional< SockAddr > _ourAddress
EventLoop_ptr _loop
std::shared_ptr< vpn::Platform > _vpnPlatform
path::PathContext paths
exit::Context _exitContext
SecretKey _identity
SecretKey _encryption
llarp_dht_context * _dht
std::shared_ptr< NodeDB > _nodedb
llarp_time_t _startedAt
llarp_time_t rcRegenInterval
how often do we resign our RC? milliseconds.
bool sendPadding
LinkMessageParser inbound_link_msg_parser
routing::InboundMessageParser inbound_routing_msg_parser
service::Context _hiddenServiceContext
llarp_time_t _lastTick
std::function< void(void)> _onDown
BootstrapList bootstrapRCList
bootstrap RCs
std::shared_ptr< RoutePoker > m_RoutePoker
const llarp_time_t _randomStartDelay
Profiling _routerProfiling
fs::path _profilesFile
OutboundMessageHandler _outboundMessageHandler
OutboundSessionMaker _outboundSessionMaker
LinkManager _linkManager
RCLookupHandler _rcLookupHandler
RCGossiper _rcGossiper
TimePoint_t m_NextExploreAt
std::shared_ptr< Config > m_Config
int m_OutboundUDPSocket

Additional inherited members

Public Functions inherited from llarp::AbstractRouter

Name
virtual ~AbstractRouter() =default
template <class EventType ,class... Params>
void
NotifyRouterEvent(Params &&... args) const
Templated convenience function to generate a RouterHive event and delegate to non-templated (and overridable) function for handling.

Public Types Documentation

using Clock_t

using llarp::Router::Clock_t =  std::chrono::steady_clock;

using TimePoint_t

using llarp::Router::TimePoint_t =  Clock_t::time_point;

Public Functions Documentation

function pathBuildLimiter

inline virtual path::BuildLimiter & pathBuildLimiter() override

Reimplements: llarp::AbstractRouter::pathBuildLimiter

function Net

virtual const llarp::net::Platform & Net() const override

Reimplements: llarp::AbstractRouter::Net

function dht

inline virtual llarp_dht_context * dht() const override

Reimplements: llarp::AbstractRouter::dht

function OurPublicIP

virtual std::optional< std::variant< nuint32_t, nuint128_t > > OurPublicIP() const override

get what our real public ip is if we can know it

Reimplements: llarp::AbstractRouter::OurPublicIP

function nodedb

inline virtual const std::shared_ptr< NodeDB > & nodedb() const override

Reimplements: llarp::AbstractRouter::nodedb

function pathContext

inline virtual const path::PathContext & pathContext() const override

Reimplements: llarp::AbstractRouter::pathContext

function pathContext

inline virtual path::PathContext & pathContext() override

Reimplements: llarp::AbstractRouter::pathContext

function rc

inline virtual const RouterContact & rc() const override

Reimplements: llarp::AbstractRouter::rc

function TearDown

virtual void TearDown() override

Issue immediate teardown of all resources.

Reimplements: llarp::AbstractRouter::TearDown

function ModifyOurRC

virtual void ModifyOurRC(
    std::function< std::optional< RouterContact >(RouterContact)> modify
) override

modify our rc modify returns nullopt if unmodified otherwise it returns the new rc to be sigend and published out

Reimplements: llarp::AbstractRouter::ModifyOurRC

function SetRouterWhitelist

virtual void SetRouterWhitelist(
    const std::vector< RouterID > & whitelist,
    const std::vector< RouterID > & greylist,
    const std::vector< RouterID > & unfundedlist
) override

set router's service node whitelist

Reimplements: llarp::AbstractRouter::SetRouterWhitelist

function GetRouterWhitelist

inline virtual std::unordered_set< RouterID > GetRouterWhitelist() const override

Reimplements: llarp::AbstractRouter::GetRouterWhitelist

function exitContext

inline virtual exit::Context & exitContext() override

Reimplements: llarp::AbstractRouter::exitContext

function keyManager

inline virtual const std::shared_ptr< KeyManager > & keyManager() const override

Reimplements: llarp::AbstractRouter::keyManager

function identity

inline virtual const SecretKey & identity() const override

Reimplements: llarp::AbstractRouter::identity

function encryption

inline virtual const SecretKey & encryption() const override

Reimplements: llarp::AbstractRouter::encryption

function routerProfiling

inline virtual Profiling & routerProfiling() override

Reimplements: llarp::AbstractRouter::routerProfiling

function loop

inline virtual const EventLoop_ptr & loop() const override

Reimplements: llarp::AbstractRouter::loop

function GetVPNPlatform

inline virtual vpn::Platform * GetVPNPlatform() const override

Reimplements: llarp::AbstractRouter::GetVPNPlatform

function QueueWork

virtual void QueueWork(
    std::function< void(void)> 
) override

call function in crypto worker

Reimplements: llarp::AbstractRouter::QueueWork

function QueueDiskIO

virtual void QueueDiskIO(
    std::function< void(void)> 
) override

call function in disk io thread

Reimplements: llarp::AbstractRouter::QueueDiskIO

function LooksDecommissioned

bool LooksDecommissioned() const

return true if we look like we are a decommissioned service node

function LooksFunded

bool LooksFunded() const

return true if we look like we are a registered, fully-staked service node (either active or decommissioned).

This condition determines when we are allowed to (and attempt to) connect to other peers when running as a service node.

function LooksRegistered

bool LooksRegistered() const

return true if we a registered service node; not that this only requires a partial stake, and does not imply that this service node is active or fully funded.

function ShouldTestOtherRouters

bool ShouldTestOtherRouters() const

return true if we look like we are allowed and able to test other routers

function Uptime

virtual llarp_time_t Uptime() const override

returns milliseconds since started

Reimplements: llarp::AbstractRouter::Uptime

function Sign

virtual bool Sign(
    Signature & sig,
    const llarp_buffer_t & buf
) const override

Reimplements: llarp::AbstractRouter::Sign

function hiddenServiceContext

inline virtual service::Context & hiddenServiceContext() override

Reimplements: llarp::AbstractRouter::hiddenServiceContext

function hiddenServiceContext

inline virtual const service::Context & hiddenServiceContext() const override

Reimplements: llarp::AbstractRouter::hiddenServiceContext

function SetDownHook

inline virtual void SetDownHook(
    std::function< void(void)> hook
) override

Reimplements: llarp::AbstractRouter::SetDownHook

function LooksAlive

inline virtual bool LooksAlive() const override

Reimplements: llarp::AbstractRouter::LooksAlive

function routePoker

inline virtual const std::shared_ptr< RoutePoker > & routePoker() const override

Reimplements: llarp::AbstractRouter::routePoker

function TriggerPump

virtual void TriggerPump() override

Trigger a pump of low level links. Idempotent.

Reimplements: llarp::AbstractRouter::TriggerPump

function PumpLL

void PumpLL()

function status_line

virtual std::string status_line() override

Reimplements: llarp::AbstractRouter::status_line

function outboundMessageHandler

inline virtual IOutboundMessageHandler & outboundMessageHandler() override

Reimplements: llarp::AbstractRouter::outboundMessageHandler

function outboundSessionMaker

inline virtual IOutboundSessionMaker & outboundSessionMaker() override

Reimplements: llarp::AbstractRouter::outboundSessionMaker

function linkManager

inline virtual ILinkManager & linkManager() override

Reimplements: llarp::AbstractRouter::linkManager

function rcLookupHandler

inline virtual I_RCLookupHandler & rcLookupHandler() override

Reimplements: llarp::AbstractRouter::rcLookupHandler

function OutboundUDPSocket

inline virtual int OutboundUDPSocket() const override

Reimplements: llarp::AbstractRouter::OutboundUDPSocket

function GossipRCIfNeeded

virtual void GossipRCIfNeeded(
    const RouterContact rc
) override

gossip an rc if required

Reimplements: llarp::AbstractRouter::GossipRCIfNeeded

function Router

explicit Router(
    EventLoop_ptr loop,
    std::shared_ptr< vpn::Platform > vpnPlatform
)

function ~Router

~Router() override

function HandleRecvLinkMessageBuffer

virtual bool HandleRecvLinkMessageBuffer(
    ILinkSession * from,
    const llarp_buffer_t & msg
) override

Reimplements: llarp::AbstractRouter::HandleRecvLinkMessageBuffer

void InitInboundLinks()
void InitOutboundLinks()

function GetRandomGoodRouter

virtual bool GetRandomGoodRouter(
    RouterID & r
) override

Reimplements: llarp::AbstractRouter::GetRandomGoodRouter

function InitServiceNode

bool InitServiceNode()

initialize us as a service node return true on success

function IsRunning

virtual bool IsRunning() const override

Reimplements: llarp::AbstractRouter::IsRunning

function IsServiceNode

virtual bool IsServiceNode() const override

return true if we are running in service node mode

Reimplements: llarp::AbstractRouter::IsServiceNode

function OxendErrorState

virtual std::optional< std::string > OxendErrorState() const override

Called to determine if we're in a bad state (which gets reported to our oxend) that should prevent uptime proofs from going out to the network (so that the error state gets noticed).

Reimplements: llarp::AbstractRouter::OxendErrorState

Currently this means we require a decent number of peers whenever we are fully staked (active or decommed).

function Close

void Close()

function Configure

virtual bool Configure(
    std::shared_ptr< Config > conf,
    bool isSNode,
    std::shared_ptr< NodeDB > nodedb
) override

Reimplements: llarp::AbstractRouter::Configure

function Freeze

virtual void Freeze() override

indicate we are about to sleep for a while

Reimplements: llarp::AbstractRouter::Freeze

function Thaw

virtual void Thaw() override

thaw from long sleep or network changed event

Reimplements: llarp::AbstractRouter::Thaw

function Run

virtual bool Run() override

Reimplements: llarp::AbstractRouter::Run

function Stop

virtual void Stop() override

stop running the router logic gracefully

Reimplements: llarp::AbstractRouter::Stop

function Die

virtual void Die() override

non graceful stop router

Reimplements: llarp::AbstractRouter::Die

void StopLinks()

close all sessions and shutdown all links

function PersistSessionUntil

virtual void PersistSessionUntil(
    const RouterID & remote,
    llarp_time_t until
) override

Reimplements: llarp::AbstractRouter::PersistSessionUntil

function EnsureIdentity

bool EnsureIdentity()

function EnsureEncryptionKey

bool EnsureEncryptionKey()

function SessionToRouterAllowed

virtual bool SessionToRouterAllowed(
    const RouterID & router
) const override

Reimplements: llarp::AbstractRouter::SessionToRouterAllowed

function PathToRouterAllowed

virtual bool PathToRouterAllowed(
    const RouterID & router
) const override

Reimplements: llarp::AbstractRouter::PathToRouterAllowed

function HandleSaveRC

void HandleSaveRC() const

function SaveRC

bool SaveRC()

function HasClientExit

virtual bool HasClientExit() const override

return true if we are a client with an exit configured

Reimplements: llarp::AbstractRouter::HasClientExit

function pubkey

inline virtual const byte_t * pubkey() const override

Reimplements: llarp::AbstractRouter::pubkey

function try_connect

void try_connect(
    fs::path rcfile
)

function TryConnectAsync

virtual bool TryConnectAsync(
    RouterContact rc,
    uint16_t tries
) override

Reimplements: llarp::AbstractRouter::TryConnectAsync

function SendToOrQueue

virtual bool SendToOrQueue(
    const RouterID & remote,
    const ILinkMessage & msg,
    SendStatusHandler handler
) override

send to remote router or queue for sending returns false on overflow returns true on successful queue NOT threadsafe MUST be called in the logic thread

Reimplements: llarp::AbstractRouter::SendToOrQueue

function ForEachPeer

virtual void ForEachPeer(
    std::function< void(const ILinkSession *, bool)> visit,
    bool randomize =false
) const override

visit each connected link session

Reimplements: llarp::AbstractRouter::ForEachPeer

function ForEachPeer

void ForEachPeer(
    std::function< void(ILinkSession *)> visit
)

function IsBootstrapNode

virtual bool IsBootstrapNode(
    RouterID 
) const override

Reimplements: llarp::AbstractRouter::IsBootstrapNode

function CheckRenegotiateValid

virtual bool CheckRenegotiateValid(
    RouterContact newRc,
    RouterContact oldRC
) override

check if newRc matches oldRC and update local rc for this remote contact if valid returns true on valid and updated returns false otherwise

Reimplements: llarp::AbstractRouter::CheckRenegotiateValid

function SessionClosed

virtual void SessionClosed(
    RouterID remote
) override

called by link when a remote session has no more sessions open

Reimplements: llarp::AbstractRouter::SessionClosed

function ConnectionTimedOut

void ConnectionTimedOut(
    ILinkSession * session
)

called by link when an unestablished connection times out

function ConnectionEstablished

bool ConnectionEstablished(
    ILinkSession * session,
    bool inbound
)

called by link when session is fully established

function Tick

void Tick()

call internal router ticker

function Now

inline virtual llarp_time_t Now() const override

returns system clock milliseconds since epoch

Reimplements: llarp::AbstractRouter::Now

function ParseRoutingMessageBuffer

virtual bool ParseRoutingMessageBuffer(
    const llarp_buffer_t & buf,
    routing::IMessageHandler * h,
    const PathID_t & rxid
) override

parse a routing message in a buffer and handle it with a handler if successful parsing return true on parse and handle success otherwise return false

Reimplements: llarp::AbstractRouter::ParseRoutingMessageBuffer

function ConnectToRandomRouters

virtual void ConnectToRandomRouters(
    int N
) override

connect to N random routers

Reimplements: llarp::AbstractRouter::ConnectToRandomRouters

function NumberOfConnectedRouters

virtual size_t NumberOfConnectedRouters() const override

count the number of unique service nodes connected via pubkey

Reimplements: llarp::AbstractRouter::NumberOfConnectedRouters

function NumberOfConnectedClients

virtual size_t NumberOfConnectedClients() const override

count the number of unique clients connected by pubkey

Reimplements: llarp::AbstractRouter::NumberOfConnectedClients

function GetRandomConnectedRouter

virtual bool GetRandomConnectedRouter(
    RouterContact & result
) const override

Reimplements: llarp::AbstractRouter::GetRandomConnectedRouter

function HandleDHTLookupForExplore

virtual void HandleDHTLookupForExplore(
    RouterID remote,
    const std::vector< RouterContact > & results
) override

Reimplements: llarp::AbstractRouter::HandleDHTLookupForExplore

function LookupRouter

virtual void LookupRouter(
    RouterID remote,
    RouterLookupHandler resultHandler
) override

lookup router by pubkey if we are a service node this is done direct otherwise it's done via path

Reimplements: llarp::AbstractRouter::LookupRouter

function HasSessionTo

virtual bool HasSessionTo(
    const RouterID & router
) const override

return true if we have at least 1 session to this router in either direction

Reimplements: llarp::AbstractRouter::HasSessionTo

function ShortName

virtual std::string ShortName() const override

Reimplements: llarp::AbstractRouter::ShortName

function NextPathBuildNumber

virtual uint32_t NextPathBuildNumber() override

Reimplements: llarp::AbstractRouter::NextPathBuildNumber

void AfterStopLinks()

function AfterStopIssued

void AfterStopIssued()

function GetConfig

inline virtual std::shared_ptr< Config > GetConfig() const override

Reimplements: llarp::AbstractRouter::GetConfig

Protected Functions Documentation

function HandleRouterEvent

virtual void HandleRouterEvent(
    tooling::RouterEventPtr event
) const override

Virtual function to handle RouterEvent.

Reimplements: llarp::AbstractRouter::HandleRouterEvent

Reimplemented by: tooling::HiveRouter::HandleRouterEvent

HiveRouter overrides this in order to inject the event. The default implementation in Router simply logs it.

function disableGossipingRC_TestingOnly

inline virtual bool disableGossipingRC_TestingOnly()

Reimplemented by: tooling::HiveRouter::disableGossipingRC_TestingOnly

Public Attributes Documentation

variable _lastPump

llarp_time_t _lastPump = 0s;

variable ready

bool ready;

variable transport_keyfile

fs::path transport_keyfile;

variable ident_keyfile

fs::path ident_keyfile;

variable encryption_keyfile

fs::path encryption_keyfile;

variable our_rc_file

fs::path our_rc_file;

variable m_UseFileLogging

bool m_UseFileLogging = false;

variable _rc

RouterContact _rc;

variable whitelistRouters

bool whitelistRouters = false;

should we obey the service node whitelist?

variable m_PathBuildLimiter

path::BuildLimiter m_PathBuildLimiter;

variable m_Pump

std::shared_ptr< EventLoopWakeup > m_Pump;

variable m_CurrentEvLoopWork

std::unique_ptr< EventLoopWork > m_CurrentEvLoopWork;

variable m_LoopWorkPumper

std::shared_ptr< EventLoopWakeup > m_LoopWorkPumper;

variable _ourAddress

std::optional< SockAddr > _ourAddress;

variable _loop

EventLoop_ptr _loop;

variable _vpnPlatform

std::shared_ptr< vpn::Platform > _vpnPlatform;

variable paths

path::PathContext paths;

variable _exitContext

exit::Context _exitContext;

variable _identity

SecretKey _identity;

variable _encryption

SecretKey _encryption;

variable _dht

llarp_dht_context * _dht = nullptr;

variable _nodedb

std::shared_ptr< NodeDB > _nodedb;

variable _startedAt

llarp_time_t _startedAt;

variable rcRegenInterval

llarp_time_t rcRegenInterval = 1h;

how often do we resign our RC? milliseconds.

variable sendPadding

bool sendPadding = false;
LinkMessageParser inbound_link_msg_parser;

variable inbound_routing_msg_parser

routing::InboundMessageParser inbound_routing_msg_parser;

variable _hiddenServiceContext

service::Context _hiddenServiceContext;

variable _lastTick

llarp_time_t _lastTick = 0s;

variable _onDown

std::function< void(void)> _onDown;

variable bootstrapRCList

BootstrapList bootstrapRCList;

bootstrap RCs

variable m_RoutePoker

std::shared_ptr< RoutePoker > m_RoutePoker;

variable _randomStartDelay

const llarp_time_t _randomStartDelay;

variable _routerProfiling

Profiling _routerProfiling;

variable _profilesFile

fs::path _profilesFile;

variable _outboundMessageHandler

OutboundMessageHandler _outboundMessageHandler;

variable _outboundSessionMaker

OutboundSessionMaker _outboundSessionMaker;

variable _linkManager

LinkManager _linkManager;

variable _rcLookupHandler

RCLookupHandler _rcLookupHandler;

variable _rcGossiper

RCGossiper _rcGossiper;

variable m_NextExploreAt

TimePoint_t m_NextExploreAt;

variable m_Config

std::shared_ptr< Config > m_Config;

variable m_OutboundUDPSocket

int m_OutboundUDPSocket = -1;

Updated on 2026-01-10 at 22:49:45 +0000