llarp::path::TransitHop

Inherits from llarp::path::IHopHandler, llarp::routing::IMessageHandler, std::enable_shared_from_this< TransitHop >

Public Functions

Name
TransitHop()
virtual PathID_t RXID() const override
void Stop()
bool operator<(const TransitHop & other) const
bool IsEndpoint(const RouterID & us) const
llarp_time_t ExpireTime() const
virtual llarp_time_t LastRemoteActivityAt() const override
return timestamp last remote activity happened at
virtual bool HandleLRSM(uint64_t status, std::array< EncryptedFrame, 8 > & frames, AbstractRouter * r) override
std::string ToString() const
virtual bool Expired(llarp_time_t now) const override
virtual bool ExpiresSoon(llarp_time_t now, llarp_time_t dlt) const override
virtual bool SendRoutingMessage(const routing::IMessage & msg, AbstractRouter * r) override
send routing message and increment sequence number
bool HandleRoutingMessage(const routing::IMessage & msg, AbstractRouter * r)
virtual bool HandleDataDiscardMessage(const routing::DataDiscardMessage & msg, AbstractRouter * r) override
bool HandlePathConfirmMessage(AbstractRouter * r)
virtual bool HandlePathConfirmMessage(const routing::PathConfirmMessage & msg, AbstractRouter * r) override
virtual bool HandlePathTransferMessage(const routing::PathTransferMessage & msg, AbstractRouter * r) override
virtual bool HandlePathLatencyMessage(const routing::PathLatencyMessage & msg, AbstractRouter * r) override
virtual bool HandleObtainExitMessage(const routing::ObtainExitMessage & msg, AbstractRouter * r) override
virtual bool HandleUpdateExitVerifyMessage(const routing::UpdateExitVerifyMessage & msg, AbstractRouter * r) override
virtual bool HandleTransferTrafficMessage(const routing::TransferTrafficMessage & msg, AbstractRouter * r) override
virtual bool HandleUpdateExitMessage(const routing::UpdateExitMessage & msg, AbstractRouter * r) override
virtual bool HandleGrantExitMessage(const routing::GrantExitMessage & msg, AbstractRouter * r) override
virtual bool HandleRejectExitMessage(const routing::RejectExitMessage & msg, AbstractRouter * r) override
virtual bool HandleCloseExitMessage(const routing::CloseExitMessage & msg, AbstractRouter * r) override
virtual bool HandleHiddenServiceFrame(const service::ProtocolFrame & ) override
bool HandleGotIntroMessage(const dht::GotIntroMessage & msg)
virtual bool HandleDHTMessage(const dht::IMessage & msg, AbstractRouter * r) override
virtual void FlushUpstream(AbstractRouter * r) override
virtual void FlushDownstream(AbstractRouter * r) override
void QueueDestroySelf(AbstractRouter * r)

Protected Functions

Name
virtual void UpstreamWork(TrafficQueue_t queue, AbstractRouter * r) override
virtual void DownstreamWork(TrafficQueue_t queue, AbstractRouter * r) override
virtual void HandleAllUpstream(std::vector< RelayUpstreamMessage > msgs, AbstractRouter * r) override
virtual void HandleAllDownstream(std::vector< RelayDownstreamMessage > msgs, AbstractRouter * r) override

Public Attributes

Name
TransitHopInfo info
SharedSecret pathKey
ShortHash nonceXOR
llarp_time_t started
llarp_time_t lifetime
llarp_proto_version_t version
llarp_time_t m_LastActivity
bool destroy

Additional inherited members

Public Types inherited from llarp::path::IHopHandler

Name
using std::pair< std::vector< byte_t >, TunnelNonce > TrafficEvent_t
using std::list< TrafficEvent_t > TrafficQueue_t

Public Functions inherited from llarp::path::IHopHandler

Name
virtual ~IHopHandler() =default
void DecayFilters(llarp_time_t now)
virtual bool HandleUpstream(const llarp_buffer_t & X, const TunnelNonce & Y, AbstractRouter * )
virtual bool HandleDownstream(const llarp_buffer_t & X, const TunnelNonce & Y, AbstractRouter * )
uint64_t NextSeqNo()

Protected Attributes inherited from llarp::path::IHopHandler

Name
uint64_t m_SequenceNum
TrafficQueue_t m_UpstreamQueue
TrafficQueue_t m_DownstreamQueue
util::DecayingHashSet< TunnelNonce > m_UpstreamReplayFilter
util::DecayingHashSet< TunnelNonce > m_DownstreamReplayFilter

Public Functions Documentation

function TransitHop

TransitHop()

function RXID

inline virtual PathID_t RXID() const override

Reimplements: llarp::path::IHopHandler::RXID

function Stop

void Stop()

function operator<

inline bool operator<(
    const TransitHop & other
) const

function IsEndpoint

inline bool IsEndpoint(
    const RouterID & us
) const

function ExpireTime

llarp_time_t ExpireTime() const

function LastRemoteActivityAt

inline virtual llarp_time_t LastRemoteActivityAt() const override

return timestamp last remote activity happened at

Reimplements: llarp::path::IHopHandler::LastRemoteActivityAt

function HandleLRSM

virtual bool HandleLRSM(
    uint64_t status,
    std::array< EncryptedFrame, 8 > & frames,
    AbstractRouter * r
) override

Reimplements: llarp::path::IHopHandler::HandleLRSM

function ToString

std::string ToString() const

function Expired

virtual bool Expired(
    llarp_time_t now
) const override

Reimplements: llarp::path::IHopHandler::Expired

function ExpiresSoon

inline virtual bool ExpiresSoon(
    llarp_time_t now,
    llarp_time_t dlt
) const override

