neqo
neqo copied to clipboard
Meta: Implement all qlog probes
Once basic qlog support lands in Neqo (#526), we still need to add probes for all the things qlog can log. These should be relatively straightforward, and can likely be done as a group effort.
Up to date list of qlog events
for qlog crate version 0.13.0 / draft versions 09 (quic, h3)
Connectivity events
- [ ] server_listening
- [x] connection_started
- [ ] connection_closed
- [ ] connection_id_updated
- [ ] spin_bit_updated
- [x] connection_state_updated
- [ ] path_assigned (not implemented in qlog crate)
- [ ] mtu_updated
Transport events
- [x] version_information
- [ ] alpn_information
- [x] parameters_set
- [ ] parameters_restored
- [x] packet_sent
- [x] packet_received
- [x] packet_dropped
- [ ] packet_buffered
- [ ] packets_acked
- [ ] udp_datagrams_sent
- [ ] udp_datagrams_received
- [ ] udp_datagram_dropped
- [ ] stream_state_updated
- [ ] frames_processed
- [ ] stream_data_moved
- [ ] datagram_data_moved
- [ ] migration_state_updated
Security Events
- [ ] key_updated
- [ ] key_discarded
Recovery events
- [ ] recovery_parameters_set
- [x] recovery_metrics_updated
- [ ] congestion_state_updated
- [ ] loss_timer_updated
- [x] packet_lost
- [ ] marked_for_retransmit
- [ ] ecn_state_updated
HTTP3 events
- [ ] parameters_set
- [ ] parameters_restored
- [ ] stream_type_set
- [ ] priority_updated (not implemented in qlog crate)
- [ ] frame_created
- [ ] frame_parsed
- [ ] datagram_created (not implemented in qlog crate)
- [ ] datagram_parsed (not implemented in qlog crate)
- [ ] push_resolved
QPACK
those have been removed from the rfc but are still implemented in the qlog crate
- [ ] qpack_dynamic_table_updated
- [ ] qpack_headers_decoded
- [ ] qpack_headers_encoded
- [x] qpack_instruction_received (partial)
- [ ] qpack_instruction_sent
- [ ] qpack_state_updated
- [ ] qpack_stream_state_updated
Changelog
- [2025-01-16 @mansf-osk ] updated qlog event list
Nice to have but implementing all of this is not critical.
Hello, I'm new to QUIC. May I contribute to some of these tasks while trying to catch up?
@yuyawk, I would suggest that you pick something that you think might be useful and try to build it. Maybe I can suggest that you open an issue to track it. Just reference this issue in the text so that we can track it. If you are having trouble, use that issue to ask any questions you might have.