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

281 Коммитов

Автор SHA1 Сообщение Дата
Alan Jowett 867f669781
Move preemptible check outside of spinlock region. (#1350)
Move setting thread affinity outside of spinlock region.

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>
2022-08-19 08:54:37 -07:00
Alan Jowett a2a128a3eb
Fix issued that caused epoch to not cleanup (#1332)
* Fix issued that caused epoch to not cleanup

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

* PR feedback

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

* PR feedbac

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

* Update libs/platform/ebpf_epoch.c

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

* Update libs/platform/ebpf_epoch.c

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

* Update libs/platform/ebpf_epoch.c

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

* Update libs/platform/ebpf_epoch.c

Co-authored-by: Dave Thaler <dthaler@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>
2022-08-16 15:05:49 -07:00
Dave Thaler c97b2a7782
Fix handling of long map names (#1328)
Fixes #1312

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

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-08-15 09:30:11 -07:00
Shankar Seal e4ccdc8b1c
Implement `bpf_prog_detach` and `bpf_prog_detach2` APIs. (#1311)
* Implement bpf_prog_detach and bpf_prog_detach2 APIs.

* fix SAL break.

* PR feedback.

* PR feedback and test changes.

* PR feedback.
2022-08-07 17:21:23 -07:00
Dave Thaler c41b4d9541
Add noexcept keyword to various internal APIs (#1305)
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-08-04 11:11:12 -06:00
saxena-anurag 4450b1ad66
Add negative tests for native module (#1310)
* add tests

* fix test

* fix tests

* Revert "fix tests"

This reverts commit 21debced20.

* tests

* tests

* Apply suggestions from code review

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

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-08-03 14:15:34 -06:00
Dave Thaler 7e0738ee07
Add support for new libbpf APIs (#1288)
* Update to latest libbpf .h files

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

* Add libbpf_bpf_{prog,attach}_type_str APIs

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

* Add libbpf_attach_type_by_name

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

* Add libbpf_bpf_{link,map}_type_str

And add tests for prog type and attach type names

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

* Add tests

And change type names to match Linux

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

* Fix cmake build

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

* Update tests

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

* Update docs

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

* Add bpf_program__insn_cnt()

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

* Add MSVC deprecated attribute to most deprecated APIs

Still haven't done bpf_object__next() or bpf_prog_load_deprecated()

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

* Mark bpf_object__next was deprecated

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

* Fix some test failures

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

* Suppress instead of disable deprecated warnings

To simplify diffs

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

* Merge with latest main

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

* PR feedback

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-07-29 14:57:30 -04:00
Alan Jowett b6fa3543f7
Update ubpf and fix build (#1293)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-07-25 10:32:35 -07:00
Dave Thaler 26506f9a67
Clean up ebpf_program.c (#1302)
* Clean up ebpf_program.c

Fixes #339

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

* Fix analysis warning

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-07-18 18:07:53 -06:00
Dave Thaler 067d5d7e7f
Clean up Verifier.cpp (#1296)
* Try some cleanup of Verifier.cpp

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

* Analysis fixes

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

* Fix error messages

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

* Fix test

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

Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-07-18 12:39:50 -07:00
saxena-anurag 02f4bf016f
Clean up hard coded program type in EC (#1294)
* fix

* update documentation

* add bpf_obj_get_info_by_fd tests for cgroup_sock_addr

* fix

* cr comment
2022-07-15 13:48:45 -07:00
Shankar Seal a25ede7aaf
Fix ring buffer test subscriber logic. (#1286)
* Fix ring buffer test subscriber logic.

* PR feedback etc.

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-07-14 10:32:38 -07:00
Shankar Seal 23b1b1030c
Fix store read logic. (#1267)
* Fix store read logic.

* PR feedback.

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-07-05 16:54:22 -07:00
saxena-anurag 6c37e30cb7
Remove export_program_info dependencies (#1261)
* remove project dependencies

* fix build break

* fix dependencies
2022-07-05 10:09:19 -06:00
saxena-anurag 8b96a52b43
fix (#1257)
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-06-30 18:37:33 -07: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
Shankar Seal 26624388ea
Add tracelog to netebpfext. (#1247)
* Add tracelog to netebpfext.

* Apply suggestions from code review

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

* PR feedback.

* Fix.

* PR feedback.

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-06-30 15:08:02 -07:00
Dave Thaler 5bb8238962
Validate IOCTL header length (#1256) 2022-06-29 08:56:47 -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 b095630b55
Check if the mode is supported prior to permitting an IOCTL (#1233)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-06-20 17:13:47 -06:00
Dave Thaler 7cd7a05e16
Test helper's _net_ebpf_xdp_adjust_head shouldn't permit unbounded memory allocations (#1229)
* Add SAL

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

* Test helper's _net_ebpf_xdp_adjust_head shouldn't permit unbounded memory allocations

This bug only affected the tests, not the actual runtime.

Also fix some annotations found while debugging this

Fixes #1218

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-06-17 07:33:25 -07:00
Alan Jowett c609fe0452
_update_lpm_map_entry should reject call with NULL key (#1226)
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 17:50:20 -06:00
Dave Thaler d71039c6f7
Fix LPM crash with malformed key (#1224)
Fixes #1223

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

Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-06-15 17:04:09 -06:00
saxena-anurag 66ca82980e
Api test fixes (#1215)
* api_test fixes

* cicd changes

* fix

* Revert "cicd changes"

This reverts commit 9a48d232774905d90fe4bdb196b87c1bf3e221a0.

* cr comments

* cicd changes

* fix bpf2c tests cicd

* fix bpf2c tests cicd

* fix

* revert cicd changes

* revert cicd changes

Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2022-06-15 15:12:09 -07:00
saxena-anurag 96226a7db9
Change default program type to EBPF_PROGRAM_TYPE_UNSPECIFIED (#1173)
* fixes

* update cmakelists

* fix bpf2c tests

* fix cilium tests

* add tests

* update bpf2c issue number

* Apply suggestions from code review

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

* fix

* fix

* fix

* cr comments

* fix build break

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2022-06-15 09:59:39 -06: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 25abe8fb4f
Fix port_quota app usage (#1184)
* port quota

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

* Fix port_quota load

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

Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2022-06-09 16:17:39 -07:00
Shankar Seal 4cd65088d3
fix. (#1187)
Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-06-09 11:47:05 -07: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
Dave Thaler f863a02469
Create bpf_map structures from bpf_object__open() on a native file (#1160)
* Create bpf_map structures from bpf_object__open() on a native file

Fixes #1140

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

* Fix map update when loading native object

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

* Update tests

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

* Fix for test

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

* More test fixes

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

* More test fixes

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

* PR feedback

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

* PR feedback

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-06-07 19:28:52 -07:00
Dave Thaler eae988a17c
Part 1 of fuzzer additions (#1159)
* 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>

* Temporarily revert cicd.yml changes

To see if tests pass or not

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

* Temporarily revert more files

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-06-02 06:19:10 -07:00
Dave Thaler 063ed2a4f8
Update to latest libbpf and bpftool (#1155)
* Update to latest libbpf and bpftool

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

* Fix test

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

* Update to latest verifier commit

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-05-31 17:43:39 -07:00
Dave Thaler ee166b5717
Increase instruction count limit (#1152)
* Increase bound on instruction count

And align more with other platforms

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

* Fix compiler error

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-05-31 16:02:05 -07:00
Alan Jowett 82db45509d
ebpf_extension_load should check both module_id and interface_id (#1147)
* ebpf_extension_load should check both module_id and interface_id

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

* Fix performance test

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>
2022-05-27 15:40:39 -07:00
Alan Jowett 9fdd90adb3
Adding negative tests for ebpf_core.c (#1132)
* Adding negative tests for ebpf_core.c
Fixed bugs in ebpf_core.c around handling bad data.
Fixed incorrect helper function numbering for bpf_ktime_get_ns.
Canonacalizes names of protocol structs and handlers.
Simply protocol dispatch table and remove redundancy.
Add the ability to unregister for async notification (for failure path).
Remove redundant checks (internal calls with SAL annotations).

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>
Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-05-26 14:06:02 -07:00
Dave Thaler bec56bc8c3
Add (non-deprecated) bpf_prog_load API support (#1130)
* Add bpf_prog_load()
* Move prototype for bpf_prog_load_deprecated() from libbpf.h to bpf.h
  to match libbpf
* Mark as deprecated bpf_object__load_xattr(), bpf_load_program(), and
  bpf_load_program_xattr() to match libbpf
* Make bpf_load_program_xattr() support the program name field, where
  previously it was ignored and a random name was used.

Fixes #1073

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-05-24 16:12:00 -07:00
Dave Thaler 4718bf7a73
Support bpf_object__load() with native programs (#1133)
* Make bpf_object__open_file work with native files

* Update bpf_object__open_file()
* Add bpf_object__open()
* Rename ebpf_enumerate_sections() to ebpf_enumerate_program_sections()

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

* Remove ebpf_program_load

And add a couple of windows-specific libbpf related APIs

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

* Fix bug in enumerate sections hit by tail_call_multiple_um.dll

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

* Fix program_name field in object_open

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

* Cleanup

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

* Fix order of PE sections returned

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

* Bug fix

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

* Bug fix

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

* Bug fix and revert enumerate_sections rename

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

* Updated expected bpf2c output

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

* Fix analysis warning

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

* Updated issue number in TODO comments

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

* Address Anurag's feedback

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-05-24 14:53:04 -07:00
Alan Jowett 29358e405f
Update ebpf-verifer and fix name changes (#1128)
* Update ebpf-verifer and fix name changes

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

* Fix failing branch

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

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-05-19 15:36:51 -06:00
Alan Jowett 8106ab3ead
Fix crash hit during PR's fuzzing job (#1126)
* Fix crash hit during PR's fuzzing job

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

* Fix crash hit during PR's fuzzing job

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

* PR feedback and more coverage

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-05-19 14:27:02 -06:00
Alan Jowett e6c68671b2
Fix driver verifier failure from zero size allocation (#1116)
* Fix driver verifier failure from zero size allocation

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

* Fix assert when duplicating empty UTF8 string

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

* Add test coverage - empty ELF file

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

* Add test coverage - empty ELF file

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

* Fix driver verifier failure from zero size allocation

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-05-19 13:53:41 -06:00
Alan Jowett cb10093a54
Add function entry/exit tracing to ebpf_api.cpp (#1108)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-05-19 12:14:42 -06:00
Dave Thaler e213b5c963
Add bpf_get_current_pid_tgid() helper (#1107)
* Add bpf_get_current_pid_tgid() helper

Fixes #1106

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

* Fix test

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

* Add KM test

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-05-18 20:12:31 -06:00
Alan Jowett f396e285e5
Arm epoch cleanup timer on work item schedule (#1114)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-05-17 14:34:06 -07:00
Dave Thaler eab141f47c
Remove more obsolete APIs (#1110)
* Remove ebpf_get_next_program (bpf_prog_get_next_id should be used
  instead)
* Don't export the internal ebpf_map_pin api

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-05-16 10:02:22 -07:00
Shankar Seal 6b98a8d384
cmakefile (#1075) 2022-05-13 18:23:18 -06:00
Alan Jowett e3f06ffc05
Fix write after free (#1086)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-05-11 17:55:38 -06: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
Alan Jowett 04dc2904c1
Add negative tests for maps and programs (#1072)
* Add negative tests for maps and programs

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

* Tweak tests

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

* Tweak tests

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

* Add pin coverage

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

* Fix code analysis failure

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

* Add negative tests for maps and programs

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

* Tweak tests

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

* Tweak tests

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

* Add pin coverage

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>

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

* PR feedback

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

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-05-11 12:20:08 -06:00
Dave Thaler 1e1b18e374
Add support for bpf_program__type (#1074)
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-05-09 10:11:48 -07:00
Alan Jowett c5b44d04e1
Add comments for map declarations (#1064)
* Add comments for map declarations

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

* Emit names instead of constants

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

* Fix build break

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-05-06 15:39:57 -06:00