Make QuicConnection count bytes sent/received in probing packets on alternative paths.

Add an AlternativePathState object in QuicConnection which keeps track of the state of alternative path seen most recently. The states includes effective peer address which is unique to each path and the bytes sent/received to that address.

In order to increment bytes sent on the alternative path, pass the current packet's effective peer address around in packet creator and in quic connection to track the effective peer address which each packet is sent to.

Make connection to check if the received packet or the packet to send is on default path or not before increment existing counters: current_incoming_packet_received_bytes_counted_ and bytes_sent_before_address_validation_

Protected by quic_reloadable_flag_quic_count_bytes_on_alternative_path_seperately.

PiperOrigin-RevId: 349555303
Change-Id: I527938ba9201a3f15162b5f5c1bf4626aab79f9d
17 files changed
tree: 7d7409730a44650696afb8dcbb0d69c8be88ac3d
  1. common/
  2. epoll_server/
  3. http2/
  4. quic/
  5. spdy/
  6. CONTRIBUTING.md
  7. LICENSE
  8. README.md
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.