ibsim Control Panel
Repository: github.com/zbrooks442/ibsim_control_panel
Why I Built This
Section titled “Why I Built This”ibsim is a powerful tool for simulating InfiniBand fabrics without hardware, but working with it is tedious. You have to manually write .net topology files, juggle LD_PRELOAD environment variables, and keep track of multiple terminal sessions for the simulator, OpenSM, and diagnostic commands.
I built the ibsim Control Panel to remove that friction so I could spend more time actually learning InfiniBand and less time fighting the tooling. It wraps everything in a Docker container with a web UI, so you can design topologies visually, manage simulations with a click, and run diagnostics from an in-browser terminal that’s already configured correctly.
What It Does
Section titled “What It Does”- Visual Topology Editor — Drag-and-drop interface (Cytoscape.js) to create switches and HCAs, connect ports, and edit properties. Also has a text editor for direct
.netfile access. - Simulation Management — Start/stop
ibsimfrom the UI with real-time log streaming. - OpenSM Control — Run multiple OpenSM instances (primary and secondary), select which HCA to run them on, and edit
opensm.confdirectly from the browser. - Interactive Terminal — Embedded web terminal (
ttyd) pre-configured withLD_PRELOADso you can immediately runibnetdiscover,iblinkinfo,smpquery,ibtracert, and other standard IB diagnostics against the simulated fabric. - Cross-Platform — Runs on macOS and Windows via Docker, bypassing the Linux-only requirement of the raw tools.
Quick Start
Section titled “Quick Start”git clone https://github.com/zbrooks442/ibsim_control_panel.gitcd ibsim_control_paneldocker compose up --buildThen open http://localhost:8080.
How to Use It
Section titled “How to Use It”1. Design a Topology
Section titled “1. Design a Topology”Open the Topology Editor tab. Add switches and HCAs, connect them by clicking “Connect Mode” and selecting source/target nodes, then save.
2. Run the Simulation
Section titled “2. Run the Simulation”In the Control tab, start ibsim and wait for the status indicator to turn green. Then start OpenSM on one of the HCAs to bring the subnet up.
3. Run Diagnostics
Section titled “3. Run Diagnostics”In the Troubleshoot tab, launch the terminal, select an HCA to connect through, and run standard InfiniBand commands:
ibnetdiscoveriblinkinfoibtracert 1 2Tech Stack
Section titled “Tech Stack”- Python (NiceGUI) for the web application
- Cytoscape.js for the visual topology editor
- ttyd for the embedded web terminal
- Docker for packaging
ibsim, OpenSM, and all dependencies