NetFlux5G is an interactive graphical application for designing, simulating, and exporting 5G, wireless, and container-based network topologies. It provides a drag-and-drop GUI for building complex networks, configuring properties, and exporting Mininet scripts for deployment and emulation.
This application is in its early development stage and has planned integrations and enhancements for the future. Please note the following:
- The app is built on Mininet-WiFi, a Software-Defined Networking (SDN) emulator that relies on Linux operating system kernel modules and Python dependencies.
- Currently, the 5G network functionality is implemented using Open5Gs and UERANSIM to deploy and simulate the 5G Core. As a result, the app’s similarity to real-world 5G scenarios and network protocols is limited to these tools.
- This app is designed for users interested in learning and exploring SDN, 5G, or SDN-based 5G networks, aligning with its intended purpose.
- install.sh
Installation script that sets up Python venv, installs dependencies, Mininet-WiFi, Containernet, and Docker. - docker/
Docker environment for containerized deployment.- Dockerfile: Container build instructions for Mininet-WiFi/Containernet environment.
- containernet-install.sh: Containernet installation script for container.
- entrypoint.sh: Container startup script.
- manual-implementation/: Manual implementation examples and configurations.
-
main.py
Main entry point for the NetFlux5G application (PyQt5 GUI). -
automation/
Automated deployment and emulation management.- automation_runner.py: Core automation handler for running Mininet scripts and managing deployments.
- monitoring/: Network monitoring and telemetry tools.
- onos-controller/: ONOS SDN controller integration and configurations.
- open5gs/: Open5GS 5G core network automation and configs.
- ryu-controller/: Ryu SDN controller integration and applications.
- srs-lte/: SRS LTE stack automation and configurations.
- srs-nr/: SRS 5G NR stack automation and configurations.
- ueransim/: UERANSIM 5G UE and gNB simulator automation.
- webshark/: Wireshark web interface integration for packet analysis.
-
examples/
Sample topology files demonstrating NetFlux5G capabilities.- basic_5g_topology.nf5g: Simple 5G network topology example.
- multi_ran_deployment.nf5g: Multi-RAN deployment scenario.
- sdn_topology.nf5g: SDN-enabled network topology example.
-
export/
Topology export functionality for various target platforms.- mininet_export.py: Core exporter for generating Mininet Python scripts from topologies.
- 5g-configs/: Templates and generated configuration files for 5G components.
- mininet/: Generated Mininet deployment files and working directories.
-
gui/
PyQt5-based graphical user interface components.- window.py: Main application window and layout management.
- canvas.py: Interactive canvas for topology design and component placement.
- component_panel.py: Component palette and properties panel.
- components.py: Network component definitions and rendering logic.
- links.py: Network link management and visualization.
- toolbar.py: Application toolbar and action handlers.
- status.py: Status bar and application state display.
- welcome.py: Welcome screen and project selection interface.
- ui/: Qt Designer
.uifiles for dialogs and windows. - widgets/: Custom PyQt5 widgets and specialized dialogs.
- Icon/: Application icons and component graphics.
-
manager/
Application logic and state management modules.- automation.py: Automation workflow coordination and task scheduling.
- canvas.py: Canvas state management and interaction handling.
- component_operations.py: Component creation, modification, and deletion operations.
- controller.py: SDN controller integration and management.
- database.py: Topology data persistence and project file management.
- deployment_monitor.py: Real-time monitoring of deployed network emulations.
- docker_network.py: Docker network management for containerized deployments.
- file.py: File I/O operations for saving/loading topologies and configurations.
- keyboard.py: Keyboard shortcut handling and hotkey management.
- monitoring.py: Network performance monitoring and metrics collection.
- packet_analyzer.py: Packet capture and analysis integration.
- tool.py: Tool selection and mode management for the GUI.
-
prerequisites/
System dependency checking and validation.- checker.py: Validates required system dependencies before deployment.
-
utils/
Utility functions and helper modules.- configmap.py: Configuration file parsing and template management.
- debug.py: Centralized debug logging and error reporting system.
- docker_utils.py: Docker container management and helper functions.
- power_range_calculator.py: RF power and coverage calculations for wireless components.
- template_updater.py: Dynamic template updating for configuration files.
- Native Installation
- Docker
- Python 3.11+ recommended
- Ubuntu 20.04+ (Ubuntu 24.04+ requires venv for installing requirements)
- Docker (for Mininet/Containernet emulation)
This will install the latest compatible version of:
- Mininet-WiFi
- Containernet
- PyQt5 and dependencies (in a Python venv)
- Docker Engine
Clone the repository:
git clone -b netflux5g https://github.com/adaptivenetworklab/NetFlux5G.git NetFlux5GRun the installation script (this will set up a Python venv and install all requirements inside it):
cd NetFlux5G
chmod +x ./install.sh
sudo ./install.shActivate the Python venv:
cd NetFlux5G
source venv/bin/activateFrom the netflux5g-editor/src/ directory, launch the application:
cd netflux5g-editor/src/
python3 main.pyNote: All Python dependencies are installed in the
venvcreated by the install script. Always activate the venv before running the application.
- Export to Mininet:
Use the export option for Mininet scripts. - Automated Deployment:
The app can create a working directory and launch Mininet/Containernet environments using the scripts inautomation/mininet/.
See docker/README.md for detailed instructions on building and running the Netflux 5G Docker environment.
| Folder/File | Description |
|---|---|
install.sh |
Installation script for venv, dependencies, Mininet-WiFi, Containernet, and Docker |
docker/ |
Docker environment and containerized deployment scripts |
main.py |
Main application entry point (PyQt5 GUI) |
automation/ |
Automated deployment, monitoring, and 5G/SDN component integration |
examples/ |
Sample topology files (.nf5g) demonstrating various network scenarios |
export/ |
Topology exporters for Mininet scripts and 5G configuration generation |
gui/ |
PyQt5 GUI components, widgets, canvas, and user interface elements |
manager/ |
Application logic managers for state, components, deployment, and monitoring |
prerequisites/ |
System dependency validation and requirement checking |
utils/ |
Utility functions for debugging, Docker, configuration, and calculations |
- For Mininet/Containernet emulation, ensure you have Docker and the required kernel modules loaded (see the Mininet README).
- All GUI dialogs and windows are defined in the
gui/ui/folder as.uifiles and loaded dynamically. - The application supports drag-and-drop topology design, property dialogs for each component, and export to multiple formats.
- The install script will automatically create a Python virtual environment (
venv) in the project root if it does not exist, and install all Python dependencies there. - Always activate the venv before running the GUI or any Python scripts.
Thanks to Mr. Ramonfontes & Contributors of Mininet-Wifi and Continernet. This project won't go smoothly without a top notch open source Wifi SDN Emulator and the comprehensive detail of documentations.
Checkout the source Repo :
-
Mininet-WiFi :
Mininet-Wifi -
Containernet :
Containernet -
Containernet Fork :
Containernet w/ Mininet-WiFi Support
See individual files and dependencies for license details.
