Subject: [quicwg/base-drafts] Move ECN section (#1896)

From: Martin Thomson <[email-masked]>
Date: Sun, 21 Oct 2018 20:53:40 -0700

This moves the section under packetization and reliability.
I've also added subsections, splitting out the feedback system (which is
simple) with the verification stuff (which is less so).
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/1896

-- Commit Summary --

  * Move ECN section

-- File Changes --

    M draft-ietf-quic-transport.md (168)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/1896.patch
https://github.com/quicwg/base-drafts/pull/1896.diff

-- 
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/pull/1896

---

From: ianswett <[email-masked]>
Date: Mon, 22 Oct 2018 08:57:33 -0700

ianswett approved this pull request.

-- 
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/pull/1896#pullrequestreview-166984208

---

From: janaiyengar <[email-masked]>
Date: Tue, 23 Oct 2018 00:33:03 +0000 (UTC)

janaiyengar commented on this pull request.

Thanks for doing this. A few minor comments.

> +Each endpoint independently verifies and enables use of ECN by setting the IP
+header ECN codepoint to ECN Capable Transport (ECT) for the path from it to the
+other peer. Even if ECN is not used on the path to the peer, the endpoint MUST
+provide feedback about ECN markings received (if accessible).
+
+To verify both that a path supports ECN and the peer can provide ECN feedback,
+an endpoint MUST set the ECT(0) codepoint in the IP header of all outgoing
+packets {{!RFC8311}}.
+
+If an ECT codepoint set in the IP header is not corrupted by a network device,
+then a received packet contains either the codepoint sent by the peer or the
+Congestion Experienced (CE) codepoint set by a network device that is
+experiencing congestion.
+
+If a packet sent with an ECT codepoint is newly acknowledged by the peer in an
+ACK frame, the endpoint stops setting ECT codepoints in subsequent packets, with

```suggestion
ACK frame without ECN feedback, the endpoint stops setting ECT codepoints in
subsequent packets, with the expectation that either the network or the peer no
longer supports ECN.
```

> +header ECN codepoint to ECN Capable Transport (ECT) for the path from it to the
+other peer. Even if ECN is not used on the path to the peer, the endpoint MUST
+provide feedback about ECN markings received (if accessible).
+
+To verify both that a path supports ECN and the peer can provide ECN feedback,
+an endpoint MUST set the ECT(0) codepoint in the IP header of all outgoing
+packets {{!RFC8311}}.
+
+If an ECT codepoint set in the IP header is not corrupted by a network device,
+then a received packet contains either the codepoint sent by the peer or the
+Congestion Experienced (CE) codepoint set by a network device that is
+experiencing congestion.
+
+If a packet sent with an ECT codepoint is newly acknowledged by the peer in an
+ACK frame, the endpoint stops setting ECT codepoints in subsequent packets, with
+the expectation that either the network or the peer no longer supports ECN.

```suggestion
```

> +and includes these counters in subsequent (see {{processing-and-ack}}) ACK
+frames (see {{frame-ack}}).
+
+A packet detected by a receiver as a duplicate does not affect the receiver's
+local ECN codepoint counts; see ({{security-ecn}}) for relevant security
+concerns.
+
+If an endpoint receives a packet without an ECT or CE codepoint, it responds per
+{{processing-and-ack}} with an ACK frame.  If an endpoint does not have access
+to received ECN codepoints, it acknowledges received packets per
+{{processing-and-ack}} with an ACK frame.
+
+
+### ECN Verification
+
+Each endpoint independently verifies and enables use of ECN by setting the IP

I think we should say something about when this verification can be done. It can be done any time during the connection, but it might make the most sense to do it along with the handshake. We may want to add some retransmission suggestions: if a handshake packet is detected as lost then send the retransmission without ECT bits. (Feel free to add a TODO here if you don't want to address this in this PR.)

I'm also wondering if we should add a fwd reference in the handshake section to here, with something like "An endpoint MAY combine the cryptographic handshake with ECN verification, as described in {{}}".

-- 
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/pull/1896#pullrequestreview-167162445

---

From: Martin Thomson <[email-masked]>
Date: Tue, 23 Oct 2018 05:20:38 +0000 (UTC)

@martinthomson pushed 1 commit.

b82cdab  ACK now includes ECN

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1896/files/b5975277ac77a8510eaf88e1186b9b740dfe85fe..b82cdab5d6429d8dca97a68336a10cc52e41dc4f

---

From: Martin Thomson <[email-masked]>
Date: Mon, 22 Oct 2018 22:20:48 -0700

7e548dd  Remove duplicated text.

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1896/files/b82cdab5d6429d8dca97a68336a10cc52e41dc4f..7e548dddd16698ae31ff1e620cc9b894e82843e1

---

From: Martin Thomson <[email-masked]>
Date: Mon, 22 Oct 2018 22:21:08 -0700

martinthomson commented on this pull request.

Happy to take other PRs as a follow-on.  Note that this is literally reordering text, so correcting any omission is strictly improvements on this.

-- 
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/pull/1896#discussion_r227227878

---

From: Martin Thomson <[email-masked]>
Date: Mon, 22 Oct 2018 22:22:24 -0700

Merged #1896 into master.

-- 
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/pull/1896#event-1919304851