Tor 0.4.9.0-alpha-dev
|
Private-ish APIs for the TOR_VEGAS congestion control algorithm. More...
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 |
Private-ish APIs for the TOR_VEGAS congestion control algorithm.
Definition in file congestion_control_vegas.h.
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.
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.
|
extern |
Stats on how many times we reached "delta" param.
Definition at line 89 of file congestion_control_vegas.c.
|
extern |
Stats on how many times we reached "ss_cwnd_max" param.
Definition at line 91 of file congestion_control_vegas.c.
|
extern |
Definition at line 86 of file congestion_control_vegas.c.
|
extern |
Definition at line 92 of file congestion_control_vegas.c.
|
extern |
Definition at line 93 of file congestion_control_vegas.c.
|
extern |
Definition at line 80 of file congestion_control_vegas.c.
|
extern |
Definition at line 81 of file congestion_control_vegas.c.
|
extern |
Definition at line 79 of file congestion_control_vegas.c.
|
extern |
Definition at line 82 of file congestion_control_vegas.c.
|
extern |
Definition at line 77 of file congestion_control_vegas.c.
|
extern |
Definition at line 74 of file congestion_control_vegas.c.
|
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().
|
extern |
Definition at line 75 of file congestion_control_vegas.c.
|
extern |
Definition at line 76 of file congestion_control_vegas.c.
|
extern |
Definition at line 85 of file congestion_control_vegas.c.
|
extern |
Definition at line 78 of file congestion_control_vegas.c.
|
extern |
Definition at line 84 of file congestion_control_vegas.c.