Background
F-Stack currently has relatively tight coupling between the FreeBSD network stack, DPDK, INI-based configuration, and management tools. This limits reusability, flexibility, and support for alternative implementations.
Proposal
Introduce an optional modular build mode that provides better separation between these components.
This mode is intended as an additional build option and will not change or affect the existing F-Stack architecture or build mode. Existing users can continue to build and use F-Stack exactly as before.
The proposed modular mode would provide:
1. FreeBSD Network Stack and DPDK
Build the FreeBSD network stack as an independent library and introduce a generic Packet I/O / device abstraction layer.
DPDK becomes one backend implementation, while other backends such as AF_XDP or netmap could be supported in the future.
2. Configuration and INI Files
Decouple the configuration layer from the INI file format.
Provide a configuration API and/or sysctl-style interface for getting and setting network stack parameters.
INI configuration remains available for backward compatibility.
3. Tools and DPDK
Decouple management tools from DPDK-specific interfaces.
Provide a generic IPC mechanism for tools to communicate with the F-Stack process and perform operations such as:
- Querying network stack status
- Getting/setting configuration
- Querying connections, routes, and statistics
- Performing runtime management operations
Target Architecture
Application
|
F-Stack API
|
+---------------+---------------+
| |
Configuration API FreeBSD Network Stack
| |
+------+------+ Packet I/O API
| | | |
API sysctl INI +-----------+-----------+
| | |
DPDK AF_XDP netmap
Tools
|
Generic IPC
|
F-Stack Process
Compatibility
The existing F-Stack build and runtime model remains unchanged.
The modular architecture is provided as an optional build mode. Users who do not need it can continue using the existing DPDK-based architecture without any changes.
Benefits
- Reuse the FreeBSD network stack independently.
- Reduce coupling between the network stack and DPDK.
- Enable alternative Packet I/O backends.
- Provide flexible configuration interfaces.
- Decouple management tools from DPDK.
- Establish a more modular architecture while maintaining full backward compatibility.
We would like to discuss whether this optional modular build mode could be considered for future F-Stack development.
Background
F-Stack currently has relatively tight coupling between the FreeBSD network stack, DPDK, INI-based configuration, and management tools. This limits reusability, flexibility, and support for alternative implementations.
Proposal
Introduce an optional modular build mode that provides better separation between these components.
This mode is intended as an additional build option and will not change or affect the existing F-Stack architecture or build mode. Existing users can continue to build and use F-Stack exactly as before.
The proposed modular mode would provide:
1. FreeBSD Network Stack and DPDK
Build the FreeBSD network stack as an independent library and introduce a generic Packet I/O / device abstraction layer.
DPDK becomes one backend implementation, while other backends such as AF_XDP or netmap could be supported in the future.
2. Configuration and INI Files
Decouple the configuration layer from the INI file format.
Provide a configuration API and/or
sysctl-style interface for getting and setting network stack parameters.INI configuration remains available for backward compatibility.
3. Tools and DPDK
Decouple management tools from DPDK-specific interfaces.
Provide a generic IPC mechanism for tools to communicate with the F-Stack process and perform operations such as:
Target Architecture
Compatibility
The existing F-Stack build and runtime model remains unchanged.
The modular architecture is provided as an optional build mode. Users who do not need it can continue using the existing DPDK-based architecture without any changes.
Benefits
We would like to discuss whether this optional modular build mode could be considered for future F-Stack development.