Page MenuHomeFreeBSD

DCTCP: update alpha only once after loss recovery.
ClosedPublic

Authored by rscheff on May 12 2020, 6:43 AM.

Details

Summary

During code inspection and testing of DCTCP in mixed
loss and ECN marking scenarios, it was found that the alpha
value of DCTCP is updated twice during windows expiriencing loss.

While RFC8257 is silent on the interaction between loss
recovery and updates of alpha, updating it one additional time
with an effective ECN marking rate of 0 reduces the effect of
ECN marks due to the lower alpha value. This in turn may result
in an overall higher loss rate than necessary.

Reported-by: Cheng Cui

Test Plan

A packetdrill script with the expected evolution
of cwnd is provided.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

Attached the packetdrill script to validate the evolution of cwnd under loss and ecn for dctcp.

Looks good. Thanks for picking this up.

This revision is now accepted and ready to land.May 12 2020, 6:49 PM
This revision was automatically updated to reflect the committed changes.