Page MenuHomeFreeBSD

Transition DCTCP to use ECT1 marks for elegible segments
ClosedPublic

Authored by rscheff on May 17 2020, 12:46 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Apr 20, 5:38 PM
Unknown Object (File)
Mar 25 2024, 5:27 AM
Unknown Object (File)
Feb 25 2024, 9:16 PM
Unknown Object (File)
Dec 20 2023, 10:02 PM
Unknown Object (File)
Dec 20 2023, 5:30 AM
Unknown Object (File)
Dec 10 2023, 6:52 PM
Unknown Object (File)
Dec 4 2023, 1:10 AM
Unknown Object (File)
Dec 4 2023, 1:10 AM

Details

Summary

This adds the capability for a modular congestion control
to select which variant of ECN-capable-transport is wants to use
when sending out elegible segments. As an initial CC to utilize
this, DCTCP was selected.

In conjunction with a classifier in the switch, DCTCP traffic
can easily be placed into a Queue, where the switch performs
the more aggressive CE marking regime that is expected by DCTCP.

Test Plan

Verify that data packets sent when DCTCP congestion
control is active are sent using the IP ECT(1) marking instead
of the usual ECT(0) marking.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This change will not go in for the time being, pending a conclusion of the discussion around the ECT1 codepoint in IETF.

If you have clients that need to do this type of thing I would recommend they are running behind DSCP and they should use 2 DSCP's to seperate there DCTCP like traffic from there TCP/reno like traffic. Using ECT(1) as a traffic classifier in advance of IETF clear decision may land them in a very hard to resolve possition in the future.

share/man/man4/cc_dctcp.4
98

Changing the default marking to ect(1) may break someone using DCTCP today, and given that ECT(1) is in a heavily contested state withint the IETF/tsvwg I do not think it would be wise to make this or any other ECT(1) related changes. The status from the chairs of tsvwg said "move forward with L4S", it did not say that consenses had been reached on usage of ECT(1).

sys/netinet/cc/cc_dctcp.c
71

By setting this to 1 here doesnt this change the default to be ect(1) marking

489

Isnt "Send DCTCP segments with IP ECT(1) *instead of* ECT(0)" the correct statement here?

  • add new flag at the bottom and next bit
This revision is now accepted and ready to land.Nov 8 2022, 5:38 PM