The branch main has been updated by rscheff: URL: https://cgit.FreeBSD.org/src/commit/?id=038699a8f18a0a651ee06b85fa1dbbee1eab56f1
commit 038699a8f18a0a651ee06b85fa1dbbee1eab56f1 Author: Richard Scheffenegger <[email protected]> AuthorDate: 2024-02-24 16:07:25 +0000 Commit: Richard Scheffenegger <[email protected]> CommitDate: 2024-02-24 16:07:46 +0000 tcp: cubic - restart epoch after RTO This is a migitation to avoid sudden extreme jumps in cwnd, as t_epoch can be very out of date after an RTO. Per RFC9438, sec 4.8, t_epoch is to be reset whenever cwnd grows beyond ssthresh (CC phase transitions from slow start to congestion avoidance), to be fixed with the upcoming cc_cubic changes. MFC after: 3 days Reviewed By: cc, #transport Sponsored by: NetApp, Inc Differential Revision: https://reviews.freebsd.org/D44023 --- sys/netinet/cc/cc_cubic.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/netinet/cc/cc_cubic.c b/sys/netinet/cc/cc_cubic.c index a9c7592b80ca..b4050326ae31 100644 --- a/sys/netinet/cc/cc_cubic.c +++ b/sys/netinet/cc/cc_cubic.c @@ -270,6 +270,7 @@ cubic_ack_received(struct cc_var *ccv, ccsignal_t type) cubic_data->flags &= ~(CUBICFLAG_RTO_EVENT | CUBICFLAG_IN_SLOWSTART); cubic_data->W_max = CCV(ccv, snd_cwnd); + cubic_data->t_epoch = ticks; cubic_data->K = 0; } else if (cubic_data->flags & (CUBICFLAG_IN_SLOWSTART | CUBICFLAG_IN_APPLIMIT)) {
