Граф коммитов

219 Коммитов

Автор SHA1 Сообщение Дата
talregev a275d74a9f
export platform (#4574) 2024-11-07 14:52:39 +00:00
Maxim Ivanov ae542fafa4
Delegate build environment configuration with QUIC_EXTERNAL_TOOLCHAIN (#4625)
Well managed CMake build environments make use of CMAKE_TOOLCHAIN_FILE
to configure build environment such as include/lib search paths,
system libraries, build flags, etc.

This change introduces QUIC_EXTERNAL_TOOLCHAIN build option, which
when enabled stops MSQuic CMake scripts from attempting to
do CMake toolchain job.

QUIC_EXTERNAL_TOOLCHAIN defaults to OFF to preserve original behaviour.
2024-10-25 07:44:09 -04:00
Maxim Ivanov 637b164343
Locate `mc.exe` at configuration time (#4623)
The `find_program()` command is now executed during the configuration
phase to locate `mc.exe` in predefined locations. This approach allows
the CMake toolchain to influence the search without modifying the `%PATH%`.

If user sets CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH=FALSE, then
honor it and fail at configuration time if not found. Otherwise
expect %PATH% to contain mc.exe at build time, which is the case
when VS generator is used.
2024-10-24 10:52:48 +00:00
Nick Banks 376265a19d
Better Support for Disabling Pool Allocations (#4539) 2024-09-09 06:53:19 -07:00
Nick Banks 8b86a367c0 Update Minor Version after release/2.4 Fork 2024-08-05 08:31:12 -04:00
Nick Banks 76d315000a
Test on Ubuntu 24.04 GitHub Images (#4306)
* Test on Ubuntu 24.04 GitHub Images

* Dockerfile

* more ubuntu24.04 on yml files

* remove Dockerfile

* update reuse image

* Remove misc-include-cleaner build warnings

* More codecheck ignores

* Missed one

* Fix potential buffer overflow

* rollback fix and ignore the error

* Windows to avoid touching GCC pragma

* the warning should be from gcc13

* static_assert expects its string to be normal

* Revert "static_assert expects its string to be normal"

This reverts commit 73ac2579d1.

* add supress option for clang

* clang version

* fix openssl check issue

* fix yaml

* exclude android

* remove Sanitize for xdp

* support azure pipeline

---------

Co-authored-by: ami-GS <1991.daiki@gmail.com>
2024-07-08 15:01:16 -07:00
Marie Píchová 057677627a
Fix broken build on Alpine (#4264) 2024-05-14 12:48:28 -04:00
Daiki AMINAKA 5052f34623
Linux XDP support (#3849)
* built on Linux

* ne files

* renaming

* split socket funcs

* refactor from win

* build from linux

* more on linux

* rename and generate

* use libbpf

* oops

* rebase and add new member

* unify CxPlatTryAddSocket

* pass datapath tests

* integrate Ubuntu 22.04 default libbpf v0.5.0

* temporally

* multithread. all test passed

* secnetperf works

* update build scripts

* nit update

* add duonic installer script for linux

* add xdp-tools directory

* cleanup

* fix Windows build

* fix windows xdp build

* add Github action

* nit fix

* fix dependencies for Install-DuoNic

* add udpate

* add linux xdp dependencies to docker file

* fix installation script

* initialize submodules/xdp-tools recursively

* temporal fix

* make XDP optional

* use ShutdownSqe

* fix yaml files

* remove gcc-multilib and include explicitly

* fix tcp socket to allocate raw

* install xdp deps for linux

* libxdp bug workaround

* oops

* fix idempotency and add one more dep

* TODO: remove this

* enable x86_64 and Ubuntu22.04

* fix type mismatch of uint16_t and UINT16

* add aarch64

* fix

* use flag

* change arch check and file copy

* fix static build and android

* update clog

* clog fix

* fix Clang link issue

* fix CodeCheck and prepare-machine for build

* disable ANDROID for xdp

* fix clog

* Support XDP from 'test.ps1 -UseXdp'

* link libxdp from artifact

* fix dependency

* fix dep

* update xdp-tools to v1.4.2

* fix runtime deps

* fix deps

* Fix Umem addressing and make Rx path async to efficiently fill FQ

* fix CodeQL analyze deps

* fix Analyze

* fix analyze

* linux xdp to use sudo

* change 'if' order

* path fix?

* sudo pwsh

* add retry for xsk_socket__create when returns -EBUSY

* cleanup xdp program before running

* Fix cargo build --all

* fix cargo test dynamic linking

* remove Sanitize for initial commit

* generate artifact

* fix yml syntax issue

* fix CodeQl Analysys

* forget to add Partition declaration

* Use Rundown to wait for deleting socket before binding next

* fix Rundown for all xdp socket

* Fix EBUSY issue when binding xdp socket

* explictly disable port sharing test

* refactoring and cleanup

* fix pipeline. else for normal linux socket

* Fix cargo linking issue?

* disable xdp for cargo build

* fix codeql

* rollback build.rs

* fix package runtime link and codeql

* wrap packet dump function to DEBUG macro

* check dependency

* another check

* leave only LD_LIBRARY_PATH

* iterate attach mode

* fix codeql

* add IP address check in XDP prog

* break is enough & avoid compiler bug

* fix CodeCheck

* Fix use of RxHeadroom

* fix umem leak when failed to initialize

* use pool alloc for Interface

* fix ipv4 check

* remove workaround

* cleanup. from snake case to pascal case

* fix clog

* try ubuntu20.04 and enable stress test

* few fix of stress test yml

* integrate package libxdp linking

* fix RX parse error case

* disable ubuntu20.04

* remove 2 env variable to run

* add document

* fix ForBuild && clog

* stop installing deps on Ubuntu 20.04

* fix build

* fix libc6-dev-i386 side effect

* Add one more dependency (libzstd) for static build

* new line fix

* always install libc6-dev-i386

* fix install order

* fix CMakeLists.txt to cover qns.Dockerfile case

* remove env var dep, update doc

* fix stress.yml

* add env var for xdp knob and fix stress

* fix stress

* update clog

* update doc

* Fix doc appearance and words

* add UseXdp

* Update docs/BUILD.md

Co-authored-by: Nick Banks <nibanks@microsoft.com>

* Update docs/BUILD.md

Co-authored-by: Nick Banks <nibanks@microsoft.com>

* use SKB mode for now

* move Linux XDP logging to TSG.md

* stop warning print from libxdp/libbpf

* move CxPlat definitions to each plat

* initial commit

* common xdp utilities

* move sudo inside scripts

* fix comments

* fix clog

* fix ifdef syntax

* fix annotations

* all arch to build dataptah_xplat.c

* fix mac build

* fix lisence of ebpf prog

* fix spin.ps1 to propagate parameter

* Ether and IPv6 was not set appropriately

* Update docs/TSG.md

* remove warning supression

* remove BuildLibXdpFromSource

---------

Co-authored-by: ami-GS <azureuser@node1.s4l0gsbs5l2efgb53yvjusshdg.xx.internal.cloudapp.net>
Co-authored-by: Nick Banks <nibanks@microsoft.com>
2024-04-25 13:03:44 -07:00
Nick Banks 151b8e1952
Default to Latest Build Tools on Windows (#4116) 2024-02-06 16:30:37 -05:00
Nick Banks 9fdb7e57cc
More Connection Statistics for netperf (#4114) 2024-02-06 11:21:25 -08:00
Nick Banks 7c5eba61df
Update Minor Version to v2.4 in main (#4086) 2024-01-26 17:46:57 -05:00
Daiki AMINAKA ae3db5cd99
Unify datapath (#3819)
* Remove QUIC_USE_RAW_DATAPATH (logic only)

* move logic to core side

* remove QUIC_USE_RAW_DATAPATH from test

* fix googletest version and add last line

* replace from flag to function call

* fix build error

* fix build/test issues

* implement CxPlatResolveRoute for normal socket

* add Getter of Datapath feature

* fix build issues

* adopt comments

* adopt comment and fix kernel build error

* fix kernel build error

* more fix for kernel build

* Unify datapath

* DatapathTest partially work

* just unify build of both normal socket and xdp

* SOCKET: RAW{...Socket{BASE{addr}}}, DATAPATH: XDP{RAW{DATAPATH*}} <-> DATAPATH{RAW*, BASE{callbacks}}

* tmp

* add preview_feature flag back

* refactoring CxPlatIsRouteReady

* fix linux code check

* adjust func names

* fix comments

* fix IsRouteReady and clean ifdef for _KERNEL_MODE

* kernel build error

* Set RouteResolved for Rx

* fix more tests

* move global definition in header file

* kernel to avoid calling helper function

* move QuitTestIsFeatureSupported after RegistrationOpen

* supress warning

* remove QuitTestIsFeatureSupported from quic_gtest as it doesn't work as expected by dependency of MsQuicLib.Datapath

* remove raw feature check as much as possible

* ifdef for UseQTIP visibility

* tmp

* tmp

* fix merge side effects

* all tests passed

* fix tests in msquicplatformtest

* fix tcp with duonic

* update clog

* use xdp v1

* WIP cleanup

* refactoring CXPLAT_SEND_DATA

* remove mangling and function pointer

* remove unnecessary change in test

* fix comments

* cleanup

* move logic to _winuser

* use dummy raw datapath for uwp build

* dummy raw

* remove double free

* fix comments

* update dummy func

* fix perf run for TCP

* partially fix comments

* fix build error for uwp and remove duplicate variable in raw socket

* set socket before start receiving

* add dummy to clog

* add clog files for dummy

* fix dependency for cargo on windows

* remove dummy clog files

* remove AuxSocket

* add pwsh for cargo setup

* clog fix

* add include dir for cargo

* [WIP] fix cargo and qtip

* fix clog, qtip, rename private raw functions and cleanup

* experiment to avoid write overflow

* use Config->Route->DatapathType for data allocation

* more strict if conditions

* fix comments

* fix uwp build

* fix clog and artifact name

* fix back xdp dependency

* Simply build automation

* missed one

* apply unification to linux and remove QUIC_USE_XDP flag

* move types to any platform

* add abstruction layer for linux

* add clog

* add clog dependencies

* fix CodeCheck issues

* remove xdp specific artifact dir name and always install xdp deps

* add docs

* More Fixes for XDP in automation (mostly OneBranch)

---------

Co-authored-by: Nick Banks <nibanks@microsoft.com>
2023-09-23 12:45:17 -07:00
Daiki AMINAKA 91a0e0aca2
Remove QUIC_USE_RAW_DATAPATH macro (#3781)
* Remove QUIC_USE_RAW_DATAPATH (logic only)

* move logic to core side

* remove QUIC_USE_RAW_DATAPATH from test

* fix googletest version and add last line

* replace from flag to function call

* fix build error

* fix build/test issues

* implement CxPlatResolveRoute for normal socket

* add Getter of Datapath feature

* fix build issues

* adopt comments

* adopt comment and fix kernel build error

* fix kernel build error

* more fix for kernel build

* add preview_feature flag back

* refactoring CxPlatIsRouteReady

* fix linux code check

* fix comments

* fix IsRouteReady and clean ifdef for _KERNEL_MODE

* kernel build error

* Set RouteResolved for Rx

* fix more tests

* move global definition in header file

* kernel to avoid calling helper function

* move QuitTestIsFeatureSupported after RegistrationOpen

* supress warning

* remove QuitTestIsFeatureSupported from quic_gtest as it doesn't work as expected by dependency of MsQuicLib.Datapath

* remove raw feature check as much as possible

* ifdef for UseQTIP visibility

* Couple nits and cleanup

---------

Co-authored-by: Nick Banks <nibanks@microsoft.com>
2023-08-08 13:28:29 -07:00
Yi Huang 96ae1426d8
Migrate Windows Prerelease tests to 1ES hosted pool (#3732)
Use 1ES pool for windows prerelease tests
2023-07-05 12:08:43 -07:00
Yi Huang 71e348d3fc
Fix locating numa.h (#3620) 2023-05-10 12:02:13 -07:00
Nick Banks 6fb2ddaaf5
Update main to 2.3 (#3572) 2023-04-18 20:00:13 +00:00
Nick Banks 6c8f9e2913
Move BVTs to GitHub (#3451) 2023-02-21 08:35:10 -05:00
Tomas Weinfurt 38569f0091
make chacha optional on Linux (#3423) 2023-02-15 13:45:23 +00:00
Nick Banks d25328d0a0
Improve libnuma Dependency Discovery (#3415) 2023-02-10 17:32:48 +00:00
Daiki AMINAKA 4d61c32b64
Fix unknown callgraph issue (#3407)
* Fix unknown callgraph issue

* move to Release

* add for Debug

* Set option to RelWithDebInfo
2023-02-08 16:24:15 -08:00
Nick Banks 2e2b9c18ad
Onboard Tests for OpenSSL 3 (#3388) 2023-02-02 13:43:49 -05:00
Tomas Weinfurt 0bf9e098bc
Add support for OpenSSL 3 as alternative TLS (#3387) 2023-02-01 09:30:43 -05:00
Jianye Chen d415d01a2f
build: fix onebranch pipelines (#3360)
changed base image to ltsc2019/vse2019
installed additional SDK to the image
added pipeline parameter to specify the target branch

Signed-off-by: Jianye Chen <jianyechen@microsoft.com>

Signed-off-by: Jianye Chen <jianyechen@microsoft.com>
2023-01-13 20:38:19 -05:00
Jianye Chen 3bbbb09d2e
gamecore_console: fix build with 10.0.20348.0 (#6) (#3348)
updated min. SDK to 10.0.20348.0 for SetThreadIdealProcessor

Signed-off-by: Jianye Chen <jianyechen@microsoft.com>

Signed-off-by: Jianye Chen <jianyechen@microsoft.com>
2023-01-11 19:56:35 -05:00
Jianye Chen 1a1233595b
gamecore_console: default to latest Windows SDK (#3343)
Signed-off-by: Jianye Chen <jianyechen@microsoft.com>
2023-01-11 07:39:02 -05:00
Nick Banks 032a9f2276
Linux Receive Path Improvements (#3304) 2022-12-19 18:53:43 -05:00
Nick Banks 9ea74b716f
Posix NUMA Node Support (#3297) 2022-12-18 17:40:33 -05:00
Nick Banks fbaba2931f
Some MTU Test Improvements (#3291) 2022-12-14 13:33:24 -05:00
Michael Friesen 44dc466491
Continue teasing apart receive completion path (#3286) 2022-12-14 13:29:21 -05:00
Michael Friesen ac8d5c2dcd
Simplify winuser SQE->CQE mapping and remove IO completion keys (#3282)
* simplify winuser SQE->CQE mapping and remove IO completion keys

* add more diagnostics for XDP io completion

* add some more instrumentation for IO completions

* fix bad cmake syntax

* add stronger IO completion verification

* integrate main with local changes
2022-12-13 11:59:09 -05:00
jbevemyr a1762b1df4
Added support for ca certificate file setting in SSL_CTX. (#3132)
* Added support for ca certificate file setting in SSL_CTX.

* Moved CaCertificateFile struct element to last in struct for backward compatability, added QUIC_CREDENTIAL_FLAGS to indicate that it is set.

* Code cleanup.

* Updated pulic API, move test to top.

* Added support for creating a CA and issuing client or server certificates from the CA certificate + modified a couple of tests to use root certificate and properly generated client certificate.

* Added const.

* Fixed parameter annotations and renamed helper function.

* Added some more comments.

* Added new flag QUIC_CREDENTIAL_FLAG_SET_CA_CERTIFICATE_FILE to PlatformSpecificFlagsOpenSsl test.

* Comment added to better explain the ca cert swap code.

* Reworked ca cert file setting in parameter.

* Added missing compiler directive.

* Removed comment that caused validation function to complain. Fixed syntax error in code not used by openssl version.

* Fixed memory leak and disabled a couple of tests that cannot run when schannel is used.

* Fixed various minor whitespace issues and an ifdef test.

* Restored original whitespacing.

* Added some docs and defined test macro.

* Only run CA certificate tests when using openssl and not on WIN32

* Added some comment to satisfy code scanning tool part of test chain.

Co-authored-by: Johan Bevemyr <jb@avassa.io>
2022-11-16 07:54:28 -05:00
Lars Eggert 52144efbc6
Add option for some crude tracing on `stdout` (#3164) 2022-10-24 18:19:41 -04:00
Lars Eggert bdcf033475
Fix/suppress some new clang/cppcheck warnings (#3064) 2022-10-17 09:39:56 -04:00
Yi Huang 3d8de92398
Add static crt switch and never use partial crt for debug builds (#3135)
1. Add `-StaticCRT` to allow full static CRT linking.
2. Never apply partial static CRT linking to debug bits.
2022-10-11 15:42:40 -07:00
Nick Banks b7f9e2fbd4
Disable Preview Feature Tests on Official Builds (#3106) 2022-10-04 15:52:55 -04:00
Nick Banks 5b921c9e18
App Controlled Execution Config (#3034) 2022-09-30 17:00:02 -04:00
Nick Banks bf92fd766e
Use Partial Static CRT Linking by Default (#2964) 2022-08-10 13:31:46 -07:00
Michal Strehovský c6e743f675
Make it possible to partially statically link CRT (#2962) 2022-08-10 08:17:53 -04:00
Nick Banks 910325327a
Update main Version to v2.2 (#2948) 2022-08-05 10:59:45 -04:00
Nick Banks 5de511cca9
XDP PGO (#2808) 2022-06-09 08:46:23 -04:00
Anthony Rossi 1050d1bdae
Indicate null/missing client certificate (#2702)
Co-authored-by: Nick Banks <nibanks@microsoft.com>
2022-05-18 16:12:23 -07:00
Nick Banks 506065eda6
Custom PGO Files for Different Configurations (#2722) 2022-05-17 11:33:37 -07:00
Thad House 439bc9ba3e
Fix UWP builds missing storage APIs (#2649) 2022-04-20 16:48:30 +00:00
Thad House c5c5d2797c
Don't enable datapath queued sends when shared ec is enabled (#2539) 2022-03-17 12:26:09 -04:00
Thad House 19f8b40367
Embed git commit hash into binary (#2494) 2022-03-10 07:59:00 -05:00
Thad House ae4d4e92ba
Suppress empty file warning in msvc (#2487) 2022-03-08 15:43:28 -08:00
Thad House d381554ca1
Improve crash dump debugging in CI (#2454) 2022-03-02 09:47:38 -05:00
Thad House b72c6b3e82
Update main to v2.1 (#2453) 2022-03-02 08:03:09 -05:00
Thad House 4f4354d550
Fix PGO directory when running a standalone cmake build (#2439) 2022-02-25 16:01:16 -05:00
Lars Eggert ba6d3ea0a4
Fix/suppress a few more nits (#2423)
* Fix/suppress a few nits found by clang-tidy13 and newer cppcheck versions.

* One more
2022-02-23 16:26:05 -05:00