Tor 0.4.9.0-alpha-dev
Data Fields
congestion_control_t Struct Reference

#include <congestion_control_st.h>

Data Fields

smartlist_tsendme_pending_timestamps
 
uint64_t ewma_rtt_usec
 
uint64_t min_rtt_usec
 
uint64_t max_rtt_usec
 
uint64_t bdp
 
uint64_t cwnd
 
uint64_t inflight
 
uint16_t next_cc_event
 
uint16_t next_cwnd_event
 
bool in_slow_start
 
bool cwnd_full
 
bool blocked_chan
 
uint16_t cwnd_inc_pct_ss
 
uint16_t cwnd_inc
 
uint16_t cwnd_min
 
uint8_t cwnd_inc_rate
 
uint8_t sendme_inc
 
cc_alg_t cc_alg
 
bdp_alg_t bdp_alg
 
struct vegas_params_t vegas_params
 

Detailed Description

Fields common to all congestion control algorithms

Definition at line 102 of file congestion_control_st.h.

Field Documentation

◆ bdp

uint64_t bdp

Definition at line 115 of file congestion_control_st.h.

◆ bdp_alg

bdp_alg_t bdp_alg

Which algorithm to estimate circuit bandwidth with. Taken from consensus parameter during circuit setup.

Definition at line 176 of file congestion_control_st.h.

◆ blocked_chan

bool blocked_chan

Is the local channel blocked on us? That's a congestion signal

Definition at line 146 of file congestion_control_st.h.

Referenced by congestion_control_vegas_process_sendme().

◆ cc_alg

cc_alg_t cc_alg

Which congestion control algorithm to use. Taken from consensus parameter and negotiation during circuit setup.

Definition at line 172 of file congestion_control_st.h.

Referenced by congestion_control_vegas_process_sendme(), and congestion_control_vegas_set_params().

◆ cwnd

uint64_t cwnd

◆ cwnd_full

bool cwnd_full

Has the cwnd become full since last cwnd update?

Definition at line 143 of file congestion_control_st.h.

Referenced by congestion_control_vegas_process_sendme().

◆ cwnd_inc

uint16_t cwnd_inc

Number of cells to increment cwnd by during steady state

Definition at line 155 of file congestion_control_st.h.

◆ cwnd_inc_pct_ss

uint16_t cwnd_inc_pct_ss

Percent of cwnd to increment by during slow start

Definition at line 152 of file congestion_control_st.h.

Referenced by CWND_INC_SS(), and rfc3742_ss_inc().

◆ cwnd_inc_rate

uint8_t cwnd_inc_rate

Number of times per congestion window to update based on congestion signals

Definition at line 163 of file congestion_control_st.h.

Referenced by congestion_control_vegas_process_sendme(), and CWND_UPDATE_RATE().

◆ cwnd_min

uint16_t cwnd_min

Minimum congestion window (must be at least sendme_inc)

Definition at line 158 of file congestion_control_st.h.

◆ ewma_rtt_usec

uint64_t ewma_rtt_usec

◆ in_slow_start

bool in_slow_start

◆ inflight

uint64_t inflight

◆ max_rtt_usec

uint64_t max_rtt_usec

Definition at line 112 of file congestion_control_st.h.

◆ min_rtt_usec

uint64_t min_rtt_usec

Definition at line 111 of file congestion_control_st.h.

◆ next_cc_event

uint16_t next_cc_event

For steady-state: the number of sendme acks until we will acknowledge a congestion event again. It starts out as the number of sendme acks in a congestion window and is decremented each ack. When this reaches 0, it means we should examine our congestion algorithm conditions. In this way, we only react to one congestion event per congestion window.

It is also reset to 0 immediately whenever the circuit's orconn is blocked, and when a previously blocked orconn is unblocked.

Definition at line 133 of file congestion_control_st.h.

Referenced by congestion_control_init(), and congestion_control_vegas_process_sendme().

◆ next_cwnd_event

uint16_t next_cwnd_event

Counts down until we process a cwnd worth of SENDME acks. Used to track full cwnd status.

Definition at line 137 of file congestion_control_st.h.

Referenced by congestion_control_vegas_process_sendme().

◆ sendme_inc

uint8_t sendme_inc

Number of cells to ack with every sendme. Taken from consensus parameter and negotiation during circuit setup.

Definition at line 168 of file congestion_control_st.h.

Referenced by cfx_del_leg(), circuit_sent_cell_for_sendme(), conflux_can_switch(), congestion_control_init_params(), congestion_control_vegas_process_sendme(), CWND_UPDATE_RATE(), rfc3742_ss_inc(), sendme_get_inc_count(), and SENDME_PER_CWND().

◆ sendme_pending_timestamps

smartlist_t* sendme_pending_timestamps

Smartlist of uint64_t monotime usec timestamps of when we sent a data cell that is pending a sendme. FIFO queue that is managed similar to sendme_last_digests.

Definition at line 107 of file congestion_control_st.h.

Referenced by congestion_control_free_(), congestion_control_init(), congestion_control_note_cell_sent(), and congestion_control_update_circuit_rtt().

◆ vegas_params

struct vegas_params_t vegas_params

Vegas-specific parameters. These should not be accessed anywhere other than the congestion_control_vegas.c file.

Definition at line 180 of file congestion_control_st.h.

Referenced by rfc3742_ss_inc().


The documentation for this struct was generated from the following file: