Releases: aws/s2n-quic
Releases · aws/s2n-quic
v1.61.0
Release Summary
- feat(s2n-quic-core, s2n-quic-dc): Access inner context for generated metrics Subscribers
What's Changed
- doc: fix doc for with_limits methods by @boquan-fang in #2682
- ci: fix clippy test by @CarolYeh910 in #2686
- Expose inner context on metrics Subscriber by @Mark-Simulacrum in #2685
- fix(s2n-quic-dc): avoid memory leak in worker waker by @camshaft in #2687
- build(deps): update lru requirement from 0.14 to 0.15 by @dependabot in #2684
- chore(release): v1.61.0 release by @boquan-fang in #2690
Full Changelog: v1.60.0...v1.61.0
Release v1.60.0
Release Summary
- Bump S2N-QUIC's MSRV to 1.82.0
- (s2n-quic-dc) Increase background handshake jitter
- (s2n-quic-dc) Emit additional events for TCP connects
- (s2n-quic-dc) Add event for connection-open deduplication
- (s2n-quic-dc) Expose HandshakingPath to access entry/error after handshake completes
- (s2n-quic-dc) Properly detect truncated streams
What's Changed
- chore: bump MSRV to 1.82.0 by @boquan-fang in #2654
- ci(udeps): use nightly v1.85.0 toolchain to fix udeps by @boquan-fang in #2658
- ci(GithubAction): only run aws credential on upstream s2n-quic by @boquan-fang in #2656
- fix(dc/wireshark): Provide Rust edition to bindgen by @goatgoose in #2663
- build(deps): update bindgen requirement from 0.71 to 0.72 in /tools/xdp by @dependabot in #2660
- Revert "ci(GithubAction): only run aws credential on upstream s2n-quic" by @boquan-fang in #2666
- fix(ci): skip max_total_test for cargotiming job by @boquan-fang in #2665
- build(deps): update prost requirement from 0.13 to 0.14 by @dependabot in #2667
- feat(s2n-quic-dc): Increase background handshake jitter by @Mark-Simulacrum in #2670
- build(deps): revert update of prost requirement from 0.13 to 0.14 by @tautschnig in #2671
- build(deps): bump docker/setup-buildx-action from 3.10.0 to 3.11.0 by @dependabot in #2672
- build(deps): bump docker/setup-buildx-action from 3.11.0 to 3.11.1 by @dependabot in #2673
- build(deps): update prost requirement from 0.13 to 0.14 by @dependabot in #2674
- feat(s2n-quic-dc): Define dcQUIC stream connect events by @Mark-Simulacrum in #2675
- Emit event for deduplicated connection opens by @Mark-Simulacrum in #2677
- ci: remove skipping tests for cargotiming by @boquan-fang in #2680
- feat(s2n-quic-dc): Expose dc::HandshakingPath publicly by @Mark-Simulacrum in #2679
- fix(s2n-quic-dc): detect truncated streams by @Mark-Simulacrum in #2681
- chore: release v1.60.0 by @CarolYeh910 in #2683
New Contributors
- @CarolYeh910 made their first contribution in #2683
Full Changelog: v1.59.0...v1.60.0
v1.59.0
Release summary
- Rx and Tx packet processing tasks are now properly terminated when the client endpoint is dropped, resolving a memory leak.
- Change signature of user callback provided for on_path_secrets_ready to be able to fail the handshake. The callback is still provided using the register_make_application_data function and can return an error message in case the handshake should be cancelled.
- Support for h3 v0.0.8 that has breaking changes on its API. This was implemented by referring to h3-quinn v0.10.0.
What's Changed
- ci: Pin to older docker version by @maddeleine in #2639
- build(deps): update elf requirement from 0.7 to 0.8 in /tools/xdp by @dependabot in #2637
- build(deps): bump aws-actions/configure-aws-credentials from 4.1.0 to 4.2.0 by @dependabot in #2627
- deps: h3-0.0.8 (s2n-quic-h3) by @junkurihara in #2629
- chore: schedule daily qns job by @boquan-fang in #2636
- ci: fix daily qns job by @boquan-fang in #2641
- fix: remove ouzi-dev from daily qns job by @boquan-fang in #2645
- chore(ci): cargo timing cb job by @dougch in #2525
- fix(s2n-quic-platform): register drop waker to avoid memory leaks by @boquan-fang in #2644
- fix(s2n-quic-xdp): fix aliasing violation in ring flags by @arctic-alpaca in #2649
- feat(s2n-quic-dc): path_secrets_ready callback can cancel handshake by @benlcb in #2648
New Contributors
- @arctic-alpaca made their first contribution in #2649
- @benlcb made their first contribution in #2648
Full Changelog: v1.58.0...v1.59.0
Release v1.58.0
Release Summary
- Close the connection when pto backoff exceeds maximum value
What's Changed
- build(deps): update lru requirement from 0.13 to 0.14 by @dependabot in #2607
- doc: automatically update CI artifacts by @boquan-fang in #2606
- fix(s2n-quic-dc): remove send inflight_timer by @camshaft in #2609
- fix(s2n-quic-dc): only actively poll RPC response by @camshaft in #2608
- fix(s2n-quic-dc): correctly propagate stream flow errors by @camshaft in #2610
- fix(s2n-quic-dc): only send PTO packets when there are outstanding stream segments by @camshaft in #2612
- fix(s2n-quic-dc): arm recv idle timer on init by @camshaft in #2613
- fix(s2n-quic-dc): prioritize recovery ACK ranges over stream by @camshaft in #2614
- events: Adds event for missing packet space when processing a packet by @maddeleine in #2615
- fix(s2n-quic-transport): Fixes s2n-quic TLS state incongruity when s2n-tls returns pending frequently by @maddeleine in #2574
- fix(s2n-quic-transport): handle pto overflows in connection migration by @boquan-fang in #2620
- chore: Remove wireshark ppa repository by @anupamym in #2622
- fix(s2n-quic-transport) Ensures packet number about to be skipped is not the first packet by @maddeleine in #2619
- ci: run daily CI jobs and report the result to CloudWatch by @boquan-fang in #2624
- build(deps): update bach requirement from 0.0.12 to 0.1.0 by @dependabot in #2625
- fix(s2n-quic-dc): correctly process IPv6 on recv path by @camshaft in #2626
- chore: pin idna_adapter to v1.2.0 by @boquan-fang in #2632
- chore: restrict steps for daily ci run for scheduled jobs only by @boquan-fang in #2633
- chore: release v1.58.0 by @boquan-fang in #2634
New Contributors
Full Changelog: v1.57.0...v1.58.0
v1.57.0
Release Summary
This release includes a non-trivial number of fixes and features for s2n-quic-dc and an optimization of Bytes read in s2n-quic-core.
What's Changed
- test(s2n-quic-dc): disable tracing by default for tests with large output by @camshaft in #2571
- chore: bump MSRV to 1.75 by @camshaft in #2573
- feat(s2n-quic-dc): add RPC API for streams by @camshaft in #2572
- feat(s2n-quic-dc): Rework handshakes to use a queue by @Mark-Simulacrum in #2565
- Some more tweaks for rehandshake queue by @Mark-Simulacrum in #2576
- fix(s2n-quic-dc): convert stream segments to probes when available by @camshaft in #2575
- fix(s2n-quic-dc): Pause full minute in jittered sleep by @Mark-Simulacrum in #2577
- fix(s2n-quic-dc): fix retransmission cloning by @camshaft in #2579
- fix(s2n-quic-dc): export local addr regardless of reuse_port config by @camshaft in #2578
- ci: Disable Github actions cache by @goatgoose in #2582
- ci: Fix hanging miri job by @goatgoose in #2584
- fix(s2n-quic-dc): correctly map addresses for pooled UDP streams by @camshaft in #2587
- fix(s2n-quic-core): optimize Bytes read on full read by @camshaft in #2588
- Avoid copy for unique Bytes in put_bytes by @Mark-Simulacrum in #2589
- chore: Fix new clippy warnings by @goatgoose in #2590
- ci: Fix cargo-udeps install by @goatgoose in #2592
- fix: comment for rebind_before_handshake_confirmed by @boquan-fang in #2594
- ci: Re-enable Github actions
install
cacheing by @goatgoose in #2595 - test(s2n-quic): verify TLS buffering limits from providers by @boquan-fang in #2596
- chore: fix comment in buffer_limit_test by @boquan-fang in #2597
- chore: release 1.57.0 by @dougch in #2604
Full Changelog: v1.56.0...v1.57.0
v1.56.0
Release Summary
- Adds
on_key_exchange_group
event to indicate the key exchange group negotiated during the TLS handshake. The event also indicates if a key encapsulation mechanism was part of the group by settingcontains_kem
to true. - fix(s2n-quic-dc): correct background handshake rate
What's Changed
- feat(s2n-quic-platform): add ancillary instructions for bpf assembler by @camshaft in #2522
- test(s2n-quic-dc): fix flaky UDP stream tests by @camshaft in #2528
- feat(s2n-quic-dc): add SendOnly UDP socket by @camshaft in #2529
- feat(s2n-quic-dc): add WithMap router by @camshaft in #2527
- refactor(s2n-quic-dc): rename source_stream_port to source_queue_id by @camshaft in #2526
- feat(s2n-quic-dc): add channel recv buffer impl by @camshaft in #2506
- refactor(s2n-quic-dc): wire up recv buffer trait to stream workers by @camshaft in #2530
- test(s2n-quic-dc): only run UDP stream tests on linux for now by @camshaft in #2531
- refactor(s2n-quic-sim): replace unmaintained humantime library with jiff by @boquan-fang in #2532
- fix(s2n-quic-dc): don't restrict TCP writes to limits for UDP by @WesleyRosenblum in #2534
- feat(s2n-quic-dc): wire up the recv pool for tokio clients by @camshaft in #2533
- fix(s2n-quic-dc): correct background handshake rate by @Mark-Simulacrum in #2536
- feat(s2n-quic-dc): add source_queue_id to control packets by @camshaft in #2537
- build(deps): use up to date aws-lc-rs by @boquan-fang in #2540
- test(s2n-quic-dc): allow params to be specified for test credentials by @camshaft in #2538
- test(s2n-quic-core): add location to state transitions by @camshaft in #2541
- fix(s2n-quic-dc): skip sending empty packets in udp acceptor by @camshaft in #2544
- build(deps): update zerocopy requirement from 0.7 to 0.8 by @boquan-fang in #2547
- chore: include Need By Date section in github issue template by @boquan-fang in #2542
- refactor(s2n-quic-dc): add control_frames fn to control packets by @camshaft in #2543
- fix(s2n-quic-dc): fix recv worker draining state by @camshaft in #2545
- build(deps): update h3 requirement from 0.0.6 to 0.0.7 by @dependabot in #2552
- build(deps): bump docker/login-action from 3.3.0 to 3.4.0 by @dependabot in #2551
- fix(s2n-quic-dc): synchronize dispatch queue closure by @camshaft in #2553
- test(s2n-quic-dc): add debug assertions to descriptor free lists by @camshaft in #2539
- test(s2n-quic-dc): add request/response tests by @camshaft in #2546
- fix(s2n-quic-dc): clamp send quantum to max syscall size by @camshaft in #2549
- ci: Fixes parsing of MSRV by @maddeleine in #2555
- feat(s2n-quic-dc): wire up recv pool to server by @camshaft in #2556
- build(deps): update bach requirement from 0.0.10 to 0.0.11 by @dependabot in #2561
- test(s2n-quic-dc): wire up bach::net by @camshaft in #2560
- feat(s2n-quic-dc): support key association in dispatch queue allocator by @camshaft in #2563
- Allow pass TLS context from third-party TLS provider to application layer by @taikulawo in #2448
- test(s2n-quic-dc): use bach for request/response tests by @camshaft in #2564
- events: emit on_key_exchange_group event by @WesleyRosenblum in #2566
- test(s2n-quic-dc): disable UDP stream fuzz sims for CI by @camshaft in #2570
- chore: release 1.56.0 by @jmayclin in #2568
New Contributors
- @taikulawo made their first contribution in #2448
Full Changelog: v1.55.0...v1.56.0
Release V1.55.0
Release Summary:
- New API added to allow users to change connection limits based on the information in the TLS handshake, such as server name and application protocol. Previously users could only change connection limits based on their peer's remote address.
- Expose dc::Path creation event in s2n-quic Subscriber.
- Connection migrations are now allowed even when the
disable_active_migration
is set to true, as it is not possible to distinguish between the peer performing an active migration, and a NAT rebind. - feat(dc): Support storing arbitrary application-provided data in Entry.
What's Changed
- feat(s2n-quic-tls) Retrieve SNI when the 1-RTT keys are retrieved by @maddeleine in #2480
- ci: Remove kwik from required interop tests by @maddeleine in #2489
- build(deps): update bolero requirements by @boquan-fang in #2496
- build(deps): bump docker/setup-buildx-action from 3.9.0 to 3.10.0 by @dependabot in #2491
- build(deps): bump aws-actions/configure-aws-credentials from 4.0.3 to 4.1.0 by @dependabot in #2471
- fix(s2n-quic-dc): Fix spurious panic for empty sample range by @Mark-Simulacrum in #2501
- build(deps): bach and rand updates by @boquan-fang in #2502
- feat(s2n-quic-dc): add mpsc channel by @camshaft in #2503
- refactor(s2n-quic-dc): add stream recv buffer trait and impls by @camshaft in #2505
- fix: typo for debugging book by @boquan-fang in #2509
- feat(s2n-quic): New function added to Connection Limits provider by @maddeleine in #2508
- feat(s2n-quic-dc): Add subscriber event for dc::Path creation by @Mark-Simulacrum in #2510
- refactor(s2n-quic-dc): rename stream_id to queue_id by @camshaft in #2507
- feat(s2n-quic-dc): implement recv path packet pool by @camshaft in #2483
- fix(s2n-quic-transport): allow migrations even when disable_active_migration is sent by @WesleyRosenblum in #2516
- feat(s2n-quic-dc): Support storing ApplicationData in Entry by @Mark-Simulacrum in #2515
- chore: release 1.55.0 by @boquan-fang in #2521
- feat(s2n-quic-dc): implement queue allocator/dispatcher by @camshaft in #2517
Full Changelog: v1.54.0...v1.55.0
Release v1.54.0
Summary
- Expand the DataDroppedReason to include the expanded MigrationDenyReason, which would explain more specifically why a connection migration was denied, not just that it was denied.
- We currently consider the full 4-tuple (local + remote IP addresses and ports) when identifying a path. This seems to be an overly strict interpretation, we should really only be considering the peer address when deciding if it tried to migrate.
- Fix an issue where clients may (unknowingly) rebind ports/IPs mid-handshake and not be able to complete the handshake.
- Allow users to configure only_v6 settings through a new Tokio IO API.
What's Changed
- feat: emit migration deny reason with datagram drop event by @camshaft in #2456
- Revert "derive crypto before opening TCP stream" by @Mark-Simulacrum in #2459
- fix: ignore local address when considering path migration by @camshaft in #2458
- build(deps): bump aws-actions/configure-aws-credentials from 4.0.2 to 4.0.3 by @dependabot in #2461
- fix: process packets from different sources before handshake confirmed by @camshaft in #2463
- feat(s2n-quic-dc): Replace shared map with larger bitset by @Mark-Simulacrum in #2464
- chore: release 1.53.0 by @goatgoose in #2465
- build(deps): update lru requirement from 0.12 to 0.13 by @dependabot in #2467
- Replace requested_handshakes set with a callback by @Mark-Simulacrum in #2469
- build(deps): bump docker/setup-buildx-action from 3.8.0 to 3.9.0 by @dependabot in #2470
- build(deps): update rand requirement in /tools/xdp by @boquan-fang in #2474
- feat(s2n-quic-dc): Switch to FIFO-based path secret eviction by @Mark-Simulacrum in #2477
- feat(s2n-quic-dc): accept linger parameter instead of always setting it by @camshaft in #2476
- feat(s2n-quic-platform): add a new Tokio IO API to configure only_v6 by @boquan-fang in #2473
- build(deps): update rand requirement except for s2n-quic-sim by @boquan-fang in #2475
- ci: Fix Clippy by @maddeleine in #2482
- chore: release 1.54.0 by @dougch in #2486
- ci: pin litemap and zerofrom versions to support current MSRV by @boquan-fang in #2488
Full Changelog: v1.52.1...v1.54.0
v1.52.1
Summary
- Fixes an issue with IPv4-mapped local addresses causing issues if packets are arriving on both IPv4 and IPv4-mapped spaces.
What's Changed
- test(s2n-quic-dc): ignore read errors for send tests by @camshaft in #2421
- tests(s2n-quic-dc): add key update test by @WesleyRosenblum in #2443
- build: address clippy issues from 1.84 by @jouho in #2444
- docs(s2n-quic): Add debugging guide by @WesleyRosenblum in #2449
- docs(s2n-quic): add debugging section on GSO/GRO by @WesleyRosenblum in #2450
- fix(s2n-quic-dc): derive crypto before opening TCP stream by @camshaft in #2451
- ci(duvet): add version input to duvet action by @lrstewart in #2452
- fix: correctly unmap IPv4-mapped local addresses by @camshaft in #2454
- chore: release 1.52.1 by @WesleyRosenblum in #2455
Full Changelog: v1.52.0...v1.52.1
v1.52.0
Summary
- Adds a new event, on_connection_close_frame_received. This event contains additional details from the CONNECTION_CLOSE frame received from the peer, particularly the reason the connection closed (if provided).
- Adds stream batching functionality to s2n-quic sending behavior. Stream batching is a sending strategy which provides each stream with the opportunity to fill up a packet "batch-size" times, before then passing that priority to the next stream.
- Adds address and connection ID information to the on_datagram_dropped event. NOTE: This is a breaking change if your application stores the DatagramDropped events, as a named lifetime was added to the struct.
What's Changed
- feat(s2n-quic-dc): implement cache events by @camshaft in #2386
- feat(s2n-quic-dc): name the path::secret::map::Cleaner thread by @camshaft in #2388
- build(deps): update bolero requirement from 0.11 to 0.12 in /tools/xdp by @dependabot in #2391
- refactor(s2n-quic-dc): thread event::Subscriber through streams by @camshaft in #2387
- feat(s2n-quic-dc): emit cleaner events by @camshaft in #2392
- build: address clippy issues from 1.83 by @camshaft in #2393
- feat(s2n-quic-dc): emit top-level stream events by @camshaft in #2394
- feat(s2n-quic-dc): implement connection-level counter aggregation by @camshaft in #2397
- fix(s2n-quic-dc): remove redundant measure_counter naming suffix by @camshaft in #2399
- fix(s2n-quic-dc): set TCP_NODELAY on TCP sockets by @camshaft in #2398
- docs: enable feature tagging by @toidiu in #2395
- build(deps): update bolero requirement from 0.11 to 0.12 by @camshaft in #2400
- refactor(s2n-quic-dc): reduce the number of
peer_addr
calls by @camshaft in #2401 - chore: updating to latest quic interop commit by @WesleyRosenblum in #2396
- fix(s2n-quic-dc): make TCP shutdown a no-op by @camshaft in #2402
- feat(s2n-quic-dc): reduce socket addr calls even more by @camshaft in #2406
- feat(s2n-quic-xdp): Make io::rx::Channel::for_each public by @OliverGavin in #2405
- fix(s2n-quic-dc): resolve unspecified peer addrs on connect by @camshaft in #2408
- feat(s2n-quic-dc): set linger to 0 by @camshaft in #2407
- ci: add ASAN to s2n-quic ci by @boquan-fang in #2410
- fix(s2n-quic-dc): separate address lookup functionality in path secret map by @camshaft in #2411
- feat(s2n-quic-dc): only poll accepted streams that are ready by @camshaft in #2409
- test: update snapshots from s2n-tls 0.3.8 behavior by @camshaft in #2412
- build(dc/wireshark): specifiy rust target for bindgen by @camshaft in #2414
- fix(s2n-quic-dc): use wake_forced for worker::Waker by @camshaft in #2415
- ci: update wireshark to v4 by @camshaft in #2160
- build: do fewer optimizations in release by @camshaft in #2417
- ci: update h3spec to 0.11 by @camshaft in #2416
- ci: remove bench test from s2n-quic CI by @boquan-fang in #2418
- ci: add neqo from required resumption test client by @boquan-fang in #2420
- fix(ci): fix the release by @boquan-fang in #2423
- fix(s2n-quic-dc): make debug assertions cheaper for TCP accept manager by @camshaft in #2419
- ci: specify specific bolero dependency rather than workspace dependency by @boquan-fang in #2424
- ci: specify specific bolero dependency rather than workspace dependency in s2n-quic-xdp by @boquan-fang in #2425
- build(deps): update bindgen requirement from 0.70 to 0.71 in /tools/xdp by @dependabot in #2426
- build(deps): update rbpf requirement from 0.2 to 0.3 in /tools/xdp by @dependabot in #2320
- build(deps): bump docker/setup-buildx-action from 3.7.1 to 3.8.0 by @dependabot in #2427
- fix(s2n-quic-dc): Import fixes + new metrics by @Mark-Simulacrum in #2430
- feat(s2n-quic-dc): Globally cache the control socket by @Mark-Simulacrum in #2431
- fix(s2n-quic-dc): Pause the cleaner thread for the tail of the sleep time by @Mark-Simulacrum in #2432
- fix(s2n-quic-dc): handle spurious TCP acceptor worker wakeups by @camshaft in #2434
- events: add ConnectionCloseFrameReceived event by @WesleyRosenblum in #2436
- feat(s2n-quic-transport): Adds stream batching functionality by @maddeleine in #2433
- events: adding detail to DatagramDropped event by @WesleyRosenblum in #2438
- chore: release 1.52.0 by @jouho in #2439
New Contributors
- @OliverGavin made their first contribution in #2405
- @boquan-fang made their first contribution in #2410
- @jouho made their first contribution in #2439
Full Changelog: v1.51.0...v1.52.0