v0.6.0
Pre-release
Pre-release
What's Changed
- Add xdp_tests.exe to deploy script by @dthaler in #1397
- Fix unregistering hook providers by @shankarseal in #1402
- Update documentation on xdp_tests by @shankarseal in #1403
- Include hash of program information in metadata by @Alan-Jowett in #1376
- Fix docs on show verification by @dthaler in #1407
- Fix get_attach_type_windows() by @saxena-anurag in #1421
- Update verifier to latest by @dthaler in #1419
- Use installer instead of building from source in the Tutorial by @jsturtevant in #1414
- Pull version number from resource\ebpf_version.h by @Alan-Jowett in #1373
- Update ebpf_version.h by @Alan-Jowett in #1428
- Add correct path to .guid files by @Alan-Jowett in #1429
- Implement correct division by zero behavior by @Alan-Jowett in #1411
- Add tests to verify BPF code generation for interpret and jit by @Alan-Jowett in #1430
- Fix the bpf_map_lookup_elem / bpf_map_update_elem API for per-cpu maps. by @Alan-Jowett in #1423
- Update setup_build.vcxproj by @Alan-Jowett in #1432
- Add ability to enumerate maps associated with a program by @dthaler in #1395
- Update selfhost runner doc. by @shankarseal in #1441
- Clean up msi and ci/cd by @dthaler in #1446
- Clean up unused code in header files by @dthaler in #1445
- Split MSI runtime component in two for base/native vs JIT additions by @dthaler in #1450
- Pin docker base image with hash by @song-jiang in #1447
- Refactor netebpfext in preparation for fuzz testing by @dthaler in #1464
- Enable docker tracking by dependabot - (#1463) by @dv-msft in #1484
- Add bpf2c test logs to test artifacts by @saxena-anurag in #1485
- Fix VS2019 requesting to retarget projects. by @gtrevi in #1499
- Updated GettingStarted guide with new required xDK versions. by @gtrevi in #1500
- Remove reference to broken link by @Alan-Jowett in #1477
- Fix script to use provide VM name by @Alan-Jowett in #1482
- Add bpf2c_plugin for use with bpf_conformance test suite by @Alan-Jowett in #1475
- Add more people to code review notifications by @dthaler in #1507
- Startup failures under low memory by @Alan-Jowett in #1504
- Fix double free in _load_program_data_information by @Alan-Jowett in #1535
- Fix crash in ebpf_program_info_free under low memory by @Alan-Jowett in #1540
- More low memory fixes by @Alan-Jowett in #1544
- Replace KdPrintEx calls (in NetEbpfExt) with Trace logging calls (#1466) by @dv-msft in #1536
- Added clarifications to
InstallEpf.md
by @gtrevi in #1549 - Fix API ebpf_object_set_execution_type() by @saxena-anurag in #1548
- Updated deprecated GitHub actions by @gtrevi in #1551
- Remove failures on ebpf_hash_table_delete path due to low memory by @Alan-Jowett in #1550
- Correctly unwind async state on failure by @Alan-Jowett in #1556
- Fix API ebpf_object_set_execution_type() by @saxena-anurag in #1561
- Check ebpf_epoch_enter return code and stop if it fails by @Alan-Jowett in #1558
- Fix double close of fd in api_test.exe by @Alan-Jowett in #1554
- Check for null before comparing strings from libbpf_bpf_prog_type_str by @Alan-Jowett in #1560
- Add ebpf_assert_success and always evaluate ebpf_assert values by @Alan-Jowett in #1571
- dependabot's tracking for 'pip' is failing by @delaramamiri in #1585
- dependabot's tracking for 'gitmodules' is failing by @delaramamiri in #1589
- Fuzz test netebpfext helper(s) by @dthaler in #1467
- Emulate driver verifier systematic low memory mode by @Alan-Jowett in #1512
- Resolve nmr_binding_handle to only in external calls by @Alan-Jowett in #1600
- Add Tracelogging to the EbpfCore driver by @dv-msft in #1566
- Add brief details about and link to, windbg's .kdfiles command (#1493) by @dv-msft in #1578
- Add notes re. over-rides to LLVM coding style (#1546) by @dv-msft in #1597
- Pre-allocate required memory for native module cleanup path by @saxena-anurag in #1583
- Disable low memory tests until failures are resolved by @Alan-Jowett in #1604
- Annotate platform API's with Must_inspect_result by @Alan-Jowett in #1564
- Check for detached client before firing by @Alan-Jowett in #1608
- Check for NULL return from ebpf_enumerate_sections and ebpf_api_elf_disassemble_section by @Alan-Jowett in #1606
- Rundown fd on _test_helper_end_to_end terminate by @Alan-Jowett in #1612
- Fix double free of program fd in handle_ebpf_add_program() by @saxena-anurag in #1619
- Close handle via fd to prevent orphaned fd by @Alan-Jowett in #1623
- bpf_object__open should fail if it hits low memory failure by @Alan-Jowett in #1616
- Annotate execution context API's with Must_inspect_result by @Alan-Jowett in #1568
- Resolve conflict when updating ubpf by @Alan-Jowett in #1609
- Always check return from bpf_object__open by @Alan-Jowett in #1631
- Annotate EBPF API's with Must_inspect_result by @Alan-Jowett in #1569
- Check for allocate_string failure by @Alan-Jowett in #1639
- Set thread affinity instead of process affinity by @Alan-Jowett in #1653
- Fix maximum entry tracking for hash map type maps. by @Alan-Jowett in #1592
- Resolve duplicate definition of _ebpf_objects by @Alan-Jowett in #1659
- Switch to std::unique_lock to prevent deadlocks by @Alan-Jowett in #1658
- Spelling by @Alan-Jowett in #1601
- Assert on deadlock in shutting down by @Alan-Jowett in #1643
- Store last failed allocation stack by @Alan-Jowett in #1645
- Implement native module states by @gtrevi in #1646
- Fix code scanning alert - Comparison of narrow type with wide type in… by @Keerthivardhan1 in #1594
- Expression short circuiting causes skipping of ebpf_api_close_handle by @Alan-Jowett in #1663
- Annotate remaining code with Must_inspect_result by @Alan-Jowett in #1570
- Instrument all allocation paths by @Alan-Jowett in #1620
- Add table of supported eBPF instructions by @dthaler in #1665
- Fixed CMakeLists.txt with hardcoded WDK version by @gtrevi in #1678
- Clean up leaked BPF objects when running low-memory tests by @Alan-Jowett in #1685
- Auto-update PR's that have auto-merge set by @dthaler in #1674
- Connect redirect implementation by @saxena-anurag in #1651
- Update doc to include step to install VC redist package. by @saxena-anurag in #1676
- Return module handle on native module load by @saxena-anurag in #1547
- Fix failure to decrement count on low memory by @Alan-Jowett in #1690
- Switch to release of bpf_conformance by @Alan-Jowett in #1692
- enable loading of native programs with no maps by @dv-msft in #1687
- Reduce noise from OpenCppCoverage during CI/CD testing by @Alan-Jowett in #1697
- Switch to storing native module handle via fd by @Alan-Jowett in #1695
- Re-enable low memory test by @Alan-Jowett in #1627
- Mark pe_context as failed on low-memory failure by @Alan-Jowett in #1700
- Initialize native module base object when attach happens by @saxena-anurag in #1698
- Fix ASAN issue on sanitize_unit_tests by @gtrevi in #1711
- Fix vector addressing issue. Minor optimizations. by @gtrevi in #1714
- Update documentation to exclude PE parse from anti-virus scanning by @delaramamiri in #1702
- Fix container size-check issue. Rescoped memory limitation. by @gtrevi in #1719
- Update ebpf-verifier to latest by @Alan-Jowett in #1712
- Replace _strdup with instrumented ebpf_duplicate_string and fix bugs uncovered by @Alan-Jowett in #1717
- Visual Studio 2022 porting by @gtrevi in #1521
- Cleanup by @dthaler in #1737
- Automatically update nuget packages by @Alan-Jowett in #1736
- LRU improvement's part 1 by @Alan-Jowett in #1723
- Speed up build of sample folder by @Alan-Jowett in #1724
- Clean up native nuget package dependencies by @Alan-Jowett in #1745
- platform library are missing SAL annotation by @delaramamiri in #1742
- Implement multi-generational LRU by @Alan-Jowett in #1726
- Update NuGet packages by @github-actions in #1747
- Rolling lru test and fix for heap corruption by @Alan-Jowett in #1752
- Fix code analysis annotations for In and In_opt parameters by adding const where appropriate or changing to Inout where appropriate. by @Alan-Jowett in #1749
- Check program_info hash during attach to provider by @Alan-Jowett in #1760
- Update NuGet packages by @github-actions in #1768
- Add version check to native images by @Alan-Jowett in #1720
- Add support for logging leaked allocations by @Alan-Jowett in #1770
- First round of memory leak fixes in ebpfapi by @Alan-Jowett in #1774
- Update documentation for fuzz testing by @delaramamiri in #1790
- Support for multiple implementations of global helper functions by @saxena-anurag in #1761
- Free link-object returned from bpf_program__attach_xdp by @Alan-Jowett in #1799
- Fix memory leak in circular maps by @Alan-Jowett in #1796
- Add support for j*32 instructions by @dv-msft in #1792
- Fix memory leak in bpf_prog_attach by @saxena-anurag in #1812
- Fix environment variable handling by @Alan-Jowett in #1805
- Update docs to indicate j*32 ebpf instruction support in bpf2c by @dv-msft in #1811
- Remove bpf_conformance submodule by @Alan-Jowett in #1816
- Remove dead code in encode_program_information module by @Alan-Jowett in #1821
- Add bpf_prog_test_run_opts support by @Alan-Jowett in #1825
- PR feedback from #1825 by @Alan-Jowett in #1838
- Support for extension to get the program context by @saxena-anurag in #1827
- Remove dawidd6/action-download-artifact by @Alan-Jowett in #1851
- Implement context handling for netebpfext by @Alan-Jowett in #1840
- Protect use of data retuned by NMR program information provider by @Alan-Jowett in #1853
- Change global variable to a static member per DevelopmentGuide by @dthaler in #1858
- Add netebpfext fuzzer by @dthaler in #1857
- Remove license-check on 'corpus' directories by @gtrevi in #1864
- Yield the CPU as needed when running BPF_PROG_TEST_RUN by @Alan-Jowett in #1856
- Add test for bpftool prog run by @Alan-Jowett in #1860
- Remove REQUIRE macro from some non-top level test code by @Alan-Jowett in #1863
- Cleanup test_helper.cpp by @Alan-Jowett in #1868
- Prune inactive threads from the epoch thread table by @Alan-Jowett in #1865
- Fix netebpfext fuzzer bug with prog types other than xdp by @dthaler in #1870
- Implementation of syscalls in bpf_syscall.cpp by @delaramamiri in #1866
- Fix race condition in ebpf_link_detach_program() and _ebpf_link_instance_invoke() by @saxena-anurag in #1906
- Fix bpftool show map by pin path by @dthaler in #1907
- Fix leak in EX_RUNDOWN_REF mock by @Alan-Jowett in #1886
- Remove dependency on trampoline table for interpret and native. by @Alan-Jowett in #1876
- Add doc about automated tests by @dthaler in #1913
- Add unit tests for BIND, CGROUP_SOCK_ADDR, and SOCK_OPS by @dthaler in #1895
- Add a project governance doc by @dthaler in #1912
- Add helper functions to bpf_endian.h by @b1tg in #1899
- Shave 8+ minutes off the overall build time by @dthaler in #1914
- Cache verifier based on commit id and options by @Alan-Jowett in #1926
- Update NuGet packages by @github-actions in #1894
- Remove the obsolete fuzz.exe by @dthaler in #1920
- List test executables in testing document by @dthaler in #1919
- Add option to generate .spd files for sample driven PGO by @Alan-Jowett in #1931
- Fix leak in __bpf_set_link_xdp_fd_replace() by @saxena-anurag in #1932
- Ensure core, api initialization for netsh unit tests by @dv-msft in #1945
- Normalize fuzzer & coverage library reference inconsistencies. by @gtrevi in #1935
- fix to
ring_buffer__new
API by @shankarseal in #1942 - Remove dependabot tracking for nuget packages by @dv-msft in #1944
- Regenerate and checkin corpus files by @Alan-Jowett in #1872
- Skip CI/CD build and tests for doc-only changes by @dthaler in #1950
- Use MSI package to build docker image by @song-jiang in #1957
- move misplaced assert in memory leak detection stack dump code to the right location. by @dv-msft in #1959
- Make bpf prog test run async internally to allow for cancellation. by @Alan-Jowett in #1953
- Mark all ebpf_* api's as noexcept by @Alan-Jowett in #1967
- Added Wix installer native project. by @gtrevi in #1960
- Fix ossar cicd job for doc-only changes by @dthaler in #1970
- Fix eBPF store clear/setup and add logs to
export_program_info.exe
by @gtrevi in #1975 - Implement sock_addr specific global helper functions by @saxena-anurag in #1847
- Protect ebpf_link_detach_program with a ref-count by @Alan-Jowett in #1984
- ebpf_program_t computes hash of program info on first attach by @Alan-Jowett in #1948
- Add JIT option for MSI Release bits and CI/CD. by @gtrevi in #1986
- enable app verifier for cicd build by @delaramamiri in #1929
- Update verifier to latest by @dthaler in #1991
- Prevent loading of incompatible native modules by @Alan-Jowett in #1990
- Add support for deploying eBPF to arbitrary filesystem locations by @mtfriesen in #1995
- Document epoch based memory management by @Alan-Jowett in #1988
- Catch and terminate exception in ebpf_ring_buffer_map_subscribe by @Alan-Jowett in #2000
- Delay NMR registration until link is ready by @Alan-Jowett in #2005
- Catch std::bad_alloc from ParsePEFromFile by @Alan-Jowett in #1999
- Remove vestigal division by zero code by @Alan-Jowett in #2007
- Resolve circular references using id entry references by @dv-msft in #2004
- perform a default action if the XDP program fails by @mtfriesen in #2003
- Incorporate post-merge feedback by @dv-msft in #2027
Full Changelog: v0.4.0...v0.6.0