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)
Fri, Nov 8, 10:05 PM
Unknown Object (File)
Fri, Oct 18, 9:13 AM
Unknown Object (File)
Sep 29 2024, 6:10 PM
Unknown Object (File)
Sep 26 2024, 11:26 PM
Unknown Object (File)
Sep 23 2024, 11:37 PM
Unknown Object (File)
Sep 20 2024, 9:55 PM
Unknown Object (File)
Sep 17 2024, 9:26 PM
Unknown Object (File)
Sep 16 2024, 3:05 PM

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

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 31129
Build 28812: arc lint + arc unit

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
67

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

476

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