diff --git a/include/haproxy/quic_cc-t.h b/include/haproxy/quic_cc-t.h index e67817239..39699e450 100644 --- a/include/haproxy/quic_cc-t.h +++ b/include/haproxy/quic_cc-t.h @@ -96,8 +96,8 @@ struct quic_cc_path { /* Packet loss detection information. */ struct quic_loss loss; - /* MTU. */ - size_t mtu; + /* MTU. Must be constant for GSO support. */ + const size_t mtu; /* Congestion window. */ uint64_t cwnd; /* The current maximum congestion window value reached. */ diff --git a/include/haproxy/quic_cc.h b/include/haproxy/quic_cc.h index 721feca78..269a93101 100644 --- a/include/haproxy/quic_cc.h +++ b/include/haproxy/quic_cc.h @@ -84,7 +84,7 @@ 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; quic_loss_init(&path->loss); - 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->mcwnd = path->cwnd; path->max_cwnd = max_cwnd;