mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-23 06:41:32 +02:00
MINOR: quic: Add a "slow start" callback to congestion controller
We want to be able to make the congestion controllers re-enter the slow start state outside of the congestion controllers themselves. So, we add a callback ->slow_start() to do so. Define this callback for NewReno algorithm.
This commit is contained in:
parent
ba9db40b07
commit
83bfca6c71
@ -94,6 +94,7 @@ struct quic_cc_algo {
|
|||||||
enum quic_cc_algo_type type;
|
enum quic_cc_algo_type type;
|
||||||
int (*init)(struct quic_cc *cc);
|
int (*init)(struct quic_cc *cc);
|
||||||
void (*event)(struct quic_cc *cc, struct quic_cc_event *ev);
|
void (*event)(struct quic_cc *cc, struct quic_cc_event *ev);
|
||||||
|
void (*slow_start)(struct quic_cc *cc);
|
||||||
void (*state_trace)(struct buffer *buf, const struct quic_cc *cc);
|
void (*state_trace)(struct buffer *buf, const struct quic_cc *cc);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -39,6 +39,19 @@ static int quic_cc_nr_init(struct quic_cc *cc)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Re-enter slow start state. */
|
||||||
|
static void quic_cc_nr_slow_start(struct quic_cc *cc)
|
||||||
|
{
|
||||||
|
struct quic_path *path;
|
||||||
|
|
||||||
|
path = container_of(cc, struct quic_path, cc);
|
||||||
|
cc->algo_state.nr.cwnd = path->min_cwnd;
|
||||||
|
/* Re-entering slow start state. */
|
||||||
|
cc->algo_state.nr.state = QUIC_CC_ST_SS;
|
||||||
|
/* Recovery start time reset */
|
||||||
|
cc->algo_state.nr.recovery_start_time = 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Slow start callback. */
|
/* Slow start callback. */
|
||||||
static void quic_cc_nr_ss_cb(struct quic_cc *cc, struct quic_cc_event *ev)
|
static void quic_cc_nr_ss_cb(struct quic_cc *cc, struct quic_cc_event *ev)
|
||||||
{
|
{
|
||||||
@ -145,6 +158,7 @@ struct quic_cc_algo quic_cc_algo_nr = {
|
|||||||
.type = QUIC_CC_ALGO_TP_NEWRENO,
|
.type = QUIC_CC_ALGO_TP_NEWRENO,
|
||||||
.init = quic_cc_nr_init,
|
.init = quic_cc_nr_init,
|
||||||
.event = quic_cc_nr_event,
|
.event = quic_cc_nr_event,
|
||||||
|
.slow_start = quic_cc_nr_slow_start,
|
||||||
.state_trace = quic_cc_nr_state_trace,
|
.state_trace = quic_cc_nr_state_trace,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user