mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 23:27:04 +02:00
MINOR: quic: rename pacing_rate cb to pacing_inter
Rename one of the congestion algorithms pacing callback from pacing_rate to pacing_inter. This better reflects that this function returns a delay (in nanoseconds) which should be applied between each packet emission to fill the congestion window with a perfectly smoothed emission. This should be backported up to 3.1.
This commit is contained in:
parent
2178bf1192
commit
7c0820892f
@ -140,7 +140,7 @@ struct quic_cc_algo {
|
|||||||
void (*hystart_start_round)(struct quic_cc *cc, uint64_t pn);
|
void (*hystart_start_round)(struct quic_cc *cc, uint64_t pn);
|
||||||
|
|
||||||
/* Defined only if pacing is used. */
|
/* Defined only if pacing is used. */
|
||||||
uint (*pacing_rate)(const struct quic_cc *cc);
|
uint (*pacing_inter)(const struct quic_cc *cc);
|
||||||
uint (*pacing_burst)(const struct quic_cc *cc);
|
uint (*pacing_burst)(const struct quic_cc *cc);
|
||||||
|
|
||||||
struct quic_cc_drs *(*get_drs)(struct quic_cc *cc);
|
struct quic_cc_drs *(*get_drs)(struct quic_cc *cc);
|
||||||
|
@ -38,7 +38,7 @@ void quic_cc_event(struct quic_cc *cc, struct quic_cc_event *ev);
|
|||||||
void quic_cc_state_trace(struct buffer *buf, const struct quic_cc *cc);
|
void quic_cc_state_trace(struct buffer *buf, const struct quic_cc *cc);
|
||||||
|
|
||||||
/* Pacing callbacks */
|
/* Pacing callbacks */
|
||||||
uint quic_cc_default_pacing_rate(const struct quic_cc *cc);
|
uint quic_cc_default_pacing_inter(const struct quic_cc *cc);
|
||||||
uint quic_cc_default_pacing_burst(const struct quic_cc *cc);
|
uint quic_cc_default_pacing_burst(const struct quic_cc *cc);
|
||||||
|
|
||||||
static inline const char *quic_cc_state_str(enum quic_cc_algo_state_type state)
|
static inline const char *quic_cc_state_str(enum quic_cc_algo_state_type state)
|
||||||
|
@ -203,7 +203,7 @@ static int bind_parse_quic_cc_algo(char **args, int cur_arg, struct proxy *px,
|
|||||||
}
|
}
|
||||||
|
|
||||||
conf->quic_pacing_burst = burst;
|
conf->quic_pacing_burst = burst;
|
||||||
cc_algo->pacing_rate = quic_cc_default_pacing_rate;
|
cc_algo->pacing_inter = quic_cc_default_pacing_inter;
|
||||||
cc_algo->pacing_burst = quic_cc_default_pacing_burst;
|
cc_algo->pacing_burst = quic_cc_default_pacing_burst;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ static void qmux_ctrl_room(struct qc_stream_desc *, uint64_t room);
|
|||||||
static int qcc_is_pacing_active(const struct connection *conn)
|
static int qcc_is_pacing_active(const struct connection *conn)
|
||||||
{
|
{
|
||||||
const struct quic_conn *qc = conn->handle.qc;
|
const struct quic_conn *qc = conn->handle.qc;
|
||||||
return !!(qc->path->cc.algo->pacing_rate);
|
return !!(qc->path->cc.algo->pacing_inter);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qcs_free_ncbuf(struct qcs *qcs, struct ncbuf *ncbuf)
|
static void qcs_free_ncbuf(struct qcs *qcs, struct ncbuf *ncbuf)
|
||||||
|
@ -50,8 +50,8 @@ void quic_cc_state_trace(struct buffer *buf, const struct quic_cc *cc)
|
|||||||
cc->algo->state_trace(buf, cc);
|
cc->algo->state_trace(buf, cc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return rate in nanoseconds between each datagram emission for a smooth pacing. */
|
/* Return interval in nanoseconds between each datagram emission for a smooth pacing. */
|
||||||
uint quic_cc_default_pacing_rate(const struct quic_cc *cc)
|
uint quic_cc_default_pacing_inter(const struct quic_cc *cc)
|
||||||
{
|
{
|
||||||
struct quic_cc_path *path = container_of(cc, struct quic_cc_path, cc);
|
struct quic_cc_path *path = container_of(cc, struct quic_cc_path, cc);
|
||||||
return path->loss.srtt * 1000000 / (path->cwnd / path->mtu + 1);
|
return path->loss.srtt * 1000000 / (path->cwnd / path->mtu + 1);
|
||||||
|
@ -1457,7 +1457,7 @@ struct quic_cc_drs *bbr_get_drs(struct quic_cc *cc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Return the pacing delay between bursts of packets in nanoseconds. */
|
/* Return the pacing delay between bursts of packets in nanoseconds. */
|
||||||
uint bbr_pacing_rate(const struct quic_cc *cc)
|
uint bbr_pacing_inter(const struct quic_cc *cc)
|
||||||
{
|
{
|
||||||
struct bbr *bbr = quic_cc_priv(cc);
|
struct bbr *bbr = quic_cc_priv(cc);
|
||||||
struct quic_cc_path *p = container_of(cc, struct quic_cc_path, cc);
|
struct quic_cc_path *p = container_of(cc, struct quic_cc_path, cc);
|
||||||
@ -1526,7 +1526,7 @@ static void bbr_state_cli(struct buffer *buf, const struct quic_cc_path *p)
|
|||||||
struct quic_cc_algo quic_cc_algo_bbr = {
|
struct quic_cc_algo quic_cc_algo_bbr = {
|
||||||
.type = QUIC_CC_ALGO_TP_BBR,
|
.type = QUIC_CC_ALGO_TP_BBR,
|
||||||
.init = bbr_init,
|
.init = bbr_init,
|
||||||
.pacing_rate = bbr_pacing_rate,
|
.pacing_inter = bbr_pacing_inter,
|
||||||
.pacing_burst = bbr_pacing_burst,
|
.pacing_burst = bbr_pacing_burst,
|
||||||
.get_drs = bbr_get_drs,
|
.get_drs = bbr_get_drs,
|
||||||
.on_transmit = bbr_on_transmit,
|
.on_transmit = bbr_on_transmit,
|
||||||
|
@ -12,6 +12,6 @@ int quic_pacing_expired(const struct quic_pacer *pacer)
|
|||||||
/* Notify <pacer> about an emission of <sent> count of datagrams. */
|
/* Notify <pacer> about an emission of <sent> count of datagrams. */
|
||||||
void quic_pacing_sent_done(struct quic_pacer *pacer, int sent)
|
void quic_pacing_sent_done(struct quic_pacer *pacer, int sent)
|
||||||
{
|
{
|
||||||
pacer->next = task_mono_time() + pacer->cc->algo->pacing_rate(pacer->cc) * sent;
|
pacer->next = task_mono_time() + pacer->cc->algo->pacing_inter(pacer->cc) * sent;
|
||||||
pacer->last_sent = sent;
|
pacer->last_sent = sent;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user