-
Notifications
You must be signed in to change notification settings - Fork 117
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
Add a LibOS using XDP #957
Labels
feature
New Feature Request
Comments
This is by far my favorite feature. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Context
DPDK has scoped support for specific NICs. If a NIC is unsupported through this avenue, current acceleration is limited to io_uring or raw sockets. Windows clients have no alternatives. Adding a new LibOS using Express Data Path could provide a fast alternative which does not require NIC support.
Proposed Solution
Add a new LibOS which uses XDP/BPF technologies to implement network I/O. OS-specific solutions are required: *nix platforms use BPF API and AF_XDP sockets (which may also benefit from io_uring). Windows platforms require XDP for Windows. Layering needs further consideration w.r.t. io_uring and BPF.
Alternative Solutions
RDMA/RoCE provide another avenue for acceleration, although the complexity is arguably much higher than XDP (not to mention NIC-specific support). Both solutions require OS-specific considerations: Windows supports a variant of libibverbs, but it's still divergent from the *nix support. Registered I/O may provide an acceleration avenue on Windows with similar characteristics to io_uring or raw sockets on *nix. "XDP for Windows" seems to be the spiritual successor to RIO. Viewing RIO as a companion to io_uring in providing acceleration alternatives to all OSes, XDP seems a more cogent/converged solution (even with different implementations for *nix/Windows).
The text was updated successfully, but these errors were encountered: