quiclog / qvis

QUIC and HTTP/3 visualization tools
https://qvis.edm.uhasselt.be
MIT License
174 stars 25 forks source link

Deal with packet_type and packet_number always being under header #30

Open rmarx opened 3 years ago

rmarx commented 3 years ago

Previously, events packet_dropped and packet_lost and packet_buffered had separate packet_number and packet_type fields. For draft02, these have been replaced to always using a header:PacketHeader field, so we need to update tools that look for those fields (mainly congestion graph).

Related to #8 and https://github.com/quiclog/internet-drafts/issues/40

kixelated commented 3 years ago

Hey Robin, thank you so much for making this fantastic tool.

I recently implemented qlog in my closed-source QUIC library. The logs load but none of the tabs work due to these fields getting renamed.

I'm gotten it working using a quick hack to rename these fields if found. Is that the approach that you'd like to take? If so I can clean up the code and submit a PR.

Also, would an example NDJSON draft-2 trace help? I could contribute that as well.

rmarx commented 3 years ago

Hello Luke,

Thanks for the kind words and great to hear you're integrating qlog (does this mean Twitch is also using qlog btw? That would be awesome!)

The problem here is that I want to keep full backwards compatibility with qlog draft-01, since most people will keep using that for some time. As such, I need to transform -01 into -02 at load time, see the QlogLoader classes.

This is not overly difficult, but has a few edge cases to take into account, which is why I haven't done it yet. I am busy now preparing my doctoral thesis defense on December 15th, but plan to fix draft-02 support in qvis near the end of next week, so I'd prefer you wait for that if possible.

With regards to an NDJSON example, that -would- certainly be very interesting. Could you open a PR on https://github.com/quiclog/internet-drafts adding that to an "examples/draft-02" directory maybe? It would be good if the filename could describe the high-level contents (and maybe the protocols it uses, not sure if you're doing both QUIC and H3 atm). Also would be great if it properly set the "title" and "description" fields with some details for newer users.

Finally: I see you've also opened an issue on the I-D repository as well, which is great! I'd be very interested to hear about your experiences implementing qlog from the documents as a bit of an "outsider", to see if we can further improve the process. Feel free to open additional issues here or in the I-D repo.

Thanks again!