Date: Mon, 10 Jun 2019 22:21:09 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 238478] TCP Cubic code bug in cubic_ack_received Message-ID: <bug-238478-227@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D238478 Bug ID: 238478 Summary: TCP Cubic code bug in cubic_ack_received Product: Base System Version: CURRENT Hardware: Any OS: Any Status: New Severity: Affects Many People Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: Goel.vidhi07@gmail.com I am not sure if this is the right way to file a code audit issue. Recently= I was referring to TCP Cubic source code and found one problem in function=20 cubic_ack_received. 1. The first condition checks whether the computed cubic window is less than TCP friendly window and sets accordingly 2. Else, it checks whether the current cwnd is less than the computed cubic window. This is the concave region but the freebsd code considers this as concave or convex. This is incorrect as it would fail to set cwnd when (cwnd > w_cubic_next) According to the draft, cwnd should be set to (W_cubic_next - cwnd)/cwnd in both concave and convex region. So the code should look like this: if (w_cubic_next < w_tf) { set cwnd <- w_tf } else if (cwnd < w_cubic_next) { // This is concave region set cwnd <- (W_cubic_next - cwnd)/cwnd } else { // This is convex region set cwnd <- (W_cubic_next - cwnd)/cwnd } Or if (w_cubic_next < w_tf) { set cwnd <- w_tf } else { set cwnd <- (W_cubic_next - cwnd)/cwnd } --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-238478-227>