Send, measure, verify. Drive several ports at once, each with its own streams, and see every stream's loss, order, latency and jitter live — then turn the run into a pass/fail test with a report. Rebuilt from the engine up.
The ETH Packet Generator sent frames from one adapter and counted them. Version 2.0 is a new application: a multi-port, multi-stream traffic generator that knows which stream every received frame came from — so it can tell you not just how much arrived, but whether it arrived intact, in order and on time.
Give each adapter a job — send, receive or both — and run any number of streams on each, every one with its own frame, size and rate. Start or stop one stream without touching the others.
Every frame carries a tag with its stream, a sequence number and its send time. The receiving port reads it back: loss, reordering, duplicates, one-way delay and delay variation, stream by stream.
Script a run — start, wait, hold, stop — set the criteria it must meet, and get a verdict with a JSON, CSV, HTML or PDF report. An unmeasured metric reports “not evaluated”, never a pass.
Count a VLAN ID up, sweep an IPv4 subnet, walk a port range or a MAC range — each set on the field itself. Cyclic patterns are built once before sending, so a varied stream runs at full speed.
Steady, ramp, steps, random, or a rate curve you draw with the mouse. Frame sizes fixed, random, increasing or IMIX. Send continuously, a number of frames, for a time or in bursts.
A REST API with an OpenAPI schema and bearer-token auth, plus a headless CLI that exits 0 pass / 1 fail / 2 error. Anything the window does, a script can do.
The window is laid out as the job is done: choose ports, describe the traffic, run it, read the results. Tools for tests, capture and automation sit beside them.
Pick adapters and give each a job: send, receive or both — or a local or remote loopback. The test diagram draws itself.
Add streams from 30 templates, then edit any header field, the payload, size and rate.
Start everything, one port or one stream. Sent, received, loss, delay and jitter update live.
Every counter for every port and stream, charted over the last minute or the whole run, and exported.
Start from a template or stack the layers yourself. Every field of every header is editable, down to the bit — and any field can vary from frame to frame. Lengths, checksums and next-protocol values are computed for you, and can be overridden by hand when a wrong one is the test.
Tag, stack and label frames the way your switches will see them — single, double or MPLS-labelled.
Source and destination sweeps across a whole subnet, port ranges and lists — thousands of flows from one stream.
Inner and outer headers, both editable. Raw bytes or a hex paste for anything the list does not cover.
A flow is a set of streams sent from one port and received on another, with a device under test in between. Each frame carries its stream, a sequence number and its transmit time, so the far port can say exactly what went missing, what came back out of order and how long it took.
Frames sent and received, lost, loss %, reordered and duplicated — per stream, even when streams share a port.
One-way delay min, average, max, p50, p95, p99 and p99.9, and delay variation (RFC 3393). Both ends share one clock.
Write the run down as steps, give it criteria, and let it decide. The same test runs from the window, from a script over REST, or from a CI job through the command-line runner.
Received frames, loss, throughput of target, rate error, reordering, duplicates, sequence gaps, recovery time, latency percentiles and jitter. A metric that was never measured reports “not evaluated”.
JSON for pipelines, CSV for spreadsheets, a self-contained HTML page and an A4 PDF with the verdict, the criteria and every flow.
ethgen-cli run project.json --report out.html — exit 0 pass, 1 fail, 2 error. A run that measured nothing exits 2, never 0.
Capture on any port with a BPF filter, scroll through every frame held, and decode any of them layer by layer with its bytes in hex. Group traffic into conversations, filter the list, and export to pcap — or import pcap and pcapng from Wireshark.
The Capability screen reads each adapter first — driver, MTU, link, send ceiling — and tells you before a run whether the rate you ask for will fit.
Voice, video and data on their own VLANs and DSCP markings at once — and proof, per stream, of which class kept its latency when the link filled.
Ramp a stream through a device and watch the rate at which loss starts, with IMIX or fixed sizes, and the recovery time once it stops.
Sweep a subnet, a port range or a protocol list from one stream, and see exactly which flows the policy passed and which it dropped.
Save the project, give it criteria, and run it the same way on every unit — from the window, a script or the CLI — with a report to file.
ethgen-cli runs a saved project and exits 0 on pass, 1 on fail and 2 on error, which suits a CI pipeline.No license key. No registration.
Currently free for personal and commercial use.
| OS | Windows 10 / 11 (64-bit) |
| Driver | Npcap — the installer finds it or offers to download it |
| Adapters | Any wired Ethernet adapter Npcap can open; one or more |
| Installer | 2.3 MB, zipped setup |
| License | Currently free — personal & commercial use |
| Protocols | 34, from Ethernet II to VXLAN and GTP-U · 30 templates |
| Traffic | Multi-port, multi-stream · fixed, random, increasing or IMIX sizes · steady, ramp, steps, random or drawn rates |
| Measured | Per stream: loss, reordering, duplicates, one-way latency (min–p99.9), jitter |
| Rate ceiling | ~236 kframes/s per adapter (Npcap) · 1 GbE line rate from ~600 B |
| Automation | REST + OpenAPI, bearer token · ethgen-cli · JSON, CSV, HTML, PDF reports |