MsQuic v2.4.1
Pre-release
Pre-release
What's Changed
Improvements
- Support for additional Linux versions
- Leverage FC for packet receive queue
- Add QUIC_PERF_COUNTER_CONN_LOAD_REJECT counter
- Support for Multi-Receive API
- Support Priority API hint for work
- Various test and fuzzing improvements
- Lots of build, test, perf and packaging automation updates
- Several updates to documentation, including a threat model
- Improved WPA plugin packaging
Fixes
- Fixes possible DISPATCH send inline issue
- Don't send client CONNECTION_CLOSE on 1-RTT before handshake completion
- Fix Posix QuicAddrToString
- Don't do full drain on chunks containing future buffered data
- Convert application close frame to transport close frame during handshake
- Uninitialize LossDetection earlier to cleanup Datagram frame
- Various flaky test fixes
Pull Requests
- Update Minor Version to v2.4 in main by @nibanks in #4086
- Add Fedora 39 to OneBranch.Publish.yml by @sillyotter in #4095
- Add v2.3 to Down Level Tests by @nibanks in #4094
- Improvements for netperf by @nibanks in #4097
- Refactor queue limit by @nibanks in #4098
- Fix XDP for netperf by @nibanks in #4099
- Fix missing headers in NuGet packaging script by @danklmn in #4103
- Bigger printf-Style Log Buffer by @nibanks in #4104
- Persist more data for intermdiary JSON files + Add hps collection by @ProjectsByJackHe in #4112
- Another Try at Fixing the Long Event by @nibanks in #4105
- Fix Deployment Docs Link by @nibanks in #4113
- More Connection Statistics for netperf by @nibanks in #4114
- Fix Possible DISPATCH_SEND Inline Issue by @nibanks in #4115
- Use Environment in secnetperf Output by @nibanks in #4117
- Default to Latest Build Tools on Windows by @nibanks in #4116
- Fixes to Support qtip in netperf by @nibanks in #4100
- use cred to make remote pwsh session by @ProjectsByJackHe in #4118
- New windows docker image for Onebranch by @csujedihy in #4119
- Remove TCP-specific Cleanup Stuff by @nibanks in #4122
- Fix Cancel On Loss Test's Race Condition by @nibanks in #4121
- Update xdp.json to 1.0.1 by @mtfriesen in #4130
- Fix overflow in winkernel CxPlatEventWaitWithTimeout by @nigriMSFT in #4129
- Collect Get-NetView Diagnostics for netperf by @nibanks in #4127
- Fix Incorrect Test Comparison by @nibanks in #4131
- Limit the scope of metadata events in MsQuic.wprp by @csujedihy in #4133
- Update XDP Submodule by @nibanks in #4134
- Add QUIC_PERF_COUNTER_CONN_LOAD_REJECT counter. by @rzikm in #4120
- Add a Threat Model doc by @nibanks in #4135
- Another Fix for Perf Counters Test by @nibanks in #4137
- Fix Down Level Tests by @nibanks in #4136
- Improve/Expand Down Level Test Coverage by @nibanks in #4139
- Remove Invalid Assert by @nibanks in #4140
- Add perf merge events back by @csujedihy in #4149
- Don't send client CONNECTION_CLOSE on 1-RTT before handshake completion. by @rzikm in #4145
- Fix Get-NetView Execution by @nibanks in #4151
- netperf YAML Improvements by @nibanks in #4152
- Unify data storage by @ProjectsByJackHe in #4148
- Process Full Latency Output and Encode in Json by @nibanks in #4157
- Enable dynamic environment by @ProjectsByJackHe in #4158
- Threat Model Text Improvements by @nibanks in #4161
- Add a run date column for the test runs by @ProjectsByJackHe in #4160
- Cache all metadata we need to unblock JSON refactor by @ProjectsByJackHe in #4163
- Add regression detection mechansims to the secnetperf script by @ProjectsByJackHe in #4167
- Cleanup dead code by @ProjectsByJackHe in #4170
- Receive Buffer Refactoring by @nibanks in #4042
- Unrestricted SecNetPerf Environment by @nibanks in #4175
- Generate results with regression information. by @ProjectsByJackHe in #4178
- Update documentation on NEW_CONNECTION_INFO::ServerName by @anrossi in #4179
- Support Multiple Pending Receives by @nibanks in #4177
- Fuzz Handshake packet by @gaurav2699 in #4074
- Fix Verify Check to Account for Race Conditions by @nibanks in #4187
- Enable SPGO for OneBranch Builds by @nibanks in #4189
- Update OneBranch build docker image by @csujedihy in #4190
- Removed Unused Cert Sign Function by @nibanks in #4196
- Implement watermark idea (reopen PR) by @ProjectsByJackHe in #4193
- Fix CodeCoverage Upload by @nibanks in #4188
- Skip Unit Tests in Code Coverage by @nibanks in #4199
- Fix Posix QuicAddrToString by @nibanks in #4197
- Move Code Coverage to OpenSSL by @nibanks in #4206
- Persist BestResult / BestResultCommit / Baseline for all results, regardless of regression. by @ProjectsByJackHe in #4201
- setup container env for linux xdp by @ami-GS in #3854
- Fix Publish of Cross-Compile Docker Image Tag by @nibanks in #4209
- Work around fpm dependencies for ubuntu 20.04 by @csujedihy in #4211
- Add dep for building xdp prog by @ami-GS in #4212
- Support Native Compiler in OneBranch Builds by @nibanks in #4217
- Add logic to remove any logging residue. by @ProjectsByJackHe in #4222
- Log.ps1 should remove AppData ETL buildup by @ProjectsByJackHe in #4223
- Implement workaround for log.ps1 not working on Lab Linux by @ProjectsByJackHe in #4224
- Fix pkgconfig setting to link with pkg-config by @ami-GS in #4225
- Fix pkg-config for x86 by @ami-GS in #4226
- Fix Bug in SpinQuic Around Receive Complete by @nibanks in #4231
- Revert AppData removal in log.ps1 by @ProjectsByJackHe in #4232
- Don't do full drain on chunks containing future buffered data by @rzikm in #4215
- update dependency for libxdp/libbpf by @ami-GS in #4234
- Fix Stream Recv Behavior by @nibanks in #4235
- Revert "update dependency for libxdp/libbpf" by @ami-GS in #4236
- Convert application close frame to transport close frame during handshake. by @rzikm in #4169
- Update SpinQuic to Validate Bytes in Stream Receive aren't Corrupted by @nibanks in #4237
- docker multistage build for xdp support by @ami-GS in #4238
- add memory alignment for ARM32 by @ami-GS in #4208
- Fix libc6-dev-i386 to install cause of corruption by @ami-GS in #4246
- Fix for a deadlock discovered in 4169 by @rzikm in #4245
- CodeQL Classification by @nibanks in #4247
- Cpestano/bug fix relative paths by @cpestano-m in #4248
- Fix a Few CodeQL Warnings by @nibanks in #4250
- Fix a Test Cleanup Race Condition by @nibanks in #4255
- Fix Order of TCP Accept and Receive Operations by @nibanks in #4256
- Linux XDP support by @ami-GS in #3849
- Drop Nth Packet Test by @nibanks in #4259
- Adds retry logic to creating Secnetperf remote powershell sessions by @ProjectsByJackHe in #4265
- Package WPA Plugin by @nibanks in #4273
- Enable secnetperf with xdp on azure VM by @ami-GS in #4262
- Debugger Extension Fixes & Improvements by @nibanks in #4281
- Remove Unnecessary Nuget Config File by @nibanks in #4282
- Fix azure pipeline to newer image by @ami-GS in #4283
- Secnet perf to set LD_LIBRARY_PATH for sudo by @ami-GS in #4290
- Disable Linux XDP HPS by @nibanks in #4292
- Fix broken build on Alpine by @ManickaP in #4264
- Fix Tx to retry sending by @ami-GS in #4278
- Fix memory leak in spinquic by @ami-GS in #4300
- lock tx/rx/cq/fq for multi thread (multi Connection) by @ami-GS in #4291
- Fix azure pipeline build for linux xdp by @ami-GS in #4303
- fix: buffer overflow in quic_trace by @qzhuyan in #4305
- Uninitialize LossDetection earlier to cleanup Datagram frame by @ami-GS in #4316
- Use -UseXdp for github pipeline by @ami-GS in #4317
- show warning prompt for installing Linux XDP deps by @ami-GS in #4302
- block installing Linux XDP dependencies unless setting -UseXdp by @ami-GS in #4327
- Minor Abstract Update by @nibanks in #4331
- QuicTestValidateConnectionEvents3 fix to use duoNic with normal socket by @ami-GS in #4310
- Fix HPS test for Linux xdp by @ami-GS in #4298
- Retry flaky test by @ami-GS in #4332
- add ubuntu24.04 Dockerfile by @ami-GS in #4339
- Update Dockerfile for xdp and cross compile by @ami-GS in #4336
- Update Docker image to fix ubuntu22 test runtime issue by @ami-GS in #4344
- Fix QTIP Config in Test YAML by @nibanks in #4346
- Install Perl on Windows via WinGet by @anrossi in #4348
- Support Priority Work on Connections by @nibanks in #4279
- Fix test log path sanitation by @anrossi in #4352
- Add infrastructure to enable 2-machine network testing on 1ES Azure pools. by @ProjectsByJackHe in #4364
- Fix Linux XDP Merge Conflicts Properly by @ProjectsByJackHe in #4369
- Stream Multi Receive implementation by @ami-GS in #4383
- Test on Ubuntu 24.04 GitHub Images by @nibanks in #4306
- Azure pipeline fix Syntax and publisher by @ami-GS in #4396
- Document troubleshooting of packets using wireshark by @danieldspx in #4391
- Update OneBranch build docker tag by @csujedihy in #4404
- Publish Ubuntu 24.04 by @ami-GS in #4413
- Delete Old, Unused Files by @nibanks in #4411
- QTIP case only delete raw socket by @ami-GS in #4387
- Drop xdp support on Ubuntu22.04 by @ami-GS in #4422
- add xdp dependencies for publish command by @ami-GS in #4424
- Add Priority Connection Queue to Worker by @nibanks in #4386
New Contributors
- @sillyotter made their first contribution in #4095
- @danklmn made their first contribution in #4103
- @cpestano-m made their first contribution in #4248
- @danieldspx made their first contribution in #4391
Full Changelog: v2.3.0...v2.4.1