Release-v1.1.0
Pre-release
Pre-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
InterlockedCompareExchange64withReadAcquire64for 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
- @prince-melvin made their first contribution in #4928
Full Changelog: v1.0.0-rc2...Release-v1.1.0