diff options
author | Jef Poskanzer <jef@mail.acme.com> | 2013-06-24 07:14:14 -0700 |
---|---|---|
committer | Jef Poskanzer <jef@mail.acme.com> | 2013-06-24 07:14:14 -0700 |
commit | 647d3b95a81f707ba5b8b47903ac6d30922d1391 (patch) | |
tree | a7177f24e7540de76028aad6fb626cb1f8a7e83b /src/iperf_udp.c | |
parent | cf06ba653ad03fb3da5ba20cc4fd47fdb20b2b87 (diff) | |
download | iperf3-647d3b95a81f707ba5b8b47903ac6d30922d1391.tar.gz |
New implementation of the -b bandwidth limit flag, that applies to
TCP as well as UDP.
Diffstat (limited to 'src/iperf_udp.c')
-rw-r--r-- | src/iperf_udp.c | 64 |
1 files changed, 1 insertions, 63 deletions
diff --git a/src/iperf_udp.c b/src/iperf_udp.c index 8dbb66b..0d39890 100644 --- a/src/iperf_udp.c +++ b/src/iperf_udp.c @@ -85,20 +85,6 @@ iperf_udp_recv(struct iperf_stream *sp) } -static void -send_timer_proc(TimerClientData client_data, struct timeval* nowP) -{ - struct iperf_stream *sp = client_data.p; - - /* All we do here is set a flag saying that this UDP stream may be sent - ** to. The actual sending gets done in iperf_udp_send(), which then - ** resets the flag and makes a new adjusted timer. - */ - sp->send_timer = NULL; - sp->udp_green_light = 1; -} - - /* iperf_udp_send * * sends the data for UDP @@ -107,15 +93,9 @@ int iperf_udp_send(struct iperf_stream *sp) { int r; - int64_t dtargus; - int64_t adjustus; uint64_t sec, usec, pcount; int size = sp->settings->blksize; - struct timeval before, after; - TimerClientData cd; - - if (! sp->udp_green_light) - return 0; + struct timeval before; gettimeofday(&before, 0); @@ -136,24 +116,6 @@ iperf_udp_send(struct iperf_stream *sp) sp->result->bytes_sent += r; sp->result->bytes_sent_this_interval += r; - if (sp->settings->rate != 0) { - gettimeofday(&after, 0); - dtargus = (int64_t) (sp->settings->blksize) * SEC_TO_US * 8; - dtargus /= sp->settings->rate; - assert(dtargus != 0); - adjustus = dtargus; - adjustus += (before.tv_sec - after.tv_sec) * SEC_TO_US; - adjustus += (before.tv_usec - after.tv_usec); - if (adjustus > 0) { - dtargus = adjustus; - } - cd.p = sp; - sp->udp_green_light = 0; - sp->send_timer = tmr_create((struct timeval*) 0, send_timer_proc, cd, dtargus, 0); - if (sp->send_timer == NULL) - return -1; - } - return r; } @@ -263,29 +225,5 @@ iperf_udp_connect(struct iperf_test *test) int iperf_udp_init(struct iperf_test *test) { - int64_t dtargus; - struct iperf_stream *sp; - TimerClientData cd; - - if (test->settings->rate == 0) { - SLIST_FOREACH(sp, &test->streams, streams) { - sp->udp_green_light = 1; - } - } else { - /* Calculate the send delay needed to hit target bandwidth (-b) */ - dtargus = (int64_t) test->settings->blksize * SEC_TO_US * 8; - dtargus /= test->settings->rate; - - assert(dtargus != 0); - - SLIST_FOREACH(sp, &test->streams, streams) { - cd.p = sp; - sp->udp_green_light = 0; - sp->send_timer = tmr_create((struct timeval*) 0, send_timer_proc, cd, dtargus, 0); - if (sp->send_timer == NULL) - return -1; - } - } - return 0; } |