msquic icon indicating copy to clipboard operation
msquic copied to clipboard

Support Client Migration (Client Side)

Open masa-koz opened this issue 1 year ago • 12 comments

Description

This PR adds the support of Client Migration (Client SIde). Fix #1946.

This pull request includes significant changes to the QUIC connection ID management and introduces a new feature for manual connection ID generation for testing purposes. The most important changes include the replacement of QUIC_CID_HASH_ENTRY with QUIC_CID_SLIST_ENTRY to register connection IDs into more than one bindings, the addition of new APIs to add/remove local address in client, and the introduction of a conditional compilation feature for manual connection ID generation.

Added QuicConnOpenNewPath and QuicConnOpenNewPaths are to manage opening new paths for a connection. These functions will be called when Destination Connection ID is available for sending PATH_CHALLENGE.

Testing

I've added two test.

  • Basic/WithProbePathArgs.ProbePath/*
  • Basic/WithMigrationArgs.Migration/*

Documentation

In this PR, the following two Connection level Parameters will be added.

  • QUIC_PARAM_CONN_ADD_LOCAL_ADDRESS
  • QUIC_PARAM_CONN_REMOVE_LOCAL_ADDRESS

masa-koz avatar Mar 29 '24 10:03 masa-koz

@microsoft-github-policy-service agree

masa-koz avatar Mar 29 '24 10:03 masa-koz

Codecov Report

Attention: Patch coverage is 76.29630% with 64 lines in your changes are missing coverage. Please review.

Project coverage is 84.20%. Comparing base (6ecf19b) to head (a339913). Report is 5 commits behind head on main.

Files Patch % Lines
src/core/connection.c 67.42% 57 Missing :warning:
src/core/binding.c 90.32% 3 Missing :warning:
src/core/lookup.c 94.28% 2 Missing :warning:
src/core/path.c 75.00% 2 Missing :warning:
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4218      +/-   ##
==========================================
- Coverage   85.33%   84.20%   -1.14%     
==========================================
  Files          56       56              
  Lines       15358    15538     +180     
==========================================
- Hits        13105    13083      -22     
- Misses       2253     2455     +202     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Mar 29 '24 13:03 codecov[bot]

@masa-koz Are you going to have time to add the requested extra tests? If not, do you mind if we add them later?

anrossi avatar Jun 18 '24 06:06 anrossi