struct quic_cc_algo *quic_cc_algo; /* QUIC control congestion algorithm */
size_t max_cwnd; /* QUIC maximumu congestion control window size (kB) */
enum quic_sock_mode quic_mode; /* QUIC socket allocation strategy */
- int quic_pacing_burst; /* QUIC allowed pacing burst size */
#endif
struct proxy *frontend; /* the frontend all these listeners belong to, or NULL */
const struct mux_proto_list *mux_proto; /* the mux to use for all incoming connections (specified by the "proto" keyword) */
uint64_t in_flight;
/* Number of in flight ack-eliciting packets. */
uint64_t ifae_pkts;
- /* Burst size if pacing is used. Not used if congestion algo handle pacing itself. */
- uint32_t pacing_burst;
uint64_t delivery_rate; /* bytes per second */
size_t send_quantum;
uint32_t recovery_start_ts;
/* Pacing callbacks */
uint quic_cc_default_pacing_inter(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)
{
* which is true for an IPv4 path, if not false for an IPv6 path.
*/
static inline void quic_cc_path_init(struct quic_cc_path *path, int ipv4, unsigned long max_cwnd,
- struct quic_cc_algo *algo, int burst,
+ struct quic_cc_algo *algo,
struct quic_conn *qc)
{
unsigned int max_dgram_sz;
path->prep_in_flight = 0;
path->in_flight = 0;
path->ifae_pkts = 0;
- path->pacing_burst = burst;
quic_cc_init(&path->cc, algo, qc);
path->delivery_rate = 0;
path->send_quantum = 64 * 1024;
goto fail;
}
- conf->quic_pacing_burst = burst;
cc_algo->pacing_inter = quic_cc_default_pacing_inter;
- cc_algo->pacing_burst = quic_cc_default_pacing_burst;
}
if (*end_opt == ')') {
/* Use connection socket for QUIC by default. */
bind_conf->quic_mode = QUIC_SOCK_MODE_CONN;
bind_conf->max_cwnd = global.tune.quic_frontend_max_window_size;
- bind_conf->quic_pacing_burst = 0;
#endif
LIST_INIT(&bind_conf->listeners);
return path->loss.srtt * 1000000 / (path->cwnd / path->mtu + 1) + 1;
}
-/* Return the max number of datagrams which can be emitted in a burst with
- * pacing. Must return a strictly positive value.
- */
-uint quic_cc_default_pacing_burst(const struct quic_cc *cc)
-{
- struct quic_cc_path *path = container_of(cc, struct quic_cc_path, cc);
- return path->pacing_burst;
-}
-
/* Returns true if congestion window on path ought to be increased. */
int quic_cwnd_may_increase(const struct quic_cc_path *path)
{
/* Only one path at this time (multipath not supported) */
qc->path = &qc->paths[0];
quic_cc_path_init(qc->path, ipv4, server ? l->bind_conf->max_cwnd : 0,
- cc_algo ? cc_algo : default_quic_cc_algo,
- l->bind_conf->quic_pacing_burst, qc);
+ cc_algo ? cc_algo : default_quic_cc_algo, qc);
memcpy(&qc->local_addr, local_addr, sizeof(qc->local_addr));
memcpy(&qc->peer_addr, peer_addr, sizeof qc->peer_addr);