Tor 0.4.9.0-alpha-dev
Functions | Variables
congestion_control_vegas.h File Reference

Private-ish APIs for the TOR_VEGAS congestion control algorithm. More...

#include "core/or/crypt_path_st.h"
#include "core/or/circuit_st.h"

Go to the source code of this file.

Functions

int congestion_control_vegas_process_sendme (struct congestion_control_t *cc, const circuit_t *circ)
 
void congestion_control_vegas_set_params (struct congestion_control_t *cc, cc_path_t path)
 

Variables

double cc_stats_vegas_exit_ss_cwnd_ma
 
double cc_stats_vegas_exit_ss_bdp_ma
 
double cc_stats_vegas_exit_ss_inc_ma
 
double cc_stats_vegas_gamma_drop_ma
 
double cc_stats_vegas_delta_drop_ma
 
double cc_stats_vegas_ss_csig_blocked_ma
 
double cc_stats_vegas_csig_blocked_ma
 
uint64_t cc_stats_vegas_above_delta
 
uint64_t cc_stats_vegas_above_ss_cwnd_max
 
double cc_stats_vegas_csig_alpha_ma
 
double cc_stats_vegas_csig_beta_ma
 
double cc_stats_vegas_csig_delta_ma
 
double cc_stats_vegas_ss_queue_ma
 
double cc_stats_vegas_queue_ma
 
double cc_stats_vegas_bdp_ma
 
uint64_t cc_stats_vegas_below_ss_inc_floor
 
uint64_t cc_stats_vegas_circ_exited_ss
 

Detailed Description

Private-ish APIs for the TOR_VEGAS congestion control algorithm.

Definition in file congestion_control_vegas.h.

Function Documentation

◆ congestion_control_vegas_process_sendme()

int congestion_control_vegas_process_sendme ( congestion_control_t cc,
const circuit_t circ 
)

Process a SENDME and update the congestion window according to the rules specified in TOR_VEGAS of Proposal #324.

Essentially, this algorithm attempts to measure queue lengths on the circuit by subtracting the bandwidth-delay-product estimate from the current congestion window.

If the congestion window is larger than the bandwidth-delay-product, then data is assumed to be queuing. We reduce the congestion window in that case.

If the congestion window is smaller than the bandwidth-delay-product, then there is spare bandwidth capacity on the circuit. We increase the congestion window in that case.

The congestion window is updated only once every congestion window worth of packets, even if the signal persists. It is also updated whenever the upstream orcon blocks, or unblocks. This minimizes local client queues.

Definition at line 407 of file congestion_control_vegas.c.

◆ congestion_control_vegas_set_params()

void congestion_control_vegas_set_params ( congestion_control_t cc,
cc_path_t  path 
)

Cache Vegas consensus parameters.

Definition at line 108 of file congestion_control_vegas.c.

Variable Documentation

◆ cc_stats_vegas_above_delta

uint64_t cc_stats_vegas_above_delta
extern

Stats on how many times we reached "delta" param.

Definition at line 89 of file congestion_control_vegas.c.

◆ cc_stats_vegas_above_ss_cwnd_max

uint64_t cc_stats_vegas_above_ss_cwnd_max
extern

Stats on how many times we reached "ss_cwnd_max" param.

Definition at line 91 of file congestion_control_vegas.c.

◆ cc_stats_vegas_bdp_ma

double cc_stats_vegas_bdp_ma
extern

Definition at line 86 of file congestion_control_vegas.c.

◆ cc_stats_vegas_below_ss_inc_floor

uint64_t cc_stats_vegas_below_ss_inc_floor
extern

Definition at line 92 of file congestion_control_vegas.c.

◆ cc_stats_vegas_circ_exited_ss

uint64_t cc_stats_vegas_circ_exited_ss
extern

Definition at line 93 of file congestion_control_vegas.c.

◆ cc_stats_vegas_csig_alpha_ma

double cc_stats_vegas_csig_alpha_ma
extern

Definition at line 80 of file congestion_control_vegas.c.

◆ cc_stats_vegas_csig_beta_ma

double cc_stats_vegas_csig_beta_ma
extern

Definition at line 81 of file congestion_control_vegas.c.

◆ cc_stats_vegas_csig_blocked_ma

double cc_stats_vegas_csig_blocked_ma
extern

Definition at line 79 of file congestion_control_vegas.c.

◆ cc_stats_vegas_csig_delta_ma

double cc_stats_vegas_csig_delta_ma
extern

Definition at line 82 of file congestion_control_vegas.c.

◆ cc_stats_vegas_delta_drop_ma

double cc_stats_vegas_delta_drop_ma
extern

Definition at line 77 of file congestion_control_vegas.c.

◆ cc_stats_vegas_exit_ss_bdp_ma

double cc_stats_vegas_exit_ss_bdp_ma
extern

Definition at line 74 of file congestion_control_vegas.c.

◆ cc_stats_vegas_exit_ss_cwnd_ma

double cc_stats_vegas_exit_ss_cwnd_ma
extern

Moving average of the cc->cwnd from each circuit exiting slowstart.

Definition at line 73 of file congestion_control_vegas.c.

Referenced by congestion_control_vegas_exit_slow_start(), and fill_cc_gauges_values().

◆ cc_stats_vegas_exit_ss_inc_ma

double cc_stats_vegas_exit_ss_inc_ma
extern

Definition at line 75 of file congestion_control_vegas.c.

◆ cc_stats_vegas_gamma_drop_ma

double cc_stats_vegas_gamma_drop_ma
extern

Definition at line 76 of file congestion_control_vegas.c.

◆ cc_stats_vegas_queue_ma

double cc_stats_vegas_queue_ma
extern

Definition at line 85 of file congestion_control_vegas.c.

◆ cc_stats_vegas_ss_csig_blocked_ma

double cc_stats_vegas_ss_csig_blocked_ma
extern

Definition at line 78 of file congestion_control_vegas.c.

◆ cc_stats_vegas_ss_queue_ma

double cc_stats_vegas_ss_queue_ma
extern

Definition at line 84 of file congestion_control_vegas.c.