L4STeam / linux

Kernel tree containing patches for TCP Prague and the dualpi2 qdisc
Other
47 stars 16 forks source link

BBR still has implicit options where it can use ECT(0) #16

Closed koen0607 closed 1 year ago

koen0607 commented 1 year ago

Is it still needed to let BBR2 use ECT(0) in case of sysctl tcp_ecn=1/2 or can we line-up with TCP-Prague?

BBR2 relies on the internally hard-coded assumption that if a CC NEEDS_ECN and NEEDS_ACC_ECN, then it would WANT_ECT1. In fact only a scalable CCs "NEEDS"_ECT1, which in turn NEEDS_ACC_ECN and clearly NEEDS_ECN. Any other reasoning could even lead to having future non-scalable congestion controls that for some other reason NEEDS_ECN and NEEDS_ACC_ECN would also start using ECT1...

If the sender is not supporting ACC_ECN, BB2 (and even Prague) cannot use a classic CC (except maybe when Prague would be falling back to Reno if no ACC_ECN is supported).

minuscat commented 1 year ago

Currently Prague in some cases will have this issue. Specifically, in some case, Prague will NOT fallback successfully to Reno when the other side support non-ACCECN. And we are draft some changes to be agreed by L4Steam members to agree.

minuscat commented 1 year ago

This shall be fixed in pull request #20 , so close this issue