feat(quic): wire experimental QUIC client ALPN accessor and live byte/packet stats#1164
Open
kcenon wants to merge 1 commit into
Open
feat(quic): wire experimental QUIC client ALPN accessor and live byte/packet stats#1164kcenon wants to merge 1 commit into
kcenon wants to merge 1 commit into
Conversation
…tats Wire the two experimental-client accessors that were returning placeholder values to the underlying quic_socket: - alpn_protocol() now returns the protocol negotiated during the handshake via the new quic_socket::negotiated_alpn() (delegating to quic_crypto:: get_alpn()), or nullopt when none was negotiated. - stats() now reports live bytes_sent/bytes_received/packets_sent/ packets_received from quic_socket, which counts datagrams on its send and receive paths. packets_lost, smoothed_rtt, min_rtt, and cwnd remain zero: those require the QUIC loss-detection / RTT-estimation / congestion-control stack, which is not integrated into the experimental client's socket. stats() is therefore kept experimental and the recovery-stack integration is tracked as a follow-up. Tests drive quic_socket directly: counters start at zero and advance after a connect() emits the Initial packet; ALPN starts empty. docs/PROTOCOL_SUPPORT.md flips the ALPN row to production and documents the partial stats wiring. Refs #1158
Contributor
Coverage Report
Coverage DetailsFull HTML report is available as a build artifact. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #1158 (partial)
Summary
Wires the two experimental-client accessors that returned placeholder values:
messaging_quic_client::alpn_protocol()returns the protocol negotiated during the handshake via the newquic_socket::negotiated_alpn()(delegates toquic_crypto::get_alpn()), orstd::nulloptwhen none negotiated.messaging_quic_client::stats()reports livebytes_sent/bytes_received/packets_sent/packets_receivedfromquic_socket, which now counts datagrams on its send (send_packet) and receive (do_receive) paths.Scope limitation (why this is "Refs" not "Closes")
packets_lost,smoothed_rtt,min_rtt, andcwndremain zero. The issue assumed the loss detector / RTT estimator / congestion controller were reachable, but there is noquic_connectionaggregator and those components are not integrated into the experimental client'squic_socket. Surfacing live values for them requires integrating the QUIC recovery stack — out of scope for this accessor-wiring issue.stats()is therefore keptexperimental; #1158 stays open for the recovery-stack follow-up.Test Plan
QuicSocketStatsAccessorsTest: counters start at zero andConnectIncrementsSentCountersconfirms they advance afterconnect()emits the Initial packet; ALPN starts empty.StatsBeforeConnect,AlpnProtocolBeforeConnectReturnsNone) still pass.ci-standalonebuild:network_experimental_quic_client_test22/22 pass.Notes
docs/PROTOCOL_SUPPORT.md: ALPN row →production; stats row documented as partially wired (experimental); QUIC follow-up bullet rescoped to recovery-stack integration.QuicSocketHermeticTransportTest(4) and 2QuicSocketHermeticTestcases fail locally (loopback datagram capture unsupported in this env) — verified identical on cleandevelop. Separately, amessaging_quic_clientconnect-then-stop path segfaults during shutdown (pre-existing lifecycle bug, not touched here); tests deliberately drivequic_socketdirectly to avoid it.