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

29 Коммитов

Автор SHA1 Сообщение Дата
Daiki AMINAKA 6ead5312d2
Fix HPS test for Linux xdp (#4298)
* increase nofile for sudo. default was 1024

* enable linux XDP HPS test

* use bash instead of pwsh

* use internally pwsh

* try full path for bash

* print stderr to see pipeline specific issue

* use file

* print output

* rollback and ccommentout throw

* print

* set LD_LIBRARY_PATH

* print more

* accelerate

* export

* rollback

* 'Args' should not be used. it become empty

* print parameters

* test

* cleanup

* use limits.conf for ulimit setting
2024-06-04 11:23:01 -07:00
Daiki AMINAKA 4b08a11c99
Enable secnetperf with xdp on azure VM (#4262)
* 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>
2024-05-01 16:42:02 -07: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 fdd15b3d6f
More GitHub Automation Improvements (#3434) 2023-02-15 13:32:22 -08:00
Nick Banks 2e2b9c18ad
Onboard Tests for OpenSSL 3 (#3388) 2023-02-02 13:43:49 -05:00
Anthony Rossi 8e5183f473
Fix logging profile names (#2903) 2022-07-21 18:04:23 -07:00
Anthony Rossi 74c63461d5
Ensure Platform globals are freed on error (#2685)
* Add debug assert that platform globals are NULL

* Fix memory leak when worker fails to allocate. Fixes #2683
2022-07-15 15:20:41 -07:00
Matt Olson 0f13910093
Spinquic job for LoLa (#2623)
Spinquic revealed a synchronization bug: during cleanup, the datapath may be cleaned up before a half-opened connection, which results in a crash when trying to free pending RX packets in the connection's ReceiveQueue. This is fiexed by adding a CXPLAT_DATAPATH::SocketsRundown similar to the one in winuser for the raw datapath.
2022-04-11 15:16:05 -07:00
Thad House d381554ca1
Improve crash dump debugging in CI (#2454) 2022-03-02 09:47:38 -05:00
Thad House d952a9bd93
Add helper script for grabbing build config and artifact directory for local machine (#1650)
* Add helper script for grabbing build config and artifact directory for local machine

* Make script only a single purpose

* Allow empty parameter

* Don't pass a default for platform
2021-06-01 20:30:19 -07:00
Anthony Rossi 1480f5ace8
Fix more SpinQuic random allocation failure bugs (#1541)
* 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>
2021-05-11 00:56:29 -07:00
Anthony Rossi 2084736032
Add support for randomly failing memory allocations to SpinQuic. (#1537)
Add runtime support for enabling random memory allocation failure to SpinQuic. Only available on Debug builds.
2021-05-03 18:28:08 -07:00
Thad House b1940ba5ec
Remove stub TLS (#1411)
* 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.
2021-03-30 14:22:39 -07:00
Thad House 99501f12d7
Run Asan on OpenSSL builds instead of Stub builds (#1399)
* Attempt to run Asan on OpenSSL builds instead of Stub builds

* Fix build

* Fix openssl asan, fix resumption leak

* Properly  fix resumption ticket buffer

* Free Key in CryptTest

* Missed a few other frees

* Async read streams

There is a deadlock that exists in the existing code, which can happen if there is a large stderror write

* Fix leak of openssl session

* Replace stub spinquic with asan openssl spinquic

* Fixup spinquic

Co-authored-by: Nick Banks <nibanks@microsoft.com>
2021-03-30 12:57:19 -07:00
Nick Banks dd4f4ede0f
Remove miTLS (#1398) 2021-03-29 17:21:54 -07:00
Nick Banks d7450bfbd8
Update BVT Task to Fail (#1367) 2021-03-24 10:49:20 -07:00
Thad House 50683f5b39
macOS Support (#1226)
Adds macos support to msquic.

Currently, it builds, and core tests will pass, but many datapath tests will not. This is because the datapath depends on ipv4 and ipv6 dual mode sockets, which have issues on macos. However, we want this merged so it doesn't get 4 months stale again.

The datapath is basically a clone of the epoll datapath, except using kqueue.

Co-authored-by: Max <mxms@me.com>
Co-authored-by: Nick Banks <nibanks@microsoft.com>
Co-authored-by: Lars Eggert <200328+larseggert@users.noreply.github.com>
2021-02-12 10:58:41 -08:00
Nick Banks a35529c2c7
Cleanup Logging Script Args (#699) 2020-08-10 12:37:19 -07:00
Anthony Rossi e6cd704a90
Add Code coverage to Azure Pipelines BVTs (#607)
Collects code coverage on the BVTs and SpinQuic.

Co-authored-by: Nick Banks <nibanks@microsoft.com>
2020-07-22 22:39:05 -07:00
Nick Banks 3e5099d436
Refactors Build Artifacts (#608) 2020-07-17 12:25:51 -07:00
Nick Banks c478799e48
Move All Scripts to Top Level Scripts Folder (#538) 2020-06-22 16:18:26 -07:00
Nick Banks e401501cdb
Test Refactoring and Improvements (#513) 2020-06-17 13:06:34 -07:00
Thad House 63c86ac0fc
Shutdown unregistered connections on worker pool (#483)
This will ensure we don't race manually cleaning up the unregistered connections and work being done on them by the datapath.

Also updates quicspin to loop, allowing the shutdown path to be hit more often.

Should fix #482
2020-06-11 10:26:31 -07:00
Nick Banks 216f0a5970
Normalize Line Endings (#384) 2020-05-12 19:08:05 -07:00
Nick Banks a10d94050a
Fix PowerShell Script Defaults (#365) 2020-05-05 14:26:36 -07:00
Nick Banks 970916f3d1
Per-Platform TLS Defaults in PowerShell Scripts (#353) 2020-05-03 18:06:38 -07:00
Nick Banks 41cf853920
Add Helpers to PowerShell Scripts (#317) 2020-04-13 14:49:45 -07:00
Nick Banks 1be934c83b
Improve SpinQuic Debuggability (#190) 2020-02-27 14:50:45 -08:00
Nick Banks 90bd0f27a8
Move PowerShell Scripts out of Root (#132)
Moving the scripts out of root to make the project look a little cleaner.
2020-02-12 15:27:44 -08:00