fix(deps): update module github.com/quic-go/quic-go to v0.36.0 #201

Merged
sam merged 1 commits from renovate/github.com-quic-go-quic-go-0.x into master 2023-06-21 18:58:40 +00:00
Collaborator

This PR contains the following updates:

Package Type Update Change
github.com/quic-go/quic-go require minor v0.35.1 -> v0.36.0

Release Notes

quic-go/quic-go

v0.36.0

Compare Source

Generic Segmentation Offload (GSO)

This release enables GSO (Generic Segmentation Offload) in the send path, drastically increasing the packet send rate. Without GSO, quic-go had to use a single (sendmsg) syscall for every UDP datagram sent. GSO allows us to pass one giant (up to 64k) datagram to the sendmsg syscall, and have the kernel chop it into MTU sized (~1300 bytes) datagrams before sending them out on the wire. For more details on syscall optimizations, CloudFlare published an excellent blog post about this a while ago. GSO is currently only available on Linux (and with kernels >4.18).

Users who are using the same net.PacketConn for QUIC and to send out non-QUIC packets now need to call the newly introduced OptimizeConn function before passing the connection to the Transport. Otherwise, calls to WriteTo will fail after GSO support was enabled. Users who are not using the same net.PacketConn in this way don't need to change anything.

We also continued our effort to further reduce allocations during data transfers (#​3526). Work on improving performance even further will continue in future releases.

Other Notable Changes

  • http3: The server now returns http.ErrServerClosed instead of quic.ErrServerClosed (#​3900)
  • quic-go now correctly deals with super-short idle timeouts (#​3909)
  • uint62 overflows are now correctly handled in the Config (#​3866)
  • only run DPLPMTUD (RFC 8899) on connections that support setting the DF bit (#​3879)
  • switch to the packet number length derivation logic described in the RFC (#​3885)
  • fix panics when closing an uninitialized Transport (#​3908)

Full Changelog

New Contributors

Full Changelog: https://github.com/quic-go/quic-go/compare/v0.35.1...v0.36.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [github.com/quic-go/quic-go](https://github.com/quic-go/quic-go) | require | minor | `v0.35.1` -> `v0.36.0` | --- ### Release Notes <details> <summary>quic-go/quic-go</summary> ### [`v0.36.0`](https://github.com/quic-go/quic-go/releases/tag/v0.36.0) [Compare Source](https://github.com/quic-go/quic-go/compare/v0.35.1...v0.36.0) #### Generic Segmentation Offload (GSO) This release enables GSO (Generic Segmentation Offload) in the send path, drastically increasing the packet send rate. Without GSO, quic-go had to use a single (sendmsg) syscall for every UDP datagram sent. GSO allows us to pass one giant (up to 64k) datagram to the sendmsg syscall, and have the kernel chop it into MTU sized (~1300 bytes) datagrams before sending them out on the wire. For more details on syscall optimizations, CloudFlare published an [excellent blog post](https://blog.cloudflare.com/accelerating-udp-packet-transmission-for-quic/) about this a while ago. GSO is currently only available on Linux (and with kernels >4.18). Users who are using the same `net.PacketConn` for QUIC and to send out non-QUIC packets now need to call the newly introduced `OptimizeConn` function before passing the connection to the `Transport`. Otherwise, calls to `WriteTo` will fail after GSO support was enabled. Users who are not using the same `net.PacketConn` in this way don't need to change anything. We also continued our effort to further reduce allocations during data transfers ([#&#8203;3526](https://github.com/quic-go/quic-go/issues/3526)). Work on improving performance even further will continue in future releases. #### Other Notable Changes - http3: The server now returns http.ErrServerClosed instead of quic.ErrServerClosed ([#&#8203;3900](https://github.com/quic-go/quic-go/issues/3900)) - quic-go now correctly deals with super-short idle timeouts ([#&#8203;3909](https://github.com/quic-go/quic-go/issues/3909)) - uint62 overflows are now correctly handled in the Config ([#&#8203;3866](https://github.com/quic-go/quic-go/issues/3866)) - only run DPLPMTUD (RFC 8899) on connections that support setting the DF bit ([#&#8203;3879](https://github.com/quic-go/quic-go/issues/3879)) - switch to the packet number length derivation logic described in the RFC ([#&#8203;3885](https://github.com/quic-go/quic-go/issues/3885)) - fix panics when closing an uninitialized Transport ([#&#8203;3908](https://github.com/quic-go/quic-go/issues/3908)) #### Full Changelog - use a ring buffer in the framer by [@&#8203;Glonee](https://github.com/Glonee) in https://github.com/quic-go/quic-go/pull/3857 - update Ginkgo to v2.9.5 and Gomega to v1.27.6 by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3845 - fix flaky client test by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3834 - ackhandler: simplify sentPacketHandler.SentPacket by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3847 - readme: restructure RFC section, add QUIC v2 (RFC 9369) by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3871 - remove stray print statement in datagram test by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3828 - ci: fix ordering of error output of the cross compilation workflow by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3809 - githooks: exclude deleted files from checks by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3864 - receive stream: put back the buffer for the last STREAM frame by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3832 - config: handle overflows of stream and flow control limits by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3866 - improve documentation of the Transport and the dial and listen functions by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3875 - don't use closures for passing OnLost and OnAcked STREAM frame callbacks by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3833 - use ackhandler.Frame directly, not as a pointer, remove its sync.Pool by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3835 - only run DPLPMTUD if the connection can send packets with the DF bit set by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3879 - use a single ACK frame in the receive path by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3878 - use the same ACK frame struct in the send path, remove ACK frame pool by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3831 - use GSO by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3808 - ci: run linter on all supported platforms by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3816 - packer: reduce number of calls to time.Now() when packing packets by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3815 - pass around receivedPacket as struct instead of as pointer by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3823 - pass the current timestamp to the pacer instead of calling time.Now() by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3824 - embed packetInfo in receivedPacket struct, use netip.Addr by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3881 - ci: run integration tests for all QUIC versions, even if steps failed by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3882 - ackhandler: apply logic from RFC 9000 to derive packet number length by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3885 - ackhandler: use a slice to keep track of sent packets by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3841 - ackhandler: don't log / trace skipped packets when declaring them lost by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3887 - ackhandler: be explicit about skipping packet numbers by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3886 - ackhandler: use a frame handler interface for OnAcked / OnLost of all frame types by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3888 - ackhandler: unexport the packet struct by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3889 - frame fuzzer: handle frames one by one by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3884 - docs: improve doc comments for the ConnectionState fields by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3901 - Respect minimum idle timeout of 3 PTOs by [@&#8203;birneee](https://github.com/birneee) in https://github.com/quic-go/quic-go/pull/3909 - wire: switch to crypto/rand for greased transport parameter generation by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3904 - docs: add detailed description of the quic package by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3902 - http3: return http.ErrServerClosed instead of quic.ErrServerClosed by [@&#8203;jfgiorgi](https://github.com/jfgiorgi) in https://github.com/quic-go/quic-go/pull/3900 - check for uninitialized fields when closing the Transport by [@&#8203;kelmenhorst](https://github.com/kelmenhorst) in https://github.com/quic-go/quic-go/pull/3908 - docs: improve documentation of OptimizeConn by [@&#8203;marten-seemann](https://github.com/marten-seemann) in https://github.com/quic-go/quic-go/pull/3910 #### New Contributors - [@&#8203;kelmenhorst](https://github.com/kelmenhorst) made their first contribution in https://github.com/quic-go/quic-go/pull/3908 **Full Changelog**: https://github.com/quic-go/quic-go/compare/v0.35.1...v0.36.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43MS4xIiwidXBkYXRlZEluVmVyIjoiMzUuNzEuMSIsInRhcmdldEJyYW5jaCI6Im1hc3RlciJ9-->
renovate-bot added 1 commit 2023-06-21 11:00:32 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
3dac7fc357
fix(deps): update module github.com/quic-go/quic-go to v0.36.0
sam approved these changes 2023-06-21 18:58:04 +00:00
sam merged commit 322345a758 into master 2023-06-21 18:58:40 +00:00
sam deleted branch renovate/github.com-quic-go-quic-go-0.x 2023-06-21 18:58:40 +00:00
Sign in to join this conversation.
No description provided.