* Disable color output to avoid appverif problem
There does not appear to be any simple way to use a custom color
class with CATCH2 so we just disable color as is done for a UWP.
Fixes#679
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Add reference to catch2 issue
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* More improvements on GettingStarted.md
* Update docs/GettingStarted.md
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* Update docs/GettingStarted.md
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* Add doxygen comments on all map types and map options
Fixes#672
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Address PR comment
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix driver verifier failure due to not setting the flag to indicate pages are locked
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* PR feedback
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Add initial infrastructure to trace function entry/exit in eBPF
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Offline feedback
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Fix verifier false positive
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Rename win32 error code APIs for internal consistency
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Update error mappings
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Replace unstable NTSTATUS code with a documented one
STATUS_FILE_NOT_SUPPORTED does not appear in MS-ERREF and support varies
by OS version so cannot be relied on. Replaced with
STATUS_INVALID_IMAGE_FORMAT.
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Implement simple version of BPF_MAP_TYPE_STACK
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* PR feedback
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Update libs/execution_context/ebpf_maps.c
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* Update libs/execution_context/ebpf_maps.c
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* Fix rename of error code on merge
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* PR feedback
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* Add support for ebpf_ring_buffer_t construct to core platform
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* PR feedback
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Fix build break
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* PR feedback
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Eliminate undefined behavior around calculating remaining space
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* add ingress interface index to xdp context.
* Address PR feedback.
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
* Add documentation on how to debug the kernel of a VM.
* Add network debugging as an alternative link
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Add performance test for LRU map
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Add additional test for BPF_MAP_TYPE_LRU_HASH
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* More bug fixes
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* Fix build break
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
* add auto-pinning option
* Apply suggestions from code review
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* Configure custom pin_root_path using bpf_object_open_opts
* use new api for map-in-map, remove pinning restriction for inner map, remove workaround for inner map id
* code cleanup
* cr comments
* Apply suggestions from code review
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* fix bad merge
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* Add libbpf bpf_prog_bind_map() API
Fixes#379
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix SAL annotation
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix leak
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Address feedback
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Make program lock protect the set of maps associated with the program
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
* Add support for BPF_MAP_TYPE_QUEUE
* Expose bpf_map_lookup_and_delete_elem helper and API
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
* Add libbpf bpf_create_map_in_map() API
* bpf_create_map() now fails for outer maps. You must use
bpf_create_map_in_map() instead.
* Fix bug where EBPF_INVALID_FD was incorrectly converted to
EBPF_INVALID_ARGUMENT by ioctl handling code (part of issue #595)
One symptom of this bug was that errno was being set to EINVAL
in a number of cases which should have been EBADF.
* Fix bug where a HASH_OF_MAPS (unlike ARRAY_OF_MAPS) wasn't enforcing
that an inner map value had to match the inner map template.
Refactored the code in ebpf_maps.c so the checking is in done in one
place called by both maps, to ensure consistency.
* Fix bug in HASH_OF_MAPS where if an update failed, it would leave
the old entry but incorrectly drop the reference it held. It now
preserves the reference since the entry is unchanged.
* Added test case for ARRAY_OF_MAPS created via libbpf. Previously
only HASH_OF_MAPS creation was tested for that path.
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Fix bug caught by kernel test
Signed-off-by: Dave Thaler <dthaler@microsoft.com>
* Libbpf doxygen fixes
* Add missing bpf_map__name
* Move bpf_object__unload to be in alphabetical order
Signed-off-by: Dave Thaler <dthaler@microsoft.com>