Skip to content

Release-v1.1.0

Pre-release
Pre-release

Choose a tag to compare

@mikeagun mikeagun released this 25 Mar 00:53
· 94 commits to main since this release

Highlights

This is the first stable release of eBPF for Windows following the v1.0.0 release candidates. The important changes include:

  • Custom Maps: eBPF extensions can now register and implement their own custom map types via custom map types via ebpf_base_map_provider_dispatch_table_t, enabling extension-specific map entry handling.
  • Synchronous Ring Buffer and Perf Event Array APIs: Implements libbpf-compatible synchronous APIs for both ring buffer (ring_buffer__poll, ring_buffer__consume) and perf event array (perf_buffer__poll, perf_buffer__consume) maps.
  • Accept and Bind Hook Hard/Soft Permit: Accept and bind hooks now support hard and soft permit verdicts (extending connect hook support from v1.0), giving control over whether subsequent hook programs/filters can override a permit decision.
  • Epoch Memory Improvements: Replaced InterlockedCompareExchange64 with ReadAcquire64 for published epoch reads, eliminating LOCK-prefix cache-line contention (4–43% benchmark improvement). Also fixed a per-CPU epoch skew bug and wrapped remaining async completion code paths in epoch logic.

What's Changed

  • updated list of maintainers. by @shankarseal in #4746
  • update WDK version to 10.0.26100.6584 by @shankarseal in #4752
  • update version to 1.1.0 and other miscellaneous changes. by @shankarseal in #4723
  • wont fix policy. by @shankarseal in #4753
  • fix bpf-conformance version path for onebranch by @mikeagun in #4754
  • Exposing result helpers to be consumable by extensions by @nmlud21 in #4733
  • Optimize nested map operations by @saxena-anurag in #4684
  • Update usersim submodule to latest by @saxena-anurag in #4792
  • Add implementation for RtlUTF8StringToUnicodeString by @saxena-anurag in #4793
  • Fix for #4647 - Bugcheck in eBPFCore by @kumarvin123 in #4790
  • Add metadata file by @saxena-anurag in #4798
  • Update procDump checksum by @LakshK98 in #4836
  • Added KM test to test load/unload of sample drivers by @nmlud21 in #4830
  • Increase test timeout for stress tests. by @saxena-anurag in #4771
  • Re-enable regression tests using v1.0.0-rc1 by @mikeagun in #4838
  • Fix ensure-issue-linked workflow 403 error when commenting on PRs by @Copilot in #4762
  • Fixes: #4702 - The cilium_tests should be changed to work without the… by @kumarvin123 in #4860
  • _ebpf_object_load_native: wait until service is deleted on error by @lmb in #4785
  • Fix path quoting in Install-eBPFComponents and Uninstall-eBPFComponents by @lmb in #4805
  • Updated build platform path by @nmlud21 in #4859
  • Fixed incorrect invocation of netsh during ebpf install by @nmlud21 in #4858
  • Extension Code Deduplication Doc by @LakshK98 in #4806
  • Fix ETL collection for driver tests by @matthewige in #4872
  • Hold program information provider rundown reference while using program information by @Alan-Jowett in #4877
  • Fix VM expiry issue by @matthewige in #4871
  • Fixes #4706: Bring back XDP Mock provider and test XDP programs by @kumarvin123 in #4878
  • Accept hook hard permit support by @mikeagun in #4800
  • Mark load_all_sample_programs as mandatory by @nmlud21 in #4880
  • Let check-pr workflow inherit permissions by @dthaler in #4848
  • bind hook hard/soft permit support by @mikeagun in #4886
  • Add automatic issue creation on netperf workflow failure by @Copilot in #4903
  • Ensure that all comments are complete sentences as per guidelines by @Alan-Jowett in #4760
  • Pickup latest verifier by @Alan-Jowett in #4844
  • Add proposal for bpf_sock_ops_get_flow_id by @Alan-Jowett in #4769
  • Update submodules: pe-parse and kissfft by @Alan-Jowett in #4907
  • Extend api_tests to test all exported eBPF APIs with comprehensive validation by @Copilot in #4606
  • Add ErrorActionPreference to initialize_ebpf_repo.ps1 by @prince-melvin in #4928
  • Fix links to CONTRIBUTING.md in markdown by @mtfriesen in #4918
  • Publish proposal for connect authorization layer by @Alan-Jowett in #4767
  • Fix invalid 'permissions: inherit' syntax with explicit permissions in workflows by @Copilot in #4930
  • Refine issue prioritization criteria in Governance.md by @mingxr in #4667
  • Skip updating lru hotlist for user mode map reads by @mikeagun in #4893
  • Fix UAF in epoch work item: add epoch protection to map delete functions by @Copilot in #4906
  • Fix flaky thread_start_time TCP tests: Handle async worker thread execution by @Copilot in #4942
  • Update external/pe-parse submodule to b0dabd3 by @Alan-Jowett in #4943
  • Fix NuGet package: include spec/ebpf_base.h from ebpf-verifier submodule by @Copilot in #4946
  • Add .github/copilot-instructions.md for Copilot sessions by @Alan-Jowett in #4948
  • Add standalone stress test for eBPF core driver restart with open handles and pinned objects by @Copilot in #4894
  • Implement libbpf synchronous ring buffer API by @mikeagun in #4651
  • epoch: fix per-CPU epoch skew (published global epoch) + add regression tests by @Alan-Jowett in #4924
  • Fix flaky TCP process start key tests - handle async execution context by @Copilot in #4963
  • Fix LRU user mode access test by @mikeagun in #4965
  • Fix fuzzer crash on malformed ELF relocation sections by @Alan-Jowett in #4959
  • Fix kernel dump generation on test timeout using -Scope Global by @Copilot in #4922
  • ci: Set gather_dumps to false for km_ebpfcore_restart_test by @Alan-Jowett in #4968
  • Free outstanding async contexts in ring deletion. by @mikeagun in #4964
  • Extend automatic bug filing to merge-queue CI failures by @Copilot in #4977
  • fix LRU user/kernel behavior tests by @mikeagun in #4981
  • Update API tests to use native helper by @saxena-anurag in #4881
  • Fix setup_build unnecessary rebuilds by @mikeagun in #5004
  • copilot skills for ebpf by @mikeagun in #5005
  • Fix test failures from Catch2 submodule update by @Copilot in #4940
  • Fix BPF program incremental build correctness by @mikeagun in #5002
  • ci: Cache LLVM installer from GitHub releases instead of Chocolatey by @Alan-Jowett in #4980
  • enhance dedup doc by @LakshK98 in #4994
  • Add detailed instrumentation to multi_attach_concurrency_test1 by @Alan-Jowett in #4995
  • Block lookup_and_delete for HASH_OF_MAPS by @saxena-anurag in #5031
  • Fix km_ebpfcore_restart_test to run inside VM by @Alan-Jowett in #5000
  • cache map info for native mode by @saxena-anurag in #5038
  • Custom maps implementation by @saxena-anurag in #4895
  • add stress test duration parameter in api_test. by @shankarseal in #5042
  • Implement perf event array map synchronous API by @mikeagun in #4966
  • Fix use-after-free in netebpfext_unit concurrent tests by @Alan-Jowett in #5048
  • Wrap remaining ebpf async completion code paths in epoch logic. by @shankarseal in #5060
  • Set-Version.ps1 does not handle a NULL EbpfVersion_Modifier by @Alan-Jowett in #5071
  • Fix memory leak by @saxena-anurag in #5069
  • epoch: use ReadAcquire64 instead of InterlockedCompareExchange64 for published epoch reads by @Alan-Jowett in #5083
  • Bump PREVAIL verifier from e68a347b to b24faf5ea and handle breaking changes by @mikeagun in #5078
  • bump prevail to 4790e8199 to resolve fuzzer crash by @mikeagun in #5101
  • [release/1.1] Update spd file for ebpfcore by @saxena-anurag in #5097
  • Add spd option for Convert-BpfToNative.ps1 (#5100) by @saxena-anurag in #5111
  • Find msbuild path using vswhere by @kumarvin123 in #5125

New Contributors

Full Changelog: v1.0.0-rc2...Release-v1.1.0