Skip to content

Latest commit

 

History

History
65 lines (46 loc) · 2.63 KB

BUILD.md

File metadata and controls

65 lines (46 loc) · 2.63 KB

Building MsQuic

MsQuic uses CMake to generate build files.

Note clone the repo recursively or run git submodule update --init --recursive to get all the submodules.

Building on Windows

Requirements

  • Run mkdir bld && cd bld
  • Run cmake -G "Visual Studio 16 2019" -A x64 ..
  • Run cmake --build . --config RELEASE

Building with OpenSSL

Requirements

TODO - Figure out the correct set of steps.

Running the tests

There is a one time registry setup required before the tests can be run when using SChannel TLS. These registry keys allow QUIC to use TLS 1.3:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" /v DisabledByDefault /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" /v Enabled /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" /v DisabledByDefault /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" /v Enabled /t REG_DWORD /d 1 /f
  • Run ..\artifacts\bin\Release\msquictest.exe

Collecting logs

  • To start a trace, run netsh trace start overwrite=yes report=dis correlation=dis traceFile=quic.etl maxSize=1024 provider={ff15e657-4f26-570e-88ab-0796b258d11c} level=0x5
  • Run the repro.
  • To stop the trace, run netsh trace stop
  • To decode the quic.etl file, run TODO

Building on Linux (or WSL)

  • Install tooling (WSL2 or Ubuntu)
    • sudo apt-get install cmake
    • sudo apt-get install build-essentials
  • Run mkdir bld && cd bld
  • Run cmake -G "Unix Makefiles" ..
  • Run cmake --build . --config RELEASE

Running the tests

  • Run ../artifacts/bin/msquictest

Collecting logs

On Linux, MsQuic uses syslog for logging by default. To view the logs:

  • On WSL, run sudo service rsyslog start to make sure syslog is configured.
  • Optionally, run sudo truncate -s 0 /var/log/syslog to clear out the current log file.
  • Run the repro.
  • You can view the logs from the /var/log/syslog file.