Reimplements: llarp::path::IHopHandler::ExpiresSoon

function SendRoutingMessage

virtual bool SendRoutingMessage(
    const routing::IMessage & msg,
    AbstractRouter * r
) override

send routing message and increment sequence number

Reimplements: llarp::path::IHopHandler::SendRoutingMessage

function HandleRoutingMessage

bool HandleRoutingMessage(
    const routing::IMessage & msg,
    AbstractRouter * r
)

function HandleDataDiscardMessage

virtual bool HandleDataDiscardMessage(
    const routing::DataDiscardMessage & msg,
    AbstractRouter * r
) override

Reimplements: llarp::routing::IMessageHandler::HandleDataDiscardMessage

function HandlePathConfirmMessage

bool HandlePathConfirmMessage(
    AbstractRouter * r
)

function HandlePathConfirmMessage

virtual bool HandlePathConfirmMessage(
    const routing::PathConfirmMessage & msg,
    AbstractRouter * r
) override

Reimplements: llarp::routing::IMessageHandler::HandlePathConfirmMessage

function HandlePathTransferMessage

virtual bool HandlePathTransferMessage(
    const routing::PathTransferMessage & msg,
    AbstractRouter * r
) override

Reimplements: llarp::routing::IMessageHandler::HandlePathTransferMessage

function HandlePathLatencyMessage

virtual bool HandlePathLatencyMessage(
    const routing::PathLatencyMessage & msg,
    AbstractRouter * r
) override

Reimplements: llarp::routing::IMessageHandler::HandlePathLatencyMessage

function HandleObtainExitMessage

virtual bool HandleObtainExitMessage(
    const routing::ObtainExitMessage & msg,
    AbstractRouter * r
) override

Reimplements: llarp::routing::IMessageHandler::HandleObtainExitMessage

function HandleUpdateExitVerifyMessage

virtual bool HandleUpdateExitVerifyMessage(
    const routing::UpdateExitVerifyMessage & msg,
    AbstractRouter * r
) override

Reimplements: llarp::routing::IMessageHandler::HandleUpdateExitVerifyMessage

function HandleTransferTrafficMessage

virtual bool HandleTransferTrafficMessage(
    const routing::TransferTrafficMessage & msg,
    AbstractRouter * r
) override

Reimplements: llarp::routing::IMessageHandler::HandleTransferTrafficMessage

function HandleUpdateExitMessage

virtual bool HandleUpdateExitMessage(
    const routing::UpdateExitMessage & msg,
    AbstractRouter * r
) override

Reimplements: llarp::routing::IMessageHandler::HandleUpdateExitMessage

function HandleGrantExitMessage

virtual bool HandleGrantExitMessage(
    const routing::GrantExitMessage & msg,
    AbstractRouter * r
) override

Reimplements: llarp::routing::IMessageHandler::HandleGrantExitMessage

function HandleRejectExitMessage

virtual bool HandleRejectExitMessage(
    const routing::RejectExitMessage & msg,
    AbstractRouter * r
) override

Reimplements: llarp::routing::IMessageHandler::HandleRejectExitMessage

function HandleCloseExitMessage

virtual bool HandleCloseExitMessage(
    const routing::CloseExitMessage & msg,
    AbstractRouter * r
) override

Reimplements: llarp::routing::IMessageHandler::HandleCloseExitMessage

function HandleHiddenServiceFrame

inline virtual bool HandleHiddenServiceFrame(
    const service::ProtocolFrame & 
) override

Reimplements: llarp::routing::IMessageHandler::HandleHiddenServiceFrame

TODO: implement me

function HandleGotIntroMessage

bool HandleGotIntroMessage(
    const dht::GotIntroMessage & msg
)

function HandleDHTMessage

virtual bool HandleDHTMessage(
    const dht::IMessage & msg,
    AbstractRouter * r
) override

Reimplements: llarp::routing::IMessageHandler::HandleDHTMessage

function FlushUpstream

virtual void FlushUpstream(
    AbstractRouter * r
) override

Reimplements: llarp::path::IHopHandler::FlushUpstream

function FlushDownstream

virtual void FlushDownstream(
    AbstractRouter * r
) override

Reimplements: llarp::path::IHopHandler::FlushDownstream

function QueueDestroySelf

void QueueDestroySelf(
    AbstractRouter * r
)

Protected Functions Documentation

function UpstreamWork

virtual void UpstreamWork(
    TrafficQueue_t queue,
    AbstractRouter * r
) override

Reimplements: llarp::path::IHopHandler::UpstreamWork

function DownstreamWork

virtual void DownstreamWork(
    TrafficQueue_t queue,
    AbstractRouter * r
) override

Reimplements: llarp::path::IHopHandler::DownstreamWork

function HandleAllUpstream

virtual void HandleAllUpstream(
    std::vector< RelayUpstreamMessage > msgs,
    AbstractRouter * r
) override

Reimplements: llarp::path::IHopHandler::HandleAllUpstream

function HandleAllDownstream

virtual void HandleAllDownstream(
    std::vector< RelayDownstreamMessage > msgs,
    AbstractRouter * r
) override

Reimplements: llarp::path::IHopHandler::HandleAllDownstream

Public Attributes Documentation

variable info

TransitHopInfo info;

variable pathKey

SharedSecret pathKey;

variable nonceXOR

ShortHash nonceXOR;

variable started

llarp_time_t started = 0s;

variable lifetime

llarp_time_t lifetime = default_lifetime;

variable version

llarp_proto_version_t version;

variable m_LastActivity

llarp_time_t m_LastActivity = 0s;

variable destroy

bool destroy = false;

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