Closed larseggert closed 2 months ago
Thanks for reporting! I will investigate.
Nice catch ;-). Found the cause, server handles very first packet different from the rest and (only) there a possible coalesced packet is ignored.
Thanks a lot for reporting @larseggert, would probably never have noticed it myself.
This has been fixed now. There are two interop runs with the fix: https://interop.seemann.io/?run=2024-08-20T08:30 and https://interop.seemann.io/?run=2024-08-20T01:41. In both cases the zero-rtt test is red, however the pcaps show that there are 7 0-RTT packets (pn 0 to 6) and that all of them are acknowledged in the first 1-RTT packet the server sends.
I'm not sure why these test still fail. The output says: "Client sent too much data in 1-RTT packets". But based on what I see in the pcaps, I consider the test to be successful.
I can confirm that the fix is good, the log shows that neqo sees the ACK and doesn't RTX the 0-RTT stream data in 1-RTT anymore.
I think the test is still failing, because neqo sends a 1-RTT PMTU probe, which probably causes that calculation in the interop runner to not work out. I'll disable PMTUD for that testcase on our side and see if that helps.
CC @marten-seemann
I'm seeing an issue where a Kwik server is not processing a neqo 0-RTT packet that is coalesced with our Initial. I'm attaching the relevant interop runner logs/pcaps. Our 0-RTT packet with packet number 0 is not ACK'ed.
zerortt.zip