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

51 Коммитов

Автор SHA1 Сообщение Дата
Alan Jowett 9edb6a3da8
Add support for map info via BTF in .maps section (#2551)
* Switch bpf2c to use BTF .maps section

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>
2023-06-08 05:26:05 +00:00
Sharmi 8adab0de10
stress test for tail calls (#2518)
* Add stress test for tail calls

* Added the code generated bindmonitor_mt_tailcall files

* Added the test case description to readme.md

* Update tests/stress/km/stress_tests_km.cpp

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

* Update tests/stress/km/stress_tests_km.cpp

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

* Addressed PR comments and Fixed merge conflicts with latest

* Fixed function name

* Regenerated the expected files, after the macro MAX TAIL CNT change done yesterday

* Update tests/stress/readme.md

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

* Removed clean_up tail call

* Add bind in loop

* updated the readme

* Addressed PR comments

* Changed LOG_VERBOSE to LOG_ERROR

* Updated readme and addressed PR comment

---------

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2023-06-07 05:21:47 +00:00
Alan Jowett 396412bc56
Add recursive tail call test (#2504)
* Add recursive tail call test

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

* Add sequential tail call test

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 failure

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

* Document workaround for bpf_helpers.h conflict

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

---------

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-05-24 20:01:01 +00:00
Dhiren Vispute 92a2728021
Ensure valid shift values for *SH* instructions (#2470)
Co-authored-by: Dhiren Vispute <dhiren.vispute@microsoft.com>
2023-05-18 19:18:21 +00:00
Dave Thaler 67ef157802
Revert bpf_printk thunk (#2472)
Fixes #1715

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-05-16 16:07:05 +00:00
Gianni Trevisiol 4f41426bf1
Release v0.9.0 (#2425)
* Release 0.9.0

* nit newline
2023-05-03 03:17:59 +00:00
Dhiren Vispute c0e0804456
Ensure non-zero helper function count before using it in allocation computations. (#2393) 2023-05-02 00:50:34 +00:00
Dhiren Vispute 83567d6270
Add Multi-threaded stress tests (kernel mode). (#2240) 2023-04-25 21:00:44 +00:00
Anurag Saxena d8ccbc7625
connect_redirect tests: Add check that source port is not 0 (#2289)
* fix

* update expected files
2023-04-10 20:47:41 +00:00
Alan Jowett 240fbb16d8
Convert single line if to if with braces (#2224)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-03-27 15:01:21 +00:00
Gianni Trevisiol 9f58bcb653
Release v0.7.0 (#2169)
* wip

* wip

* wip

* doc

* Fix bpftoc generation script
2023-03-09 18:44:06 +00:00
Dhiren Vispute bebb9a14cd
Export new sock_addr specific helper function (windows only) (#2091)
* Export new sock_addr specific helper function (windows only)

* Revert PR 1827, export new sock_addr specific helper function (windows only)

This reverts commit 80bc1cb737.

* add step re. adding standard user credentials as well

* incorporate PR feedback

* documentation fix from PR feedback
2023-02-22 20:43:23 +00:00
Delaram Amiri 4283733f25
Replace Windows style type names with types names that match the coding guidelines (#2019)
* clean up code

* fixing the build

* Update libs/ebpfnetsh/elf.cpp

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

* fixing the build

* fixing the build

* fixing the build

* fixing the build

* fixing the build

* fixing the build

* revert HRESULT

* change BOOL type

* change BOOL type

* change BOOL type

* change BOOL type

* change BOOL type

* change BOOL type

* revert LPSERVICE_MAIN_FUNCTION

* revert SERVICE_MAIN_FUNCTION*

* SAL annotation for svcmain.cpp

* revert some SAL annotation

* remove some extra spaces

* fix tests

* change to bool type

* Update map_dll.c

* fix according to dll_main prototype

* fix BOOL

* fix according to dll_main prototype

* BOOl type

* BOOl type

* modify doc for self host runner setup

* modify doc for self host runner setup

* update tests with bool

* Update tests/unit/wer_report_test_wrapper.cpp

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

* Update libs/platform/user/ebpf_platform_user.cpp

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

* Update libs/ebpfnetsh/programs.cpp

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

* change _Null_terminated_ to _Field_z_

* address PR comment

---------

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Gianni Trevisiol <gtrevi@users.noreply.github.com>
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2023-02-16 11:56:32 -08:00
red d2014da017
Add support for atomic instructions in bpf2c (#1936) 2023-02-14 11:15:38 -07:00
Alan Jowett a7c10fb761
Update scripts\generate_expected_bpf2c_output.ps1 to generate custom and unsafe programs (#2058)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>
2023-02-09 20:09:31 +00:00
Anurag Saxena e3c62b2a91
Update connect redirect tests to test only-v4 and only-v6 program scenarios. (#2042)
* update tests

* update expected files

* fix tests
2023-02-07 19:50:12 +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
Dave Thaler c4f8f96599
Bump version to 0.6 in preparation for another unsigned release (#2036)
Following the process documented at
https://github.com/microsoft/ebpf-for-windows/blob/main/docs/ReleaseProcess.md

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-02-06 20:22:27 +00:00
Dhiren Vispute f50dcb999d
Use weak reference counts for object table entries (#2004)
Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2023-02-03 09:33:18 -08:00
Alan Jowett 2c4e418c6e
Remove vestigal division by zero code (#2007)
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2023-02-02 13:29:40 -08:00
Alan Jowett 27fee383cd
Prevent loading of incompatible native modules (#1990)
* Prevent loading of incompatible native modules

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

* Apply suggestions from code review

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

* Fix test failures

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

---------

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>
2023-02-01 20:43:58 +00:00
Dave Thaler 68544ba5e6
Update verifier to latest (#1991)
* Update verifier to latest

Fixes #1451
Fixes #1756

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

* Update samples to work around verifier limitation

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

* Update expected bpf2c output

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

* Fix cmake build

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

---------

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2023-02-01 12:52:20 -07: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
Dhiren Vispute 971f19b8d4
Add support for j*32 instructions (#1792) 2023-01-02 14:53:19 -08:00
Anurag Saxena 8cb62b3fd7
Support for multiple implementations of global helper functions (#1761)
* fix

* add native test

* cleanup

* CR comments

* update expected files

* fix

* cr comments
2022-12-31 10:56:28 -07:00
Alan Jowett f4b0fa1a50
Add version check to native images (#1720)
* Add version check to native images

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

* Fix release build

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-19 20:51:07 -07:00
Alan Jowett 8edff23f55
Update ebpf-verifier to latest (#1712)
* Update ebpf-verifier to latest

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

* Update expected output

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

* Fix code analysis warning

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

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-12-08 00:05:08 +00:00
Anurag Saxena 8fd3acf528
Connect redirect implementation (#1651)
* draft fix

* fix

* demo

* fix initial ref counts

* fix

* cleanup

* backup

* checkpoint

* backup

* tests working

* fix analyze errors

* fix netebpfext build / bad merge

* sln file update

* v6 tests

* fix netebpfext user build

* refactor connect_redirect tests

* netebpfext changes

* fix tests

* fix netebpfext user tests

* fix sal

* add sublayer, remove filter_instance

* fix

* fix

* driver_tests

* fix bad merge

* fix scripts

* fix driver tests script

* driver tests script

* script fix

* add trace to debug failure

* fix driver test script

* create context only on allow, and create 2 contexts

* fix script

* netsh fix

* fix scripts

* add tests for pure v4 and v6 sockets

* fix test

* v6 test vm addresses

* remove commented code

* code cleanup

* cleanup

* remove bad_map_name files

* cleanup

* fix tests print statements

* Apply suggestions from code review

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

* CR comments, fixes

* update connection context key, address CR comments

* fix build break, cr comments

* cr comments

* cr comments

* rename

* fix test script

* CR comments

* cleanup

* Apply suggestions from code review

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

* fix

* cr comments

Co-authored-by: Dave Thaler <dthaler@microsoft.com>
2022-11-29 20:49:42 +00:00
Alan Jowett 58cdfdcf8a
Spelling (#1601)
* Fix spelling in docs

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

* Fix spelling in ebpfsvc

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

* Fix include

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

* Fix libs part 1

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

* Fix libs part 2

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

* Fix tests

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

* Fix tools

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

* Fix build

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

* PR feedback

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

* Fix generated files

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>
Co-authored-by: Anurag Saxena <43585259+saxena-anurag@users.noreply.github.com>
2022-11-16 14:06:14 -07:00
Alan Jowett 0702410070
Implement correct division by zero behavior (#1411)
* Implement correct division by zero behavior

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

* Simplify code gen

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>
Co-authored-by: Dave Thaler <dthaler@microsoft.com>
Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-09-28 18:31:43 -06:00
Dave Thaler 90eee8717e
Expose interface luid and compartment id to sock_ops and sock_addr hooks (#1222)
* Add interface luid to bpf_sock_addr and bpf_sock_ops

And also add compartment id to bpf_sock_ops for consistency with
bpf_sock_addr, so that it is available to eBPF programs.

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

* Expose interface luid and compartment id to sock_ops and sock_addr hooks

* compartment_id was exposed to sock_addr but not sock_ops
* interface_luid was not exposed to either

Exposing the interface_luid should be a performant way to compensate for
lack of scope_id in the hooks, since the interface luid is available
in the WFP callout, and is more specific than a scope id (so a scope id
can always be looked up from the interface luid in the future if
needed).

Fixes #1129

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

* Update expected bpf2c output

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
2022-06-17 09:31:48 -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
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 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 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
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 fc5792f969
Build self-contained Convert-BpfToNative.ps1 (#1097)
* Build self-contained Convert-BpfToNative.ps1

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

* Update cmake build with code to generate Convert-BpfToNative.ps1

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

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-05-16 16:27:38 -06:00
Alan Jowett 9305a8edb7
Emit line directive for first line of BPF program (#1101)
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-05-14 21:20:29 -07: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 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
Alan Jowett 0fdf2a5039
Modify bpf2c output to meet the coding standards. (#1061)
* Modify bpf2c to generate code that matches coding style.
Switch file extension of expected code to .c so that it enforces
coding style requirements.

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

* Fix file-rename in CMakeLists.txt

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

* Fix bad merge

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

* Fix line splitting

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

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-05-05 14:41:13 -06:00
Alan Jowett 9f97deba38
Resolve warnings in bpf2c generated code (#1058)
* Resolve warnings in bpf2c generated code

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

* Add negative test cases for raw BPF programs

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

* Add negative test cases for raw BPF programs

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

Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-05-03 16:35:50 -06:00
Alan Jowett b262f97825
Add SHA256 hash of ELF file when generating native binary (#1047)
* Add SHA256 hash of ELF file when generating native binary

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

* Fix CXX17 deprecation warnings

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

* PR feedback

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

* Fix build

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

* Add CXXFLAGS

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

* Move CXX17 suppresion to top-level

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

* Fix builds

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

* Update expected bpf2c output

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

* Downgrade to LLVM 11 for bpf2c tests

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

* Revert clang11 in test

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

* Build sample ELF's with LLVM11

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

* Additional test cases

Signed-off-by: Alan Jowett <alanjo@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-03 07:40:42 -07:00
Dave Thaler 02212c861c
Use LLVM version 11.0.1 (#1016)
* Use LLVM version 11.0.1

Fixes #962

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

* Updated expected bpf2c output from LLVM 11

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

Co-authored-by: Alan Jowett <alanjo@microsoft.com>
2022-04-26 15:47:56 -06:00
Shankar Seal ec26f5d273
WFP ALE Flow established callout, tests etc. (#978)
* WFP ALE Flow established callout, tests etc.

* PR Feedback.

* bug fixes.

* PR feedback 2.
2022-04-20 16:48:20 -07:00
Dave Thaler 5eddf01178
Add initial bpftool tests and another libbpf test (#960)
* Add initial bpftool tests and another libbpf test

And fix various bugs hit by the tests.
This PR only adds a couple of initial tests.
A future PR will add many more tests.

bpftool_tests.exe is meant to be run on a machine with the drivers
installed.  A future PR will add it to the KM test runner in CI/CD.

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

* Fix release build

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

* Fix test

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

* Fix test

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

* Send stderr to bpf2c_tests log

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

* Update expected bpf2c output for map.o

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

* Fix bpf2c map output

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>
2022-04-19 16:24:01 -07:00
Alan Jowett 17379737cf
Add all program types to get_program_type_info in offline mode (#972)
* Encode all program info types

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

* Expand hard coded program types and helper functions

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

* Fix tail_call_map verification failure

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

* Fix tail_call_map verification failure

Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-04-18 17:41:01 -06:00
saxena-anurag 81a855e88f
Enable unit tests for native driver (#953)
* add native tests, bugfixes

* cr comments, fix test failures, fix bad merge

* fix analysis build break

* test failure
2022-04-15 18:26:41 -07:00
saxena-anurag 0df35e21ba
Add script to generate bpf2c expected files (#959)
* add script

* remove comment from script

* remove dead code

* change encoding

* change files to UTF8

* change utf8 to ascii

* recompile with LLVM13

* add comment about script usage, regenerate expected files

* fix test failures

* cr comments
2022-04-15 14:44:59 -07:00