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)
Thu, May 9, 10:50 PM
Unknown Object (File)
Thu, May 9, 2:25 PM
Unknown Object (File)
Thu, May 9, 2:21 PM
Unknown Object (File)
Sat, May 4, 1:17 PM
Unknown Object (File)
Thu, Apr 25, 1:32 AM
Unknown Object (File)
Fri, Apr 19, 6:28 AM
Unknown Object (File)
Feb 19 2024, 6:34 PM
Unknown Object (File)
Jan 14 2024, 6:40 AM
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 55219
Build 52108: arc lint + arc unit

Event Timeline

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

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

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

Don't you need this same change in rack?

sys/netinet/tcp_output.c
1694

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