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

17 Коммитов

Автор SHA1 Сообщение Дата
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
Sharmi 144b28f0cd
Add test for SeAccessCheckFromState Kernel OS user-mode API (#2464)
* Test SeAccessCheckFromState Kernel OS usermode API

* Removed contents in ebpf_nethooks.h

* Addressed PR comments
2023-05-15 05:00:22 +00:00
Sharmi 03c6297621
Simulate NMR API failure (#2263)
* Initial commit to get AddressSanitizer build

* Fix heap-use-after-free

* merge main contents

* Added client registration initialization and double heap free after use

* Fix build error

* Checked for bindcontext

* Only fail NMR registration

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

---------

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2023-04-21 18:50:41 +00:00
Alan Jowett 8c58620bdf
1. Optimize netebpfext_unit tests to avoid running (#2322)
tests that pass again.
2. Update Test-FaultInjection.ps1 to log what tests
are run in each iteration.
3. Avoid decoding symbols under a lock.

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-04-14 03:01:09 +00:00
Alan Jowett e8f437f364
Raise STATUS_ASSERTION_FAILURE on test timeout (#2272)
* Raise STATUS_ASSERTION_FAILURE on test timeout

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

* PR feedback

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

* Manually generated dump on test timeout

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

---------

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-04-06 23:03:43 +00:00
Anurag Saxena caa05287b1
Enable low memory simulation for netebpfext unit tests. (#2170)
* add test

* bugfix

* bugfix

* add low_memory_full test

* cr comments

* fix cicd.yml error

* fix, cr comments

* fix build break

* cr comments

* update environment
2023-03-13 18:38:41 +00:00
Alan Jowett 4cf0391526
Refactor low memory test into generic fault injection (#2173)
* Refactor low memory test into generic fault injection

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

* Update number of frames to skip

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-03-11 02:42:28 +00:00
Delaram Amiri 82bc565571
Add a connection reauth test in sock_add tests (#2159)
* add test cases for reauth flags

* Update netebpfext/user/fwp_um.cpp

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

* address PR comment

* update the test for reauth

* create one test

* change the comment

* change flag name

* change flag name

* Update netebpfext_unit.cpp

* Update fwp_um.cpp

---------

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-03-09 06:21:33 +00:00
Anurag Saxena 30f96a64aa
Add netebpfext user mode tests (#2124)
* fix

* add more tests, address cr comments

* fix cicd

* fix cicd

* fix analyze build

* switch to read / write lock

* fix fuzzer

* add concurrent test

* fix

* cr comments

* add sock_addr concurrency tests

* add tests

* add tests

* fix, cleanup

* cr comments

* bugfix
2023-02-28 05:30:38 +00:00
Dave Thaler cb43d4235d
Add test case for XDP_TX (#2029)
* Add test case for XDP_TX

This tests a failure path since FwpsInjectMacSendAsync0 is not implemented
in fwp_um.cpp.  However the CI/CD run ought to repro a leak.

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

* Fix analysis warning

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

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>
2023-02-08 00:57:29 +00:00
Dave Thaler 3d626ff9c1
Clean up order of includes (#2015)
* Clean up order of includes

Fixes #1963

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

* Update clang-format

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

* Clean up headers

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

* Update sort

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

* FIx various build errors

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

* Fix ordering if including a .c file

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

* Fix cmake build

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

* More header cleanup

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

* Update expected bpf2c output

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

* More header fixes

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

* Update expected bpf2c output for custom bpf.c

The generate script does not handle this file.

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

* Fix tests

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

* Fix more expected bpf2c output

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

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2023-02-07 18:32:19 +00:00
Anurag Saxena 319ba6dc6b
Implement sock_addr specific global helper functions (#1847)
* fix

* add native test

* cleanup

* CR comments

* update expected files

* fix

* cr comments

* add 2 helper

* fix proj

* add admin helper

* fix expected files

* test fix

* fix log

* fix

* fix

* fix

* fix test

* implement global helper, add tests

* fix cmake build

* fix analysis failure, update expected files

* update expected fileS

* reuse bpf_get_current_pid_tgid

* fix tests

* fix helper

* fix tests

* update expected files

* backup

* formatting

* fix bad merge

* cleanup

* cleanup

* update issue number

* add header file

* add standard user test

* update helper definition

* fix

* code cleanup

* code cleanup

* fix kernel test

* add check for API calls

* fix test, PR comments

* pr comments

* add debug logs

* add debug logs, fix netebpfext test

* fix netebpfext test

* comment out log

* add traces to debug

* CR comments

* fix netebpfext_unit sock_addr test

* cr comments
2023-01-30 23:44:30 +00:00
Dave Thaler fcce18ecb9
Add unit tests for BIND, CGROUP_SOCK_ADDR, and SOCK_OPS (#1895)
* Move hook NMR registration into netebpext helper class

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

* Unit test bind hook

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

* Add cgroup sock addr unit test

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

* Add unit tests for rest of cgroup sock addr attach types

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

* Partial sock_ops unit test support

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

* Cleanup

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

* Add sock_ops unit test

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

* Fix code analysis warning

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

* Fix code analysis warning

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

* Fix crash

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

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-01-19 00:03:48 +00:00
Alan Jowett 9f46c2ad90
Implement context handling for netebpfext (#1840)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-01-10 19:22:20 +00:00
Alan Jowett 0b293ad804
Fix code analysis annotations for In and In_opt parameters by adding const where appropriate or changing to Inout where appropriate. (#1749)
* Fix code analysis annotations for _In_ and _In_opt_ parameters,
add const where appropriate or change to _Inout_ where appropriate.

The following regex expressions were used to find the problems:
Find _In_ or _In_opt_ that are not const and are not followed by _Post_invalid_ or _Frees_ptr_ or _Post_ptr_invalid_:
```_In_[ ]+(?!.*(const|_Post_invalid_|_Frees_ptr_|_Post_ptr_invalid_))```
```_In_opt_[ ]+(?!.*(const|_Post_invalid_|_Frees_ptr_|_Post_ptr_invalid_))```

Some of the _In_ and _In_opt_ parameters are not const due to required compatibility with the Windows API.
Pointers to functions are const by definition, so the const qualifier is not required.

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>

* 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>

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-12-15 15:58:33 -08:00
Alan Jowett 0a9be2779e
Annotate remaining code with _Must_inspect_result_ (#1570)
* Annotate remaining code with _Must_inspect_result_

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

* Fix build

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

* PR feedback

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

* Fix merge failure

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

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>
2022-11-18 13:36:24 -08: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