Page MenuHomeFreeBSD

tcp: retry CWR transmission if TSO doesn't support ECN
Needs ReviewPublic

Authored by rscheff on Dec 27 2023, 2:21 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Jun 18, 12:49 PM
Unknown Object (File)
Mon, Jun 17, 2:23 PM
Unknown Object (File)
Fri, Jun 14, 8:47 PM
Unknown Object (File)
May 22 2024, 3:11 AM
Unknown Object (File)
May 19 2024, 5:55 AM
Unknown Object (File)
May 9 2024, 10:50 PM
Unknown Object (File)
May 9 2024, 2:25 PM
Unknown Object (File)
May 9 2024, 2:21 PM
Subscribers

Details

Reviewers
np
gallatin
tuexen
rrs
glebius
Group Reviewers
transport
Summary

If the virtio network driver is not told by the host
that proper ECN support is available with TSO, it returns
ENOTSUP. This is not dealt with other than an effective
packet discard - and subsequently, a CWR-flagged TSO
transmission attempt is made until RTO reduces the
congestion window to a single packet.

Split the CWR-flagged TSO transmission in this case,
and resend immediately with the first segment with CWR
as non-TSO.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 55136
Build 52025: arc lint + arc unit

Event Timeline

cc added inline comments.
sys/netinet/tcp_output.c
1704

Put this comment below and I think it looks good to me.

  • make ENOTSUP dedicated case
sys/netinet/tcp_output.c
1696

Don't you need this same change in rack?

sys/netinet/tcp_output.c
1696

I think we first should agree on how what drivers report in specific error cases... Then fix all stacks...