Skip to content

Feature Request: Optional Modular Build Mode for F-Stack #1093

Description

@hardboydu

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions