Description
Describe the feature you'd like supported
Currently we expose a number of (timing) statistics on a stream that is really useful for a sender side, but it doesn't help much for the receiver side:
typedef struct QUIC_STREAM_STATISTICS {
uint64_t ConnBlockedBySchedulingUs;
uint64_t ConnBlockedByPacingUs;
uint64_t ConnBlockedByAmplificationProtUs;
uint64_t ConnBlockedByCongestionControlUs;
uint64_t ConnBlockedByFlowControlUs;
uint64_t StreamBlockedByIdFlowControlUs;
uint64_t StreamBlockedByFlowControlUs;
uint64_t StreamBlockedByAppUs;
} QUIC_STREAM_STATISTICS;
It would be great if we could standardize a solution where the peer could give us its timing values too. This would allow a single side (i.e. the server) to get better understanding of where time is getting spent.
Proposed solution
- Define a new QUIC extension to send peer timing statistics on shutdown of the send path of each stream by writing an IETF draft for it.
- Implement the draft in MsQuic.
- Expose a new API for the app to query the peer stream statistics.
Additional context
No response
Metadata
Metadata
Assignees
Type
Projects
Status
Planned