Closed MikeBishop closed 1 month ago
Actually, per @mirjak's comment in #324, I might have misunderstood how MAX_PATHS is interpreted. In that case, I strongly support sending the maximum Path ID which a peer is willing to receive, lest we have another Rapid Reset design on our hands.
The design is clearly "maximum path ID", even if the name "MAX_PATHS" brings some confusion. We debated for some time, and we decided to keep the MAX_PATHS terminology, and treat it pretty much like MAX_STREAMS. Just like RFC9000 says "Only streams with a stream ID less than (max_streams 4 + first_stream_id_of_type) can be opened", we have "Only connection ID with a path ID less than max_paths can be sent in MP_NEW_CONNECTION_ID frames". Or, if we go for the even/odd split, "Only connection ID with a path ID less than (max_paths 2 + first_path_id_of_type) can be sent in MP_NEW_CONNECTION_ID frames".
A difference with streams is that both endpoints need to send connection ID for every path_id, so for each endpoint "max_paths" is "the max_paths value advertised by the peer".
@huitema actually initial_max_path is defined as a maximum count and MAX_PATH is defined inconsistently. We really need to fix that but let's discuss that in issue #324
As this sentence was removed for now, I'm closing the issue.
The draft currently says:
Retiring a path does not immediately allow the endpoint to open a new one or guarantee that the peer will issue a new path ID for its use. I would either remove the client instructions or address it alongside #342 with a suggestion to send whatever signal is defined there.