Page MenuHomeFreeBSD

tcp: Use local CC data only in correct context
ClosedPublic

Authored by rscheff on May 26 2021, 2:42 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 15 2024, 5:47 PM
Unknown Object (File)
Dec 23 2023, 12:17 PM
Unknown Object (File)
Dec 20 2023, 10:07 PM
Unknown Object (File)
Dec 12 2023, 1:14 PM
Unknown Object (File)
Dec 1 2023, 9:02 PM
Unknown Object (File)
Oct 14 2023, 12:58 PM
Unknown Object (File)
Sep 9 2023, 3:59 PM
Unknown Object (File)
Aug 31 2023, 5:34 PM
Subscribers

Details

Summary

Many TCP CC mechanisms rely on newreno as fallback, or
to handle common behavior. Originally, cc_newreno did
not have any cc-specific data, but that changed with
D11616.

Most other CC algos do use local data, and when calling
newreno_cong_signal from there, the latter misinterprets
the data as its own struct, leading to incorrect behavior.

Doing an additional check only in newreno for now, as
no other CC interdependencies seem to exist.

Test Plan

Using CC DCTCP on a session where ECN is not negotiated
would erroneously trigger session-specific beta values
on loss, leading to unexpected TCP behavior.

Reported by: chengc_netapp.com

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 39465
Build 36354: arc lint + arc unit

Event Timeline

Looks good to me. Thanks for picking this up! :)

This revision is now accepted and ready to land.May 26 2021, 2:58 PM