esnet / esnet/iperf

feature request: make client report after specific number of bytes transferred

Open
#1,538 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
8.8k
Forks
1.5k
PR merge metrics
No merged PRs in 30d

Description

# Context

* Version of iperf3: 3.13

* Hardware: x86

* Operating system (and distribution, if any): Debian 12

# Enhancement Request

* Current behavior

it is currently possible to generate a report every number of seconds using `-i` flag, however, there is no way to report after a specific number of bytes are transferred.

* Desired behavior

provide a new flag to report every number of bytes, for example:

```shell
$ iperf3 --interval-bytes=1M
```

would report after each 1MB was transferred regardless of how much time has elapsed.

it's fine if `-i 0` also needs to be passed along to disable time based intervals

* Implementation notes

i'm using this to generate a sound each time a number of bytes is successfully sent on my phone. this helps me search for reception while traveling in remote areas. more frequent sound means higher bandwidth.

i tried to do this using repeated invocations to `iperf3`, but the startup time (connecting initial server connection/handshake) ends up being the majority of the time and puts an upper bound on the frequency of notifications.

Contributor guide

Open the contributing guide

Research direction

No files or tests are named. Start by locating the client-side `-i` interval handling, byte counters, and command-line option parsing; compare how time-based reports are generated. Done means a new byte-based interval option reports at the requested transfer amount, works with the proposed `-i 0` combination, and preserves existing interval behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
cli, networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.