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

588 Коммитов

Автор SHA1 Сообщение Дата
Anurag Saxena 26d3b98f44
fix (#3276) 2024-02-20 16:51:30 +00:00
Alan Jowett 9008a290f5
Fix issue with > 64 cpus (#3274)
* Fix issue with > 64 cpus

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

* Fix code analysis failure

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

* Pickup fix for signature

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>
2024-02-20 00:38:51 +00:00
Shankar Seal 66087c57c8
Revert "Helper reallocate packet (#3110)" (#3263)
This reverts commit 13eed744fe.
2024-02-15 02:06:29 +00:00
Alan Jowett d3f7727496
Ensure that LPM's prefix bitmap is always 64bit aligned (#3244)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2024-02-07 20:41:23 +00:00
Gianni Trevisiol b6bf2bb640
Fix `bpf obj get()` behavior. (#3238)
* draft

* doc

* add test

* wip

* test

* feedback
2024-02-07 03:09:36 +00:00
Matthew Ige ff35f7e3a1
Move context_create and context_destroy to run at same IRQL as program invocation. (#3242)
* move to run at dispatch

* update fix

* set failure

* clean up unused var
2024-02-07 00:07:50 +00:00
Alan Jowett 060033ce88
Eliminate unneeded interlocked operation on LPM updates (#3239)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2024-02-05 23:10:38 +00:00
Alan Jowett ea79ad5c80
Fix leaked handles (#3222)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2024-02-02 09:08:40 +00:00
Alan Jowett 41e1da24f4
Fix AV if allocation of error_message fails (#3214)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2024-01-31 23:33:33 +00:00
Alan Jowett bf2a7c3eb5
Add support for statically initializing BPF_MAP_TYPE_HASH_OF_MAPS (#3211)
* Add support for statically initializing BPF_MAP_TYPE_HASH_OF_MAPS

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

* Update installer and add code gen tests

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

* Add files to expected install list

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>
2024-01-31 00:18:28 +00:00
Dhiren Vispute ddd1a00b2f
serialize access to the pe-parse library calls (#3206)
Co-authored-by: Dhiren Vispute <Dhiren.Vispute@microsoft.com>
2024-01-29 16:15:14 +00:00
Alan Jowett fa936b2313
Add support for bpf_map_*_batch APIs (#3178)
* Add support for bpf_map_*_batch APIs

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

* PR feedback: Expand EC acronym

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>
2024-01-24 15:27:37 +00:00
Alan Jowett efb6656b4c
Add support for handling anonymous inner maps (#3169)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2024-01-19 16:33:51 +00:00
Alan Jowett 5556190460
Add RAII wrapper for epoch_enter/exit (#3167)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2024-01-11 19:24:15 +00:00
Alan Jowett 4e69b3b4dd
Switch from epoch_flush to epoch_synchronize (#3039)
* Switch from epoch_flush to epoch_synchronize

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

* Unblock synch during rundown

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

* Flush synchronize work item

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>
2024-01-04 19:17:15 +00:00
Dave Thaler 64e670602f
Update verifier to latest (#3144)
Signed-off-by: Dave Thaler <dthaler1968@gmail.com>
2024-01-02 17:33:23 +00:00
Gianni Trevisiol d9957c7051
Fix bpf_map_get_next_key "key not found" bug. (#3042)
* fix "prev key not found" bug

* update doc

* Apply comment suggestions from code review

Co-authored-by: Dave Thaler <dthaler1968@gmail.com>

* fix bug

---------

Co-authored-by: Dave Thaler <dthaler1968@gmail.com>
2023-12-13 23:15:49 +00:00
Anurag Saxena f6a478842a
Remove store km lib and code (#3109)
* remove store km lib and code

* fix

* more cleanup

* Apply suggestions from code review

Co-authored-by: Dave Thaler <dthaler1968@gmail.com>

---------

Co-authored-by: Dave Thaler <dthaler1968@gmail.com>
2023-12-12 13:53:04 +00:00
Shankar Seal 13eed744fe
Helper reallocate packet (#3110)
* add reallocate_packet flag to helper prototype struct.

* PR Feedback.

* fix.

* export reallocate_packet flag.
2023-12-11 17:54:34 +00:00
Anurag Saxena 3f5e0ba1ba
Separate out undocked components. (#3055)
* remove not-needed includes

* fix

* fix

* update sample extension

* change include path

* export store APIs from ebpfapi.dll

* fix analyze build

* update dependencies

* add undocked projects

* undock sample_ext driver

* fix build

* more undocking

* fix build

* remove undocked projects from fuzzerdebug

* fix nuget

* remove usersim from export_program_info

* fix configuration manager

* fix tests

* skip building undocked samples for FuzzerDebug builds

* fix build

* try cicd changes

* fix cicd yml

* update export_program_info to not clean up all entries

* code cleanup

* delete global helpers from the store

* code cleanup

* export *delete* store APIs from ebpfapi

* code cleanup

* CR comments

* cr comments

* remove ansi APIs

* CR comments

* cr comments

* fix CI failure

* fix rebase build issues

* change default custom type to bind

* some more fixes

* fix tests

* fix tests

* update expected files

* fix bpf2c tests

* run export_program_info

* fix headers

* CR comments
2023-12-07 21:10:19 +00:00
Matthew Ige 2000dafc4e
Remove XDP hook support from netebpfext.sys (#3040)
* replace XDP guids with XDP_TEST guids

* updated missde instance

* update bpf2c

* leave xdp_hook as is

* remove extra files

* update with new XDP_TEST guid, update other tests to use sample_ext

* update some tests, update test_helper

* update fuzzer

* temporarily remove bpftool tests

* update execution context test

* replace XDP guids with XDP_TEST guids

* updated missde instance

* update bpf2c

* leave xdp_hook as is

* remove extra files

* update with new XDP_TEST guid, update other tests to use sample_ext

* update some tests, update test_helper

* update fuzzer

* temporarily remove bpftool tests

* update execution context test

* build failures

* update sample ext with context_allocate and destroy

* update vm script to use xdp_test

* switch api tests to use sample program

* rename to xdp_Test

* update sample ext

* update incorrect SAL, update netsh tests

* update sample, update tests to use sample where applicable

* update tests

* fix up tests

* fix libbpf tets

* revert unnecessary changes

* remove extra prints

* add back in bpftool tests

* update to use xdp instead of xdp_test for bpftool test

* update atomic_instructions_others.o

* extra debug logs

* updated expected, update bpftool tests

* correct bpftool tests

* more debug logs

* add reg debug

* clear program info

* Attempt fix of buffer overrun

* remove debug logs, minor cleanup, set XDP guids back to their original names

* update docs with xdp_test

* fix guid usage

* CR: remove program, update comments, fix commented out tests, update bpf_program__attach_xdp

* revert changes in libbpf, as they need to use the actual XDP guids

* update comment

* update some XDP tests to use sample ext, comment out some expected failing tests

* update bpftool tests

* fix up bpf prog test run expected output, move to #if instead of comments

* fix up return code issue

* fix bpftool testes

* add some failed xdp tests, set some params to null for sample tests

* update comment

* tmp commit - move to xdp mock

* update unit tests to use mock XDP where possible

* made some samples back to XDP type

* netebpfext unit tests should use xdp_test

* CR
2023-12-06 17:12:17 +00:00
Shankar Seal 7bc877041e
fix sock_ops test. (#3083)
* fix sock_ops test.

* forgot to update event count
2023-11-28 16:08:56 +00:00
Alan Jowett 5b3cbf0d29
Zero initialize batch context state (#3058)
* Zero initialize batch context state

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

* Document batch semantics

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

* Fix grammar

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

* Update ebpf_extension.h

* Update eBpfExtensions.md

* Update docs/eBpfExtensions.md

Co-authored-by: Dave Thaler <dthaler1968@gmail.com>

* Update docs/eBpfExtensions.md

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

* Update docs/eBpfExtensions.md

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

* Update docs/eBpfExtensions.md

Co-authored-by: Dave Thaler <dthaler1968@gmail.com>

* Update include/ebpf_extension.h

Co-authored-by: Dave Thaler <dthaler1968@gmail.com>

* Update include/ebpf_extension.h

Co-authored-by: Dave Thaler <dthaler1968@gmail.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>
Co-authored-by: Dave Thaler <dthaler1968@gmail.com>
Co-authored-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>
2023-11-27 22:11:03 +00:00
Alan Jowett 8adb26fe98
Default to 1 repeat count if zero is specified (#3059)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-11-16 20:47:38 +00:00
Sharmi 189c5dfc2c
Fix bpf_map_get_next_key for hash-of-maps (#3051) 2023-11-15 00:11:30 +00:00
Sharmi 43972ae379
Change trace in ebpf_pinning_table_find (#2954)
* Initial commit

* Re-added EBPF_RETURN_RESULT

* Added EBPF_LOG_EXIT

* Addressed review comments

* Add a new EBPF_RETURN_FUNCTION_RESULT
2023-11-15 00:00:32 +00:00
Gianni Trevisiol cd2535d654
Fix ring-buffer map consumer pointer on multiple subscribe/unsubscribe. (#3002)
* fix initialization

* fix typo

* fix initial subscription

* nit

* nit

* fix multiple subscription cases

* wip

* wip

* wip

* wip

* fix init for catch2
2023-11-08 00:44:23 +00:00
Alan Jowett f11e053f55
Fix failure during fault injection (#3007)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-10-27 14:56:56 +00:00
Alan Jowett 973cfef978
Increase critical value threshold (#3004)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-10-26 18:56:30 +00:00
Dhiren Vispute 5ef308edd0
Raise IRQL to DISPATCH _after_ test_helper is successfully initialized. (#2988)
* temporary testing mods

* Make sure we raise IRQL to dispatch after successful initialization

---------

Co-authored-by: Dhiren Vispute <Dhiren.Vispute@microsoft.com>
2023-10-25 22:43:14 +00:00
Alan Jowett a3540bf4ec
Delay free of objects to epoch end (#2989)
* Split cleanup of eBPF objects into zero-refcount
and free operations. Zero-rerfcount is permits the
object to release refcounts on other objects while
still permitting it to operate.
The free operation is the final release of the object
and is performed once the current epoch ends.

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

* Wait for epoch free to complete

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

* Fix address sanitizer failure

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>
2023-10-25 18:41:12 +00:00
Anurag Saxena 25dc5d4d00
Add tracing in ebpfapi (#2950)
* add tracing

* cr comments
2023-10-23 15:13:15 +00:00
Alan Jowett 2e1031583c
Switch to hash-table for object id entries (#2984)
* Switch to hash-table for object id entries

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

* Fix debug build

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

* Fix intermittent test failure

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

* Fix code analysis failure

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

* Fix formatting for bpftool tests

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

* Fix fault injection failure

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

* Fix crash in fault injection

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

* bpf_prog_get_next_id should return keys in order

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

* Revert changes to sort object ids

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

* Add note to update to sorted data structure

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

* Fix code analysis failure

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

* PR feedback

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

* Update libs/runtime/ebpf_hash_table.h

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

* PR feedback

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

* Fix typo

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>
2023-10-19 18:05:37 +00:00
Alan Jowett e2b51c5409
Wrap all noexcept calls in try/except to catch out of memory (#2941)
* Wrap all noexcept calls in try/except to catch out of memory

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>
2023-10-16 16:35:38 +00:00
Alan Jowett 6f4bcbd00d
ebpf_epoch_initiate should cleanup on failure (#2972)
* ebpf_epoch_initiate should cleanup on failure

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

* Fix build break

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

* Fix code analysis failure

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-10-11 20:51:16 +00:00
Dhiren Vispute dc31948f17
check for valid work queue ptr prior to usage (#2970)
Co-authored-by: Dhiren Vispute <Dhiren.Vispute@microsoft.com>
2023-10-11 00:53:10 +00:00
Alan Jowett f2e17ef88c
Switch to mt19937 algorithm (#2956)
* Switch to mt19937 algorithm

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

* PR feedback

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

* Improve PRNG tests

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

* Revert usersim change

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

* Fix include path

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-10-09 18:07:35 +00:00
Alan Jowett f7010d45f3
Timed work queue (#2900)
* Timed work queue

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

* Fix code analysis failure

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

* Switch to timed_work_queue to save DPCs

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>

* Fix code-analysis failure

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

* Fix fault injection failure

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

* PR feedback

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

* Fix code analysis failure

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>
2023-10-04 18:04:52 +00:00
Alan Jowett 05d82c1faa
Remove spurious locks in object map path (#2938)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-10-03 18:11:56 +00:00
Anurag Saxena bd12a0385d
Implement LIBBPF_PIN_BY_NAME instead of PIN_GLOBAL_NS (#2862)
* fix

* update demo repo release version

* cr comments

* fix

* fix expected files
2023-10-02 15:14:02 +00:00
Dave Thaler 968d33a741
Fix netsh show maps alignment issue (#2918)
Fixes #2917

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-09-29 18:13:56 +00:00
Alan Jowett 39920ce91a
Fastfail if constraints are violated (#2864)
* Fastfail if constraints are violated

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>
2023-09-26 17:10:25 +00:00
Dave Thaler b1dee649a1
Add test case calling an IOCTL in ebpfcore_usersim.dll (#2876)
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-09-26 17:06:49 +00:00
Sharmi 67d7c3c2d3
Add a trace for unsupported pinning type (#2889) 2023-09-26 16:31:08 +00:00
Alan Jowett 66588bdc27
Remove check that prevents fuzzing below minimum size (#2849)
* Remove check that prevents fuzzing below minimum size

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

* WIP

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

* Cleanup handling of request lengths in _ebpf_core_protocol_program_test_run

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

* PR feedback

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

* Update libs/execution_context/ebpf_core.c

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

* Fix break

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

* Enable warning 4062

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

* Remove overactive assert

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>
2023-09-20 19:31:54 +00:00
Dave Thaler b2ae0100eb
Fix double-free in api_common (#2869)
Fixes #2486

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-09-20 16:44:58 +00:00
Dave Thaler 83de72512b
Update to use latest usersim (#2858)
* Update to use latest usersim

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

* Update to latest usersim

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

* Use NonPagedPoolNx instead of NonPagedPool for netebpfext state

NonPagedPool is executable, which we don't want

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

* Update usersim

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

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-09-20 01:07:46 +00:00
Alan Jowett 4c3d2cd894
Remove barriers and spinlock in epoch_enter and epoch_exit (#2796)
* Remove barriers in enter and exit

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>

* Apply suggestions from code review

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

* PR feedback

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

* Apply suggestions from code review

Co-authored-by: Dave Thaler <dthaler@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>
2023-09-14 22:07:57 +00:00
Alan Jowett a0ce3b95de
Check for dominant frequency in random number generators (#2786)
* Check for dominant frequency in random number generators

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>
2023-09-12 04:53:26 +00:00
Anurag Saxena 88b6f67e79
Fix program info hash algorithm (#2829)
* backup

* backup2

* fix

* fix

* fix

* fix

* fix

* code cleanup

* revert expected files

* remove regression test

* code cleanup

* remove dead code

* cr comments

* Apply suggestions from code review

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

* cr comments

* fix build

---------

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-09-11 22:23:02 +00:00
Sharmi 5cc488fb08
Increase MAX_TAIL_CALL_CNT to 33 tail calls (#2826)
* Initial Commit

* Added tail call max exceed native test case

* Initial commit

* Initial commit

* Added bpf2c_tests/expected changed files

* Fixed the return value in bind_tailcall_max_native_test

* Addressed PR comments

* Update tests/unit/libbpf_test.cpp

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

* Update tests/unit/libbpf_test.cpp

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

* tests/unit/libbpf_test.cpp

* Moved MAX_TAIL_CALL_CNT to ebpf_structs.h as suggested

* Removed MAX_TAIL_CALL_CNT in api_test and stress_tests_km file

* Add the generated expected file for tail_call_max_exceed

* Removed MAX_TAIL_CALL_CNT from bpf_helpers.h

---------

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-09-11 16:55:56 +00:00
Alan Jowett ba8f9ec62a
Switch from mod to and for computing bucket index (#2813)
* Switch from mod to and for computing bucket index

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>
2023-09-11 05:50:19 +00:00
Alan Jowett 01cb25dce7
ebpf_adjust_value_pointer check is redundant (#2814)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-09-08 16:37:09 +00:00
Alan Jowett cf0ff81a0f
Disable reference history on release builds (#2819)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-09-06 19:45:51 +00:00
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
Alan Jowett 98fa81747c
Reduce the cost of bpf_tail_call overhead (#2800)
* Reduce the cost of bpf_tail_call overhead

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

* Fix test failure

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-08-30 21:11:55 +00:00
Alan Jowett 6eac41419d
Remove expensive div rax,r14 (#2799)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-08-30 20:27:18 +00:00
Alan Jowett 8304ae27f5
Only call ebpf_should_yield_processor every batch_size invocations (#2797)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-08-29 18:27:28 +00:00
Alan Jowett 5c9ca4bcb7
Sort programs to match bpf2c (#2784)
* Sort programs to match bpf2c

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

* Fix sort order

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

* Sort by section, then program name

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

* Fix code analysis failure

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-08-24 00:41:30 +00:00
Alan Jowett 9fd8504c91
Use full key width when computing array index (#2780)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-08-22 03:13:48 +00:00
Alan Jowett b33adb3a7f
Fix incorrect LRU algorithm (#2778)
* Recheck state after acquiring lock

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

* Mark entry with current generation when moving to hot-list

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-08-22 00:12:08 +00:00
Alan Jowett 7e1f0aa9bd
Recheck state after acquiring lock (#2776)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-08-21 21:22:07 +00:00
Dave Thaler b7f82b66c5
Remove cmake build (#2764)
Other projects can now consume ebpf-for-windows in binary form,
using either nuget or MSI install.  We no longer need to build
ebpf-for-windows both ways, so removing the cmake build to free
up build resources and reduce the development cost of maintaining
both msbuild and cmake builds.

Fixes #2743

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-08-18 00:48:10 +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
Alan Jowett e57858ffc2
Implement bpf_get_prandom_u32 using linear congruential generator (#2761)
* Implment bpf_get_prandom_u32 using linear congruential generator

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

* Add chi-squared test for randomness

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

* Fix test failure

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>
2023-08-17 18:20:50 +00:00
Alan Jowett 3f3b834c2f
Add static initializer support to bpf2c - part 1 (#2728)
* Add static initializer support to bpf2c

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

* Fix tail call failure

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

* Fix test failures

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

* Fix test failures

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

* Fix parsing error

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

* Fix formatting for tail_call_sequential*.c

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

* Harden BTF data parsing

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

* PR feedback and map init for native

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

* Update tools/bpf2c/bpf_code_generator.cpp

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

* Fix fault injection

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>
2023-08-09 21:23:26 +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
Dhiren Vispute ced7990d27
Replace global fault inj. flag with usersim function, fix memory leak (#2727)
Co-authored-by: Dhiren Vispute <dhiren.vispute@microsoft.com>
2023-08-07 19:17:43 +00:00
Alan Jowett 7beb0ffaf9
Reduce code pages touched during ebpf_api_initiate (#2678)
* Reduce code pages touched during ebpf_api_initiate

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>
2023-08-01 15:10:30 +00:00
Alan Jowett 1c87af4ef9
Ring buffer completion passes incorrect length (#2704)
* Ring buffer completion passes incorrect length

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

* Fix over-completion of device ioctl

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-07-31 18:56:24 +00:00
Dave Thaler a29064a1fe
Convert usersim to a DLL (#2683)
* Use usersim as DLL

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

* Convert usersim to a DLL

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

* Make cmake build clear program info state like VS build does

PR #1192 updated the vcxproj file but not the corresponding CMakeLists.txt file
for export_program_info

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

* Pick up latest usersim fix

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

* Fix deadlock in epoch_test_stale_items test

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

* Don't throw exceptions in unit tests

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

* Fix single instance hook initialization in test cases

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

* Fix deadlock in performance test

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

* Add usersim.dll to installer files

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

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-07-27 18:36:05 +00:00
Gianni Trevisiol d5e52ae2c1
Uniform trace logging (#2685)
* Add trace provider checks

* wip

* order refactoring

* align keywords
2023-07-25 00:14:57 +00:00
Alan Jowett b6c5762bc5
Reduce reference set from bpf_object__open_file (#2687)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-07-21 16:53:24 +00:00
Alan Jowett 10ad6d205e
Delay initializing RPC binding handle (#2679)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-07-20 18:50:56 +00:00
Dave Thaler 792d41cd2f
Update use of usersim library to use Ke* DPC APIs (#2662)
* Update usersim library for DPC API support

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

* Flush queued DPCs before terminating usersim platform

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

* Fix fault injection test

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

* Fix test bugs found by fault injection

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

* Use usersim Ke*Timer apis

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

* Fix bad uses of REQUIRE in netebpfext_unit constructors/destructors

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

* Fix mismatched initiate/terminate calls

Move Test-FaultInjection.ps1 to the usersim repo

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

* Use REQUIRE instead of throwing exceptions from unit tests

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

* Don't use REQUIRE in constructors

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

* Fix memory leak bug in netebpf_ext_helper destructor

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

* Fix reference count leak in net_ebpf_extension_sock_ops_flow_established_classify

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

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-07-18 06:47:46 +00:00
Alan Jowett 97fb3ae0da
Reduce statically initialized strings (#2672)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2023-07-14 23:26:51 +00:00
Dave Thaler a90097517e
More usersim library cleanup (#2636)
* More usersim library cleanup

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

* Fix analyze warning

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

* Use TraceLogging for printk

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

* Fix analysis warnings

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

* Fix deadlock in core_helper_fuzzer

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

* Update usersim library

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

* Fix call to RpcStringFreeA

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

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-07-06 23:41:58 +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
Sharmi 6544208724
Validate program type in ebpf_program_create (#2628)
* Validate program type in ebpf_program_create

* Fixed unit_test for EBPF_OPERATION_GET_PROGRAM_INFO return for invalid program type

* Add trace for EBPF_EXTENSION_FAILED_TO_LOAD

* Updated the retval in ebpf_program.h
2023-06-26 22:27:38 +00:00
Alan Jowett c1fecf4e2d
Implement hash-table iterator (#2566)
* Implement hash-table iterator

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

* PR feedback

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

* PR feedback

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

* PR feedback

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

* Switch iterator to match BPF_MAP_LOOKUP_BATCH syscall behavior

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

* Switch iterator to match BPF_MAP_LOOKUP_BATCH syscall behavior

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

---------

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-06-22 16:43:44 +00:00
Anurag Saxena b5d0dfa141
Fix build failures with latest MSVC (main) (#2598)
* test

* fix MSVC path

* Revert "test"

This reverts commit c0c42dd2bd.

* update hash

* use env variable for MSVC path

* export env variable

* fix analysis failures
2023-06-15 20:09:37 +00:00
Alan Jowett f734b5e1d9
Cleanup ebpf_map_metadata_tables (#2565)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-06-09 19:24:42 +00:00
Alan Jowett 9edb6a3da8
Add support for map info via BTF in .maps section (#2551)
* Switch bpf2c to use BTF .maps section

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

* PR feedback

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

* PR feedback

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

---------

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-06-08 05:26:05 +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
Delaram Amiri a90d756de1
_update_hash_map_entry_with_handle - over release ref-count (#2524)
* api and multithread test

* deleted:    .azure/pipeline/azure-cicd.yml
deleted:    .azure/pipeline/azure-reusable-build.yml
deleted:    .azure/pipeline/azure-reusable-test.yml
modified:   libs/execution_context/ebpf_maps.c

* address PR comment
2023-06-07 15:49:01 +00:00
Dhiren Vispute f02a98e4f2
Add comments re. epoch awareness in code paths lacking the epoch sandwich. (#2523)
Co-authored-by: Dhiren Vispute <dhiren.vispute@microsoft.com>
2023-06-02 17:19:04 +00:00
Gianni Trevisiol d6bcf1958c
Refactor eBPFCore tracing to use less stack space. (#2501)
* refactor ebpfcore tracing

* feedback
2023-05-31 17:26:09 +00:00
Michael Friesen 15c88bb569
clean up native NMR handle only if not null (#2530) 2023-05-30 16:11:14 +00:00
Anurag Saxena c471719074
Fix closing native program / maps handles in system worker thread. (#2500)
* fix

* fix analyze build

* fix memory leak

* add tests

* code reorder

* mark new tests for DEBUG only

* fix Release build

* CR comments

* cr comments
2023-05-26 02:19:41 +00:00
Alan Jowett 396412bc56
Add recursive tail call test (#2504)
* Add recursive tail call test

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

* Add sequential tail call test

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

* PR feedback

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

* PR feedback

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

* Fix code analysis failure

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

* Document workaround for bpf_helpers.h conflict

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

---------

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-05-24 20:01:01 +00:00
Alan Jowett 1a7155faba
Remove double free of ebpf_map_t (#2515)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-05-24 17:39:51 +00:00
Alan Jowett f084c9d4c3
Remove unneeded nuget package (#2507)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-05-24 14:38:32 +00:00
Dave Thaler 05be0228db
Fix build errors with Visual Studio 17.6.0 (#2483)
* Fix build errors with Visual Studio 17.6.0

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-05-17 23:02:46 +00:00
Anurag Saxena 82c2c05724
fix (#2479) 2023-05-17 21:51:29 +00:00
Anurag Saxena cbbb7597d5
Add check for IRQL between epoch enter / exit (#2344)
* fix

* fix
2023-05-16 15:16:16 +00:00
Alan Jowett 6d31ca1261
Remove NMR extension wrapper code. (#2434)
* Remove NMR extension wrapper code.

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

* PR feedback

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

* PR feedback

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

* Fix code analysis and cmake failures

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

* Don't call NMR apis are dispatch

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

* Fix code analysis failure

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

---------

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-05-15 18:49:55 +00:00
Alan Jowett 174757e4d3
_ebpf_object_tracking_list_insert returns success if table is full (#2459)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-05-12 00:28:33 +00:00
Dhiren Vispute f93849612b
Remove premature assert (#2458)
Co-authored-by: Dhiren Vispute <dhiren.vispute@microsoft.com>
2023-05-12 00:26:52 +00:00
Alan Jowett f92c9995b0
Add object history tracking instrumentation (#2449)
* Add object history tracking instrumentation

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

* Fix file_id type in history

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

* Code analysis failure

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

* PR feedback

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

* Fix incorrect instrumentation

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

---------

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-05-11 02:50:50 +00:00