Installing XLIO
Before you begin, verify you are using a supported operating system and a supported CPU architecture for your operating system. See supported combinations listed in System Requirements and Interoperability.
The current version of XLIO is compatible with DOCA-host and offers two profile driver stacks: the doca-libxlio profile, which supports Ethernet, and the lighter doca-roce profile, which also supports Ethernet.
The XLIO library is delivered as a user-space library, and is called libxlio.so.X.Y.Z.
XLIO can be installed using one of the following methods (detailed in XLIO Installation Options):
As part of DOCA-host:
Installing the combined driver stack and XLIO using the doca-libxlio Profile
Installing the driver stack only using the doca-roce Profile, then install the XLIO library separately using the libxlio Profile
Manually:
Building XLIO from sources tree
Installing XLIO via dedicated packages
After completing the installation, verify its success as described in Using sockperf with XLIO.
Installing XLIO as Part of DOCA-Host
XLIO is integrated into the DOCA-Host (doca-libxlio/doca-roce). Therefore, it is recommended to install XLIO automatically when installing the NVIDIA DOCA-Host drivers as it depends on drivers’ latest firmware, libraries, and kernel modules. This installation assures XLIO’s correct functionality. Since the DOCA-Host has a plethora of distributions for RHEL, Ubuntu and others, you will have to correctly select the DOCA-Host version that matches your distribution.
This option suits users that wish to install a new XLIO version or upgrade to the latest XLIO version by overriding the previous one. For further information, see NVIDIA DOCA Installation Guide for Linux section in DOCA documentation.
Installing driver stack & XLIO as doca-libxlio Profile
For XLIO, there is a dedicated DOCA profile called doca-libxlio, which installs the driver stack and libxlio along with all the necessary dependencies.
Refer to the NVIDIA DOCA Installation Guide for Linux section in DOCA documentation and follow the steps for installing doca-all, but use doca-libxlio instead. For example:
“sudo <your-package
-manager> install -y doca-libxlio"
Installing XLIO as libxlio Profile
Use the DOCA profile called libxlio
, which includes only the XLIO library and its userspace dependencies (without driver stack).
For containerized environments, Containers utilize the host system’s kernel, which already provides the required NVIDIA kernel modules and drivers.
Refer to the NVIDIA DOCA Installation Guide for Linux section in DOCA documentation and follow the steps for installing doca-all, but use libxlio instead. For example:
“sudo <your-package
-manager> install -y libxlio dpcp"
Note: libxlio-utils, libxlio-dev/devel, and sockperf are optional.
For RPM packages:
#sudo <your-
package
-manager> install -y sockperf libxlio-utils libxlio-devel"For DEB packages:
#sudo <your-
package
-manager> install -y sockperf libxlio-utils libxlio-dev
Installing driver stack as doca-roce Profile
Users looking for a lighter driver stack should install the doca-roce profile and add the libxlio-related packages as needed.
Follow the NVIDIA DOCA Installation Guide for Linux section in DOCA documentation to install doca-roce, then add the relevant libxlio packages. For example:
“sudo <your-package
-manager> install -y doca-roce"
Installing XLIO Manually
Building XLIO From Sources Tree
XLIO as an open source enables users to try the code, inspect and modify. This option assumes that XLIO (binary package) is already installed on top of NVIDIA® driver, and functions correctly (as explained in Installing the XLIO Binary Package). Users can download the XLIO sources from libxlio GitHub and build a new XLIO version. This option is suitable for users who wish to implement custom XLIO modifications.
For building XLIO from sources, please visit libxlio GitHub
For adding high debug log level to XLIO, compile it with:
./configure --enable-opt-log=none <other configure parameters>
Verifying XLIO Compilation
The compiled XLIO library is located under:
<path-to-xlio-sources-root-tree>/src/xlio/.libs/libxlio.so
When running a user application, you must set the compiled library into the environment variable LD_PRELOAD.
Example:
#LD_PRELOAD=<path-to-xlio-sources-root-tree>/src/xlio/.libs/libxlio.so sockperf ping-pong -t 5
-i 224.22
.22.22
The XLIO banner, mentioned in XLIO Run section, indicates the library is loaded with the application.
Note: It is recommended to keep the original libxlio.so under the distribution’s original location (e.g. /usr/lib64/libxlio.so) and not to override it with the newly complied libxlio.so.
Installing XLIO via Dedicated Packages
XLIO can be installed from a dedicated XLIO RPM or a Debian package. In this case, please make sure that the NVIDIA's driver stack is already installed and that the driver stack and XLIO versions match so that XLIO functions correctly.
This option is suitable for users who receive an OEM XLIO version, or a Fast Update Release XLIO version which is newer than the installed XLIO version.
This section addresses both RPM and DEB (Ubuntu OS) installations.
The libxlio package contains the binary library shared object file (.so), configuration and documentation files
The libxlio-utils package contains utilities such as xlio_stats to monitor xlio traffic and statistics
The libxlio-dev/devel package contains XLIO’s extra API header files, for extra functionality not provided by the socket API
Before you begin, please verify the following prerequisites:
For RPM packages, run:
#rpm -qil libxlio
For DEB packages, run:
#dpkg –s libxlio
If the XLIO packages are installed via the package manager, the RPM or the DEB logs the XLIO package information and the installed file list. Otherwise, an error message will be displayed.
Uninstall the current XLIO via package manager if Exists:
For RPM packages, run:
#rpm -e libxlio
For DEB packages:
#apt-get remove libxlio
Installing the XLIO Binary Package
Go to the location where the libxlio package was saved.
Run the command below to start installation:
For RPM packages:
#rpm -i libxlio-X.Y.Z-R.<arch>.rpm
For DEB packages:
#dpkg -i libxlio_X.Y.Z-R_<arch>.deb
During the installation process:
• XLIO library is copied to standard library location (e.g. /usr/lib64/libxlio.so). In addition XLIO debug library is copied under the same location (e.g. /usr/lib64/libxlio-debug.so)
• README is installed at /usr/share/doc/libxlio-X.Y.Z/• XLIO installs its configuration file, libxlio.conf, to the following location: /etc/libxlio.conf• The xliod service utility is copied into /sbin• The script xlio is installed under /etc/init.d/ for systems with SysV. This script can be used to load and unload the XLIO service utility.
Installing the XLIO utils Package
Go to the location where the utils package was saved.
Run the command below to start installation:
For RPM packages:
#rpm -i libxlio-utils-X.Y.Z-R.<arch>.rpm
For DEB packages:
#dpkg -i libxlio-utils_X.Y.Z-R_<arch>.deb
During the installation process, the XLIO monitoring utility is installed at /usr/bin/xlio_stats.
Installing the XLIO devel Package
Go to the location where the devel package was saved.
Run the command below to start installation:
For RPM packages:
#rpm -i libxlio-devel-X.Y.Z-R.<arch>.rpm
For DEB packages:
#dpkg -i libxlio-dev_X.Y.Z-R_<arch>.deb
During the installation process, the XLIO extra header file is installed at: /usr/include/mellanox/xlio_extra.h.
To configure NVIDIA ConnectX adapter card ports for the desired transport, please refer to the Type Management / VPI Cards Configuration section.