Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Coalesced 0-RTT packet not parsed #46

Closed
larseggert opened this issue Jul 22, 2024 · 4 comments
Closed

Coalesced 0-RTT packet not parsed #46

larseggert opened this issue Jul 22, 2024 · 4 comments

Comments

@larseggert
Copy link

larseggert commented Jul 22, 2024

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

@ptrd
Copy link
Owner

ptrd commented Jul 29, 2024

Thanks for reporting! I will investigate.

@ptrd
Copy link
Owner

ptrd commented Aug 12, 2024

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.

@ptrd
Copy link
Owner

ptrd commented Aug 20, 2024

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.

@ptrd ptrd closed this as completed Aug 20, 2024
@larseggert
Copy link
Author

larseggert commented Aug 20, 2024

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

larseggert added a commit to larseggert/neqo that referenced this issue Aug 20, 2024
PMTUD probes inflate what we sent in 1-RTT, causing QNS to fail the
test.

See ptrd/kwik#46 (comment)
github-merge-queue bot pushed a commit to mozilla/neqo that referenced this issue Aug 21, 2024
PMTUD probes inflate what we sent in 1-RTT, causing QNS to fail the
test.

See ptrd/kwik#46 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants