Releases: aws/s2n-quic
Releases · aws/s2n-quic
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
v1.51.0
Summary
- Additional events and visibility for
s2n-quic-dc
What's Changed
- core: update github PR template by @lrstewart in #2377
- feat(s2n-quic-dc): add acceptor events by @camshaft in #2379
- feat(s2n-quic-dc): record gap for accepted packets by @Mark-Simulacrum in #2381
- test(s2n-quic-dc): add send tests and benchmarks by @camshaft in #2380
- Metric for forward gaps in key ID tracking by @Mark-Simulacrum in #2382
- feat(s2n-quic): improve local handshake failure visibility by @camshaft in #2383
- chore: release 1.51.0 by @WesleyRosenblum in #2384
Full Changelog: v1.50.0...v1.51.0
v1.50.0
What's Changed
- chore: update cargo audit by @toidiu in #2366
- chore: upgrade cargo deny and allow Unicode-3.0 license by @toidiu in #2367
- build(deps): update thiserror requirement from 1 to 2 by @dependabot in #2368
- feat(s2n-quic-core): add nominal counter aggregations by @camshaft in #2369
- chore: grant more permissions to the qns release workflow by @dougch in #2372
- feat(s2n-quic-core): implement nominal timers by @camshaft in #2370
- test(s2n-quic-core): add metric snapshot registry by @camshaft in #2371
- feat(s2n-quic-dc): mtu probing event subscriber by @WesleyRosenblum in #2374
- chore: release 1.50.0 by @camshaft in #2376
Full Changelog: v1.49.0...v1.50.0
v1.49.0
What's Changed
- chore: update qns actions for OIDC by @dougch in #2352
- chore(GHA): allow OIDC aws credentials by @dougch in #2350
- fix: update CI reference by @emmanuel-ferdman in #2354
- Test failure is not fatal for dedupe by @Mark-Simulacrum in #2355
- test: avoid using unstable API from insta by @camshaft in #2357
- feat(s2n-quic-platform): emit socket events by @camshaft in #2356
- fix(s2n-quic-dc): wait to insert in peer map until handshake completes by @WesleyRosenblum in #2358
- feat(s2n-quic-dc): export event module by @camshaft in #2360
- refactor(s2n-quic-dc): put map impl behind trait by @camshaft in #2361
- fix(s2n-quic-core): always wake application on available datagram capacity by @camshaft in #2249
- feat(s2n-quic-dc): add map events by @camshaft in #2362
- test(s2n-quic-dc): add tests for map events by @camshaft in #2363
- feat(s2n-quic-core): add aggregate metrics support by @camshaft in #2364
- chore: release 1.49.0 by @toidiu in #2365
New Contributors
- @emmanuel-ferdman made their first contribution in #2354
Full Changelog: v1.48.0...v1.49.0
v1.48.0
What's Changed
- feat(dc): Further shrink path secret entry by @Mark-Simulacrum in #2339
- feat(s2n-quic-dc): shrink path secret & fix fixed-map allocation by @Mark-Simulacrum in #2340
- build(deps): update hashbrown requirement from 0.14 to 0.15 by @dependabot in #2341
- feat(s2n-quic): Lazy-init duplicate filter by @Mark-Simulacrum in #2345
- fix(dc): support updated wireshark definitions by @camshaft in #2346
- build(deps): update aya to 0.13 by @camshaft in #2348
- fix(s2n-quic): make AsyncWrite::poll_flush a no-op by @camshaft in #2347
- feat(s2n-quic-dc): update MTU on dc path when MTU is updated by @WesleyRosenblum in #2327
- feat(s2n-quic): Add the certificate chain to TlsSession by @Mark-Simulacrum in #2349
- build(deps): bump docker/setup-buildx-action from 3.6.1 to 3.7.1 by @dependabot in #2344
- feat(s2n-quic-dc): import 10/17/24 by @camshaft in #2351
- chore: release 1.48.0 by @camshaft in #2353
Full Changelog: v1.47.0...v1.48.0