Thank you for writing this detailed I-D, it is a while since I have reviewed this draft. I read it on my journey towards Bangkok and the current I-D appears to me to be very developed and clear, but  I do have a few comments and just a few concerns about things that I think might be underspecified, see below.


Section 1

Editorial:
/also the port numbers/
… and other selectors such as the DSCP.

Section 1.1
Each bullet deserves  a fullstop - please add some stops.

Section 1.2
Path identifier  and “Path ID” are both used after the definition of Path ID.Could we move to use only Path ID?

Section 2
The section uses the words the “current version”  …  . What is the intention when published?

Section 3.
OLD:
  However, establishment of additional paths from any local
   address to other peer addresses (e.g carried by peer’s
   preferred_address) is valid immediately.
- This reads odd, could we write something like:
  However, establishment of additional paths from any local
   address to other peer addresses (e.g carried by a peer’s
   preferred_address) is immediately valid .

OLD:
 After receiving packets from the client on a new path, if the server
   decides to use the new path, the server MUST validate the peer's
   address before sending any data packets as described in (Section 8.2
   of [QUIC-TRANSPORT]), unless it has previously validated the 4-tuple
   used for that path.
- I found this confusing, is this better?
:
   After receiving packets from the client on a new path, a server
   can decides to use the new path. The server MUST validate the peer's
   address before sending any data packets as described in (Section 8.2
   of [QUIC-TRANSPORT]), unless it has previously validated the 4-tuple
  that is  used for that path.

OLD:
Similarly after a successful handshake,
   endpoints SHOULD also use the PATH_NEW_CONNECTION_ID frame to provide
   new connection IDs for Path ID 0 and, respectively, the
   PATH_RETIRE_CONNECTION_ID frame to retire connection IDs for Path ID
   0.
- what happens if this SHOULD is not obeyed?

OLD:
In such a case, the receiver reacts as
   specified in Section 9.3 of [QUIC-TRANSPORT] by initiating path
   validation but MUST use a new connection ID for the same Path ID.
- What does a receiver do if this MUST is not obeyed?

OLD:
To avoid issues when clients make the "wrong"
   choice, a server should issue a token that is capable of validating
   any of the previously validated addresses.  Further guidance on token
   usage can be found in Section 8.1.3 of [QUIC-TRANSPORT].
- Why is this optional if it could break things: Is this a place where the Spec could say “SHOULD”?

Concern:
 OLD:
If an endpoint starts using a path that was marked as "standby" by
   its peer because it has detected issues on the paths marked as
   "available", it is RECOMMENDED to update its own path state signaling
   such that the peer avoids using the broken path.
- why do you choose recommended rather than SHOULD, these seems like a protocol definition.

OLD:
An endpoint that
   detects a path breakage can also explicitly close the path by sending
   a PATH_ABANDON frame (see Section 3.3) in order to
- “can also” is this really MAY?

Section 3.3
- can we be more explicit about what the receiver does (discard, process, etc) if the peer does receive packets after a path close.

Concern:
OLD:
   PATH_ABANDON frames can be sent on any path, not only the path that
   is intended to be closed.  It is RECOMMENDED to send the PATH_ABANDON
   frames on another path, especially if connectivity on the to-be-
   abandoned path is expected to be broken.

- I thought and think I am unsure about what is intended. How does this relate to an active and inactive paths? I do wonder if some sort of guidance on how to do this is needed?

OLD:
   Over a given path, both endpoints use connection IDs associated to a
   given Path ID.  To initiate a path, each endpoint needs to advertise
   at least one connection ID for a given Path ID to its peer.
   Endpoints SHOULD NOT introduce discontinuity in the issuing of Path
   IDs through their connection ID advertisements as path initiation
   requires available connection IDs for the same Path ID on both sides.
- I think I understand, but I would like text to be sure.
- I can see about conservative of IDs, but is there more than simply not wasting the space?  - I’m trying to understand what breaks if the SHOULD NOT is not obeyed.

Section 5
- I liked the examples. I think these examples are informative, if they are cam we  say so at the start of section 5, so there is no chance of a double definition from this section. - Would it make sense to provide the examples after all the definitions? It certainly would have made reading easier  for me.

Section 6
- I liked the implementation considerations a lot. I think (?) this is informative, can we  say so at the start of section 6?

Section 6.2
NiT: /also send/also sends/

Section 6.3
NiT: /This lower/This is lower/

Concern:
OLD:
   It might be prudent
   for nodes to remember the path over which the PATH_ACK that produced
   the minimum RTT was received, and to restart the minimum RTT
   computation if that path is abandoned.
- I am glad this is noted.
- Some might say that was an oversight in QUIC, that the minRTT is not current for a path, i.e. if the path properties change with time, the minRTT is never increased- however, my comment  here is that the QUIC sender could actually just reset the minRTT periodically or better still reset this based on a minimum filter for several periods of time. My point is at least some QUIC implementations do not preserve the minRTT for the whole connection.

Concern:

OLD:

 To avoid this pitfall, endpoints could adopt a
   simple coordination rule, such as only letting the client initiate
   closure of duplicate paths, or perhaps relying on the application
   protocol to decide which paths should be closed.
-

At the end of section 6 I see teh above worrying text. Why does the protocol not provide a recommendation in RFC2119 language that would avoid at least part of the misery from uncoordinated abandons? - I don’t see why this is only written as advice, rather than specified by the WG.

Section 7.4:

OLD:

   Note that the NEW_CONNECTION_ID frame can only be used to issue or
   retire connection IDs for the initial path with Path ID 0.

What is the required protocol action if the NEW CONNECTION ID frame is received with path ID 0?

Best wishes,
Gorry

Reply via email to