Lines Matching defs:config

165 Config config;
270 if (worker->config->is_timing_based_mode()) {
278 if (!worker->config->is_timing_based_mode()) {
340 assert(!config.timing_script);
350 round(std::chrono::duration<double>(d).count() * config.rps));
353 util::duration_from(static_cast<double>(n) / config.rps);
364 nreq = config.is_timing_based_mode() ? std::max(nreq, client->req_left)
414 if (client->streams.size() >= (size_t)config.max_concurrent_streams) {
431 config.timings[client->reqidx] - config.timings[client->reqidx - 1];
445 config.timings[client->reqidx] - config.timings[client->reqidx - 1];
461 next_addr(config.addrs),
489 worker->config->conn_inactivity_timeout);
493 worker->config->conn_active_timeout, 0.);
506 if (config.is_quic()) {
518 if (config.is_quic()) {
537 if (config.is_quic()) {
577 if (config.scheme == "https") {
586 if (ssl && !util::numeric_host(config.host.c_str())) {
587 SSL_set_tlsext_host_name(ssl, config.host.c_str());
590 if (config.is_quic()) {
610 if (!worker->config->is_timing_based_mode() ||
622 if (worker->config->conn_inactivity_timeout > 0.) {
656 if (config.is_quic()) {
677 if (worker->config->conn_inactivity_timeout > 0.) {
722 if (config.is_quic()) {
741 if (config.is_quic()) {
775 if (!worker->config->is_timing_based_mode()) {
780 if (worker->config->conn_active_timeout > 0. && req_left == 0) {
909 if (config.is_quic()) {
1030 if (worker->config->log_fd != -1) {
1052 while (write(worker->config->log_fd, buf.data(), nwrite) == -1 &&
1066 if (config.timing_script) {
1070 } else if (!config.rps_enabled()) {
1113 if (config.is_quic()) {
1130 } else if (config.is_quic()) {
1137 for (const auto &proto : config.npn_list) {
1157 for (const auto &proto : config.npn_list) {
1164 switch (config.no_tls_proto) {
1187 if (config.rps_enabled()) {
1188 rps_watcher.repeat = std::max(0.01, 1. / config.rps);
1193 if (config.rps_enabled()) {
1201 } else if (!config.timing_script) {
1202 auto nreq = config.is_timing_based_mode()
1214 auto duration = config.timings[reqidx];
1221 duration = config.timings[reqidx];
1552 size_t rate, size_t max_samples, Config *config)
1557 config(config),
1568 if (!config->is_rate_mode() && !config->is_timing_based_mode()) {
1577 config->rate_period);
1580 if (config->is_timing_based_mode()) {
1591 ev_timer_init(&duration_watcher, duration_timeout_cb, config->duration, 0.);
1594 ev_timer_init(&warmup_watcher, warmup_timeout_cb, config->warm_up_time, 0.);
1597 if (config->is_timing_based_mode()) {
1632 if (!config->is_rate_mode() && !config->is_timing_based_mode()) {
1648 } else if (config->is_rate_mode()) {
1685 if (id != 0 || config->is_rate_mode() || stats.req_done % progress_interval ||
1686 config->is_timing_based_mode()) {
1833 if (config.base_uri_unix) {
1835 res->ai_family = config.unix_addr.sun_family;
1837 res->ai_addrlen = sizeof(config.unix_addr);
1839 static_cast<struct sockaddr *>(static_cast<void *>(&config.unix_addr));
1841 config.addrs = res.release();
1854 config.connect_to_host.empty() ? config.host : config.connect_to_host;
1856 config.connect_to_port == 0 ? config.port : config.connect_to_port;
1868 config.addrs = res;
1897 inlen, config.npn_list)) {
1920 config.scheme = util::get_uri_field(base_uri.c_str(), u, UF_SCHEMA).str();
1921 config.host = util::get_uri_field(base_uri.c_str(), u, UF_HOST).str();
1922 config.default_port = util::get_default_port(base_uri.c_str(), u);
1924 config.port = u.port;
1926 config.port = config.default_port;
1944 if (!config.has_base_uri()) {
1951 config.base_uri = *first;
2033 if (config.is_rate_mode() && nclients > rate) {
2035 << util::duration_str(config.rate_period) << " ";
2038 if (config.is_timing_based_mode()) {
2041 << config.warm_up_time << "s of warm-up time and "
2042 << config.duration << "s of main duration for measurements."
2050 if (config.is_rate_mode()) {
2052 max_samples, &config);
2057 max_samples, &config);
2105 auto config = Config();
2124 << config.nreqs << R"(
2129 << config.nclients << R"(
2133 << config.nthreads << R"(
2153 << util::utos_unit(config.max_frame_size) << R"(
2158 << config.window_bits << R"(
2163 << config.connection_window_bits << R"(
2170 << config.ciphers << R"(
2175 << config.tls13_ciphers << R"(
2273 << util::utos_unit(config.header_table_size) << R"(
2280 << util::utos_unit(config.encoder_header_table_size) << R"(
2303 << config.groups << R"(
2392 config.nreqs = n;
2402 config.nclients = n;
2418 config.nthreads = n;
2428 config.max_concurrent_streams = n;
2441 config.window_bits = n;
2443 config.connection_window_bits = n;
2462 config.max_frame_size = n;
2487 config.custom_headers.emplace_back(header, value);
2488 util::inp_strlower(config.custom_headers.back().name);
2492 config.ifile = optarg;
2498 config.no_tls_proto = Config::PROTO_HTTP2;
2500 config.no_tls_proto = Config::PROTO_HTTP1_1;
2518 config.rate = n;
2522 config.conn_active_timeout = util::parse_duration_with_unit(optarg);
2523 if (!std::isfinite(config.conn_active_timeout)) {
2530 config.conn_inactivity_timeout = util::parse_duration_with_unit(optarg);
2531 if (!std::isfinite(config.conn_inactivity_timeout)) {
2539 config.base_uri = "";
2540 config.base_uri_unix = false;
2555 config.base_uri_unix = true;
2557 auto &unix_addr = config.unix_addr;
2570 config.base_uri = arg.str();
2574 config.duration = util::parse_duration_with_unit(optarg);
2575 if (!std::isfinite(config.duration)) {
2581 config.verbose = true;
2597 config.ciphers = optarg;
2601 config.ifile = optarg;
2602 config.timing_script = true;
2606 config.npn_list = util::parse_config_str_list(StringRef{optarg});
2610 config.rate_period = util::parse_duration_with_unit(optarg);
2611 if (!std::isfinite(config.rate_period)) {
2618 config.npn_list =
2620 config.no_tls_proto = Config::PROTO_HTTP1_1;
2624 if (parse_header_table_size(config.header_table_size,
2631 if (parse_header_table_size(config.encoder_header_table_size,
2638 config.warm_up_time = util::parse_duration_with_unit(optarg);
2639 if (!std::isfinite(config.warm_up_time)) {
2657 config.connect_to_host = p.first.str();
2658 config.connect_to_port = port;
2669 config.rps = v;
2674 config.groups = optarg;
2678 config.tls13_ciphers = optarg;
2682 config.no_udp_gso = true;
2701 config.max_udp_payload_size = n;
2706 config.ktls = true;
2716 if (config.ifile.empty()) {
2722 if (config.nclients == 0) {
2728 if (config.npn_list.empty()) {
2729 config.npn_list =
2734 for (auto &proto : config.npn_list) {
2740 if (config.ifile.empty()) {
2746 if (!config.timing_script) {
2747 if (config.ifile == "-") {
2750 std::ifstream infile(config.ifile);
2752 std::cerr << "cannot read input file: " << config.ifile << std::endl;
2759 if (config.ifile == "-") {
2760 read_script_from_file(std::cin, config.timings, uris);
2762 std::ifstream infile(config.ifile);
2764 std::cerr << "cannot read input file: " << config.ifile << std::endl;
2768 read_script_from_file(infile, config.timings, uris);
2772 if (config.nreqs > uris.size()) {
2778 config.nreqs = uris.size();
2781 config.nreqs = uris.size();
2793 if (config.is_timing_based_mode() && config.is_rate_mode()) {
2798 if (config.timing_script && config.rps_enabled()) {
2804 if (config.nreqs == 0 && !config.is_timing_based_mode()) {
2811 if (config.max_concurrent_streams == 0) {
2817 if (config.nthreads == 0) {
2823 if (config.nthreads > std::thread::hardware_concurrency()) {
2828 // With timing script, we don't distribute config.nreqs to each
2830 if (!config.timing_script && config.nreqs < config.nclients &&
2831 !config.is_timing_based_mode()) {
2837 if (config.nclients < config.nthreads) {
2843 if (config.is_timing_based_mode()) {
2844 config.nreqs = 0;
2847 if (config.is_rate_mode()) {
2848 if (config.rate < config.nthreads) {
2854 if (config.rate > config.nclients) {
2863 config.data_fd = open(datafile.c_str(), O_RDONLY | O_BINARY);
2864 if (config.data_fd == -1) {
2869 if (fstat(config.data_fd, &data_stat) == -1) {
2873 config.data_length = data_stat.st_size;
2874 auto addr = mmap(nullptr, config.data_length, PROT_READ, MAP_SHARED,
2875 config.data_fd, 0);
2880 config.data = static_cast<uint8_t *>(addr);
2884 config.log_fd = open(logfile.c_str(), O_WRONLY | O_CREAT | O_APPEND,
2886 if (config.log_fd == -1) {
2893 if (!config.is_quic()) {
2899 config.qlog_file_base = qlog_base;
2920 if (config.ktls) {
2929 if (config.is_quic()) {
2953 if (SSL_CTX_set_cipher_list(ssl_ctx, config.ciphers.c_str()) == 0) {
2954 std::cerr << "SSL_CTX_set_cipher_list with " << config.ciphers
2961 if (SSL_CTX_set_ciphersuites(ssl_ctx, config.tls13_ciphers.c_str()) == 0) {
2962 std::cerr << "SSL_CTX_set_ciphersuites with " << config.tls13_ciphers
2970 if (SSL_CTX_set1_groups_list(ssl_ctx, config.groups.c_str()) != 1) {
2975 if (SSL_CTX_set1_curves_list(ssl_ctx, config.groups.c_str()) != 1) {
2988 for (const auto &proto : config.npn_list) {
3007 shared_nva.emplace_back(":scheme", config.scheme);
3008 if (config.port != config.default_port) {
3010 config.host + ":" + util::utos(config.port));
3012 shared_nva.emplace_back(":authority", config.host);
3014 shared_nva.emplace_back(":method", config.data_fd == -1 ? "GET" : "POST");
3021 for (auto &kv : config.custom_headers) {
3038 if (config.data_fd != -1) {
3039 content_length_str = util::utos(config.data_length);
3047 config.h1reqs.reserve(reqlines.size());
3048 config.nva.reserve(reqlines.size());
3079 config.h1reqs.push_back(std::move(h1req));
3097 config.nva.push_back(std::move(nva));
3101 if (config.host == "nghttp2.org") {
3102 std::cerr << "Using h2load against public server " << config.host
3112 workers.reserve(config.nthreads);
3118 if (!config.timing_script) {
3119 nreqs_per_thread = config.nreqs / config.nthreads;
3120 nreqs_rem = config.nreqs % config.nthreads;
3123 size_t nclients_per_thread = config.nclients / config.nthreads;
3124 ssize_t nclients_rem = config.nclients % config.nthreads;
3126 size_t rate_per_thread = config.rate / config.nthreads;
3127 ssize_t rate_per_thread_rem = config.rate % config.nthreads;
3130 std::max(static_cast<size_t>(256), MAX_SAMPLES / config.nthreads);
3137 for (size_t i = 0; i < config.nthreads; ++i) {
3150 if (config.timing_script) {
3151 // With timing script, each client issues config.nreqs requests.
3154 // config.nreqs here by config.nclients.
3155 nreqs = config.nreqs * nclients;
3190 auto rate = config.rate;
3191 auto nclients = config.nclients;
3193 config.timing_script ? config.nreqs * config.nclients : config.nreqs;
3247 if (config.is_timing_based_mode()) {
3249 rps = stats.req_success / config.duration;
3250 bps = stats.bytes_total / config.duration;
3285 if (config.is_quic()) {
3317 if (config.log_fd != -1) {
3318 close(config.log_fd);