-
Notifications
You must be signed in to change notification settings - Fork 268
Initial commit of requirements for extending global helper functions #4795
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
| - The system **MUST** reject registration attempts when multiple drivers try to register helper functions with the same name | ||
| - Helper function names **MUST** be globally unique across all registered providers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After some thought, I am not sure I agree with lines 26 or 27 and suggest we should delete them.
Specifically, lines 26-27 contradict line 25 by requiring coordination to avoid name conflicts. Hence I agree with line 25 and that means I disagree with 26-27.
| - The system **MUST** reject registration attempts when multiple drivers try to register helper functions with the same name | |
| - Helper function names **MUST** be globally unique across all registered providers |
I believe Linux has no such restriction (so says copilot anyway), and BTF IDs provide a mechanism where each loadable kernel module could have helper functions with the same name. For example, the situation can arise in two example cases:
- if a third-party extension implements a helper function that exists on Linux, because ebpfcore and netebpfext don't. Then in a later release ebpfcore wants to implement the standard helper function. Lines 26-27 would prevent that.
- if two third parties independently want to implement a helper function that exists on Linux, because ebpfcore and netebpfext don't. Neither want to depend on the other (perhaps they're competitors). Lines 26-27 would prevent that and require coordination between them which contradicts line 25.
Description
This pull request adds a comprehensive requirements document for supporting global helper functions from external drivers in the eBPF for Windows ecosystem. The document outlines the limitations of the current system, proposes requirements for name-based global helper registration, and details backward compatibility and extensibility goals.
Requirements and system design:
Developer experience and ecosystem growth:
Testing
N/A
Documentation
Yes
Installation
No