Microsoft introduces XDP for Windows, a new open-source XDP interface for Windows. Microsoft stated that XDP is a Linux Kernel project with a significant community around it. XDP is a high-performance, programmable network data path. XDP for Windows includes a network driver and a placeholder user-mode API, that provides low latency and high throughput.
Low latency, high throughput
Microsoft aims to join the XDP community by open-sourcing the XDP for Windows.
Apps that use the AF_XDP user mode interface will be able to deliver packets directly to the Windows XDP driver and into NDIS or directly to a compatible network card driver. This eliminates the overhead of using the TCP/IP stack.
By open-sourcing, Microsoft aims to join the XDP community in making XDP cross-platform. XDP for Windows with an MIT license is Microsoft’s first contribution to the community. By open-sourcing XDP for Windows, which is currently under development, Microsoft wants to get feedback from the community during its earlier stages of the development. XDP for Windows is now ready for testing and prototyping. Microsoft stated that they started integrating support into MsQuic.
Currently, anyone can clone the repo and build XDP for Windows or download the development kit. Microsoft stated that they expect many different groups will use it and it is designed to be a generic network accelerator for many scenarios.
Microsoft also partnered with swXtch.io. The company is working on several high-performance applications leveraging XDP for Windows as part of their cloudSwXtch networking technologies for Azure. Microsoft also stated,
« There is still a lot to do and a long road ahead for this project. There are still several features we are actively working on (for example, checksum offload). We are still analyzing and improving our performance numbers. We plan to integrate with eBPF for Windows in the future as well. Lots of things are still in flux, but we welcome feedback or even contributions from the community. »