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

386 Коммитов

Автор SHA1 Сообщение Дата
Dave Thaler 927b2081e3
Update directory structure (#134)
Fixes #124

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-05-05 14:10:28 -06:00
Dave Thaler 90d0f6971f
Remove unused files (#130)
Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-05-05 10:11:34 -06:00
Dave Thaler 0459505439
Fix missing copyright/license info in several files (#129)
Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-05-05 08:53:36 -07:00
Dave Thaler 00bd6ef2da
Run a format-code pass on all files (#131)
This PR is the result of running "./scripts/format-code.ps1"
There are no manual changes in this PR

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-05-05 08:39:38 -07:00
Alan Jowett a8045d4f3e
EbpfApi should first load the program, then create ebpf_program_t and then verify (#128)
* EbpfApi should first load the program, then create ebpf_program_t and then finally verify

Resolves: #127

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

* PR feedback

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

* Update src/ebpf/libs/execution_context/ebpf_program.c

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

* Fix build break

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

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-05-04 17:58:49 -07:00
Dave Thaler 67e1e85633
Minor tweaks to diagram (#126)
Straighten arrow
Make PPL service box wider

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-05-04 15:20:29 -07:00
Alan Jowett 932b16cff3
Split out NetEbpfExt from eBPF execution context (#123)
Split EbpfCore.sys into EbpfCore.sys and NetEbpfExt.sys

Resolves: #122

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-05-04 15:31:12 -06:00
Alan Jowett 2b48815269
Add support for loading program provider information from kernel (#119)
Add support for loading program provider information from kernel

Resolves: #118 

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-05-03 16:17:10 -06:00
Dave Thaler 5e685b9911
More improvements to README file (#120)
Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-05-03 12:28:30 -07:00
Alan Jowett 3e55125d7c
Verify handles are from correct driver (#117)
Verify handles are from correct driver

Resolves: #116 

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-04-30 14:57:36 -06:00
Alan Jowett c2734bbeaf
Modify epbf_program_t to take a reference on the ebpf_map_t it uses. (#115)
ebpf_program_t should take a reference on ebpf_map_t object that it uses.

Resolves: #112

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-04-30 14:14:25 -06:00
Alan Jowett 05eb2789f9
Separate object enumeration from handle code (#114)
* Seperate object enumeration from handle code

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

* Fix typos

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

* PR feedback

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

* Add rules about object lifetime

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

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-04-30 12:55:21 -07:00
Alan Jowett b138e2fb83
eBPF should use Windows Handles for eBPF objects (#110)
* Pickup changes from upstream ubpf

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

* Add ebpf_handle_kernel.c to interface with Windows object manager to manage lifetimes.

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

* PR feedback

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-04-30 11:49:23 -07:00
Alan Jowett 5be028810b
Fix pool corruption and memory leak (#109)
Fix pool corruption and memory leak

Resolves: #107

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

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-04-29 18:17:02 -06:00
poornagmsft 71f86e72e2
fixing a minor typo (#108) 2021-04-29 15:22:29 -07:00
Alan Jowett eecf006201
Reduce churn in upstream ubpf repo (#104)
* Reduce churn in upstream ubpf repo

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-04-29 09:43:28 -06:00
Dave Thaler 39c1819f18
Update verifier to include changes to check ctx mismatches (#106)
Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-04-28 17:49:18 -07:00
Alan Jowett 88cd4bf3cb
All internal code should be /w4 /wx clean (#103)
All internal code should be /w4 /wx clean

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-04-28 15:51:58 -06:00
Alan Jowett a249f0f333
Switch demo to use ebpf_link APIs (#100)
Switch demo to use ebpf_link APIs

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-04-27 21:39:20 -06:00
Dave Thaler e88aedf4dc
Fix nits in architecture diagram (#101)
Fixes #99

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-04-27 18:56:50 -07:00
Alan Jowett 191920814c
Plumb API to call ebpf_hook API's from user mode (#98)
Plumb API to call ebpf_hook API's from user mode

Resolves: #98 

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-04-27 16:21:21 -06:00
Alan Jowett 9d08b00aef
Rename ebpf_hook_instance_t to ebpf_link_t (#95)
Resolves: #95 

Rename ebf_hook  to ebpf_link.

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-04-26 17:17:44 -06:00
Alan Jowett 0b0eaca37c
Implement eBPF extension and provider loading functionality (#90)
* Add support for invoking NMR to register client and providers.
Load global helper functions as extensions.
Create user-mode mocks to test extension loading.

Resolves: #80

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-04-26 16:37:12 -06:00
Alan Jowett 68cc22c090
Cleanup obsolute build files (#93)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-04-26 12:44:37 -07:00
Dave Thaler db9dea71e1
Remove some header ordering dependencies (#92)
Fixes #22

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-04-26 12:16:20 -07:00
Dave Thaler 08c116b8d6
More cleanup (#91)
Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-04-26 11:43:13 -07:00
Dave Thaler 762e25939f
Cleanup (#89)
Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-04-25 15:25:25 -07:00
Alan Jowett a3d1f7fc4c
Switch ebpf_hook_instance_t to common ebpf_object_t ref-counting (#87)
Switch ebpf_hook_instance_t to common ebpf_object_t ref-counting

Resolves: #86

Signed-off-by: Alan Jowett alanjo@microsoft.com
2021-04-25 10:19:40 -06:00
Alan Jowett 1c0c4599bc
Update pinning table to use ebpf_utf8_string_t (#85)
Update pinning table to use ebpf_utf8_string_t

Resolves: #72

Signed-off-by: Alan Jowett alanjo@microsoft.com
2021-04-24 19:31:28 -06:00
Alan Jowett cc11c81a26
Create ebpf_program_t as first class object (#70)
Create ebpf_program_t as first class object

Refactor old code in ebpf_core.c into new ebpf_program.c

Switch code in ebpf_core.c to call new code in ebpf_program.c

Resolves: #61

Signed-off-by: Alan Jowett alanjo@microsoft.com
2021-04-24 17:03:51 -06:00
Dave Thaler 26429bc8b8
Update to latest verifier code (#69)
Also update boost to 1.75 to match what verifier uses

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-04-23 14:59:02 -07:00
Alan Jowett a1c6e9d73a
Implement handles as an abstraction (#68)
Implement handles as an abstraction

Resolves: #60

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-04-23 14:26:54 -06:00
Alan Jowett 44e748fcd8
Add doxygen style comments to all common ebpf headers (#58)
Update shared headers with Doxygen comments.

Resolves: #57

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-04-23 10:48:13 -06:00
Alan Jowett 2dee0dcebd
Add support for generic objects reference counting (#66)
Add support for generic objects reference counting.

Resolves: #65

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-04-23 10:21:12 -06:00
Alan Jowett ff1bbbf749
Add support for hook as first class object. (#54)
An ebpf_hook_instance represents the connection between an ebpf program and a attach point.

Signed-off-by: Alan Jowett alanjo@microsoft.com
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-04-23 09:42:55 -06:00
Alan Jowett 37dbd348f7
Remove remnants that assume CPU epoch starts at 0 (#63)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-04-22 16:52:08 -07:00
Alan Jowett c2611f741b
Switch ebpf_epoch to use WDM standard linked list functions. (#56)
* Switch ebpf_epoch to use WDM standard linked list functions.
Store free entries in incresing epoch to speed cleanup.

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-04-20 16:38:12 -06:00
Alan Jowett 199cfce121
Can't rely on initial 0 epoch to determine that a CPU isn't actively running eBPF programs.
Can't rely on initial 0 epoch to determine that a CPU isn't actively running eBPF programs.

Resolves: #51 (#52)

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-04-19 19:11:28 -06:00
Alan Jowett a289a253bc
Document how to run kernel driver on Windows. (#47)
* Document how to run kernel driver on Windows.

Resolves: 28

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

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-04-19 18:47:33 -06:00
Alan Jowett e7001b5c4c
Implement pinning as an abstraction. (#49)
* Implement pinning as an abstraction.
Update execution context to use pinning abstraction.

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2021-04-19 17:12:08 -06:00
Alan Jowett a57bfb30d4
Add epoch logic to handle run down of map entries. (#43)
* Add epoch logic to handle run down of map entries.
Integrate with execution context to invoke epoch_enter/epoch_exit on entry/exit of execution context.

Resolve: #24

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-04-19 16:43:45 -06:00
Dave Thaler b115fce38d
Fix CODEOWNERS (#45)
The alias has to be prefixed with the github org to be recognized

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-04-19 08:31:01 -07:00
Dave Thaler 57bef3dc03
Improve performance of boost install during windows CI pass (#44)
Pick up change to ebpf-verifier that potentially shaves a couple of minutes off the time needed for a CI pass

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-04-19 08:15:50 -07:00
Dave Thaler bbfb442b19
Fix format-code.ps1 extension matching (#42)
Use exact matching, not against a regex,
so "c" should not match "rc" for example.

Fixes #31

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-04-17 13:59:07 -07:00
Dave Thaler 8928f5eb90
Add architectural overview to README (#41)
And move instructions to a GettingStarted page.

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-04-17 13:37:48 -07:00
Dave Thaler 1c0e6c9b9f
Add CODEOWNERS file (#40)
So that pull request reviewers are automatically populated

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-04-17 13:22:43 -07:00
Dave Thaler 31b77e578c
Add option to show verbose verifier output (#38)
Fixes #20

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-04-17 13:09:43 -07:00
Dave Thaler c8a612ae19
Remove obsolete .sln files (#39)
And rename ebpf-demo.sln to ebpf-for-windows.sln

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-04-16 18:14:30 -07:00
Alan Jowett 9b45f8d24d
Switch ebpf_platform usermode to use NTDLL's Generic AVL table (#34)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2021-04-16 17:59:47 -07:00
Dave Thaler d773102b04
Make "show disassembly" work again when ebpfcore is not running (#37)
Fixes #35

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
2021-04-16 17:34:57 -07:00