Profiles, settings and exit codes
Three tables, none of them typed by hand. They are generated from the program's own registries when this page is built, so they cannot say something the program does not.
Ready profiles
Pick one of these and the form fills itself in. A dash means the profile leaves that setting alone. Speeds are in kilobytes per second - multiply by eight to compare with what a provider advertises.
| Profile | Loss | Latency | Jitter | Download | Upload |
|---|---|---|---|---|---|
| Perfect network | - | - | - | - | - |
| Good WiFi | 0.1 % | 15 ms | 5 ms | - | - |
| 5G network | 0.1 % | 18 ms | 8 ms | 20480 KB/s | 2560 KB/s |
| Home DSL (VDSL) | 0.5 % | 20 ms | 8 ms | 4096 KB/s | 512 KB/s |
| LTE / 4G | 0.3 % | 30 ms | 20 ms | 4096 KB/s | 1280 KB/s |
| Satellite (low orbit) | 0.5 % | 20 ms | 15 ms | 12288 KB/s | 1536 KB/s |
| Distant server (another continent) | - | 60 ms | 5 ms | 12288 KB/s | 2048 KB/s |
| Weak WiFi | 2 % | 80 ms | 40 ms | 512 KB/s | 256 KB/s |
| Cafe (crowded WiFi) | 3 % | 120 ms | 90 ms | 256 KB/s | 96 KB/s |
| Congested home link (bufferbloat) | - | 10 ms | 5 ms | 1024 KB/s | 128 KB/s |
| Train / metro (tunnels) | 2 % | 50 ms | 40 ms | 1024 KB/s | 256 KB/s |
| 3G network | 1 % | 90 ms | 60 ms | 96 KB/s | 32 KB/s |
| Foreign roaming | 1.5 % | 200 ms | 80 ms | 256 KB/s | 64 KB/s |
| Satellite (geostationary) | 1 % | 340 ms | 100 ms | 3072 KB/s | 384 KB/s |
| In-flight Wi-Fi | 7 % | 375 ms | 150 ms | 64 KB/s | 24 KB/s |
| 56k modem | 0.5 % | 100 ms | 30 ms | 5 KB/s | 4 KB/s |
| Terrible network | 10 % | 300 ms | 150 ms | 32 KB/s | 16 KB/s |
Selecting a profile only fills the fields. Nothing changes on the network until you press START.
Every setting, and the flag that sets it
The window and the command line take the same settings. This is the whole list, with the unit and the range each one accepts.
| Flag | Setting | Unit | Range |
|---|---|---|---|
--filter | Traffic to modify | - | - |
--lan-mode | LAN mode (local network only, no internet) | - | - |
--target | Process | - | - |
--down | Download | KB/s | 0 - 1e+07 |
--up | Upload | KB/s | 0 - 1e+07 |
--buffer | Buffer | ms | 0 - 600000 |
--latency | Latency | ms | 0 - 600000 |
--jitter | Jitter | ms | 0 - 600000 |
--spike-prob | Spike chance | % | 0 - 100 |
--spike-ms | Spike size | ms | 0 - 600000 |
--loss | Loss | % | 0 - 100 |
--corrupt | Corruption | % | 0 - 100 |
--dup | Duplication | % | 0 - 100 |
--flap-period | Period | s | 0 - 86400 |
--flap-down | Downtime percent | % | 0 - 100 |
--dst-ip | IP | - | - |
--dst-port | Port | - | 0 - 65535 |
--block-ip | IP | - | - |
--block-port | Port | - | 0 - 65535 |
--syn-drop | Dropped TCP SYN | % | 0 - 100 |
--max-size | Max size (MTU) | B (0=off) | 0 - 65535 |
--nat-timeout | NAT timeout | s (0=off) | 0 - 86400 |
--rst-prob | TCP reset (RST) | % | 0 - 100 |
--rst-cooldown | Hold reset | s | 0 - 3600 |
--rate-schedule | Schedule (dur:down:up,...) | - | - |
--duration | Run time | s | 0 - 86400 |
--row-limit | Row limit | rows (0 = off) | 0 - 1e+06 |
--narrow-filter | Capture only the targeted traffic | - | - |
--seed | Seed | - | - |
Exit codes
The command line never ends with a traceback. Each way a run can finish has a number, so a pipeline can tell a failing application from a tool that could not start.
| Code | What it means |
|---|---|
| 0 | Finished as asked. |
| 1 | Something failed while running. |
| 2 | The command line was wrong. |
| 3 | A setting or a value was invalid. |
| 4 | A scenario file was rejected. |
| 5 | A file could not be read or written. |
| 6 | An assertion about the run did not hold. |
| 7 | No administrator rights, so the driver cannot load. |
| 130 | Interrupted, usually by Ctrl+C. |
| 143 | Terminated from outside. |