llarp::path::PathContext

Public Classes

Name
struct SyncOwnedPathsMap_t
struct SyncTransitMap_t

Public Types

Name
using std::set< Path_ptr, ComparePtr< Path_ptr > > EndpointPathPtrSet
using std::unordered_multimap< PathID_t, TransitHop_ptr > TransitHopsMap_t
using std::unordered_map< PathID_t, Path_ptr > OwnedPathsMap_t

Public Functions

Name
PathContext(AbstractRouter * router)
void ExpirePaths(llarp_time_t now)
called from router tick function
void PumpUpstream()
void PumpDownstream()
void AllowTransit()
void RejectTransit()
bool CheckPathLimitHitByAddr(const SockAddr & addr)
bool AllowingTransit() const
bool HasTransitHop(const TransitHopInfo & info)
bool HandleRelayCommit(const LR_CommitMessage & msg)
void PutTransitHop(std::shared_ptr< TransitHop > hop)
HopHandler_ptr GetByUpstream(const RouterID & id, const PathID_t & path)
bool TransitHopPreviousIsRouter(const PathID_t & path, const RouterID & r)
TransitHop_ptr GetPathForTransfer(const PathID_t & topath)
HopHandler_ptr GetByDownstream(const RouterID & id, const PathID_t & path)
std::optional< std::weak_ptr< TransitHop > > TransitHopByInfo(const TransitHopInfo & )
std::optional< std::weak_ptr< TransitHop > > TransitHopByUpstream(const RouterID & , const PathID_t & )
PathSet_ptr GetLocalPathSet(const PathID_t & id)
routing::MessageHandler_ptr GetHandler(const PathID_t & id)
EndpointPathPtrSet FindOwnedPathsWithEndpoint(const RouterID & r)
get a set of all paths that we own who's endpoint is r
bool ForwardLRCM(const RouterID & nextHop, const std::array< EncryptedFrame, 8 > & frames, SendStatusHandler handler)
bool HopIsUs(const RouterID & k) const
bool HandleLRUM(const RelayUpstreamMessage & msg)
bool HandleLRDM(const RelayDownstreamMessage & msg)
void AddOwnPath(PathSet_ptr set, Path_ptr p)
void RemovePathSet(PathSet_ptr set)
const EventLoop_ptr & loop()
AbstractRouter * Router()
const SecretKey & EncryptionSecretKey()
const byte_t * OurRouterID() const
uint64_t CurrentTransitPaths()
current number of transit paths we have
uint64_t CurrentOwnedPaths(path::PathStatus status =path::PathStatus::ePathEstablished)
current number of paths we created in status

Public Types Documentation

using EndpointPathPtrSet

using llarp::path::PathContext::EndpointPathPtrSet =  std::set<Path_ptr, ComparePtr<Path_ptr> >;

using TransitHopsMap_t

using llarp::path::PathContext::TransitHopsMap_t =  std::unordered_multimap<PathID_t, TransitHop_ptr>;

using OwnedPathsMap_t

using llarp::path::PathContext::OwnedPathsMap_t =  std::unordered_map<PathID_t, Path_ptr>;

Public Functions Documentation

function PathContext

explicit PathContext(
    AbstractRouter * router
)

function ExpirePaths

void ExpirePaths(
    llarp_time_t now
)

called from router tick function

function PumpUpstream

void PumpUpstream()

function PumpDownstream

void PumpDownstream()

function AllowTransit

void AllowTransit()

function RejectTransit

void RejectTransit()

function CheckPathLimitHitByAddr

bool CheckPathLimitHitByAddr(
    const SockAddr & addr
)

function AllowingTransit

bool AllowingTransit() const

function HasTransitHop

bool HasTransitHop(
    const TransitHopInfo & info
)

function HandleRelayCommit

bool HandleRelayCommit(
    const LR_CommitMessage & msg
)

function PutTransitHop

void PutTransitHop(
    std::shared_ptr< TransitHop > hop
)

function GetByUpstream

HopHandler_ptr GetByUpstream(
    const RouterID & id,
    const PathID_t & path
)

function TransitHopPreviousIsRouter

bool TransitHopPreviousIsRouter(
    const PathID_t & path,
    const RouterID & r
)

function GetPathForTransfer

TransitHop_ptr GetPathForTransfer(
    const PathID_t & topath
)

function GetByDownstream

HopHandler_ptr GetByDownstream(
    const RouterID & id,
    const PathID_t & path
)

function TransitHopByInfo

std::optional< std::weak_ptr< TransitHop > > TransitHopByInfo(
    const TransitHopInfo & 
)

function TransitHopByUpstream

std::optional< std::weak_ptr< TransitHop > > TransitHopByUpstream(
    const RouterID & ,
    const PathID_t & 
)

function GetLocalPathSet

PathSet_ptr GetLocalPathSet(
    const PathID_t & id
)

function GetHandler

routing::MessageHandler_ptr GetHandler(
    const PathID_t & id
)

function FindOwnedPathsWithEndpoint

EndpointPathPtrSet FindOwnedPathsWithEndpoint(
    const RouterID & r
)

get a set of all paths that we own who's endpoint is r

function ForwardLRCM

bool ForwardLRCM(
    const RouterID & nextHop,
    const std::array< EncryptedFrame, 8 > & frames,
    SendStatusHandler handler
)

function HopIsUs

bool HopIsUs(
    const RouterID & k
) const

function HandleLRUM

bool HandleLRUM(
    const RelayUpstreamMessage & msg
)

function HandleLRDM

bool HandleLRDM(
    const RelayDownstreamMessage & msg
)

function AddOwnPath

void AddOwnPath(
    PathSet_ptr set,
    Path_ptr p
)

function RemovePathSet

void RemovePathSet(
    PathSet_ptr set
)

function loop

const EventLoop_ptr & loop()

function Router

AbstractRouter * Router()

function EncryptionSecretKey

const SecretKey & EncryptionSecretKey()

function OurRouterID

const byte_t * OurRouterID() const

function CurrentTransitPaths

uint64_t CurrentTransitPaths()

current number of transit paths we have

function CurrentOwnedPaths

uint64_t CurrentOwnedPaths(
    path::PathStatus status =path::PathStatus::ePathEstablished
)

current number of paths we created in status


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