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

68 Коммитов

Автор SHA1 Сообщение Дата
Dave Thaler c947ca63b9
Make runtime binaries not depend on usersim (#2783)
* build ebpfcore under usersim

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

* Work around analysis warnings

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

* Fix installer project

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

* Temporarily use ubpf branch with memory fix

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

* WIP

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

* WIP

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

* Create project for files shared between ebpfapi and the ebpf runtime

Move existing files from libs/platform either to:
* libs/shared, if meant to be common between user-mode and ebpf runtime
* libs/runtime, if meant to be used by the ebpf runtime only (whether in
  user or kernel mode)

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

* Move ebpf_tracelog.c to shared

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

* Create shared_user and shared_kernel projects

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

* WIP

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

* WIP

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

* Remove usersim from ebpfsvc

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

* Update to cxplat branch of usersim

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

* Use cxplat_utf8_string

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

* Cleanup

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

* Fix build errors

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

* Fix ebpf_allocate_with_tag

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

* Fixes

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

* Bug fixes

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

* Fix use of ebpf_reallocate to not pass a null pointer

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

* Fix printf tests

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

* Fix memory leaks

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

* Temporary change to help debug double-free in test

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

* Update to latest usersim

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

* Fix analysis warnings

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

* Update to latest usersim

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

* Update usersim to latest

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

* Change native module to use latest usersim

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

* Update nuget package

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

* Only call cxplat_cleanup if cxplat_initialize succeeds

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

* Revert setup_build.vcxproj change

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

* Update usersim to latest

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

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-09-05 17:57:21 +00:00
Dave Thaler 4e6bed34e8
Build ebpfcore as a DLL for testing (#2744)
* Update to use latest usersim

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

* build ebpfcore under usersim

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

* Update usersim to latest

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

* Fix compilation

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

* Work around analysis warnings

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

* Fix installer project

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

* Fix memory issues in libbpf implementation

Found my latest usersim code

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

* Update usersim to latest

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

* Fix mismatched calloc/free function in ubpf_user.c

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

* Fix mismatched alloc/free in verifier_fuzzer

The verifier_fuzzer used ebpf_allocate() but then called free()

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

* Temporarily use ubpf branch with memory fix

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

* Fix memory issues in ebpfsvc

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

* PR feedback from Anurag

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

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-08-17 22:55:15 +00:00
Gianni Trevisiol 4cb79e547d
Isolate eBPF store APIs into atomic km & um libraries. (#2690)
* draft

* wip

* wip

* wip

* wip

* wip - km & um compile

* fix

* fix include order

* wip

* wip

* wip

* wip - api_common

* wip - updated projects

* wip

* wip

* fix merge issues

* wip

* fix C28196/C6387

* wip

* wip

* fix SAL

* cleanup

* fix SAL bugs

* wip - cmake

* add cmake files

* wip

* wip

* update msi artifacts

* wip

* cleanup

* collapse null-checks

* clean-up headers

* refactor return types to ebpf_result_t

* replace ebpf_registry_result_t with ebpf_result_t

* update header

* remove cpp wrapper, misc cleanup.

* rename um/km registry helpers

* cleanup

* cleanup

* update

* nit

* fix

* Added KERNEL_MODE var, so to default to USER_MODE.

* fix cmake

* align result var names with ebpf_result_t

* pr feedback

* add project refs

* Add NativeOnly* cfgs to ebpf_store_helper_km

* Update docs, API reordering in source.

* pr feedback

* Rename types to abstract use of registry

* Normalize all registry API names.

* rename

* merge sln

* fix var typo

* refactor store root keys

* feedback

* doc/comments

* remove KERNEL_MODE

* Force ignore format on all preprocessor code paths.
2023-08-07 19:53:24 +00:00
Igor Klemenski 77191a8632
Use multiple self-hosted runner instances. (#2722)
* first try runners

* optimize json schema

* remove refs to vm_list.json

* comment out most of pipeline for final testing in prod

* try fixing appverifier double close on handle

* add native-only vcxproj configs for tcp_udp_listener.exe

* add missing vcxproj parts

* fix active config for tcp_udp_listener in ebpf .sln

* uncomment CI after successful run on all runners

* do staged migration

* fix up labels

---------

Co-authored-by: Igor Klemenski <igklemen@microsoft.com>
2023-08-02 22:04:42 +00:00
Dave Thaler afab46c2e8
Update usersim to latest (#2717)
Temporarily add usersim/src to paths.
This will get cleaned up in 2308 as part of issue #2677

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-07-31 18:32:05 +00:00
Alan Jowett 44adc8ec0a
Split task 'Run test without Code Coverage' (#2635)
* Run non-code-coverage test with timeout.

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

* Execute setup_build during FuzzerDebug build

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

* Fix issue with ebpf_performance.exe

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

---------

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-06-28 19:34:51 +00:00
Dave Thaler 8fecc2e376
Make bpf2c maps parser match verifier's maps parser (#2543)
* Add map_in_map_legacy.c

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

* Make bpf2c maps parser match verifier's maps parser

The verifier will parse "maps/*" sections, and is able to deal with
maps sections with various record sizes.  This PR updates bpf2c to
use the same algorithm.  In the future it would be good to refactor
the verifier so the same code can be used.

Fixes #900

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

* Make tests pass

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

* PR feedback

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

* Rename map_in_map_* samples

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

* Fix BTF ID resolution

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

* PR feedback

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

* Cleanup

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

* Bug fixes

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

* Add doc fix

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

* Update verifier

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

* Updates for libbtf

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

* Use libbtf

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

* Fix sanitize build by using updated libbtf

Temporarily point to fork until https://github.com/vbpf/ebpf-verifier/pull/515
is merged, so we can verify the fix in CI/CD.

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

* Update ebpf-verifier

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

* PR feedback

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

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-06-28 18:32:13 +00:00
Dave Thaler ec27659adf
Move usersim code into a separate repo (#2596)
* Use usersim repo

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

* Remove DISPATCH test code from _preprocess_load_native_module

Per Anurag: the code was added earlier to execute the 2 paths in
native module, and it is not needed anmore IIRC, as the "DISPATCH"
code has been removed now from the native module

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

* Bug fixes

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

* Unify some APIs

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

* Fix warnings and clean up code

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

* updated

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

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-06-27 15:26:46 +00:00
Dave Thaler 87b6520c34
Remove JIT and interpreter code from NativeOnly builds (#2475)
* Remove JIT and interpreter code from NativeOnly builds

Fixes #2030
Fixes #2488

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

* Try conditional project references

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

* Various test fixes

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

* Native-only fixes to deploy-ebpf.ps1

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

* Native-only support for setup-ebpf.ps1

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

* Native-only support for api_test.exe

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

* Add connect_redirect_tests to deploy-ebpf.ps1

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

* PR feedback from Anurag

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

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-06-07 15:49:03 +00:00
Dhiren Vispute 5ddab746ef
Move km stress test app proj to correct location (#2397) 2023-04-28 15:54:13 +00:00
Gianni Trevisiol ebeeb96444
Add tracing scheduled tasks xml definitions, update redist-package project. (#2394)
* Add tracing sched. tsk xml def., update redis-pkg.

* fix dir
2023-04-27 15:58:51 +00:00
Dhiren Vispute 83567d6270
Add Multi-threaded stress tests (kernel mode). (#2240) 2023-04-25 21:00:44 +00:00
Alan Jowett 69932599af
Prevent object ref-count from transitioning from 0 to 1 (#2340)
* Prevent object ref-count from transitioning from 0 to 1

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

* Remove redist-package from FuzzerDebug

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

---------

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-04-22 00:53:35 +00:00
Gianni Trevisiol 105f4d4b2b
Add binary redistributable project. (#2291)
* Add binary redistributable project.

* Add VC++ Redist

* Exclude from build configurations.

* wip

* Exclude from Analyze builds.

* nit

* wip

* remove printk.sys/pdb
2023-04-19 03:44:18 +00:00
Dave Thaler 93b7634d23
Fix sanitizer build of fuzzer (#2201)
* Fix sanitizer build of fuzzer

Fixes #1817

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

* Fixes

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

* More fixes

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

* Disable some build steps for FuzzerDebug

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

* Update github workflows

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

* Update verifier to latest

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

* Fix execution_context_fuzzer build

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

* Fix bpf2c and samples

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

* Fix samples compilation

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

* Fix custom program type sample

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

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-04-13 15:00:49 +00:00
Dhiren Vispute f6bf814608
Add User mode multi-threaded stress tests (#2195)
* Add User mode multi-threaded stress tests

* Schedule nightly multi-threaded stress tests (user mode)

* Add missing event check
2023-03-21 19:00:42 +00:00
Gianni Trevisiol 715715520c
Added Wix installer native project. (#1960)
* Added Wix native installer.

* Update docs/InstallEbpf.md

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

* Update docs/InstallEbpf.md

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

* typos

* Change ebpfsvc as a "JIT" option for Debug-only.

* misc fixes and improvements

* fix env path

* upload the msi package as a separate artifact

* fix sample driver uninstall, added log doc

* tests passed

* Doc update

* conditional MSI upload for regular/release only

* Upload dual installer version

* Set all drivers to auto start.

* update hash in doc

* Add check for VC++ redist

* doc update

* workaround for WixQuietExec64

* doc update

* Update scripts/run_tests.bat

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

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2023-01-26 21:25:23 -08:00
Gianni Trevisiol d384d1f096
Normalize fuzzer & coverage library reference inconsistencies.
* Normalizes reference inconsistencies to fuzzer & coverage libraries.
* Uniforms directory names of fuzzer projects.
2023-01-23 14:46:30 -07:00
Dave Thaler fb7d8860be
Remove the obsolete fuzz.exe (#1920)
* Remove the obsolete fuzz.exe

The functionality was replaced by execution_context_fuzzer.exe.

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

* Fix cmake build

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

* Update fuzzing docs

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

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-01-20 11:08:52 -07:00
Dave Thaler 435ee34126
Add netebpfext fuzzer (#1857)
* Add netebpfext fuzzer

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

* Update solution

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

* Add CI/CD workflow

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

* Add script to create netebpfext corpus

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

* Fix code analysis warning

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

* Handle prog types with no data buffer

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

* Cleanup

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

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-01-11 14:06:08 -08:00
Gianni Trevisiol 99b7ece81f
Visual Studio 2022 porting (#1521)
* Draft

* wip - full build

* wip

* Docs & scripts update

* revert test

* Updates to overall GettingStarted.md guide.

* Updated CI/CD scripts

* Update ebpf-verifier cache key

* Fix #1513. Next action forwarded to #1563.

* Bump up epbfverifier to 05bca47

* Fix CRT path.

* Disable sanitizing

* fix cmake build

* Removed unsupported x86 and ARM configurations.

* Test address sanitizer off

* wip -full build w/asan

* asan enabled on ci/cd

* update wdk version to 22621

* wip - full build

* add mock asan

* Update CL param

* wip - proj sync

* wip - ltcg

* wip - driver settings

* wip-build props

* wip - asan opts

* wip-plat asan

* wip-asan

* wip

* wip

* wip-debug

* Branch resync

* Mitigate compiler OOM.

* remove asan mock

* doc update

* doc update

* Removed commented code.

* Added comments for pragma-s
2022-12-08 20:06:57 -07:00
Anurag Saxena 8fd3acf528
Connect redirect implementation (#1651)
* draft fix

* fix

* demo

* fix initial ref counts

* fix

* cleanup

* backup

* checkpoint

* backup

* tests working

* fix analyze errors

* fix netebpfext build / bad merge

* sln file update

* v6 tests

* fix netebpfext user build

* refactor connect_redirect tests

* netebpfext changes

* fix tests

* fix netebpfext user tests

* fix sal

* add sublayer, remove filter_instance

* fix

* fix

* driver_tests

* fix bad merge

* fix scripts

* fix driver tests script

* driver tests script

* script fix

* add trace to debug failure

* fix driver test script

* create context only on allow, and create 2 contexts

* fix script

* netsh fix

* fix scripts

* add tests for pure v4 and v6 sockets

* fix test

* v6 test vm addresses

* remove commented code

* code cleanup

* cleanup

* remove bad_map_name files

* cleanup

* fix tests print statements

* Apply suggestions from code review

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

* CR comments, fixes

* update connection context key, address CR comments

* fix build break, cr comments

* cr comments

* cr comments

* rename

* fix test script

* CR comments

* cleanup

* Apply suggestions from code review

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

* fix

* cr comments

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-11-29 20:49:42 +00:00
Alan Jowett b7deedc7ce
Add bpf2c_plugin for use with bpf_conformance test suite (#1475)
* Add bpf2c_plugin

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

* Fix CMake so that it builds correctly

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

* Remove bpf_conformance as a submodule

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

* Download bpf_conformance artifact

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

* Extract bpf_conformance\

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

* Fix path

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

* Execute bpf_conformance in CI/CD

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

* Pickup latest artifacts"

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

* PR feedback

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

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-10-25 13:26:49 -06:00
Dave Thaler 0543c810a7
Refactor netebpfext in preparation for fuzz testing (#1464)
* Refactor netebpfext (#1351)

* refactor netebpfext to allow unit and fuzzing

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

* Normalize parameter casing

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

* Normalize types

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

* Fix release build

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

* Fix CMake build

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

* Fix NetEbpfExt_headers CMake target

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

* Rename unit to user

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

* Switch netebpfext_unit -> netebpfext_user

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

* Flesh out kernel thunk

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

* More canonical naming and W4 clean

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

* Fix prefast issue

* Fix CMake

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

* Fix code analysis

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>

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

* Clean up fw_thunk.h (#1369)

* Clean up fw_thunk.h

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

* Fix SAL annotations

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

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

* Netebpf ext unit test (#1365)

* Add netebfpext start/stop unit tests

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

* Update NMR thunk and expand netebpf_ext helper

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

* PR feedback

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

* Fix code-analysis issues

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

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

* Remove duplicate NMR includes (#1370)

* Remove duplicate NMR includes

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

* PR feedback

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

* PR feedback and more header cleanup

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

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

* Refactor NMR user mode to be thread safe (#1371)

* Refactor NMR user mode to be thread safe

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>

* PR feedback

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>

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

* Add a unit test that tests classify_packet in user mode (#1379)

* Add packet test scaffolding

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

* Add test

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

* More of test

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

* Add dummy packet to test

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

* Add dummy program

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

* Cleanup

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

* Fix mock NMR bug

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

* Temporarily add printfs

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

* Incorporate fix for 1378

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

* Fix test bug

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

* Add a packet-drop case to the test

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

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

* Try fixing include path

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

* Fix double free of workitem

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

* Revert unrelated changes in ebpfcore and ebpfapi

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>

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-10-18 13:21:54 -06:00
saxena-anurag 1160f7914e
Registry changes for program and section data. (#1192)
* fix

* backup

* fix backup

* msbuild compiling

* fix release build

* fixes

* cmake build fix

* fix cmake build

* fix analyse build

* fix

Signed-off-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>

* fix expected output

* add pre step for tests

* add pre step for tests

* add -s option, revert this later

* Revert "add -s option, revert this later"

This reverts commit 1f42d100e4.

* code cleanup

Signed-off-by: Anurag Saxena <anusa@microsoft.com>

* rename driver_registry_helper.h

* delete bpf_structs.h

* fix

* hardcode HKLM

* code cleanup

* fix

* backup

* fix backup

* msbuild compiling

* fix release build

* fixes

* cmake build fix

* fix cmake build

* fix analyse build

* fix

Signed-off-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>

* add pre step for tests

* add pre step for tests

* add -s option, revert this later

* Revert "add -s option, revert this later"

This reverts commit 1f42d100e4.

* code cleanup

Signed-off-by: Anurag Saxena <anusa@microsoft.com>

* rename driver_registry_helper.h

* delete bpf_structs.h

* fix

* hardcode HKLM

* code cleanup

* fix build break

* fix build break, enable warning

* fix bad merge

* cleanup

* fix

* fix tests

* add tests, make ebpf_store_helper platform agnostic

* fixes, cleanup, common code for store APIs

* fix cmake build, driver tests

* cleanup

* code cleanup

* cr comments

* code cleanup

* cleanup

* bugfix

* Apply suggestions from code review

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

* cr comments

* fix build break

* move UM read store APIs to a different file

* cr comments

* cr comments

* cr comments

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-06-30 16:53:03 -07:00
Alan Jowett 1782724071
Build ELF parse at compile time using EverParse (#1219)
* Build ELF parse at compile time using EverParse

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

* PR feedback

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

* Fix build

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

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-06-22 16:24:02 -06:00
Alan Jowett 2560f4bbd8
Mark unsafe strings via unsafe_string class (#1214)
* Mark unsafe strings via unsafe_string class

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

* Cleanup string handling

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

* Update expected output in tests

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

* Build break

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

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-06-15 13:52:55 -07:00
Dave Thaler 8bc456bbec
Add fuzzer for core helper functions (#1153)
* WIP: core helper fuzzer scaffolding

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

Initial chunk of business logic

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

More business logic

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

Add initial helper fuzzer corpus

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

Fix code analysis warning

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

Update docs and CI/CD

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

Update README.md

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

Fix analysis warning

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

Add verifier_fuzzer step to github CI/CD

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

Add core helper and bpf2c fuzzers to CI/CD

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

Fix fuzzers in CI/CD

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

Remove changes for other fuzzers from cicd file

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

Cleanup

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

* Fix bug in _find_lpm_map_entry() hit by fuzzer

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-06-10 16:32:31 -06:00
Dave Thaler e11f1d38a2
Add bpf2c fuzzer and execution context fuzzer to CI/CD (#1164)
* Enable bpf2c fuzzer and execution context fuzzer in CI/CD

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

* Create bpf2c fuzzer corpus

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

* Make absolute path and strip trailing slash from it. (#1175)

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

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>

* Add libsancov.lib when building fuzzer (#1179)

* Add libsancov.lib when building fuzzer

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

* upload artifacts as dumps

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

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>

* Bpf2c fuzzer fix build (#1180)

* Disable caching of verifier cmake project for now

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

* Fix dump upload path

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

* Fix dump upload path

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

* Fix crash dump upload

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

* Add Execution Context corpus

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

* Limit fuzzing to 15 minutes

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

* Fix artifact path

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

* Fix yaml to corectly upload artifacts

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

* Fix yaml to corectly upload artifacts

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

* Fix yaml to corectly upload artifacts

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

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>

* Bpf2c fuzzer fix build (#1182)

* Disable caching of verifier cmake project for now

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

* Limit fuzzing memory

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

* Validate symbols offset

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

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>

* Reject maps that have no associated symbols

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

Co-authored-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-06-09 10:24:28 -07:00
Alan Jowett c62b083ebc
Add libfuzzer based fuzzer. (#1117)
* Add libfuzzer based fuzzer.

See: https://www.llvm.org/docs/LibFuzzer.html

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

* Fix ELF parsing bugs found by fuzzer

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

* Make verifier fuzzer compile in Debug configuration

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

* Cleanup fuzzer code

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

* PR feedback

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

* Setup/cleanup state for fuzzing

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

* Fix debug build of execution_context_fuzzer

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

* Fix verifier

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

* Pickup latest ebpf-verifier

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

* Remove corpus from git

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

* Fix CR/LF mangling in ELF files

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

* PR feedback

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

* Remove corpus from git

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

* Fix build break

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

* Enable debug fuzzer build

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

* Update to latest verifier

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

* Update test based on latest verifier changes

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

* Fix execution context fuzzer

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

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-05-27 16:31:04 -07:00
Dave Thaler 3a9958f501
Support "netsh ebpf show sections" with native drivers (#1070)
* WIP: enumerate sections in native code

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

* Make bpf2c emit section names

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

* More of PE section enumeration

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

* Fix program type and map count display for native programs

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

* Update cmake files

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

* Temporarily disable some compiler warnings for the pe-parse project

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

* Native programs have different sizes for skeleton in debug vs release

Also add text case for section is just ".text"

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

* Address PR feedback

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

* Force inlining utility functions inside ebpf programs

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

* Update expected output

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

* More expected output changes

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

* Fix ebpfapi to allow a single section of name .text

To match libbpf behavior

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

* Fix test

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

* Resolve analysis warnings

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

* Fix analysis warnings

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

* Address PR comments from Anurag

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

* Fix test

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-05-11 14:06:49 -07:00
saxena-anurag ece1044444
Add Cilium regression tests (#1015)
* add cilium tests

* bugfix, fix include path for new tests

* disable verification for Debug build, disable code coverage

* cr comments
2022-04-26 13:59:00 -06:00
Dave Thaler 086b80149d
Nuget package (#999)
* WIP: Developer nuget package

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

* Add bpf2c utility

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

* Build nupkg from within VisualStudio

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

* Don't use relative path to externals

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

* Update props file in nuget package

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

* Fix include and library paths

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

* Fix debug build

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

Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-04-25 10:26:56 -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 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
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
Alan Jowett 05c92adeba
Call ebpf_verifier prior to code gen (#961)
* Call ebpf_verifier prior to code gen

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

* Resovle failures after merge

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

* PR feedback

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

* Revert rollback of catch2

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

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-04-18 12:52:55 -06: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 59716dfa16
Fuzz testing of execution context (#896)
* Fuzz testing of execution context

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

* Fix workflow

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

* Fix fuzzing workflow

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

* Fix formatting

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

* Fix tests

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

* PR feedbac

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

* Fix analysis failures

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

* Fixup edit

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

* Fix build

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

* Fix break found during fuzzing

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-04-07 10:50:52 -07:00
saxena-anurag 54516ec2c7
Add mock layer to run native module test cases in user mode (#889)
* add mock layer to test native module load

* Apply suggestions from code review

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

* make unit_test dependent on dll projects

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2022-04-06 17:43:28 -07:00
saxena-anurag 3470d6d7b7
EC and API changes to load generated BPF driver (#811)
* initial_commit

* fix build

* fix build

* fix build break due to merge

* debug build

* api changes, other changes

* bpf2c change to enmit program type, other fixes

* hydrate UM ebpf_object, other fixes

* remove logic to disable programs

* fixes

* fix sal

* build break

* build break

* fix sal errors

* fixes

* fix bpf2c_tests failure

* unload driver when program ref count becomes 0, other minor fixes

* fixes

* tail_call fixes, add test cases, other fixes

* build break

* build break

* code cleanup

* fix bad merge

* code cleanup

* code cleanup

* cleanup

* Apply suggestions from code review

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

* cr comments

* Apply suggestions from code review

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

* cr comments

* Apply suggestions from code review

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

* cr comments

* cr comments

* Apply suggestions from code review

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

* address cr comments

* Apply suggestions from code review

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

* add tracing in ebpfcore, other fixes

* tracing

* add section for each map in sample

* do not delete the native service

* fix bad merge

* remove code to delete service, other fixes

* cr comments

* bpf2c should read and populate all the maps in ELF file

* add test case for creating map-in-map from native driver

* Apply suggestions from code review

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

* cr comments

* add tracing for api code changes

* rename epbf_native_t to ebpf_native_module_t

* fix bad merge

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-04-01 12:52:04 -07:00
Alan Jowett b52d9efe22
Enable building with Address Sanitizer (#821)
* Enable building with Address Sanitizer

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

* Grab clang binaries

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

* Fix read overrun in map_crud_operations_lpm_trie_32

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

* Fix potential read of uninitialized memory

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

* Really fix read overrun

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

* Fix second overrun

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

* Remove RPC client test for now

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

* PR feedback

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

* Apply suggestions from code review

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

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

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-03-30 12:32:29 -06:00
Alan Jowett 5e468b8857
Switch to current catch2 release (#809)
* Switch to current catch2 release

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-03-18 17:39:21 -06: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
Alan Jowett 430e575f1a
Add tool to generate C code from eBPF byte code in ELF file (#757)
Add bpf2, a tool to generate C programs from eBPF instructions in an ELF file.

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-02-15 17:44:23 -07:00
Dave Thaler 1664a4f58b
Update to latest verifier code (#652)
* Update to latest verifier code

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

* Add reference to yaml-cpp vcxproj file

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

* Fix verifier tests

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2021-11-07 10:47:47 -08: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
Shankar Seal acb6859758
Support for xdp_tx. (#498)
* xdp_tx

* Fix analysis error.

* update documentation.

* IPv6 tests.

* Apply suggestions from code review
2021-09-09 22:34:03 -07:00
Alan Jowett 5983cbf07d
Micro-benchmarks for epoch and hash-table (#443)
* First version of performance tests

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