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

235 Коммитов

Автор SHA1 Сообщение Дата
Lorenz Bauer 30a6cf75f1
Return ENOENT from bpf_obj_get when no pinned object exists (#3899)
The current implementation of bpf_obj_get doesn't follow libbpf semantics,
because it always returns -1 on error, instead of returning the negative
error number.

This is especially noticeable when trying to open a non-existant object,
which should return -ENOENT.

See caa17bdcbf/src/bpf.c (L625-L626)
2024-10-09 19:23:31 +00:00
Lorenz Bauer 504ed9a032
Return EBADF for negative object fds (#3901)
On Linux, -1 is a commonly used value for "invalid fd". As such it makes more
sense to return EBADF instead of EINVAL from object related API when a negative
fd is passed.

_get_handle_from_file_descriptor() returns ERROR_INVALID_HANDLE, which turns into
EBADF via the various compat layers. We can therefore simply remove the <= 0 check.
2024-10-04 17:28:48 +00:00
Lorenz Bauer e0b61633e0
Backwards compatible fixes to bpf() syscall emulation (#3870)
* bpf(): do not return errors via errno

The Linux ABI returns all syscall errors via the function return value,
not via errno.

Fixes https://github.com/microsoft/ebpf-for-windows/issues/3749

* Allow detecting if bpf() command is not implemented

Use SetLastError to indicate to callers that a bpf() command is not
implemented. This avoids polluting the bpf() return value with
platform specific error returns while still allowing detection of
this important case.

* Add forwards and backwards compatibility to bpf() emulation

On Linux, bpf() accepts a bpf_attr which is larger than what the
syscall expects, as long as the unknown fields are all 0. It also
accepts a bpf_attr which is smaller than what it expects, by assuming
that all missing fields are zero.

This allows forwards and backwards compatilibity between old and new
versions of both the Linux kernel and user space tooling.

Implement a similar scheme for the bpf() emulation.

* Return EPERM from bpf() if user is not privileged

On Linux, bpf() returns EPERM if the user doesn't have CAP_BPF. Return
the same error when the user isn't able to open the device handle.
2024-10-04 15:01:20 +00:00
Alan Jowett 735ec5277f
Refactor common platform and config into Directory.Build.props (#3891)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2024-10-02 19:14:14 +00:00
Alan Jowett 3738c826c7
Switch to using Visual Studio's version of LLVM and Clang (#3754)
* Add VS Clang to path

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

* Fix tests

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

* Reformat using clang 17.0.3

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

* Account for git_commit_id.h dependency

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

* Revert https://github.com/microsoft/ebpf-for-windows/pull/3756 from this branch

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

* Make LLVM path dependent on cl.exe path

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

* Use VCINSTALLDIR as root of LLVM path

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

* Update hash and set path to use environment variable

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-08-07 16:43:47 +00:00
Sharmi 54632eb360
Set errno for bpf_object__find_map_by_name (#3712)
* Initial Commit

* Initialize errno

* Set errno for bpf_object__find_map_by_name

* Added Doxygen comment
2024-07-23 18:32:28 +00:00
Shankar Seal 6b75459f04
UM API to write into a ring buffer map. (#3689)
* UM API to write into a ring buffer map.

* PR Feedback.

* PR feedback.

* PR comments.
2024-07-17 07:57:37 +00:00
Sharmi 7ee9edfb44
[bpf_map_lookup_batch] Fix bpf_map_lookup_batch data retrieval and add test cases for percpu hash map batch lookup (#3590)
* Initial commit

* Initial commit

* debug

* Initial commit

* Initial commit

* Added BPF_MAP_TYPE_PER_CPU to get the map type
2024-07-16 18:48:17 +00:00
D. Michael Agun 2efce152dc
Set empty program name to hash of instructions (#3493)
* Move C++ hashing lib from tests/libs/util/ to libs/shared/

This puts hash.cpp/hash.h in a more central location for use by other project files.

* Set empty program name to hash of instructions

ebpf_program_load_bytes now hashes the instructions and uses that for the name
instead of generating a random number.

Closes #3443

* fix signed/unsigned warning (and ensure windows helper id >= 0)

* add bcrypt.dll dependency for ebpfapi.dll

* WIP new test case for ebpf_program_load_bytes with nullptr program name

* WIP ebpf_program_load_bytes testing

* truncate SHA256 hash to 63 bytes to stay under BPF_OBJ_NAME_LEN

* remove bcrypt from release dependencies and suppress analyze warning

* PR feedback - fix comment and bpf2c include paths

---------

Co-authored-by: Michael Agun <danielagun@microsoft.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2024-07-02 14:47:03 +00:00
dependabot[bot] 2cf8fa184e
Bump external/ebpf-verifier from `df34181` to `2018df9` (#3600)
* Bump external/ebpf-verifier from `df34181` to `2018df9`

Bumps [external/ebpf-verifier](https://github.com/vbpf/ebpf-verifier) from `df34181` to `2018df9`.
- [Release notes](https://github.com/vbpf/ebpf-verifier/releases)
- [Commits](df3418141c...2018df951b)

---
updated-dependencies:
- dependency-name: external/ebpf-verifier
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix build failures due to breaking change

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Dave Thaler <dthaler1968@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dave Thaler <dthaler1968@gmail.com>
2024-06-03 19:10:39 +00:00
Dave Thaler 7b3f682ded
Implement libbpf autoload APIs (#3592)
* Implement libbpf autoload APIs

Fixes #3555

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Suppress spurious compiler warning

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Fix test failure

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Update tests

Files with no program sections succeed loading

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Address PR comment from Anurag

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* PR feedback

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Fix test

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Prevent changing prog type of a native program

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* PR feedback

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Remove unused program_type from native load ioctl

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Update default autoload value

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* PR feedback

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Fix test

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Add check to unit_test to match api_test

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Fix api_test

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

---------

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>
2024-06-03 15:28:04 +00:00
Dave Thaler 840269a9ec
Add support for multiple programs per section (#3557)
* Allow multiple programs per section

Temporarily use a fork of ebpf-verifier until
https://github.com/vbpf/ebpf-verifier/pull/642 is merged.

Per https://stackoverflow.com/questions/13147170/attribute-always-inline-failing
the __attribute__((always_inline)) doesn't do anything unless you also
have the "inline" keyword.

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Update verifier to latest

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Address comment from Alan

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Address API compat comment from Anurag

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

---------

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>
2024-05-29 15:30:20 +00:00
Alan Jowett aed27b488b
Add option to control the level of verbosity emitted by verifier. (#3570)
* Add option to control the level of verbosity emitted by verifier.

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

* Re-order enums to make normal < informational < verbose

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

* Apply suggestions from code review

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

* PR feedback

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

* Workaround for verifier failure #643

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

* Revert change in ebpf-service verification 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>
Co-authored-by: Dave Thaler <dthaler1968@gmail.com>
2024-05-23 14:02:34 +00:00
Dave Thaler d096b21ac5
Update copyright to be eBPF for Windows contributors (#3508)
* Update copyright to be eBPF for Windows contributors

Fixes #3507

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>

* Undo gratuitous formatting changes in expected files

---------

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>
2024-05-04 19:55:56 +00:00
Dave Thaler c2419acd66
Update verifier to latest (#3454)
Signed-off-by: Dave Thaler <dthaler1968@gmail.com>
2024-04-22 19:28:46 +00:00
Alan Jowett 17cebb0fc9
Fuzz verifier (#3417)
* Attempt to run the fuzzed BPF program

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-04-03 00:24:53 +00:00
Alan Jowett 6eccc187ba
Implement bpf_object__open_mem (#3416)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2024-04-02 01:11:11 +00:00
Anurag Saxena ae6bdfd757
Fixes for program info hash computation in online mode (#3373)
* fix

* fix tests

* fix

* code cleanup

* fix

* fix

* cleanup
2024-03-29 15:10:35 +00:00
Anurag Saxena 37613367a0
Fix ring_buf issues (#3354)
* fix

* add tests

* code cleanup

* fix tests

* cr comments

* cr comments
2024-03-16 00:16:14 +00:00
Alan Jowett f7bf6d0c92
Switch synchronous thread to thread_local storage (#3330)
* Switch synchronous thread to thread_local storage

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

* Add dedicated calls to cleanup device handles on thread attach/detach

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

* Add dedicate test to stress device handling

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-03-06 16:50:54 +00:00
Alan Jowett dcd56fed2e
Eliminate calls with FILE_FLAG_OVERLAPPED set, but no overlapped (#3315)
* Eliminate calls with FILE_FLAG_OVERLAPPED set, but no overlapped

Signed-off-by: Alan Jowett (from Dev Box) <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett (from Dev Box) <alanjo@microsoft.com>

* PR feedback

Signed-off-by: Alan Jowett (from Dev Box) <alanjo@microsoft.com>

* PR feedback

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

---------

Signed-off-by: Alan Jowett (from Dev Box) <alanjo@microsoft.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2024-03-04 23:24:03 +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
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
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
Dave Thaler 64e670602f
Update verifier to latest (#3144)
Signed-off-by: Dave Thaler <dthaler1968@gmail.com>
2024-01-02 17:33:23 +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
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
Anurag Saxena 25dc5d4d00
Add tracing in ebpfapi (#2950)
* add tracing

* cr comments
2023-10-23 15:13:15 +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
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
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 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 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
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 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 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 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
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
Gianni Trevisiol d6bcf1958c
Refactor eBPFCore tracing to use less stack space. (#2501)
* refactor ebpfcore tracing

* feedback
2023-05-31 17:26:09 +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
Anurag Saxena 52b07b0164
Close native object handles in a work item in case of failure (#2395)
* fix

* fix

* fix

* fix analyze build

* cleanup

* code cleanup

* fix build break

* fix crash

* fix

* fix typo

* cr comments

* cr comments

* revert rundown change
2023-04-29 05:33:39 +00:00
Alan Jowett 8b1a8e4e0f
Update NuGet packages (#2386)
Co-authored-by: Alan-Jowett <Alan-Jowett@users.noreply.github.com>
2023-04-28 15:57:08 +00:00
Shankar Seal 55978758de
Mark subscription when async_ioctl call fails. (#2317) 2023-04-15 03:54:45 +00:00