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

64 Коммитов

Автор SHA1 Сообщение Дата
Alan Jowett 0fdf2a5039
Modify bpf2c output to meet the coding standards. (#1061)
* Modify bpf2c to generate code that matches coding style.
Switch file extension of expected code to .c so that it enforces
coding style requirements.

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Fix file-rename in CMakeLists.txt

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Fix bad merge

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Fix line splitting

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-05-05 14:41:13 -06:00
Alan Jowett b262f97825
Add SHA256 hash of ELF file when generating native binary (#1047)
* Add SHA256 hash of ELF file when generating native binary

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Fix CXX17 deprecation warnings

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* Fix build

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Add CXXFLAGS

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Move CXX17 suppresion to top-level

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Fix builds

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Update expected bpf2c output

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Downgrade to LLVM 11 for bpf2c tests

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Revert clang11 in test

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Build sample ELF's with LLVM11

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Additional test cases

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-05-03 07:40:42 -07:00
saxena-anurag dafd950314
Add negative native module tests (#1039)
* add tests, bugfix

* mark tests for Debug only

* fix build failure

* update cmake file

* Apply suggestions from code review

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

* fix cmakelists

* fix build break

* fix typo

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-05-01 16:26:41 -07:00
Alan Jowett 74973a92df
Enable capturing triage dump on test crash (#1009)
* Enable capturing triage dump on test crash

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-04-26 19:42:15 -07:00
Dave Thaler 02212c861c
Use LLVM version 11.0.1 (#1016)
* Use LLVM version 11.0.1

Fixes #962

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Updated expected bpf2c output from LLVM 11

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2022-04-26 15:47:56 -06:00
Alessandro Gario 6a54714ec2
cmake: Add base targets (#882)
Signed-off-by: Alessandro Gario <alessandro.gario@gmail.com>
2022-04-26 05:39:37 -07:00
Alan Jowett 1989d26873
Remove ebpf_verify_program API (#997)
* Remove ebpf_verify_program API

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Remove old test

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Cleanup runners

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Cleanup old artifacts

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-04-25 10:46:22 -06:00
Alan Jowett dc3b3cd2f7
PR feedback (#1000)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-04-23 12:34:20 -06:00
Alan Jowett 96d21a6a74
Add Convert-BpfToNative.ps1 (#994)
* Add script to simplify generating native images from BPF.

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Update test scripts

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Update test scripts

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-04-22 18:13:46 -06:00
Alan Jowett deb8a75192
Simplify setup (#993)
* Simplify setup

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Simplify setup

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Simplify setup

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Simplify setup

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Simplify setup

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Simplify setup

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Simplify setup

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Simplify setup

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-04-22 12:25:56 -06:00
Dave Thaler 69adefb137
More bpftool tests (#986)
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-04-21 10:41:44 -07:00
Shankar Seal ec26f5d273
WFP ALE Flow established callout, tests etc. (#978)
* WFP ALE Flow established callout, tests etc.

* PR Feedback.

* bug fixes.

* PR feedback 2.
2022-04-20 16:48:20 -07:00
Dave Thaler 10e3375d68
Update test scripts (#975)
* Update test scripts

* Make KM runner execute bpftool tests
* Make the run_tests.bat script also execute bpftool tests
* Make deploy-ebpf.ps1 -t copy all files needed for testing

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix test

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix merge error

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-04-20 15:59:17 -07:00
Dave Thaler 5eddf01178
Add initial bpftool tests and another libbpf test (#960)
* Add initial bpftool tests and another libbpf test

And fix various bugs hit by the tests.
This PR only adds a couple of initial tests.
A future PR will add many more tests.

bpftool_tests.exe is meant to be run on a machine with the drivers
installed.  A future PR will add it to the KM test runner in CI/CD.

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix release build

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix test

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix test

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Send stderr to bpf2c_tests log

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Update expected bpf2c output for map.o

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix bpf2c map output

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

Co-authored-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-04-19 16:24:01 -07:00
Dave Thaler b01dea6d55
Fix reply id/length on failure in KM (#950)
* Fix reply id/length on failure in KM

And make UM and KM more closely follow the same logic to catch this sort
of bug in the future.  Before this, UM would succeed and KM would fail,
and there were only UM tests for this case.

Fixes #946

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix device_helper.hpp

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix reply length

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Cleanup

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* PR feedback

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2022-04-18 10:26:29 -06:00
Alan Jowett b7b3388b23
Capture code coverage inside VM and upload (#944)
* Gather code coverage from within self-hosted runner

Signed-off-by: Alan Jowett <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-04-18 08:12:10 -07:00
Alan Jowett c1b546c024
Speed up driver phase by compressing artifacts (#958)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-04-15 19:12:51 -07:00
saxena-anurag 0df35e21ba
Add script to generate bpf2c expected files (#959)
* add script

* remove comment from script

* remove dead code

* change encoding

* change files to UTF8

* change utf8 to ascii

* recompile with LLVM13

* add comment about script usage, regenerate expected files

* fix test failures

* cr comments
2022-04-15 14:44:59 -07:00
Shankar Seal 745bac282e
Sock addr hook callout test (#922)
* remove dependabot from the fork.

* Revert "remove dependabot from the fork."

This reverts commit c542c6cd44.

* Program info and hook NPI providers for sock_addr.

* PR Feedback.

* PR Feedback 2.

* sock_addr hook tests.

* PR feedback.

* PR Feedback 2.

* fix.
2022-04-12 11:37:44 -07:00
Dave Thaler 1108b0e761
Fix format-code.ps1 when only one file changed (#935)
Based on TechNet discussion at
https://social.technet.microsoft.com/Forums/Lync/en-US/ed6bbd2a-63a9-47d2-b63e-2fc4a2524625/systemcollectionsarraylist-problems-when-populated-with-one-row

Fixes #810

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

Co-authored-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-04-11 20:41:38 -07:00
Shankar Seal a9ab3370d5
`bpf_prog_attach` API and other changes. (#891)
* remove dependabot from the fork.

* Revert "remove dependabot from the fork."

This reverts commit c542c6cd44.

* Program info and hook NPI providers for sock_addr.

* Program info and hook NPI providers for sock_addr.

* PR Feedback.

* PR Feedback 2.

* wfp callout for sock_addr hook.

* PR Feedback.

* fix build break.
2022-04-07 18:18:53 -07:00
Alan Jowett fd94c807a5
Centralize compiler options (#823)
* Centralize all compiler options

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-03-29 10:41:09 -06:00
Shankar Seal ecea57b4d8
Change extensions npiid (#841)
* remove dependabot from the fork.

* change extension provider NPI IDs.

* PR feedback.

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-03-28 11:26:19 -07:00
Shankar Seal fc2f504a40
Collect and upload kernel crash dumps. (#808) 2022-03-15 22:52:31 -07:00
Shankar Seal a8e3a30767
Support attaching XDP program per NIC. (#803)
* Support attaching XDP program per NIC.

* PR Feedback.

* fix bug.

* PR Feedback.
2022-03-14 15:16:11 -07:00
Dave Thaler 047222ccb7
Add real-time tracing documentation (#800)
* Add real-time tracing documentation

Fixes #795

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix grammar nit

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-03-11 15:46:15 -07:00
Dave Thaler 08c2cbb9a7
Add support for bpf_printk helper without additional arguments (#796)
* Initial version of bpf_printk support

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Convert printk.c sample to use bind hook instead of xdp hook

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Add wprp file to deployment script

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Unify UM and KM platforms as much as possible for printk support

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix annotation

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Work around compiler warning

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix comment

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix keyword

Signed-off-by: Dave Thaler <dthaler@microsoft.com>

* Fix test when -s is used

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-03-08 16:38:48 -08:00
Shankar Seal 40915b0d15
Netebpfext refactor (#776)
* fix crash.

* use NMR APIs.

* program info provider; bind program info

rename attach provider as hook provider

function renaming

* refactor hook providers.

* async client detach.

* cicd automation and documentation.

* PR Feedback.

* switch to server 2019.

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2022-02-25 17:53:12 -08:00
Alan Jowett aa87ee0ce2
Emit either bare code, sys, or dll (#769)
* Emit either bare code, sys, or dll

Resolve #767
2022-02-24 11:18:28 -07:00
saxena-anurag 4a1e01ee08
add script to copy pre-commit file to relative hooks folder (#745)
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2022-02-02 12:58:00 -08:00
Shankar Seal 48f0ff60e2
fix CICD script to throw on test failure. (#741)
* fix script.

* temporary workaround.

* fix test.
2022-01-31 21:23:23 -08:00
Dave Thaler 228d7f6b60
Minor cleanup in sample extension (#726)
* Hard code the extension name in only one place
* Change "Test" to "Sample" in various comments

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-01-23 21:52:40 -08:00
Alan Jowett 260a8d77dc
Instrument eBPF for Windows platform layer (#647)
* Instrument eBPF Core with tracing

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-11-03 09:33:40 -06:00
Shankar Seal 65f3a545a5
remove dupe functions. (#649)
* remove dupe functions.
2021-10-29 02:49:43 -07:00
Shankar Seal 01384c7880
Add filter in outbound L2 layer. (#641)
* Add filter in outbound L2 layer.

* PR Feedback.

* Apply suggestions from code review

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-10-20 21:18:31 -07:00
Shankar Seal c0339539fb
selfhost runner (#622)
* selfhost runner

* Apply suggestions from code review

* Remove Release from WF

* Apply suggestions from code review

Co-authored-by: Dave Thaler <dthaler@microsoft.com>

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-10-06 23:40:17 -07:00
Dave Thaler ce12b0cb0c
Initial bpftool port (#597)
* Initial libbpf port

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2021-09-28 11:44:26 -07:00
Alan Jowett cdcf793a54
Move generated include to include (#564)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-09-17 17:13:14 -06:00
Alan Jowett 967990f700
Disable /ZI and incremental linking (#546)
* Disable /ZI and incremental linking

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-09-16 16:49:02 -06:00
Alan Jowett e553150b1b
Switch from MultiThreadedDebug to MultiThreadedDebugDll (#528)
* Switch from MultiThreadedDebug to MultiThreadedDebugDll
* Pull in latest ebpf-verifier

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-09-14 08:46:01 -06:00
Alan Jowett 4083f4eeb2
Add driver.yml - the workflow to install eBPF core on a self-host machine. (#504)
* Add driver.yml - the workflow to install eBPF core on a self-host machine and run tests.

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-09-09 18:01:52 -06:00
Alan Jowett 866f8a6917
Fix non-determinism in build due to multiple projects generating header (#496)
* Fix non-determinism in build due to multiple projects generating header
* Only regenerate git_commit_id.h on change

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-09-07 13:22:49 -06:00
dbarac 3e3e317ad4
add sample_ebpf_ext.sys to built_files array in scripts/deploy-ebpf.ps1 (#494) 2021-09-06 22:41:39 -07:00
Shankar Seal ec68058a36
Test utility helper functions. (#480)
* Test utility helper functions.

* fix build break.

* PR feedback.

* PR feedback.
2021-09-02 17:23:16 -07:00
Alan Jowett ac9b6282b8
Add version info to ebpfcore.sys, ebpfapi.dll, netebpfext.sys, and ebpfsvc.exe (#478)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-09-01 17:57:35 -06:00
Alan Jowett 4be43a7ea1
Include required Clang version (#431)
* Update Getting Started to recommend current release version of Clang/LLVM

Clang-format behaves differently depending on the version of Clang installed.
Update getting started guide to recommend Clang / LLVM 10.0.0.
Update the development guide to indicate that Clang 10 or higher is required for consistent formatting.
Reformat all code using Clang 10.0.0

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-08-25 09:01:16 -06:00
Dave Thaler c99a43e5e9
Revert "Remove dead code (#381)" (#401)
This reverts commit 7d779cf117.
2021-08-20 12:07:57 -07:00
Shankar Seal 7d779cf117
Remove dead code (#381)
* Remove dead code

* Address PR feedback

Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2021-08-13 14:56:36 -06:00
Shankar Seal be67121fda
Test Extension Part 2 (#361)
* Test Extension Part 2

* rename test extension to sample extension and update Getting-started doc.

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-08-07 14:19:00 -07:00
Dave Thaler a46b00c2e3
Add VM setup scripts and docs (#281)
* Create an install script rather than having to manually do lots
  of steps
* Make Debug build use vcruntime as static libs to avoid adding
  another prerequisite on a machine before installing eBPF.  This
  isn't required for Release builds as vcruntime release DLLs
  are part of Windows, unlike vcruntime debug DLLs

Fixes #248

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-06-15 08:44:43 -07:00