Draft: draft-ietf-quic-multipath

Commentary: From PR from 
 Let 's do another editorial pass and evtl . some re - org first and then address this issue . I think we all already agreed that we only need one of the two . So we only need to decide with name we keep . 
 I prefer to use the name " Path ID " , as it is more intuitive in the context of multipath . 
 The conflict was solved . LGTM.Sounds good .
Path Identifier (Path ID): An identifier that is used to identify
a path in a QUIC connection at an endpoint.  Path Identifier is
used in multipath control frames (etc.  PATH_ABANDON frame) to
identify a path.  The Path ID is defined as the sequence number of
the destination Connection ID used for sending packets on that
particular path.
Packet Number Space Identifier (PNS ID): An identifier that is
used to distinguish packet number spaces for different paths.  It
is used in 1-RTT packets and ACK_MP frames.  Each node maintains a
list of "Received Packets" for each of the CID that it provided to
the peer, which is used for acknowledging packets received with
that CID.
The difference between Path Identifier and Packet Number Space
Identifier, is that the Path Identifier is used in multipath control
frames to identify a path, and the Packet Number Space Identifier is
used in 1-RTT packets and ACK_MP frames to distinguish packet number
spaces for different paths.  Both identifiers have the same value,
which is the sequence number of the connection ID, when a new path is
established.
The initial path that is used during the handshake (and multipath
negotiation) has the path ID 0 and therefore all 0-RTT packets are
also tracked and processed with the path ID 0.  For 1-RTT packets,
the path ID is the sequence number of the Destination Connection ID
present in the packet header, as defined in Section 5.1.1 of QUIC-
TRANSPORT.
Path Identifier (Path ID): An identifier that is used to identify
a path in a QUIC connection at an endpoint.  Path Identifier is
used in multipath control frames (e.g., PATH_ABANDON frame) to
identify a path.  The initial path that is used during the
handshake (and multipath negotiation) has the path ID 0 and
therefore all 0-RTT packets are also tracked and processed with
the path ID 0.  For 1-RTT packets, the path ID is the sequence
number of the Destination Connection ID present in the packet
header, as defined in Section 5.1.1 of QUIC-TRANSPORT that is used
for sending packets on that particular path.
If multiple packet number spaces are used over the connection, hosts
MUST also track the following information.
Path Packet Number Space: The endpoint maintains a separate packet
number for sending and receiving packets over this path.  Packet
number considerations described in QUIC-TRANSPORT apply within the
given path.
Path ID: The endpoint maintains a separate packet number space for
sending and receiving packets over this path which is identified
by the path ID.  Packet number considerations as described in
Section 12.3 of QUIC-TRANSPORT apply within the given path.
The ACK_MP frame, as specified in ack-mp-frame, is used to
acknowledge 1-RTT packets.  Compared to the QUIC version 1 ACK frame,
the ACK_MP frames additionally contains a Packet Number Space
Identifier (PN Space ID).  The PN Space ID used to distinguish packet
number spaces for different paths and is simply derived from the
sequence number of Destination Connection ID.  Therefore, the packet
number space for 1-RTT packets can be identified based on the
Destination Connection ID in each packet.
The ACK_MP frame, as specified in ack-mp-frame, is used to
acknowledge 1-RTT packets.  Compared to the QUIC version 1 ACK frame,
the ACK_MP frame additionally contains a Path ID.  The Path ID is
used to distinguish packet number spaces for different paths and is
simply derived from the sequence number of Destination Connection ID.
Therefore, the Path ID for 1-RTT packets can be identified based on
the Destination Connection ID in each packet.
Section 5.3 of QUIC-TLS specifies AEAD usage, and in particular the
use of a nonce, N, formed by combining the packet protection IV with
the packet number.  If multiple packet number spaces are used, the
packet number alone would not guarantee the uniqueness of the nonce.
Section 5.3 of QUIC-TLS specifies AEAD usage, and in particular the
use of a nonce, N, formed by combining the packet protection IV with
the packet number.  When multiple packet number spaces are used, the
packet number alone would not guarantee the uniqueness of the nonce.
PATH_ABANDON frames MAY be sent on any path, not only the path
identified by the Packet Number Space Identifier.
PATH_ABANDON frames MAY be sent on any path, not only the path
identified by the Path Identifier.
The ACK_MP frame (types TBD-00 and TBD-01; experiments use
0xbaba00..0xbaba01) is an extension of the ACK frame defined by QUIC-
TRANSPORT.  It is used to acknowledge packets that were sent on
different paths when using multiple packet number spaces.  If the
frame type is TBD-01, ACK_MP frames also contain the sum of QUIC
packets with associated ECN marks received on the connection up to
this point.
The identifier of the path packet number space of the 1-RTT
packets which are acknowledged by the ACK_MP frame.
If an endpoint receives an ACK_MP frame with a packet number space ID
which was never issued by endpoints (i.e., with a sequence number
larger than the largest one advertised), it MUST treat this as a
connection error of type MP_PROTOCOL_VIOLATION and close the
connection.  If an endpoint receives an ACK_MP frame with a packet
number space ID which is no more active (e.g., retired by a
RETIRE_CONNECTION_ID frame or belonging to closed paths), it MUST
ignore the ACK_MP frame without causing a connection error.
The ACK_MP frame (types TBD-00 and TBD-01; experiments use
0xbaba00..0xbaba01) is an extension of the ACK frame defined by QUIC-
TRANSPORT.  It is used to acknowledge packets that were sent on
different paths using multiple packet number spaces.  If the frame
type is TBD-01, ACK_MP frames also contain the sum of QUIC packets
with associated ECN marks received on the connection up to this
point.
The identifier of the path to identify the packet number space of
the 1-RTT packets which are acknowledged by the ACK_MP frame.
If an endpoint receives an ACK_MP frame with a Path ID which was
never issued by endpoints (i.e., with a sequence number larger than
the largest one advertised), it MUST treat this as a connection error
of type MP_PROTOCOL_VIOLATION and close the connection.  If an
endpoint receives an ACK_MP frame with a Path ID which is no more
active (e.g., retired by a RETIRE_CONNECTION_ID frame or belonging to
closed paths), it MUST ignore the ACK_MP frame without causing a
connection error.