Maintained by: NLnet Labs
Data Structures | Macros | Functions
rtt.h File Reference

This file contains a data type and functions to help estimate good round trip times for UDP resend timeout values. More...

Data Structures

struct  rtt_info
 RTT information. More...
 

Macros

#define RTT_MIN_TIMEOUT   50
 min retransmit timeout value, in milliseconds
 
#define RTT_MAX_TIMEOUT   120000
 max retransmit timeout value, in milliseconds
 

Functions

void rtt_init (struct rtt_info *rtt)
 Initialize RTT estimators. More...
 
int rtt_timeout (const struct rtt_info *rtt)
 Get timeout to use for sending a UDP packet. More...
 
int rtt_unclamped (const struct rtt_info *rtt)
 Get unclamped timeout to use for server selection. More...
 
int rtt_notimeout (const struct rtt_info *rtt)
 RTT for valid responses. More...
 
void rtt_update (struct rtt_info *rtt, int ms)
 Update the statistics with a new roundtrip estimate observation. More...
 
void rtt_lost (struct rtt_info *rtt, int orig)
 Update the statistics with a new timout expired observation. More...
 

Detailed Description

This file contains a data type and functions to help estimate good round trip times for UDP resend timeout values.

Function Documentation

void rtt_init ( struct rtt_info rtt)

Initialize RTT estimators.

Parameters
rtt,:The structure. Caller is responsible for allocation of it.

References calc_rto(), rtt_info::rto, rtt_info::rttvar, and rtt_info::srtt.

Referenced by data_entry_init(), infra_del_host(), infra_rtt_update(), and rtt_test().

int rtt_timeout ( const struct rtt_info rtt)

Get timeout to use for sending a UDP packet.

Parameters
rtt,:round trip statistics structure.
Returns
: timeout to use in milliseconds. Relative time value.

References rtt_info::rto.

Referenced by infra_host(), and rtt_test().

int rtt_unclamped ( const struct rtt_info rtt)

Get unclamped timeout to use for server selection.

Recent timeouts are reflected in the returned value.

Parameters
rtt,:round trip statistics structure.
Returns
: value to use in milliseconds.

References calc_rto(), rtt_info::rto, rtt_info::rttvar, and rtt_info::srtt.

Referenced by infra_get_lame_rtt(), and infra_rtt_update().

int rtt_notimeout ( const struct rtt_info rtt)

RTT for valid responses.

Without timeouts.

Parameters
rtt,:round trip statistics structure.
Returns
: value in msec.

References calc_rto().

Referenced by dump_infra_host(), infra_get_lame_rtt(), infra_host(), and print_dp_details().

void rtt_update ( struct rtt_info rtt,
int  ms 
)

Update the statistics with a new roundtrip estimate observation.

Parameters
rtt,:round trip statistics structure.
ms,:estimate of roundtrip time in milliseconds.

References calc_rto(), rtt_info::rto, rtt_info::rttvar, and rtt_info::srtt.

Referenced by infra_rtt_update(), and rtt_test().

void rtt_lost ( struct rtt_info rtt,
int  orig 
)

Update the statistics with a new timout expired observation.

Parameters
rtt,:round trip statistics structure.
orig,:original rtt time given for the query that timed out. Used to calculate the maximum responsible backed off time that can reasonably be applied.

References rtt_info::rto, and RTT_MAX_TIMEOUT.

Referenced by infra_rtt_update(), and rtt_test().