- Update to 1.18.0:
* Assume payload is not empty when decoding a QUIC frame by
@tatsuhiro-t in #1846
* Assert payloadlen > 0 for type only frames by @tatsuhiro-t in #1847
* Map refactor by @tatsuhiro-t in #1848#1849
* ngtcp2_map: Optimize a little bit further by @tatsuhiro-t in #1851
* Fix memory leak on Retry by @tatsuhiro-t in #1852
* Fix build fuzzer failure by @tatsuhiro-t in #1855
* Fix bug that bbr_handle_restart_from_idle with inflight == 0 by
@tatsuhiro-t in #1857
* Optimize ngtcp2_ksl by @tatsuhiro-t in #1853
* Run cflite batch manually by @tatsuhiro-t in #1859
* ngtcp2_map: Resize if PSL gets really large just in case by
@tatsuhiro-t in #1861
* Encode uint by @tatsuhiro-t in #1863
* Rename ngtcp2_encode_hex to ngtcp2_encode_hex_cstr by @tatsuhiro-t
in #1864
* Encode hex by @tatsuhiro-t in #1869
* ngtcp2_str: Add _cstr suffix to functions that return C string by
@tatsuhiro-t in #1870
* ngtcp2_str: Use char buffer for cstr functions by @tatsuhiro-t
in #1871
* Fix potential double free by @tatsuhiro-t in #1876
* Delete unusable initial rx key on if tx key installation fails
by @tatsuhiro-t in #1877
* crypto: Allow an application to store opaque data to a regular
token by @tatsuhiro-t in #1879
* Remove unused ngtcp2_path_init by @tatsuhiro-t in #1881
* crypto/ossl: Allow pre-fetch failure by @tatsuhiro-t in #1885
* More initialization with compound literals by @tatsuhiro-t in #1886
OBS-URL: https://build.opensuse.org/request/show/1323095
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/ngtcp2?expand=0&rev=37
- Update to 1.17.0:
* Remove redundant casts by @tatsuhiro-t in #1798
* Revert #1798 partially by @tatsuhiro-t in #1799
* examples: Use std::ranges::begin and std::ranges::end
consistently by @tatsuhiro-t in #1800
* Initial packets padding with no_tx_udp_payload_size_shaping by
@tatsuhiro-t in #1801
* Remove redundant semicolon by @tatsuhiro-t in #1802
* Make ngtcp2_stream.fin of type int by @tatsuhiro-t in #1803
* Fix typos in documentation and comments by @Copilot in #1804
* Update bbr by @tatsuhiro-t in #1807
* examples: Limit tx buffer for non-GSO case by @tatsuhiro-t in #1812
* cubic: Compute remainder of "acked_bytes" without modulo by
@tatsuhiro-t in #1813
* Replace POPCNT-based ispow2 with portable bitwise implementation to
prevent illegal instruction crashes by @mk185147 in #1811
* Reduce NGTCP2_HARD_MAX_UDP_PAYLOAD_SIZE to 64k by @tatsuhiro-t in #1814
* Bump openssl to v3.6.0 by @tatsuhiro-t in #1815
* bbr: Avoid modifying ngtcp2_rs on packet loss by @tatsuhiro-t in #1816
* Always call CC on_ack_recv by @tatsuhiro-t in #1817
* Revert "examples: Limit tx buffer for non-GSO case" by @tatsuhiro-t in #1818
* Make sure that CC on_ack_recv when ACK is received by @tatsuhiro-t in #1820
* Use solely cc_ack.largest_pkt_sent_ts and remove largest_pkt_sent_ts by
@tatsuhiro-t in #1821
* Pass ngtcp2_cc_ack to CC on_congestion_event by @tatsuhiro-t in #1822
* Remove unused ngtcp2_cc_ack.prior_bytes_in_flight by @tatsuhiro-t in #1823
* Add ngtcp2_conn_write_aggregate_pkt2 by @tatsuhiro-t in #1824
* examples: Add gso-burst option by @tatsuhiro-t in #1825
* Add ngtcp2_conn_get_stream_user_data by @tatsuhiro-t in #1828
* cc: Compute pacing interval and send_quantum by @tatsuhiro-t in #1829 (forwarded request 1313180 from pmonrealgonzalez)
OBS-URL: https://build.opensuse.org/request/show/1313210
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ngtcp2?expand=0&rev=11
- Update to 1.17.0:
* Remove redundant casts by @tatsuhiro-t in #1798
* Revert #1798 partially by @tatsuhiro-t in #1799
* examples: Use std::ranges::begin and std::ranges::end
consistently by @tatsuhiro-t in #1800
* Initial packets padding with no_tx_udp_payload_size_shaping by
@tatsuhiro-t in #1801
* Remove redundant semicolon by @tatsuhiro-t in #1802
* Make ngtcp2_stream.fin of type int by @tatsuhiro-t in #1803
* Fix typos in documentation and comments by @Copilot in #1804
* Update bbr by @tatsuhiro-t in #1807
* examples: Limit tx buffer for non-GSO case by @tatsuhiro-t in #1812
* cubic: Compute remainder of "acked_bytes" without modulo by
@tatsuhiro-t in #1813
* Replace POPCNT-based ispow2 with portable bitwise implementation to
prevent illegal instruction crashes by @mk185147 in #1811
* Reduce NGTCP2_HARD_MAX_UDP_PAYLOAD_SIZE to 64k by @tatsuhiro-t in #1814
* Bump openssl to v3.6.0 by @tatsuhiro-t in #1815
* bbr: Avoid modifying ngtcp2_rs on packet loss by @tatsuhiro-t in #1816
* Always call CC on_ack_recv by @tatsuhiro-t in #1817
* Revert "examples: Limit tx buffer for non-GSO case" by @tatsuhiro-t in #1818
* Make sure that CC on_ack_recv when ACK is received by @tatsuhiro-t in #1820
* Use solely cc_ack.largest_pkt_sent_ts and remove largest_pkt_sent_ts by
@tatsuhiro-t in #1821
* Pass ngtcp2_cc_ack to CC on_congestion_event by @tatsuhiro-t in #1822
* Remove unused ngtcp2_cc_ack.prior_bytes_in_flight by @tatsuhiro-t in #1823
* Add ngtcp2_conn_write_aggregate_pkt2 by @tatsuhiro-t in #1824
* examples: Add gso-burst option by @tatsuhiro-t in #1825
* Add ngtcp2_conn_get_stream_user_data by @tatsuhiro-t in #1828
* cc: Compute pacing interval and send_quantum by @tatsuhiro-t in #1829
OBS-URL: https://build.opensuse.org/request/show/1313180
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/ngtcp2?expand=0&rev=35
- Split the devel package into the gnutls and openssl parts.
These packages are now called libngtcp2_crypto_gnutls-devel
and libngtcp2_crypto_ossl-devel.
- Update to 1.14.0:
* Add util::system_clock_now
* Make read_pem return std::vector<uint8_t>
* Refactor cubic
* Add ngtcp2_begin_path_validation callback
* ngtcp2_map: Hash key
* Update BBR to the current draft and simplify code
* Map seed
* ngtcp2_map: Change load factor to 7/8
* Fix pc files for static linkage
* Build with the latest nghttp3
* Assert that fin is set or datalen > 0
* Return error if too many STREAM frames are accumulated for resend
* Set minimum STREAM data size when serializing into a packet
* Avoid memset for 1-RTT ngtcp2_pktns
* lib: Compound Literals
* Bump OpenSSL to v3.5.1
* Run quic-interop-runner
* quic-interop-runner: Enhance log reduction
* quic-interop-runner: Add workflow_dispatch inputs
* Require nghttp3 >= v1.11.0
OBS-URL: https://build.opensuse.org/request/show/1296476
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/ngtcp2?expand=0&rev=29
- update to 1.13.0:
* Update CMakeLists.txt to fix the error of
check_symbol_exists() when static-link openssl.
* Fix path response padding
* Make a packet containing PATH_RESPONSE to active path non-
probing
* Make pacing less bursty
* Add extra precision to pacing_interval
* Refactor cubic
* cubic: Bound time_delta
* Make as_uint8_span consteval
* Avoid slower std::ranges::mismatch
* putting important libdir and incdir first
- Trim idempotent if..endif guards
- Delete metadata for unproduced ngtcp2-doc subpackage
- Additionally build OpenSSL backend and ship it in optional subpackage
OBS-URL: https://build.opensuse.org/request/show/1287814
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ngtcp2?expand=0&rev=8
* Update CMakeLists.txt to fix the error of
check_symbol_exists() when static-link openssl.
* Fix path response padding
* Make a packet containing PATH_RESPONSE to active path non-
probing
* Make pacing less bursty
* Add extra precision to pacing_interval
* Refactor cubic
* cubic: Bound time_delta
* Make as_uint8_span consteval
* Avoid slower std::ranges::mismatch
* putting important libdir and incdir first
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/ngtcp2?expand=0&rev=27
- update to 1.10.0:
* Rename NGTCP2_INITIAL_TABLE_LENBITS to
NGTCP2_INITIAL_HASHBITS
* Do not extend app-limited period
* Fuzz sequences of different received packets
* Fuzz timestamp in read_write_pkt fuzzer
* Exercise all CC algorithms in read_write_pkt fuzzer
* Exercise client in read_write_pkt fuzzer
* Fix assertion error when retransmitting 0 length STREAM
* Fuzz remote transport params in read_write_pkt fuzzer
* Update ksl fuzzer with FuzzedDataProvider
* Remove outdated PMTUD probe packet handling when it is lost
* Add ngtcp2_rob fuzzer
- update to 1.9.1:
* Fixes CVE-2024-52811
- update to 1.9.0:
* ringbuf: silence superfluous unused function warning on
NDEBUG builds
* Use REQUIRED when finding a package
* Remove extra semicolons
* examples: GRO buffer size should be 64KiB
* Limit the number of ACK frames per packet
* Nothing to acknowledge in a 0RTT packet
* Introduce ngtcp2_ksl_search
* Update doc
* Loosen app-limited condition
* Tweak threshold for max_stream_data and max_data transmission
* Add note for window auto-tuning
* examples/client: Disable window auto-tuning by default
* ngtcp2_ksl: Use proper type
OBS-URL: https://build.opensuse.org/request/show/1244412
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ngtcp2?expand=0&rev=6
* Rename NGTCP2_INITIAL_TABLE_LENBITS to
NGTCP2_INITIAL_HASHBITS
* Do not extend app-limited period
* Fuzz sequences of different received packets
* Fuzz timestamp in read_write_pkt fuzzer
* Exercise all CC algorithms in read_write_pkt fuzzer
* Exercise client in read_write_pkt fuzzer
* Fix assertion error when retransmitting 0 length STREAM
* Fuzz remote transport params in read_write_pkt fuzzer
* Update ksl fuzzer with FuzzedDataProvider
* Remove outdated PMTUD probe packet handling when it is lost
* Add ngtcp2_rob fuzzer
- update to 1.9.1:
* Fixes CVE-2024-52811
- update to 1.9.0:
* ringbuf: silence superfluous unused function warning on
NDEBUG builds
* Use REQUIRED when finding a package
* Remove extra semicolons
* examples: GRO buffer size should be 64KiB
* Limit the number of ACK frames per packet
* Nothing to acknowledge in a 0RTT packet
* Introduce ngtcp2_ksl_search
* Update doc
* Loosen app-limited condition
* Tweak threshold for max_stream_data and max_data transmission
* Add note for window auto-tuning
* examples/client: Disable window auto-tuning by default
* ngtcp2_ksl: Use proper type
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/ngtcp2?expand=0&rev=19
- update to 1.6.0:
* examples: Print negotiated group if TLS stack gives that
information
* Remove ngtcp2_min and ngtcp2_max
* Keep-alive packet should trigger PTO
* Fix ngtcp2_conn_stat.max_tx_udp_payload_size update
* Adjust memory pool allocation units to reduce allocation size
* Adjust NGTCP2_ACKTR_MAX_ENT to match NGTCP2_MAX_ACK_RANGES +
1
* Allocate ngtcp2_acktr_entry at once not to waste memory
* Fix memory leak when stream datacnt gets below allocation
threshold
* Refactor ngtcp2_frame_chain allocation for ngtcp2_stream
- update to 1.5.0:
* Pack more QUIC packets on large PMTUD probes
* Drop UDP datagram if it comes from a well-known port
* Rework transmitting empty STREAM frame
* Take into account SCID length when computing minimum packet
size
* More prohibited ports
* client: Handle error from feed_data
* server: Send stateless reset
* crypto: Adjust token stack buffer sizes
* crypto: Reduce NGTCP2_CRYPTO_TOKEN_RAND_DATALEN to 16
* Adopt std::to_array
* server: Use std::span for sized binary data
* client: Use std::span for sized binary data
* examples: More std::span
* std::unordered_map lookup by std::string_view
* Refactor format_hex
OBS-URL: https://build.opensuse.org/request/show/1181358
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ngtcp2?expand=0&rev=4
* examples: Print negotiated group if TLS stack gives that
information
* Remove ngtcp2_min and ngtcp2_max
* Keep-alive packet should trigger PTO
* Fix ngtcp2_conn_stat.max_tx_udp_payload_size update
* Adjust memory pool allocation units to reduce allocation size
* Adjust NGTCP2_ACKTR_MAX_ENT to match NGTCP2_MAX_ACK_RANGES +
1
* Allocate ngtcp2_acktr_entry at once not to waste memory
* Fix memory leak when stream datacnt gets below allocation
threshold
* Refactor ngtcp2_frame_chain allocation for ngtcp2_stream
- update to 1.5.0:
* Pack more QUIC packets on large PMTUD probes
* Drop UDP datagram if it comes from a well-known port
* Rework transmitting empty STREAM frame
* Take into account SCID length when computing minimum packet
size
* More prohibited ports
* client: Handle error from feed_data
* server: Send stateless reset
* crypto: Adjust token stack buffer sizes
* crypto: Reduce NGTCP2_CRYPTO_TOKEN_RAND_DATALEN to 16
* Adopt std::to_array
* server: Use std::span for sized binary data
* client: Use std::span for sized binary data
* examples: More std::span
* std::unordered_map lookup by std::string_view
* Refactor format_hex
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/ngtcp2?expand=0&rev=15
- update to 1.2.0:
* Remove sample_offset field from ngtcp2_ppe
* wolfssl: Just use QUIC v1 transport parameter codepoint
* Do not send STOP_SENDING if RESET_STREAM has been
received
* Return early when STOP_SENDING is received more than once
* Do not send STOP_SENDING if RESET_STREAM has been
received
* Fix persistent congestion
* ngtcp2_pkt_adjust_pkt_num: Take bytes rather than bits
* Remove use of SSL_set_quic_transport_version
* Switch interop client/server to wolfssl because OpenSSL
1.1.1 has been EOLed and OpenSSL 3.x has the various
performance issues due to its design decision.
wolfssl has been chosen because it has the ability
to specify chacha cipher suite and it is also relatively
easy to build compared to GnuTLS.
* Avoid detecting OpenSSL 3.2 as quictls
* cmake: Require nghttp3 >= v1.0.0
OBS-URL: https://build.opensuse.org/request/show/1142109
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ngtcp2?expand=0&rev=3
* Remove sample_offset field from ngtcp2_ppe
* wolfssl: Just use QUIC v1 transport parameter codepoint
* Do not send STOP_SENDING if RESET_STREAM has been
received
* Return early when STOP_SENDING is received more than once
* Do not send STOP_SENDING if RESET_STREAM has been
received
* Fix persistent congestion
* ngtcp2_pkt_adjust_pkt_num: Take bytes rather than bits
* Remove use of SSL_set_quic_transport_version
* Switch interop client/server to wolfssl because OpenSSL
1.1.1 has been EOLed and OpenSSL 3.x has the various
performance issues due to its design decision.
wolfssl has been chosen because it has the ability
to specify chacha cipher suite and it is also relatively
easy to build compared to GnuTLS.
* Avoid detecting OpenSSL 3.2 as quictls
* cmake: Require nghttp3 >= v1.0.0
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/ngtcp2?expand=0&rev=13
- update to 1.1.0:
* Extract ngtcp2_frame_chain to its own file
* Refactor ringbuf
* Fix typo
* Rename reset stream flags
* Remove unused ngtcp2_conn_resched_frames
* crypto: Fix bug that retry token AAD does not include QUIC version
* cmake: re-add two missing includes
* Bump clang to 15
* quictls: Prefetch objects to workaround 3.x perf regression
* Bump clang-format to 15
* Bump quictls to 3.1.4+quic
* Deprecate NGTCP2_PROTO_VER_MIN and NGTCP2_PROTO_VER_MAX
* ngtcp2_conn_write_datagram conveniently accepts single buffer
* windows: Fix warnings
* ptlsclient, ptlsserver: Support hq
* h09client: Use util::write_token
* Cpp ext
* Use __FILE_NAME__ instead of __FILE__
* examples: Rename extend_max_streams_bidi to extend_max_local_streams_bidi
* Define varint identifiers as macros
* Limit the number of NEW_CONNECTION_ID frames that are in-flight
* Make frame type of type uint64_t
* Fix doc
* Fix assertion failure
* Eliminate floating point computations
* Bump actions/github-script from 6 to 7
* client: Optimize a bit
* Revert ignoring loss signal during startup
* Rework app_limited
OBS-URL: https://build.opensuse.org/request/show/1135547
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ngtcp2?expand=0&rev=2
* Extract ngtcp2_frame_chain to its own file
* Refactor ringbuf
* Fix typo
* Rename reset stream flags
* Remove unused ngtcp2_conn_resched_frames
* crypto: Fix bug that retry token AAD does not include QUIC version
* cmake: re-add two missing includes
* Bump clang to 15
* quictls: Prefetch objects to workaround 3.x perf regression
* Bump clang-format to 15
* Bump quictls to 3.1.4+quic
* Deprecate NGTCP2_PROTO_VER_MIN and NGTCP2_PROTO_VER_MAX
* ngtcp2_conn_write_datagram conveniently accepts single buffer
* windows: Fix warnings
* ptlsclient, ptlsserver: Support hq
* h09client: Use util::write_token
* Cpp ext
* Use __FILE_NAME__ instead of __FILE__
* examples: Rename extend_max_streams_bidi to extend_max_local_streams_bidi
* Define varint identifiers as macros
* Limit the number of NEW_CONNECTION_ID frames that are in-flight
* Make frame type of type uint64_t
* Fix doc
* Fix assertion failure
* Eliminate floating point computations
* Bump actions/github-script from 6 to 7
* client: Optimize a bit
* Revert ignoring loss signal during startup
* Rework app_limited
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/ngtcp2?expand=0&rev=11