Releases: aws/s2n-quic
Releases · aws/s2n-quic
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
v1.47.0
What's Changed
- dc: Prune peer map if we've pruned the id map by @Mark-Simulacrum in #2319
- refactor(s2n-quic-h3): remove s2n-quic-core dependency by @WesleyRosenblum in #2325
- feat(s2n-quic-events): add search_completed boolean to mtu updated event by @WesleyRosenblum in #2322
- feat(s2n-quic-dc): Make stream::recv::error::Kind pub by @Mark-Simulacrum in #2326
- feat(s2n-quic-events): Adds events for s2n-quic-dc by @maddeleine in #2321
- chore(s2n-quic-crypto): remove ring by @WesleyRosenblum in #2332
- Optimize path secret Entry size by @Mark-Simulacrum in #2329
- chore(s2n-quic): update MSRV to 1.74.1 by @WesleyRosenblum in #2336
- feat(s2n-quic-events): Adds metrics subscriber by @maddeleine in #2335
- feat(s2n-quic-dc): Use a new fixed-size map for path secret storage by @Mark-Simulacrum in #2337
- chore: release 1.47.0 by @camshaft in #2338
Full Changelog: v1.46.0...v1.47.0
Release v1.46.0
What's Changed
- test(s2n-quic-core): revert to bigger length for Kani test by @zhassan-aws in #2312
- chore: import 8/29 version by @camshaft in #2311
- Add autogenerated Bolero harnesses by @cvick32 in #2306
- chore: release 1.46.0 by @dougch in #2318
New Contributors
Full Changelog: v1.45.0...v1.46.0