Files
Monviech 53533c8732 benchmarks/iperf: modernize server mode (#5773)
* benchmarks/iperf: modernize server mode

Replace the legacy Ruby manager and its persistent socket service with a short-lived Python helper invoked through configd. Store transient jobs and JSON results in /tmp, reject duplicate ports, and support removal of running instances.

Move the server UI to an in-memory Instance model and client-style Bootgrid view under /ui/iperf/index/instance. Drop firewall manipulation, service registration, and Ruby dependencies.

* Update benchmarks/iperf/src/opnsense/mvc/app/controllers/OPNsense/iperf/Api/InstanceController.php

* server should start persistently, not one shot, and always show the last test result. That is more user friendly

* use json-stream so we can distinguish between a running and waiting iperf server

* change status icons slightly

* Add start/stop commands to client and server

* use a filter on the commands

* For client lets also use the error as stop status

* Lets keep client and server config and log inside /var/db/iperf

* Report bytes per second in the API and format with byteFormatter in the front end

* simplify error handling a bit, they cannot be translated anyway so at least make them machine readable

* Delegate client job creation completely to configd to avoid issues with permissions later

* Lets pass these parameters as json object so its generalized

* Add changelog and copyright headers

* copilot review

* normalize the API between client and server, and some other smaller fixes

* Expose the json results for the GUI and API, and make sure theyre all passed through .text() so no XSS

* the response is already escaped by Response
2026-10-09 13:54:22 +02:00

24 lines
921 B
Plaintext

iperf3 is a tool for measuring the achievable TCP, UDP, and SCTP
throughput along a path between two hosts. It allows the tuning of
various parameters such as socket buffer sizes and maximum attempted
throughput. It reports (among other things) bandwidth, delay jitter,
and datagram loss. iperf was originally developed by NLANR/DAST.
iperf3 is a new implementation developed from scratch at the Energy
Sciences Network (ESnet). Among its goals were a smaller, simpler
code base (compared to its predecessor, iperf2) and a library version
of the functionality that can be used in other programs. Note that
iperf3 does not interoperate with with iperf 2.x.
Plugin Changelog
================
2.0
* Added client mode (contributed by François Maymil)
* Reworked server mode
Note: The API has changed.
Note: Stored jobs and results persist across reboots, but running server and
client processes are not restarted.