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

ripatel/v0.3 backports #3897

Merged
merged 4 commits into from
Jan 8, 2025

Conversation

ripatel-fd
Copy link
Contributor

  • quic: less aggressive frame errors
  • quic: accept streams before handshake confirmed
  • quic: fix Identification field being always 0
  • quic: fix hs_data_empty cache invalidation bug

riptl added 4 commits January 8, 2025 19:27
- Add missing logging for crypto frame parse failures for
  CRYPTO, ACK, CONN_CLOSE frames.
- Don't drop packets containing RESET_STREAM, NEW_TOKEN,
  PATH_CHALLENGE, PATH_RESPONSE frames.
- Silently ignore HANDSHAKE_DONE frames before the handshake is
  complete (suppress ACK when still handshaking)
Fixes a bug that causes connections to break if the client eagerly
sends stream data.
Fixes a classic C typo with (*ptr++) syntax.
The bug resulted in all Firedancer QUIC packets having an IPv4 ID
field of 0.  Most Internet peers (most notably Linux) are resilient
enough to handle this.  Should be fixed nonetheless.
Fixes an issue where QUIC handshakes can stall if fd_quic has
nothing to send temporarily.  This occurs specifically when the
client sends an Initial packet that doesn't contain a complete
ClientHello.  This caused 'hs_data_empty' flag to be set which then
suppresses any more TLS handshake progress.  There was no logic to
reset 'hs_data_empty' when new data arrives.

With this fix, we always check for handshake data for as long as
a quic_tls_hs object exists.  The 'hs_data_empty' bit is removed.
@mmcgee-jump mmcgee-jump merged commit 4dbff0a into firedancer-io:v0.3 Jan 8, 2025
4 of 10 checks passed
@ripatel-fd ripatel-fd deleted the ripatel/v0.3-backports branch January 8, 2025 19:39
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

Successfully merging this pull request may close these issues.

3 participants