* Fix OpenSSL failure.
* Fix CID allocation issue. Allow MsQuicOpen to fail.
* Fix UDP clean up on failure on Windows.
* Kill client connection when no DestCid is available.
Co-authored-by: Nick Banks <nibanks@microsoft.com>
An earlier PR switched these to Full.Verbose. User mode was also switched, but reverted back in a later PR. This basically doubles the time for tests, and isn't usually necessary
* Use the endpoints of the current key phase to decide old or new encryption keys
A bug was found while working on a separate PR that would cause the packets to be decoded incorrect upon key update. The root cause ended up being our method for choosing old or new keys when the opposite key phase was detected was incorrect. This PR updates the logic for selecting the keys to match 6.5 of the QUIC TLS spec.
The correct method uses the endpoints of the packets received on the current key phase to decide which keys to use.
* A few failure fixes, along with a spelling comment
* Fix key update
* Add telemetry asserts
* Remove unable to decrypt check
* Drop packets that would use old keys if we have no old keys
* Remove telemetry assert
* Don't do anything on the middle type packet
* Revert "Drop packets that would use old keys if we have no old keys"
This reverts commit 76cb64079d.
* Only log if lower range is triggered
* Only use the start of the range, also update test
* Fix some comments
* Add comments for test update
* Add random loss key update tests
* Missing break
* Formatting
* Fix double new line
Linux has a lot of performance fluctuation, and we don't currently have the time or knowledge to work on this. Its a future goal, but for now just increase the thresholds
* Average the last 5 results of runs for performance comparison
That way a jump from low to high doesn't break everything
* Fix a few variables
* 1 more fix
* Fix objects
* Make number of commits a variable
* Update GetValue function to check for full string, and validate length
Previously, -requests: would match a check for
equest as the strnicmp just checks for length. This changes ensures that the character after the check is a :, and also that the string length for the argument is acceptable
* Add a separate function to grab a flag
* Fix a few missing flags
* Fix pfx path
* Update SAL annotation for ConnectionStart
_In_reads_opt_z_(n) states either optional or reads n bytes. _In_reads_or_z_opt(n) states either optional, reads n, or reads to null terminator if less then n. This is the correct annotation for server name
* Fixed one change
* Enhance performance logging capabilities
Use the existing log scripts to perform logging, allow perf pipeline to log any supported log profile
* Fixup log profile
* Fix script root
* Fix cleanup
* A bit more logging, mainly to figure out why robocopy failed. And fix local
* Fix remote
* Another client and server fix
* Fix runs
* Disable prints
* Extra new line..
* 1 more log fix