summaryrefslogtreecommitdiff
path: root/src/tools/operf/operf.c
diff options
context:
space:
mode:
authordimitri staessens <[email protected]>2016-11-19 16:28:11 +0100
committerdimitri staessens <[email protected]>2016-11-19 16:30:06 +0100
commit26b338bbb6d10ca19eabee2bcb0bdf9ef82bca63 (patch)
tree1489683642a77e8a860e88fecbc7484ea2ad901f /src/tools/operf/operf.c
parent74a93600f89066cc210838ff2eddafee4448bf4e (diff)
downloadouroboros-26b338bbb6d10ca19eabee2bcb0bdf9ef82bca63.tar.gz
ouroboros-26b338bbb6d10ca19eabee2bcb0bdf9ef82bca63.zip
tools: Use busy waiting in operf
Using nanosleep in between sending SDUs is not accurate enough when sending thousands of SDUs per second. The --sleep option is added for lowering CPU consumption in low bandwidth tests.
Diffstat (limited to 'src/tools/operf/operf.c')
-rw-r--r--src/tools/operf/operf.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/tools/operf/operf.c b/src/tools/operf/operf.c
index b52109cf..46dfc14d 100644
--- a/src/tools/operf/operf.c
+++ b/src/tools/operf/operf.c
@@ -41,6 +41,7 @@ struct c {
int size;
long rate;
bool flood;
+ bool sleep;
int duration;
size_t sent;
@@ -81,6 +82,7 @@ static void usage(void)
" -r, --rate Rate (b/s)\n"
" -s, --size Payload size (B, default 1500)\n"
" -f, --flood Send SDUs as fast as possible\n"
+ " --sleep Sleep in between sending SDUs\n"
" --help Display this help text and exit\n");
}
@@ -100,6 +102,7 @@ int main(int argc, char ** argv)
server.timeout = 1000; /* ms */
client.rate = 1000000;
client.flood = false;
+ client.sleep = false;
while (argc > 0) {
if (strcmp(*argv, "-n") == 0 ||
@@ -127,6 +130,8 @@ int main(int argc, char ** argv)
} else if (strcmp(*argv, "-f") == 0 ||
strcmp(*argv, "--flood") == 0) {
client.flood = true;
+ } else if (strcmp(*argv, "--sleep") == 0) {
+ client.sleep = true;
} else if (strcmp(*argv, "-l") == 0 ||
strcmp(*argv, "--listen") == 0) {
serv = true;