Skip to content
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

Open
kyleholohan opened this issue Oct 5, 2023 · 1 comment
Open

Add a LibOS using XDP #957

kyleholohan opened this issue Oct 5, 2023 · 1 comment
Labels
feature New Feature Request

Comments

@kyleholohan
Copy link
Contributor

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).

@kyleholohan kyleholohan added the feature New Feature Request label Oct 5, 2023
@ohault
Copy link

ohault commented Nov 24, 2023

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
Labels
feature New Feature Request
Projects
None yet
Development

No branches or pull requests

2 participants