Add unused QuicSession interfaces to initiating IETF connection migration: MigratePath(), ValidatePath(). These new interfaces are used by toy client in e2e tests.

Add QuicPathValidator into QuicConnection to do IETF path validation.

Behavior changes:
Cancel path validation if there is any during connection close;

Don't handle socket write error if sending PATH_CHALLENGE on the alternative socket or if the package sent to the alternative peer address exceeds path MTU;

Propagate PATH_RESPONSE to path validator to complete path validation.

Added and modified end-to-end tests to demonstrate connection migration with path validation works on client side.

Protected by quic_reloadable_flag_quic_pass_path_response_to_validator.

PiperOrigin-RevId: 343304329
Change-Id: I53dc52e82fbb9c69f5d2e90e5c90e1be45bb7bb6
14 files changed
tree: 34a92a48a2eb219ea2474a051db978f9c16d08ab
  1. CONTRIBUTING.md
  2. LICENSE
  3. README.md
  4. common/
  5. epoll_server/
  6. http2/
  7. quic/
  8. spdy/
README.md

QUICHE

QUICHE (QUIC, Http/2, Etc) is Google‘s implementation of QUIC and related protocols. It powers Chromium as well as Google’s QUIC servers and some other projects. QUICHE is only supported on little-endian platforms.

Code can be viewed in CodeSearch in Quiche and is imported into Chromium.