ngtcp2 1.26.0 RPM and DEB packages released

ngtcp2 1.26.0 has been added to the CodeIT repository. The packages are built for RHEL, CentOS, AlmaLinux, Rocky Linux and Oracle Linux 7, 8, 9 and 10, and for Ubuntu 22.04 and 24.04.

Major changes:

  • doc: Add pseudo code and documentation for writing packets with GSO
  • build(deps): bump actions/stale from 10 to 11
  • Cleanup
  • No stream is closed just because STOP_SENDING is received
  • Restructure conn
  • Tighten long header packet length check for 32-bit platform
  • map: Remove key if resizing table fails
  • examples/server: Check QUIC version
  • Add callback for extendmaxdata
  • Update callback tests
  • Do not retire the fallback DCID if it is still used
  • Fix CUBIC CWND increment function
  • Call extend_max_data on handshake completion
  • Return STREAM_LIMIT error if the limit is violated by STREAMS_BLOCKED
  • Add ngtcp2_conn_tx_strmq_push_if_not
  • Send STREAM_DATA_BLOCKED/DATA_BLOCKED when data is actually blocked
  • Update doc
  • Simplify ngtcp2_conn_write_stream
  • Rework the incoming NEW_CONNECTION_ID validation
  • Assert that ngtcp2_conn_tls_early_data_rejected only called from client
  • Return NGTCP2_ERR_STREAM_STATE for RESET_STREAM against local uni stream
  • Remove the code that handles the case that is too large for UDP datagram
  • Rename offset in ngtcp2_data_blocked and ngtcp2_stream_data_blocked
  • Add transport parameters decode tests
  • Add more transport parameter decoding tests
  • Add wf test
  • Add test for resending NEW_TOKEN
  • Rtb test
  • Simplify conn test
  • GHA: Bump Ubuntu to 26.04
  • Examples rewrite tests with new munit cxx assertions
  • Bump clang-format to 21
  • GHA: Bump clang to 21
  • Use packaged ossl
  • GHA: Reduce openssl1/3 jobs
  • GHA: Reduce cmake jobs
  • GHA: Fix quic interop runner
  • Tweak the maximum value of ngtcp2_ratelim.burst
  • Fix slow start pacing gain
  • Reset max UDP payload size when the peer’s IP address changes
  • Check picotls encryption level
  • Check ossl encryption level
  • Server should send CONNECTION_CLOSE in earlier level
  • GHA: Use libressl for macos build
  • Add oss-scanner files
  • examples/client: Fix div by zero
  • examples/server: Do not truncate file sizes on 32-bit targets
  • Limit token length
  • Add 0 length STREAM frame filter to rtb_reclaim_on_retry
  • Fix max decryptable pkt num marker before first decryption
  • Penalize the short stream data write
  • Optimize ngtcp2_rtb_reclaim_on_pto
  • ngtcp2_conn_write_aggregate_pkt2: Check path to end aggregation
  • Bump libressl to v4.4.0
  • send_quantum should be at least single MTU
  • Use validated_path before it is gone
  • Graceful connection closure when 1 RTT key is installed more than once
  • Process 0RTT packet only after 0RTT and 1RTT keys are available
  • Limit client’s PATH_RESPONSE to the unvalidated path
  • Explicitly verify path validation timeout
  • Make PATH_RESPONSE PTO eliciting
  • Reclaim connection level flow control window in stream close for RESET_STREAM
  • Refine ngtcp2_rob fragmentation threshold detection
  • Deal with the early HANDSHAKE_DONE from server
  • Improve map hasher
  • Rearm loss timer after it is cancelled by anti-amplification limit
  • Properly handle the case when client migrates back to the original path
  • Do not start pv round if no PATH_CHALLENGE is sent
  • Make ngtcp2_pkt_decode_version_cid return error on zero input
  • Keep congestion state if nothing has been delivered
  • Deal with TLS stack that does not bail out without transport params
  • Fix packet number decoding
  • Deal with the connection ID limit error
  • Reject ACK that acknowledges packet that is sent later
  • Remove rejection from handshake address because it is unreliable
  • Reset ppe pending state without WRITE_MORE flag set
  • Deal with stream shutdown in stop_sending callback
  • Revert “Stop buffering data after shutting downstream read”
  • Prevent a used DCID from being retired
  • Avoid abandoned DCID stranded
  • Return error when ngtcp2_conn_initiate_key_update called during handshake
  • Avoid DCID reuse
  • Derive initial key before version is negotiated
  • Prevent a used DCID from being retired in the another way
  • Do not call dcid_status callback until handshake completes
  • Revert “Make sure that NGTCP2_CONN_FLAG_PPE_PENDING is not leaked”
  • Do not block PATH_RESPONSE due to lack of DCID and credit
  • Reset CUBIC undo variables once a loss is confirmed
  • Fix conn_shutdown_stream_read
  • Tweak key update confirmation
  • Fix memory leak
  • Count decryption failures for Handshake and 0RTT keys
  • examples/server Fix handler leak
  • Install preferred address before reading server 0.5RTT packets
  • Ensure at least 1 byte frame is allocated on encoding
  • Count empty STREAM frame toward glitch counter
  • Do not clear PTO eliciting flag
  • Fix bug that lost_datagram is not called
  • crypto/ossl: Guard tx_level from 0RTT as well
  • hqclient: Remove streams on close
  • Fix 0RTT key not discarded with callback
  • Send the control frames in 0RTT
  • Revert “Count empty STREAM frame toward glitch counter”
  • Fix invalid qlog with PADDING only packet
  • Deal with out of memory after getting Connection ID
  • Remove problematic glitch counter for some frames
  • Write stream data thresh
  • Fix ngtcp2_vec_merge
  • Stop the path validation upfront
  • Simplify map insert
  • Bump tls deps
  • Fix heap overruns when malloc is only 4-byte aligned (like on ESP32)
  • examples: Deal with if_indextoname failure
  • GHA: Remove macos-15

The ngtcp2 library stack is built against OpenSSL 4.0.3, and the QUIC client is named osslclient.

Leave a Reply

Your email address will not be published. Required fields are marked *