target = "https://www.rfc-editor.org/rfc/rfc9000#section-9.6.3" # 9.6.3. Interaction of Client Migration and Preferred Address # # A client might need to perform a connection migration before it has # migrated to the server's preferred address. In this case, the client # SHOULD perform path validation to both the original and preferred # server address from the client's new address concurrently. # # If path validation of the server's preferred address succeeds, the # client MUST abandon validation of the original address and migrate to # using the server's preferred address. If path validation of the # server's preferred address fails but validation of the server's # original address succeeds, the client MAY migrate to its new address # and continue sending to the server's original address. # # If packets received at the server's preferred address have a # different source address than observed from the client during the # handshake, the server MUST protect against potential attacks as # described in Sections 9.3.1 and 9.3.2. In addition to intentional # simultaneous migration, this might also occur because the client's # access network used a different NAT binding for the server's # preferred address. # # Servers SHOULD initiate path validation to the client's new address # upon receiving a probe packet from a different address; see # Section 8. # # A client that migrates to a new address SHOULD use a preferred # address from the same address family for the server. # # The connection ID provided in the preferred_address transport # parameter is not specific to the addresses that are provided. This # connection ID is provided to ensure that the client has a connection # ID available for migration, but the client MAY use this connection ID # on any path. [[spec]] level = "SHOULD" quote = ''' In this case, the client SHOULD perform path validation to both the original and preferred server address from the client's new address concurrently. ''' [[spec]] level = "MUST" quote = ''' If path validation of the server's preferred address succeeds, the client MUST abandon validation of the original address and migrate to using the server's preferred address. ''' [[spec]] level = "MAY" quote = ''' If path validation of the server's preferred address fails but validation of the server's original address succeeds, the client MAY migrate to its new address and continue sending to the server's original address. ''' [[spec]] level = "MUST" quote = ''' If packets received at the server's preferred address have a different source address than observed from the client during the handshake, the server MUST protect against potential attacks as described in Sections 9.3.1 and 9.3.2. ''' [[spec]] level = "SHOULD" quote = ''' Servers SHOULD initiate path validation to the client's new address upon receiving a probe packet from a different address; see Section 8. ''' [[spec]] level = "SHOULD" quote = ''' A client that migrates to a new address SHOULD use a preferred address from the same address family for the server. ''' [[spec]] level = "MAY" quote = ''' This connection ID is provided to ensure that the client has a connection ID available for migration, but the client MAY use this connection ID on any path. '''