Subject: [quicwg/base-drafts] ECN Algorithm (#2755)

From: Martin Thomson <[email-masked]>
Date: Thu, 23 May 2019 09:59:52 +0000 (UTC)

ECN-capable is not a constant condition, but we don't have any algorithm that governs it.

I don't think that we can just say "mark until validation of ECN counts fails".  Maybe the following algorithm is OK:

When starting a new path:

0. set ECN state to "testing"
1. after N packets or M round trips, set ECN state to "unknown"
2. on every ACK, check ECN counts
3. if ECN validation fails set ECN state to "failed".
4. if ECN validation passes and ECN state is "uncertain", set it to "capable".
5. when sending packets, mark with ECT(0) if state is "testing" or "capable"

(I know that this is unchanged text, but I just realized that we could be clearer.)

Gorry pointed out that we can add an extra thing: if a path is marked as "failed", you MAY choose to occasionally switch back to "testing".

Mirja pointed out that we need to deal with bleaching more than we need to worry about black holes.  We should negotiate that.

_Originally posted by @martinthomson in https://github.com/quicwg/base-drafts/pull/2752/files_

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2755

---

From: Gorry Fairhurst <[email-masked]>
Date: Thu, 23 May 2019 05:51:13 -0700

I also would suggest one more intro sentence could please some to say "When a path supports ECN, this enables ECN marking and uses ECN for a new path" - to effectively say that the validation is about how to detect and react to problems with a path that is not ECN capable. 

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2755#issuecomment-495205020