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
F86063308: D43213.diff
Fri, Jun 14, 8:47 PM
Unknown Object (File)
Wed, May 22, 3:11 AM
Unknown Object (File)
Sun, May 19, 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
Unknown Object (File)
May 4 2024, 1:17 PM
Unknown Object (File)
Apr 25 2024, 1:32 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...