Lines Matching refs:test

55 iperf_create_streams(struct iperf_test *test, int sender)  in iperf_create_streams()  argument
57 if (NULL == test) in iperf_create_streams()
68 int orig_bind_port = test->bind_port; in iperf_create_streams()
69 for (i = 0; i < test->num_streams; ++i) { in iperf_create_streams()
71 test->bind_port = orig_bind_port; in iperf_create_streams()
73 test->bind_port += i; in iperf_create_streams()
75 if (!sender && test->mode == BIDIRECTIONAL) in iperf_create_streams()
76 test->bind_port += test->num_streams; in iperf_create_streams()
78 s = test->protocol->connect(test); in iperf_create_streams()
79 test->bind_port = orig_bind_port; in iperf_create_streams()
84 if (test->protocol->id == Ptcp) { in iperf_create_streams()
85 if (test->congestion) { in iperf_create_streams()
86 if (setsockopt(s, IPPROTO_TCP, TCP_CONGESTION, test->congestion, strlen(test->congestion)) < 0) { in iperf_create_streams()
99 if (rc < 0 && test->congestion) { in iperf_create_streams()
108 test->congestion_used = strdup("unknown"); in iperf_create_streams()
110 test->congestion_used = strdup(ca); in iperf_create_streams()
111 if (test->debug) { in iperf_create_streams()
112 printf("Congestion algorithm is %s\n", test->congestion_used); in iperf_create_streams()
119 FD_SET(s, &test->write_set); in iperf_create_streams()
121 FD_SET(s, &test->read_set); in iperf_create_streams()
122 if (s > test->max_fd) test->max_fd = s; in iperf_create_streams()
124 sp = iperf_new_stream(test, s, sender); in iperf_create_streams()
129 if (test->on_new_stream) in iperf_create_streams()
130 test->on_new_stream(sp); in iperf_create_streams()
139 struct iperf_test *test = client_data.p; in test_timer_proc() local
141 test->timer = NULL; in test_timer_proc()
142 test->done = 1; in test_timer_proc()
148 struct iperf_test *test = client_data.p; in client_stats_timer_proc() local
150 if (test->done) in client_stats_timer_proc()
152 if (test->stats_callback) in client_stats_timer_proc()
153 test->stats_callback(test); in client_stats_timer_proc()
159 struct iperf_test *test = client_data.p; in client_reporter_timer_proc() local
161 if (test->done) in client_reporter_timer_proc()
163 if (test->reporter_callback) in client_reporter_timer_proc()
164 test->reporter_callback(test); in client_reporter_timer_proc()
168 create_client_timers(struct iperf_test * test) in create_client_timers() argument
172 if (NULL == test) in create_client_timers()
183 cd.p = test; in create_client_timers()
184 test->timer = test->stats_timer = test->reporter_timer = NULL; in create_client_timers()
185 if (test->duration != 0) { in create_client_timers()
186 test->done = 0; in create_client_timers()
187test->timer = tmr_create(&now, test_timer_proc, cd, ( test->duration + test->omit ) * SEC_TO_US, 0… in create_client_timers()
188 if (test->timer == NULL) { in create_client_timers()
193 if (test->stats_interval != 0) { in create_client_timers()
194test->stats_timer = tmr_create(&now, client_stats_timer_proc, cd, test->stats_interval * SEC_TO_US… in create_client_timers()
195 if (test->stats_timer == NULL) { in create_client_timers()
200 if (test->reporter_interval != 0) { in create_client_timers()
201test->reporter_timer = tmr_create(&now, client_reporter_timer_proc, cd, test->reporter_interval * … in create_client_timers()
202 if (test->reporter_timer == NULL) { in create_client_timers()
213 struct iperf_test *test = client_data.p; in client_omit_timer_proc() local
215 test->omit_timer = NULL; in client_omit_timer_proc()
216 test->omitting = 0; in client_omit_timer_proc()
217 iperf_reset_stats(test); in client_omit_timer_proc()
218 if (test->verbose && !test->json_output && test->reporter_interval == 0) in client_omit_timer_proc()
219 iperf_printf(test, "%s", report_omit_done); in client_omit_timer_proc()
222 if (test->stats_timer != NULL) in client_omit_timer_proc()
223 tmr_reset(nowP, test->stats_timer); in client_omit_timer_proc()
224 if (test->reporter_timer != NULL) in client_omit_timer_proc()
225 tmr_reset(nowP, test->reporter_timer); in client_omit_timer_proc()
229 create_client_omit_timer(struct iperf_test * test) in create_client_omit_timer() argument
233 if (NULL == test) in create_client_omit_timer()
239 if (test->omit == 0) { in create_client_omit_timer()
240 test->omit_timer = NULL; in create_client_omit_timer()
241 test->omitting = 0; in create_client_omit_timer()
247 test->omitting = 1; in create_client_omit_timer()
248 cd.p = test; in create_client_omit_timer()
249 test->omit_timer = tmr_create(&now, client_omit_timer_proc, cd, test->omit * SEC_TO_US, 0); in create_client_omit_timer()
250 if (test->omit_timer == NULL) { in create_client_omit_timer()
259 iperf_handle_message_client(struct iperf_test *test) in iperf_handle_message_client() argument
264 if (NULL == test) in iperf_handle_message_client()
271 if ((rval = read(test->ctrl_sck, (char*) &test->state, sizeof(signed char))) <= 0) { in iperf_handle_message_client()
281 switch (test->state) { in iperf_handle_message_client()
283 if (iperf_exchange_parameters(test) < 0) in iperf_handle_message_client()
285 if (test->on_connect) in iperf_handle_message_client()
286 test->on_connect(test); in iperf_handle_message_client()
289 if (test->mode == BIDIRECTIONAL) in iperf_handle_message_client()
291 if (iperf_create_streams(test, 1) < 0) in iperf_handle_message_client()
293 if (iperf_create_streams(test, 0) < 0) in iperf_handle_message_client()
296 else if (iperf_create_streams(test, test->mode) < 0) in iperf_handle_message_client()
300 if (iperf_init_test(test) < 0) in iperf_handle_message_client()
302 if (create_client_timers(test) < 0) in iperf_handle_message_client()
304 if (create_client_omit_timer(test) < 0) in iperf_handle_message_client()
306 if (test->mode) in iperf_handle_message_client()
307 if (iperf_create_send_timers(test) < 0) in iperf_handle_message_client()
313 if (iperf_exchange_results(test) < 0) in iperf_handle_message_client()
317 if (test->on_test_finish) in iperf_handle_message_client()
318 test->on_test_finish(test); in iperf_handle_message_client()
319 iperf_client_end(test); in iperf_handle_message_client()
330 signed char oldstate = test->state; in iperf_handle_message_client()
331 cpu_util(test->cpu_util); in iperf_handle_message_client()
332 test->state = DISPLAY_RESULTS; in iperf_handle_message_client()
333 test->reporter_callback(test); in iperf_handle_message_client()
334 test->state = oldstate; in iperf_handle_message_client()
340 if (Nread(test->ctrl_sck, (char*) &err, sizeof(err), Ptcp) < 0) { in iperf_handle_message_client()
345 if (Nread(test->ctrl_sck, (char*) &err, sizeof(err), Ptcp) < 0) { in iperf_handle_message_client()
363 iperf_connect(struct iperf_test *test) in iperf_connect() argument
368 if (NULL == test) in iperf_connect()
373 FD_ZERO(&test->read_set); in iperf_connect()
374 FD_ZERO(&test->write_set); in iperf_connect()
376 make_cookie(test->cookie); in iperf_connect()
379 if (test->ctrl_sck < 0) in iperf_connect()
381test->ctrl_sck = netdial(test->settings->domain, Ptcp, test->bind_address, test->bind_dev, 0, test in iperf_connect()
382 if (test->ctrl_sck < 0) { in iperf_connect()
389 if (setsockopt(test->ctrl_sck, IPPROTO_TCP, TCP_NODELAY, (char *) &flag, sizeof(int))) { in iperf_connect()
395 if ((opt = test->settings->snd_timeout)) { in iperf_connect()
396 if (setsockopt(test->ctrl_sck, IPPROTO_TCP, TCP_USER_TIMEOUT, &opt, sizeof(opt)) < 0) { in iperf_connect()
403 if (Nwrite(test->ctrl_sck, test->cookie, COOKIE_SIZE, Ptcp) < 0) { in iperf_connect()
408 FD_SET(test->ctrl_sck, &test->read_set); in iperf_connect()
409 if (test->ctrl_sck > test->max_fd) test->max_fd = test->ctrl_sck; in iperf_connect()
412 if (getsockopt(test->ctrl_sck, IPPROTO_TCP, TCP_MAXSEG, &opt, &len) < 0) { in iperf_connect()
413 test->ctrl_sck_mss = 0; in iperf_connect()
417 test->ctrl_sck_mss = opt; in iperf_connect()
425 test->ctrl_sck_mss = 0; in iperf_connect()
429 if (test->verbose) { in iperf_connect()
430 printf("Control connection MSS %d\n", test->ctrl_sck_mss); in iperf_connect()
448 if (test->protocol->id == Pudp) { in iperf_connect()
449 if (test->settings->blksize == 0) { in iperf_connect()
450 if (test->ctrl_sck_mss) { in iperf_connect()
451 test->settings->blksize = test->ctrl_sck_mss; in iperf_connect()
454 test->settings->blksize = DEFAULT_UDP_BLKSIZE; in iperf_connect()
456 if (test->verbose) { in iperf_connect()
457 printf("Setting UDP block size to %d\n", test->settings->blksize); in iperf_connect()
465 if (test->ctrl_sck_mss > 0 && in iperf_connect()
466 test->settings->blksize > test->ctrl_sck_mss) { in iperf_connect()
469 … %d exceeds TCP MSS %d, may result in fragmentation / drops", test->settings->blksize, test->ctrl_… in iperf_connect()
479 iperf_client_end(struct iperf_test *test) in iperf_client_end() argument
481 if (NULL == test) in iperf_client_end()
489 SLIST_FOREACH(sp, &test->streams, streams) { in iperf_client_end()
494 test->reporter_callback(test); in iperf_client_end()
497 if (test->state > 0) { in iperf_client_end()
498 if (iperf_set_send_state(test, IPERF_DONE) != 0) in iperf_client_end()
503 if (test->ctrl_sck >= 0) in iperf_client_end()
504 close(test->ctrl_sck); in iperf_client_end()
511 iperf_run_client(struct iperf_test * test) in iperf_run_client() argument
526 if (NULL == test) in iperf_run_client()
532 if (test->logfile) in iperf_run_client()
533 if (iperf_open_logfile(test) < 0) in iperf_run_client()
536 if (test->affinity != -1) in iperf_run_client()
537 if (iperf_setaffinity(test, test->affinity) != 0) in iperf_run_client()
540 if (test->json_output) in iperf_run_client()
541 if (iperf_json_start(test) < 0) in iperf_run_client()
544 if (test->json_output) { in iperf_run_client()
545 cJSON_AddItemToObject(test->json_start, "version", cJSON_CreateString(version)); in iperf_run_client()
546 cJSON_AddItemToObject(test->json_start, "system_info", cJSON_CreateString(get_system_info())); in iperf_run_client()
547 } else if (test->verbose) { in iperf_run_client()
548 iperf_printf(test, "%s\n", version); in iperf_run_client()
549 iperf_printf(test, "%s", ""); in iperf_run_client()
550 iperf_printf(test, "%s\n", get_system_info()); in iperf_run_client()
551 iflush(test); in iperf_run_client()
555 if (iperf_connect(test) < 0) in iperf_run_client()
560 if (test->mode != SENDER) in iperf_run_client()
561 …rcv_timeout_us = (test->settings->rcv_timeout.secs * SEC_TO_US) + test->settings->rcv_timeout.usec… in iperf_run_client()
566 while (test->state != IPERF_DONE) { in iperf_run_client()
567 memcpy(&read_set, &test->read_set, sizeof(fd_set)); in iperf_run_client()
568 memcpy(&write_set, &test->write_set, sizeof(fd_set)); in iperf_run_client()
573 if (test->state == TEST_RUNNING && rcv_timeout_us > 0) { in iperf_run_client()
581 used_timeout.tv_sec = test->settings->rcv_timeout.secs; in iperf_run_client()
582 used_timeout.tv_usec = test->settings->rcv_timeout.usecs; in iperf_run_client()
587 result = select(test->max_fd + 1, &read_set, &write_set, NULL, timeout); in iperf_run_client()
591 } else if (result == 0 && test->state == TEST_RUNNING && rcv_timeout_us > 0) { in iperf_run_client()
609 if (FD_ISSET(test->ctrl_sck, &read_set)) { in iperf_run_client()
610 if (iperf_handle_message_client(test) < 0) { in iperf_run_client()
613 FD_CLR(test->ctrl_sck, &read_set); in iperf_run_client()
617 if (test->state == TEST_RUNNING) { in iperf_run_client()
624 if (test->protocol->id != Pudp) { in iperf_run_client()
625 SLIST_FOREACH(sp, &test->streams, streams) { in iperf_run_client()
632 if (test->mode == BIDIRECTIONAL) in iperf_run_client()
634 if (iperf_send(test, &write_set) < 0) in iperf_run_client()
636 if (iperf_recv(test, &read_set) < 0) in iperf_run_client()
638 } else if (test->mode == SENDER) { in iperf_run_client()
640 if (iperf_send(test, &write_set) < 0) in iperf_run_client()
644 if (iperf_recv(test, &read_set) < 0) in iperf_run_client()
661 if ((!test->omitting) && in iperf_run_client()
662 (test->done || in iperf_run_client()
663 (test->settings->bytes != 0 && (test->bytes_sent >= test->settings->bytes || in iperf_run_client()
664 test->bytes_received >= test->settings->bytes)) || in iperf_run_client()
665 (test->settings->blocks != 0 && (test->blocks_sent >= test->settings->blocks || in iperf_run_client()
666 test->blocks_received >= test->settings->blocks)))) { in iperf_run_client()
669 if (test->protocol->id != Pudp) { in iperf_run_client()
670 SLIST_FOREACH(sp, &test->streams, streams) { in iperf_run_client()
676 test->done = 1; in iperf_run_client()
677 cpu_util(test->cpu_util); in iperf_run_client()
678 test->stats_callback(test); in iperf_run_client()
679 if (iperf_set_send_state(test, TEST_END) != 0) in iperf_run_client()
688 else if (test->mode == RECEIVER && test->state == TEST_END) { in iperf_run_client()
689 if (iperf_recv(test, &read_set) < 0) in iperf_run_client()
694 if (test->json_output) { in iperf_run_client()
695 if (iperf_json_finish(test) < 0) in iperf_run_client()
698 iperf_printf(test, "\n"); in iperf_run_client()
699 iperf_printf(test, "%s", report_done); in iperf_run_client()
702 iflush(test); in iperf_run_client()
707 iperf_client_end(test); in iperf_run_client()
708 if (test->json_output) { in iperf_run_client()
709 cJSON_AddStringToObject(test->json_top, "error", iperf_strerror(i_errno)); in iperf_run_client()
710 iperf_json_finish(test); in iperf_run_client()
711 iflush(test); in iperf_run_client()
716 iflush(test); in iperf_run_client()