NVIDIA Accelerated IO (XLIO) Documentation Rev 3.60

XLIO - Configuration Subsystem

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.

Note

The Configuration Subsystem is currently in BETA.

While fully functional, certain features may be subject to change in future releases.

  • 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

Prerequisites

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

Copy
Copied!
            

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:

Copy
Copied!
            

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:

Copy
Copied!
            

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


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 false

    • Numbers: integers, floating-point

    • Strings: text values with optional patterns

    • Enums: specific allowed values

    • Objects: nested configuration groups

  • Constraints and Validation Rules - The schema enforces:

    • Minimum and maximum value constraints

    • Allowed value lists (Enums)

    • String patterns using regex

    • Required vs. optional parameters

    • Default 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 tools

    1. visit jsonschemavalidator.net

    2. Paste the JSON schema (from xlio_config_schema.json)

    3. Paste your configuration file

    4. Review validation results and error messages

  • IDE Integration - Modern IDEs can use the JSON schema for real-time validation and autocomplete:

    1. Configure your IDE to use the XLIO JSON schema

    2. Get instant feedback on invalid values

    3. Use autocompletes to discover available parameters

    4. View inline documentation for each parameter

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

© Copyright 2025, NVIDIA. Last updated on Nov 26, 2025