From: Michael Tremer Date: Mon, 25 Jan 2021 14:26:41 +0000 (+0000) Subject: Implement to configure parallelism X-Git-Tag: 0.1.0~52 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=07f030f30df6c1096f08fff3de98fe655aa98fdb;p=fireperf.git Implement to configure parallelism Signed-off-by: Michael Tremer --- diff --git a/src/main.c b/src/main.c index eb634fc..308a242 100644 --- a/src/main.c +++ b/src/main.c @@ -58,6 +58,7 @@ static int parse_argv(int argc, char* argv[], struct fireperf_config* conf) { static struct option long_options[] = { {"client", required_argument, 0, 'c'}, {"debug", no_argument, 0, 'd'}, + {"parallel", required_argument, 0, 'P'}, {"port", required_argument, 0, 'p'}, {"server", no_argument, 0, 's'}, {0, 0, 0, 0}, @@ -67,7 +68,7 @@ static int parse_argv(int argc, char* argv[], struct fireperf_config* conf) { int done = 0; while (!done) { - int c = getopt_long(argc, argv, "c:dp:s", long_options, &option_index); + int c = getopt_long(argc, argv, "c:dp:sP:", long_options, &option_index); // End if (c == -1) @@ -105,6 +106,16 @@ static int parse_argv(int argc, char* argv[], struct fireperf_config* conf) { conf->loglevel = LOG_DEBUG; break; + case 'P': + conf->parallel = strtoul(optarg, NULL, 10); + + if (conf->parallel > MAX_PARALLEL) { + fprintf(stderr, "Number of parallel connections is too high: %lu\n", + conf->parallel); + return 2; + } + break; + case 'p': conf->port = atoi(optarg); diff --git a/src/main.h b/src/main.h index 9349036..06ec914 100644 --- a/src/main.h +++ b/src/main.h @@ -24,8 +24,11 @@ #include #define DEFAULT_LOG_LEVEL LOG_INFO +#define DEFAULT_PARALLEL 1 #define DEFAULT_PORT 5001 +#define MAX_PARALLEL (1 << 20) + struct fireperf_config { int loglevel; enum { @@ -35,6 +38,7 @@ struct fireperf_config { } mode; struct in6_addr address; int port; + unsigned long parallel; }; #endif /* FIREPERF_MAIN_H */