llarp::path::IHopHandler

Inherited by llarp::path::Path, llarp::path::TransitHop

Public Types

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

Public Functions

Name
virtual ~IHopHandler() =default
virtual PathID_t RXID() const =0
void DecayFilters(llarp_time_t now)
virtual bool Expired(llarp_time_t now) const =0
virtual bool ExpiresSoon(llarp_time_t now, llarp_time_t dlt) const =0
virtual bool SendRoutingMessage(const routing::IMessage & msg, AbstractRouter * r) =0
send routing message and increment sequence number
virtual bool HandleUpstream(const llarp_buffer_t & X, const TunnelNonce & Y, AbstractRouter * )
virtual bool HandleDownstream(const llarp_buffer_t & X, const TunnelNonce & Y, AbstractRouter * )
virtual llarp_time_t LastRemoteActivityAt() const =0
return timestamp last remote activity happened at
virtual bool HandleLRSM(uint64_t status, std::array< EncryptedFrame, 8 > & frames, AbstractRouter * r) =0
uint64_t NextSeqNo()
virtual void FlushUpstream(AbstractRouter * r) =0
virtual void FlushDownstream(AbstractRouter * r) =0

Protected Functions

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

Protected Attributes

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

Public Types Documentation

using TrafficEvent_t

using llarp::path::IHopHandler::TrafficEvent_t =  std::pair<std::vector<byte_t>, TunnelNonce>;

using TrafficQueue_t

using llarp::path::IHopHandler::TrafficQueue_t =  std::list<TrafficEvent_t>;

Public Functions Documentation

function ~IHopHandler

virtual ~IHopHandler() =default

function RXID

virtual PathID_t RXID() const =0

Reimplemented by: llarp::path::Path::RXID, llarp::path::TransitHop::RXID

function DecayFilters

void DecayFilters(
    llarp_time_t now
)

function Expired

virtual bool Expired(
    llarp_time_t now
) const =0

Reimplemented by: llarp::path::Path::Expired, llarp::path::TransitHop::Expired

function ExpiresSoon

virtual bool ExpiresSoon(
    llarp_time_t now,
    llarp_time_t dlt
) const =0

Reimplemented by: llarp::path::TransitHop::ExpiresSoon, llarp::path::Path::ExpiresSoon

function SendRoutingMessage

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

send routing message and increment sequence number

Reimplemented by: llarp::path::Path::SendRoutingMessage, llarp::path::TransitHop::SendRoutingMessage

function HandleUpstream

virtual bool HandleUpstream(
    const llarp_buffer_t & X,
    const TunnelNonce & Y,
    AbstractRouter * 
)

Reimplemented by: llarp::path::Path::HandleUpstream

function HandleDownstream

virtual bool HandleDownstream(
    const llarp_buffer_t & X,
    const TunnelNonce & Y,
    AbstractRouter * 
)

Reimplemented by: llarp::path::Path::HandleDownstream

function LastRemoteActivityAt

virtual llarp_time_t LastRemoteActivityAt() const =0

return timestamp last remote activity happened at

Reimplemented by: llarp::path::Path::LastRemoteActivityAt, llarp::path::TransitHop::LastRemoteActivityAt

function HandleLRSM

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

Reimplemented by: llarp::path::Path::HandleLRSM, llarp::path::TransitHop::HandleLRSM

function NextSeqNo

inline uint64_t NextSeqNo()

function FlushUpstream

virtual void FlushUpstream(
    AbstractRouter * r
) =0

Reimplemented by: llarp::path::Path::FlushUpstream, llarp::path::TransitHop::FlushUpstream

function FlushDownstream

virtual void FlushDownstream(
    AbstractRouter * r
) =0

Reimplemented by: llarp::path::Path::FlushDownstream, llarp::path::TransitHop::FlushDownstream

Protected Functions Documentation

function UpstreamWork

virtual void UpstreamWork(
    TrafficQueue_t queue,
    AbstractRouter * r
) =0

Reimplemented by: llarp::path::Path::UpstreamWork, llarp::path::TransitHop::UpstreamWork

function DownstreamWork

virtual void DownstreamWork(
    TrafficQueue_t queue,
    AbstractRouter * r
) =0

Reimplemented by: llarp::path::Path::DownstreamWork, llarp::path::TransitHop::DownstreamWork

function HandleAllUpstream

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

Reimplemented by: llarp::path::Path::HandleAllUpstream, llarp::path::TransitHop::HandleAllUpstream

function HandleAllDownstream

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

Reimplemented by: llarp::path::Path::HandleAllDownstream, llarp::path::TransitHop::HandleAllDownstream

Protected Attributes Documentation

variable m_SequenceNum

uint64_t m_SequenceNum = 0;

variable m_UpstreamQueue

TrafficQueue_t m_UpstreamQueue;

variable m_DownstreamQueue

TrafficQueue_t m_DownstreamQueue;

variable m_UpstreamReplayFilter

util::DecayingHashSet< TunnelNonce > m_UpstreamReplayFilter;

variable m_DownstreamReplayFilter

util::DecayingHashSet< TunnelNonce > m_DownstreamReplayFilter;

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