Page MenuHomeFreeBSD

Fix bugs in DCTCP on TCP events
ClosedPublic

Authored by rscheff on Jun 7 2019, 12:49 PM.
Tags
None
Referenced Files
F103270381: D20550.id58358.diff
Fri, Nov 22, 9:26 PM
Unknown Object (File)
Tue, Nov 19, 2:13 PM
Unknown Object (File)
Tue, Nov 19, 12:50 PM
Unknown Object (File)
Tue, Nov 19, 10:41 AM
Unknown Object (File)
Sat, Nov 9, 6:03 AM
Unknown Object (File)
Thu, Nov 7, 10:52 PM
Unknown Object (File)
Sat, Nov 2, 3:06 AM
Unknown Object (File)
Sat, Nov 2, 3:06 AM
Subscribers

Details

Summary
DCTCP reactions to after_idle and post_recovery would disable
themselves after the first call.
Also, have consistent fall-through to NewReno for non-ECN
sessions.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Comment from Midori (original author of this code):

Thank you for your message and improving dctcp implementation. The description of two bugfix request makes sense. I have two comments. First, remove white space at line126 in the D20550 patch before submission. Second, you
should remove a change at line353 in the D20550 patch. If I understand correctly, it does not affect performance. Please point out if there is my misunderstanding.

sys/netinet/cc/cc_dctcp.c
127 ↗(On Diff #58358)

remove white space at line126 in the D20550 patch before submission

353 ↗(On Diff #58358)

MidorI: remove a change at line353 in the D20550 patch. If I understand correctly, it does not affect performance

R: If other parts of the code decided to send out an ACK right away (e.g. leaving zero-window episodes), we should not clear the ACKNOW flag here.

  • - missed rename of variable
sys/netinet/cc/cc_dctcp.c
127 ↗(On Diff #58358)

Leaving whitespace, as that separates different ack types.

using sacked data (CCV(ccv, sackhint.delivered_data) here depends on the RFC6675 chain of patched (D18892, D18985).

This revision is now accepted and ready to land.Jul 29 2019, 9:08 AM
sys/netinet/cc/cc_dctcp.c
293 ↗(On Diff #58729)

This should read

newreno_cc_algo.cong_signal(ccv, type);