unbound: util/rtt.c File Reference

unbound 0.1

Functions | Variables
rtt.c File Reference

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

`#include "config.h"`
`#include "util/rtt.h"`
`#include "iterator/iterator.h"`

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

## Variables
int | RTT_MIN_TIMEOUT = 50
| min retransmit timeout value, in milliseconds
int | RTT_MAX_TIMEOUT = 120000
| max retransmit timeout value, in milliseconds

## Detailed Description

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

## Function Documentation

## ◆ rtt_init()

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, rtt_info::srtt, and UNKNOWN_SERVER_NICENESS.

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

## ◆ rtt_timeout()

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().

## ◆ rtt_unclamped()

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().

## ◆ rtt_update()

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().

## ◆ rtt_lost()

void rtt_lost | ( | struct rtt_info * | rtt,
|  | int | orig )

Update the statistics with a new timeout 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().

## ◆ rtt_notimeout()

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().