HomeFreeBSD

tcp: With the right options in the kernel cc_cubic stays in slowstart always.

Description

tcp: With the right options in the kernel cc_cubic stays in slowstart always.

So this is a subtle bug I have found in cubic. If you compile a number of options into the kernel (accounting and tracking) then
all of the kernel code "knows" the proper offset of t_rttupdatecnt however cubic does not see the options (and htcp too) and thus
will look for the count in the wrong place seeing 0. Which then means it never builds an MIN RTT which then means it
always hangs in slowstart.

The solution is to put all options that effect tcpcb size into the opt_global.h so that the kernel
has a consistent view of the tcpcb size.

Reviewed by: tuexen, rscheff
Sponsored by: Netflix Inc
Differential Revision:https://reviews.freebsd.org/D40761

Details

Provenance
rrsAuthored on Jun 28 2023, 3:18 PM
Reviewer
tuexen
Differential Revision
D40761: tcp: With the right options in the kernel cc_cubic stays in slowstart always.
Parents
rG0cd2d88d8d0f: carp: use nd6log() macro to log debug messages
Branches
Unknown
Tags
Unknown