Skip to content

Architecture

alexbriskin edited this page Aug 7, 2023 · 3 revisions

The XLIO library provides the POSIX socket API functions, including socket, bind, connect, and setsockopt, among others. When the application utilizes the LD_PRELOAD environment variable in Linux, it loads the XLIO implementation instead of the standard library. Consequently, all subsequent socket API calls are routed through XLIO translated to the native RDMA verbs API for direct communication between the application and network adapters.

The library supports TCP, UDP, IPv4, and IPv6 protocols, as well as unicast and multicast communication. The application remains unchanged as the XLIO library handles the necessary operations transparently. Users can consult the manual for a complete list of supported protocols and combinations.

In the data path, XLIO performs kernel bypass, allowing data to be sent directly to the network interface within the application context. This eliminates unnecessary copies to and from the kernel space, enhancing performance. When the application exclusively uses network interfaces offloaded by XLIO, the number of actual system calls can be significantly reduced, potentially approaching zero.

XLIO maintains seamless compatibility with Kernel by transferring the data to the Kernel network stack for non-offloaded network operations.

dd

Clone this wiki locally