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