Tor 0.4.9.2-alpha-dev
|
Structure definitions for congestion control. More...
Go to the source code of this file.
Data Structures | |
struct | vegas_params_t |
struct | congestion_control_t |
Macros | |
#define | NUM_CC_ALGS (CC_ALG_NOLA+1) |
#define | NUM_BDP_ALGS (BDP_ALG_PIECEWISE+1) |
#define | CWND_INC(cc) ((cc)->cwnd_inc) |
Enumerations | |
enum | cc_alg_t { CC_ALG_SENDME = 0 , CC_ALG_WESTWOOD = 1 , CC_ALG_VEGAS = 2 , CC_ALG_NOLA = 3 } |
enum | bdp_alg_t { BDP_ALG_CWND_RTT = 0 , BDP_ALG_SENDME_RATE = 1 , BDP_ALG_INFLIGHT_RTT = 2 , BDP_ALG_PIECEWISE = 3 } |
Functions | |
static uint64_t | CWND_UPDATE_RATE (const struct congestion_control_t *cc) |
static uint64_t | SENDME_PER_CWND (const struct congestion_control_t *cc) |
static uint64_t | CWND_INC_SS (const struct congestion_control_t *cc) |
Structure definitions for congestion control.
Definition in file congestion_control_st.h.
#define CWND_INC | ( | cc | ) | ((cc)->cwnd_inc) |
Returns the amount to increment (and for Vegas, also decrement) the congestion window by, every update period.
This is controlled by the cc_cwnd_inc consensus parameter.
Definition at line 240 of file congestion_control_st.h.
#define NUM_BDP_ALGS (BDP_ALG_PIECEWISE+1) |
Total number of BDP algs in bdp_alg_t enum
Definition at line 80 of file congestion_control_st.h.
#define NUM_CC_ALGS (CC_ALG_NOLA+1) |
Definition at line 50 of file congestion_control_st.h.
enum bdp_alg_t |
Signifies how we estimate circuit BDP
Definition at line 53 of file congestion_control_st.h.
enum cc_alg_t |
Signifies which sendme algorithm to use
Definition at line 16 of file congestion_control_st.h.
|
inlinestatic |
Returns the amount to increment the congestion window each update, during slow start.
Congestion control literature recommends either doubling the cwnd every cwnd during slow start, or some similar exponential growth (such as 50% more every cwnd, for Vegas).
This is controlled by a consensus parameter 'cwnd_inc_pct_ss', which allows us to specify the percent of the current consensus window to update by.
Definition at line 229 of file congestion_control_st.h.
|
inlinestatic |
Returns the number of sendme acks we will receive before we update cwnd.
Congestion control literature recommends only one update of cwnd per cwnd worth of acks. However, we can also tune this to be more frequent by increasing the 'cc_cwnd_inc_rate' consensus parameter. This tuning only applies after slow start.
If this returns 0 due to high cwnd_inc_rate, the calling code will update every sendme ack.
Definition at line 194 of file congestion_control_st.h.
Referenced by congestion_control_init().
|
inlinestatic |
Gives us the number of SENDMEs in a CWND, rounded.
Definition at line 210 of file congestion_control_st.h.
Referenced by congestion_control_vegas_process_sendme().