LTE/5G Throughput (TCP/UDP) Generator

Why throughput testing matters
Throughput is the number operators, vendors and customers all ask about first. It is also one of the hardest to measure well. A speed-test app tells you what one phone saw at one moment. It doesn’t tell you what the radio, transport and core can sustain, or where the bottleneck is.
RAN and core engineers need controlled, repeatable traffic with a known offered load, direction, packet size and duration. That is how they validate a new cell, compare software releases, tune scheduler and carrier-aggregation settings, check an MTU change, or reproduce a field complaint in the lab.
What this tool is
The LTE / 5G Throughput Generator is a lightweight desktop application that turns iperf3 into a point-and-click test bench. You choose the traffic direction (DL only, UL only or bidirectional), the protocol (TCP or UDP), the UE IP, the peak data rate, the duration and the MTU. Then you press Start.
Traffic is generated by iperf3, a proven engine that is far faster. The tool adds the orchestration around it: correct packet sizing, live statistics, a chart, a per-second table, an end-of-test report and CSV export.
Get Tool from below link, https://drive.google.com/file/d/1T4d5UE3OZnUfvuCJSvIsmOrQ7FAGaVZT/view?usp=drive_link

How it works
The tool runs on a host on the network side of the core, behind the UPF or PGW. On the UE side (tethered laptop, CPE, or a phone running iperf3) you start iperf3 -s.
Mode | Direction | iperf3 mapping |
DL only | host → UE | default client mode |
UL only | UE → host | -R (reverse) |
Bidirectional | both at once | --bidir (iperf3 ≥ 3.7) |
You enter these inputs:
Direction and protocol: DL only, UL only or bidirectional, and TCP or UDP.
Target: the UE IP (IPv4 or IPv6) and the port.
Load: peak data rate in Mbps, test duration in seconds, and MTU.
Parallel streams: the rate is split evenly across them.
Start and Stop buttons control the run.
What it shows during the test
Stats grid: DL and UL rows, each with TX rate, RX rate, data sent and data received. Each cell also shows average and peak.
Live chart: rate against time for each active direction.
Per-second table: rates, cumulative MB, retransmits (TCP), and loss and jitter (UDP).
Console tab: raw iperf3 output.
Summary tab: an end-of-test report with average rates, bytes, loss, jitter, retransmits and the delivered percentage.
CSV export: per-second data for the DL and UL series.
DL TX and UL RX are measured on the host and update every second. DL RX (what the UE actually received) and UL TX come from the UE-side iperf3 server and fill in after the test. For UDP, compare DL TX against the UE-side RX to see loss. For TCP the sender rate closely tracks delivered throughput.
Benefits for 4G/5G engineers
Realistic traffic: iperf3 handles the data plane, which Python sockets would not do at LTE or 5G rates.
Correct MTU handling: the UDP payload is set to MTU − 28 (IPv4) or − 48 (IPv6) so datagrams don’t fragment, and the TCP MSS is set from MTU − 40 or − 60. This matters when you test against GTP-U overhead or a clamped 1400/1358 MTU.
Capacity and loss tests: set the UDP rate above the expected cell capacity and the UE-side RX and loss figures show where the link saturates.
Repeatable runs: settings are saved between sessions, and the exact iperf3 command is previewed so you can reproduce it from a shell.
Clear failure messages: a pre-flight check confirms the UE port is reachable. Common errors such as “connection refused” or “server is busy” map to likely causes like a missing UE-side server, a down PDU session or a firewall.
Early stop: Stop ends the run and keeps the partial results.
Escape hatch: an “Extra iperf3 args” field lets you add options such as -w 4M or DSCP via -S.
Limitations
DL RX and UL TX are not live. iperf3 only reports the UE-side numbers after the test.
Rates are L4 goodput, not L1/L2 throughput, so they will read lower than PHY-level counters.
Above roughly 5 Gbps you will need several parallel streams and iperf3 3.16 or newer.
The UE IP must be reachable from the host. Operator NAT or a firewall in the path can block it.




Comments