NVIDIA Accelerated IO (XLIO) Documentation

XLIO - Configuration Subsystem

Overview

The XLIO Configuration Subsystem is a modern, structured approach to configuring XLIO using JSON files. It provides validation, early error detection, and a logical hierarchical organization of settings.

The Configuration Subsystem is currently in BETA.
While fully functional, certain features may be subject to change in future releases.

Configuration Subsystem Advantages

  • Type Safety: Validates configuration values before application startup, catching typos and invalid entries early

  • Schema-Driven:  Self-documenting JSON schema with built-in descriptions and constraints for every parameter

  • Hierarchical:  Logically grouped and nested settings for easier management

  • Flexible: Supports both file-based and inline configuration methods

  • Performance:  Validation occurs at startup with no runtime overhead

  • Future Proof:  The strategic direction for XLIO configuration going forward 

Configuration Methods

Prerequisites

To enable the new configuration subsystem, set the following environment variable:

Bash
export XLIO_USE_NEW_CONFIG=1

JSON Configuration File (Recommended)

XLIO can read configuration from a JSON file that conforms to the defined schema.

Default location - /etc/libxlio_config.json

Custom location - Set the XLIO_CONFIG_FILE environment variable:

Bash
export XLIO_CONFIG_FILE=/path/to/my/xlio_config.json

Inline Configuration

For quick testing or single-parameter changes, use the XLIO_INLINE_CONFIG environment variable with comma-separated key-value pairs:

Bash
export XLIO_INLINE_CONFIG="core.resources.memory_limit=4294967296, monitor.log.file_path=/tmp/xlio.log, network.protocols.tcp.nodelay.enable=true"

Understanding the JSON Schema

The JSON Schema serves as a blueprint for valid XLIO configurations, defining structure, types, and constraints for all parameters.

Schema Location: src/core/config/descriptor_providers/xlio_config_schema.json

Schema Components

  • Parameter Structure - The schema defines a hierarchical structure for configuration parameters: 
    "network": { "protocols": { "tcp": { "nodelay": { "enable": { "type": "boolean" }         } } } }

  • Data Types:Booleans: true or falseNumbers: integers, floating-pointStrings: text values with optional patternsEnums: specific allowed valuesObjects: nested configuration groups

  • Constraints and Validation Rules - The schema enforces:
    Minimum and maximum value constraintsAllowed value lists (Enums)String patterns using regexRequired vs. optional parametersDefault values

  • Documentation - Each parameter includes human-readable descriptions explaining its purpose and usage 

Configuration Categories

Group

Purpose

Examples

Core

System behavior and resources

Memory limits, signal handling

Network

Network protocol settings

TCP/UDP configuration, timestamps

Hardware

Hardware features

Striding RQ, LRO/TSO, TLS offload

Performance

Optimization settings

Ring allocation, polling, completion queues

Applications

Application-specific tuning

Nginx optimizations

Monitor

Logging and diagnostics

Log levels, file paths, stats directory

Validating Your Configuration

  • Using online toolsvisit jsonschemavalidator.netPaste the JSON schema (from xlio_config_schema.json)Paste your configuration fileReview validation results and error messages

  • IDE Integration - Modern IDEs can use the JSON schema for real-time validation and autocomplete:Configure your IDE to use the XLIO JSON schemaGet instant feedback on invalid valuesUse autocompletes to discover available parametersView inline documentation for each parameter

Getting Started

Quick Start

  • Quick Start Guide - Get up and running in minutes

  • Most common configuration scenarios

  • Copy-paste examples for immediate use

Complete Documentation

  • Configuration Reference - Complete parameter documentation

  • All available parameters with types, defaults, and legacy mappings

  • Advanced configuration patterns and validation rules

Migration Support

  • Migration Guide - Move from legacy environment variables

  • Step-by-step migration process

  • Common issues and troubleshooting

Support and Resources

Last updated: