1#ifndef NDNDPDK_CORE_RTTEST_H
2#define NDNDPDK_CORE_RTTEST_H
17static_assert(
sizeof(
RttValue) ==
sizeof(uint64_t),
"");
19__attribute__((nonnull))
static __rte_always_inline
TscDuration
26#define RttEstAlpha (1.0 * RttEstAlphaDividend / RttEstAlphaDivisor)
27#define RttEstBeta (1.0 * RttEstBetaDividend / RttEstBetaDivisor)
37__attribute__((nonnull))
static inline void
39 if (unlikely(*(uint64_t*)rttv == 0)) {
62__attribute__((nonnull))
void
65__attribute__((nonnull))
static inline void
74__attribute__((nonnull))
static inline void
77 if (likely(rtte->
next_ > now)) {
81 RttValue_Push(&rtte->
rttv, rtt);
82 RttEst_SetRTO_(rtte, RttValue_RTO(&rtte->
rttv));
87__attribute__((nonnull))
static inline void
88RttEst_Backoff(
RttEst* rtte) {
89 RttEst_SetRTO_(rtte, rtte->
rto * 2);
#define CLAMP(x, lo, hi)
Definition common.h:106
@ RttEstK
Definition rttest-enum.h:7
TscDuration RttEstTscMinRto
Definition rttest.c:8
TscDuration RttEstTscMaxRto
Definition rttest.c:9
#define RttEstAlpha
Definition rttest.h:26
#define RttEstBeta
Definition rttest.h:27
void RttEst_Init(RttEst *rtte)
Definition rttest.c:19
RTT estimator.
Definition rttest.h:55
TscDuration last
Definition rttest.h:58
TscTime next_
Definition rttest.h:59
TscDuration rto
Definition rttest.h:57
RttValue rttv
Definition rttest.h:56
SRTT and RTTVAR values in RTT estimator.
Definition rttest.h:13
float sRtt
Definition rttest.h:14
float rttVar
Definition rttest.h:15
int64_t TscDuration
Duration in TscTime unit.
Definition tsc.h:12
uint64_t TscTime
TSC clock time point.
Definition tsc.h:9