* 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>
* show warning for installing Linux XDP deps
* change force flag name
* Fix yml to use ForceXdpInstall
* unify
* try single quote
* remove redundant xdp flag
* fix renux packaging
* enable secnetperf with xdp on azure VM
* remove redundant settings
* move sudo inside script
* cleanup
* add 'sudo' in Invoke-Secnetperf
* cleanup
* Few minor fixes
* Change back
* touch ethtool only when ubuntu-22.04
* cleanup xdpgeneric and remote
* cleanup if xdp is there
* add XDP flag for execution config
* fix for DataPathTest
* remove MSQUIC_ENABLE_XDP flag
* remove Status
* remove local variable
* make FLAG_XDP visible from DataPathTest.cpp
* define preview feature
* fix RebindAddrPadded bug
* make RebindDatapathAddr to duonic dependent
* Use appropriate default values
* rollback
* fix memory leak
---------
Co-authored-by: Ubuntu <daiki@f4-ubuntu22-02.lcaeom4kylsuvmegib5mitghvd.bx.internal.cloudapp.net>
Co-authored-by: Nick Banks <nibanks@microsoft.com>
* 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>
* Add initial static library support
* Revert change to msquic.lttng target
Also adds a missing newline at init.c's EOF
* Add whole static lib archiving support
* Add static build configuration to windows platforms in build.ps1 and
exclude system libs
* Invert build.ps1 switch and add documentation
* Resolve static link issues with repeated definition of QuicTraceRundown
* Add win32 static configurations to the azure pipeline build job lists
* Correctly ignore MSVC runtime libraries and fix documentation
* Passively create the static lib directly if it doesn't exist
In the event that a different output directory is specified, cmake's
generator will generally create the directory if it doesn't exist.
For the static monolith however, we emit the file with link.exe
directly, and this will fail if the parent directory doesn't exist.
* Try fix CI
* Add STATIC target annotation on perflib and testlib
* Reject libs without a valid ARCHIVE_OUTPUT_DIRECTORY path and inject CI
cached binaries
* Try to fix tests
* Force static build of gtest and support statically linked tools
* Remove kernel static build mods and handle MsQuicUnload in atexit
handlers
* Enforce a different means to enforce static builds for gtest artifacts
* Fix interop static
* One more?
* Change static linkage load/unload invocations to lazy lockfree approach
* Re-add exclusion list which was needed for the release build
* Introduce empty.c file and make msquic_static library a physical target
* Add missing InterlockedAnd to advertise the unloading sequence is
complete
* Inline MsQuicOpen to prevent duplicate symbol issues on Windows
* Temp workaround - Just use macro
* One more fix
Co-authored-by: Nick Banks <nibanks@microsoft.com>
* Remove stub TLS
We were only using stub TLS to be compatible with ASAN. Now that OpenSSL and Asan work together, we can remove stub TLS and reduce our TLS scope.
This PR adds cross platform PowerShell (6 or 7) scripts for building, testing and logging. There is still a little left to do before it can be integrated into the Azure Pipeline, but that is the ultimate goal.
One big improvement of the test.ps1 script over calling the test program directly is that it will allow for collecting logs for each individual test case separately. The down side is that it significantly increases the execution time of the tests. I'm still hoping the time can be cut down some how.