What is the XLIO Configuration Subsystem?
The XLIO Configuration Subsystem is a sophisticated, type-safe configuration management framework that transforms traditional environment variable-based configuration into a structured, validated, and extensible system. It incorporates schema-driven validation, hierarchical organization, and modular loading strategies similar to modern infrastructure-as-code approaches.
Modular Architecture and Type Safety
The C++ implementation modularizes configuration management into reusable software components using template classes and runtime validation. The JSON Schema-driven approach provides comprehensive type safety and constraint validation with performance characteristics comparable to compile-time configuration systems.
This abstraction allows developers to configure XLIO behavior at different levels of the network stack using hierarchical parameter organization, runtime validation, and multiple configuration sources through structured JSON files or compact inline notation.
Comprehensive Parameter Coverage
To support a broad range of networking applications, the XLIO Configuration Subsystem offers comprehensive coverage of all network acceleration features:
-
Core Configuration: Memory management, signal handling, and system call behavior
-
Network Protocols: TCP/UDP settings, multicast, and hardware timestamp configuration
-
Hardware Features: Striding RQ, TCP offloads (LRO/TSO), and TLS acceleration
-
Performance Tuning: Ring allocation, polling behavior, and completion queue settings
-
Application Integration: Nginx optimizations and acceleration control
-
Observability: Logging levels, statistics collection, and monitoring settings
The configuration system extends this support by enabling experimentation with optimal parameter combinations using both JSON and inline configuration syntax.
Performance and Compatibility
The XLIO Configuration Subsystem delivers the same performance as legacy environment variables while providing enhanced type safety and validation. The system maintains full backward compatibility with existing environment variable configurations.
The new system is optimized for both development and production environments, achieving: - Zero overhead parameter access in critical paths - Fast validation during initialization - Complete backward compatibility with legacy configurations - Development productivity through schema validation and clear error messages
Beyond Environment Variables: Structured Configuration
Beyond simple key-value pairs, the XLIO Configuration Subsystem supports hierarchical configuration management through the JSON Schema validation approach. This reformulates traditional environment variable configuration as structured, validated parameter trees, enabling the system to leverage modern configuration management practices while maintaining the performance characteristics of direct variable access.
Getting Started
Choose your configuration approach:
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
Key Features
|
Feature |
Description |
Benefits |
|---|---|---|
|
Type Safety |
Compile-time and runtime validation |
Catch configuration errors early |
|
Schema-Driven |
JSON Schema validation |
Self-documenting configuration |
|
Hierarchical |
Organized parameter structure |
Logical grouping and namespace separation |
|
Multi-Source |
JSON files, inline config, environment variables |
Flexible deployment options |
|
Backward Compatible |
Legacy environment variable support |
Zero-disruption migration |
|
Performance |
Zero overhead in critical paths |
No impact on network performance |
Configuration Hierarchy
The configuration system organizes parameters into logical groups:
|
Group |
Purpose |
Examples |
|---|---|---|
|
Core |
System behavior |
Memory limits, signal handling |
|
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 |
App-specific settings |
Nginx optimizations |
|
Monitor |
Logging and statistics |
Log levels, file paths, stats directory |
Next Steps
-
New Users: Start with the Quick Start Guide
-
Existing Users: Review the Migration Guide
-
Advanced Users: Explore the Configuration Reference
Support and Resources
-
Schema File:
src/core/config/descriptor_providers/xlio_config_schema.json -
Legacy Mappings:
src/core/config/mappings.py -
Unit Tests:
tests/unit_tests/config/ -
Examples: See Quick Start Guide for common patterns
This documentation covers the XLIO Configuration Subsystem for high-performance network acceleration. For general XLIO documentation, see the main XLIO user guide.
Last updated: