mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Create slow-start max for n_ewma_cnt.
Since slow-start now checks every sendme, lower EWMA is better.
This commit is contained in:
parent
832a1d9fae
commit
08c3ee8eca
@ -52,6 +52,7 @@
|
||||
|
||||
#define N_EWMA_CWND_PCT_DFLT (50)
|
||||
#define N_EWMA_MAX_DFLT (10)
|
||||
#define N_EWMA_SS_DFLT (2)
|
||||
|
||||
/* BDP algorithms for each congestion control algorithms use the piecewise
|
||||
* estimattor. See section 3.1.4 of proposal 324. */
|
||||
@ -107,6 +108,11 @@ static uint8_t n_ewma_cwnd_pct;
|
||||
*/
|
||||
static uint8_t n_ewma_max;
|
||||
|
||||
/**
|
||||
* Maximum number N for the N-count EWMA averaging of RTT in Slow Start.
|
||||
*/
|
||||
static uint8_t n_ewma_ss;
|
||||
|
||||
/**
|
||||
* Minimum number of sendmes before we begin BDP estimates
|
||||
*/
|
||||
@ -196,6 +202,14 @@ congestion_control_new_consensus_params(const networkstatus_t *ns)
|
||||
N_EWMA_MAX_DFLT,
|
||||
N_EWMA_MAX_MIN,
|
||||
N_EWMA_MAX_MAX);
|
||||
|
||||
#define N_EWMA_SS_MIN 2
|
||||
#define N_EWMA_SS_MAX (INT32_MAX)
|
||||
n_ewma_ss =
|
||||
networkstatus_get_param(NULL, "cc_ewma_ss",
|
||||
N_EWMA_SS_DFLT,
|
||||
N_EWMA_SS_MIN,
|
||||
N_EWMA_SS_MAX);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -452,8 +466,18 @@ dequeue_timestamp(smartlist_t *timestamps_u64_usecs)
|
||||
static inline uint64_t
|
||||
n_ewma_count(const congestion_control_t *cc)
|
||||
{
|
||||
uint64_t ewma_cnt = MIN(CWND_UPDATE_RATE(cc)*n_ewma_cwnd_pct/100,
|
||||
uint64_t ewma_cnt = 0;
|
||||
|
||||
if (cc->in_slow_start) {
|
||||
/* In slow-start, we check the Vegas condition every sendme,
|
||||
* so much lower ewma counts are needed. */
|
||||
ewma_cnt = n_ewma_ss;
|
||||
} else {
|
||||
/* After slow-start, we check the Vegas condition only once per
|
||||
* CWND, so it is better to average over longer periods. */
|
||||
ewma_cnt = MIN(CWND_UPDATE_RATE(cc)*n_ewma_cwnd_pct/100,
|
||||
n_ewma_max);
|
||||
}
|
||||
ewma_cnt = MAX(ewma_cnt, 2);
|
||||
return ewma_cnt;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user