Subject: [quicwg/base-drafts] Pad when validating addresses (#4226)

From: Martin Thomson <[email-masked]>
Date: Thu, 15 Oct 2020 17:02:10 -0700

This isn&#39;t obvious, but if you are validating an address, you are also
validating the path to that address.  If you don&#39;t pad these packets,
then you don&#39;t know that the path supports a reasonable PMTU.

Require padding of datagrams that carry packets that carry
PATH_CHALLENGE.  This neatly solves the problem.

Closes #4216.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Pad when validating addresses

-- File Changes --

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

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/4226.patch
https://github.com/quicwg/base-drafts/pull/4226.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/4226

---

From: Martin Thomson <[email-masked]>
Date: Thu, 15 Oct 2020 17:24:22 -0700

@martinthomson pushed 1 commit.

d21c32b5c77bf303553a0c2aa6c55ae56b8bb6d0  A big caveat

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

---

From: Jana Iyengar <[email-masked]>
Date: Thu, 15 Oct 2020 17:31:51 -0700

@janaiyengar commented on this pull request.

> @@ -2205,6 +2205,11 @@ connection.
 The endpoint MUST use unpredictable data in every PATH_CHALLENGE frame so that
 it can associate the peer's response with the corresponding PATH_CHALLENGE.
 
+An endpoint MUST expand the payload of datagrams that contain a PATH_CHALLENGE
+frame to at least the smallest allowed maximum packet size of 1200 bytes.

```suggestion
frame to at least the smallest allowed maximum datagram size of 1200 bytes.
```

> @@ -2205,6 +2205,11 @@ connection.
 The endpoint MUST use unpredictable data in every PATH_CHALLENGE frame so that
 it can associate the peer's response with the corresponding PATH_CHALLENGE.
 
+An endpoint MUST expand the payload of datagrams that contain a PATH_CHALLENGE

```suggestion
An endpoint MUST expand datagrams that contain a PATH_CHALLENGE
```

> +Sending UDP datagrams of this size ensures that the network path supports a
+Path Maximum Transmission Unit (PMTU); see {{datagram-size}}.

```suggestion
Sending UDP datagrams of this size ensures that the network path from the
endpoint to the peer can be used for QUIC; see {{datagram-size}}.
```

> +: Probing with datagrams of 1200 bytes does not guarantee that the return path
+  also supports the same MTU. Migration to a path that can only carry a 1200
+  byte UDP payload in one direction will result in the peer being unable to
+  validate the path.

```suggestion
: Probing with datagrams of 1200 bytes does not guarantee that the return path
  also supports the same datagram size. Migration to a path that can carry a
  1200-byte UDP payload in only one direction will result in the peer being unable to
  validate the return path back to the endpoint.
```

-- 
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/4226#pullrequestreview-509903346

---

From: Martin Thomson <[email-masked]>
Date: Thu, 15 Oct 2020 23:54:11 -0700

2686b0aeb0cf854f7f3664c0cf5940bc5e5a47b2  Datagrams, not packets

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/4226/files/d21c32b5c77bf303553a0c2aa6c55ae56b8bb6d0..2686b0aeb0cf854f7f3664c0cf5940bc5e5a47b2

---

From: Martin Thomson <[email-masked]>
Date: Thu, 15 Oct 2020 23:57:01 -0700

b9bfce85e043a3ca7de712433415acb8eaf71d9f  Revert automated formatting of tables, wrap

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/4226/files/2686b0aeb0cf854f7f3664c0cf5940bc5e5a47b2..b9bfce85e043a3ca7de712433415acb8eaf71d9f

---

From: Martin Thomson <[email-masked]>
Date: Thu, 15 Oct 2020 23:57:11 -0700

@martinthomson commented on this pull request.

> @@ -368,7 +368,7 @@ The two least significant bits from a stream ID therefore identify a stream as
 one of four types, as summarized in {{stream-id-types}}.
 
 | Bits | Stream Type                      |
-|:-----|:---------------------------------|
+| :--- | :------------------------------- |

WTF vscode.

-- 
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/4226#pullrequestreview-510197469

---

From: ianswett <[email-masked]>
Date: Fri, 16 Oct 2020 16:46:08 -0700

@ianswett approved this pull request.

I'm not sure this completely solves the issue, but it looks sensible.

> @@ -2205,6 +2205,18 @@ connection.

nit: I don't think this is true for a previously validated path being re-validated.

-- 
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/4226#pullrequestreview-509935759

---

From: Martin Thomson <[email-masked]>
Date: Sun, 18 Oct 2020 16:35:43 -0700

Yeah, that's true, but is it really necessary to add that detail?

-- 
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/4226#discussion_r507255159

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 20 Oct 2020 13:13:40 -0700

Merged #4226 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/4226#event-3900599071