MINOR: quic: Add the congestion window initial value to QUIC path

Add ->initial_wnd new member to quic_cc_path struct to keep the initial value
of the congestion window. This member is initialized as soon as a QUIC connection
is allocated. This modification is required for BBR congestion control algorithm.
This commit is contained in:
Frederic Lecaille 2024-08-13 15:23:24 +02:00
parent 5ebecbe45b
commit 7bbe8828ba
2 changed files with 4 additions and 1 deletions

View File

@ -99,6 +99,8 @@ struct quic_cc_path {
/* MTU. Must be constant for GSO support. */ /* MTU. Must be constant for GSO support. */
const size_t mtu; const size_t mtu;
/* Initial congestion window. */
uint64_t initial_wnd;
/* Congestion window. */ /* Congestion window. */
uint64_t cwnd; uint64_t cwnd;
/* The current maximum congestion window value reached. */ /* The current maximum congestion window value reached. */

View File

@ -90,7 +90,8 @@ static inline void quic_cc_path_init(struct quic_cc_path *path, int ipv4, unsign
max_dgram_sz = ipv4 ? QUIC_INITIAL_IPV4_MTU : QUIC_INITIAL_IPV6_MTU; max_dgram_sz = ipv4 ? QUIC_INITIAL_IPV4_MTU : QUIC_INITIAL_IPV6_MTU;
quic_loss_init(&path->loss); quic_loss_init(&path->loss);
*(size_t *)&path->mtu = max_dgram_sz; *(size_t *)&path->mtu = max_dgram_sz;
path->cwnd = QUIC_MIN(10 * max_dgram_sz, QUIC_MAX(max_dgram_sz << 1, 14720U)); path->initial_wnd = QUIC_MIN(10 * max_dgram_sz, QUIC_MAX(max_dgram_sz << 1, 14720U));
path->cwnd = path->initial_wnd;
path->mcwnd = path->cwnd; path->mcwnd = path->cwnd;
path->max_cwnd = max_cwnd; path->max_cwnd = max_cwnd;
path->min_cwnd = max_dgram_sz << 1; path->min_cwnd = max_dgram_sz << 1;