Skip to content

ibsim Control Panel

Repository: github.com/zbrooks442/ibsim_control_panel

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.

  • 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 .net file access.
  • Simulation Management — Start/stop ibsim from 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.conf directly from the browser.
  • Interactive Terminal — Embedded web terminal (ttyd) pre-configured with LD_PRELOAD so you can immediately run ibnetdiscover, 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.
Terminal window
git clone https://github.com/zbrooks442/ibsim_control_panel.git
cd ibsim_control_panel
docker compose up --build

Then open http://localhost:8080.

Open the Topology Editor tab. Add switches and HCAs, connect them by clicking “Connect Mode” and selecting source/target nodes, then save.

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.

In the Troubleshoot tab, launch the terminal, select an HCA to connect through, and run standard InfiniBand commands:

Terminal window
ibnetdiscover
iblinkinfo
ibtracert 1 2
  • 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