X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest-crypto-perf%2Fcperf_options_parsing.c;h=c244f81bbf10f2ac6f20b038d9b73f0430b06802;hb=f2777b53b189813e9c22e2cf0bbecb9327f8dcce;hp=20577a1447b9e4b0ad6d4d508160c73dc59c73cd;hpb=d4a131a9498db198ad8ca31664da13dbb9cbbc6c;p=dpdk.git diff --git a/app/test-crypto-perf/cperf_options_parsing.c b/app/test-crypto-perf/cperf_options_parsing.c index 20577a1447..c244f81bbf 100644 --- a/app/test-crypto-perf/cperf_options_parsing.c +++ b/app/test-crypto-perf/cperf_options_parsing.c @@ -24,7 +24,7 @@ usage(char *progname) { printf("%s [EAL options] --\n" " --silent: disable options dump\n" - " --ptest throughput / latency / verify / pmd-cycleount :" + " --ptest throughput / latency / verify / pmd-cyclecount :" " set test type\n" " --pool_sz N: set the number of crypto ops/mbufs allocated\n" " --total-ops N: set the number of total operations performed\n" @@ -57,7 +57,10 @@ usage(char *progname) " --pmd-cyclecount-delay-ms N: set delay between enqueue\n" " and dequeue in pmd-cyclecount benchmarking mode\n" " --csv-friendly: enable test result output CSV friendly\n" -#ifdef RTE_LIBRTE_SECURITY +#ifdef RTE_LIB_SECURITY + " --pdcp-sn-sz N: set PDCP SN size N <5/7/12/15/18>\n" + " --pdcp-domain DOMAIN: set PDCP domain \n" + " --pdcp-ses-hfn-en: enable session based fixed HFN\n" " --docsis-hdr-sz: set DOCSIS header size\n" #endif " -h: prints this help\n", @@ -454,6 +457,14 @@ parse_op_type(struct cperf_options *opts, const char *arg) { cperf_op_type_strs[CPERF_DOCSIS], CPERF_DOCSIS + }, + { + cperf_op_type_strs[CPERF_IPSEC], + CPERF_IPSEC + }, + { + cperf_op_type_strs[CPERF_ASYM_MODEX], + CPERF_ASYM_MODEX } }; @@ -503,6 +514,12 @@ parse_test_name(struct cperf_options *opts, { char *test_name = (char *) rte_zmalloc(NULL, sizeof(char) * (strlen(arg) + 3), 0); + if (test_name == NULL) { + RTE_LOG(ERR, USER1, "Failed to rte zmalloc with size: %zu\n", + strlen(arg) + 3); + return -1; + } + snprintf(test_name, strlen(arg) + 3, "[%s]", arg); opts->test_name = test_name; @@ -628,7 +645,7 @@ parse_digest_sz(struct cperf_options *opts, const char *arg) return parse_uint16_t(&opts->digest_sz, arg); } -#ifdef RTE_LIBRTE_SECURITY +#ifdef RTE_LIB_SECURITY static int parse_pdcp_sn_sz(struct cperf_options *opts, const char *arg) { @@ -653,7 +670,8 @@ parse_pdcp_sn_sz(struct cperf_options *opts, const char *arg) const char *cperf_pdcp_domain_strs[] = { [RTE_SECURITY_PDCP_MODE_CONTROL] = "control", - [RTE_SECURITY_PDCP_MODE_DATA] = "data" + [RTE_SECURITY_PDCP_MODE_DATA] = "data", + [RTE_SECURITY_PDCP_MODE_SHORT_MAC] = "short_mac" }; static int @@ -668,6 +686,11 @@ parse_pdcp_domain(struct cperf_options *opts, const char *arg) cperf_pdcp_domain_strs [RTE_SECURITY_PDCP_MODE_DATA], RTE_SECURITY_PDCP_MODE_DATA + }, + { + cperf_pdcp_domain_strs + [RTE_SECURITY_PDCP_MODE_SHORT_MAC], + RTE_SECURITY_PDCP_MODE_SHORT_MAC } }; @@ -684,6 +707,13 @@ parse_pdcp_domain(struct cperf_options *opts, const char *arg) return 0; } +static int +parse_pdcp_ses_hfn_en(struct cperf_options *opts, const char *arg __rte_unused) +{ + opts->pdcp_ses_hfn_en = 1; + return 0; +} + static int parse_docsis_hdr_sz(struct cperf_options *opts, const char *arg) { @@ -831,9 +861,10 @@ static struct option lgopts[] = { { CPERF_DIGEST_SZ, required_argument, 0, 0 }, -#ifdef RTE_LIBRTE_SECURITY +#ifdef RTE_LIB_SECURITY { CPERF_PDCP_SN_SZ, required_argument, 0, 0 }, { CPERF_PDCP_DOMAIN, required_argument, 0, 0 }, + { CPERF_PDCP_SES_HFN_EN, no_argument, 0, 0 }, { CPERF_DOCSIS_HDR_SZ, required_argument, 0, 0 }, #endif { CPERF_CSV, no_argument, 0, 0}, @@ -902,9 +933,10 @@ cperf_options_default(struct cperf_options *opts) opts->digest_sz = 12; opts->pmdcc_delay = 0; -#ifdef RTE_LIBRTE_SECURITY +#ifdef RTE_LIB_SECURITY opts->pdcp_sn_sz = 12; opts->pdcp_domain = RTE_SECURITY_PDCP_MODE_CONTROL; + opts->pdcp_ses_hfn_en = 0; opts->docsis_hdr_sz = 17; #endif } @@ -942,9 +974,10 @@ cperf_opts_parse_long(int opt_idx, struct cperf_options *opts) { CPERF_AEAD_IV_SZ, parse_aead_iv_sz }, { CPERF_AEAD_AAD_SZ, parse_aead_aad_sz }, { CPERF_DIGEST_SZ, parse_digest_sz }, -#ifdef RTE_LIBRTE_SECURITY +#ifdef RTE_LIB_SECURITY { CPERF_PDCP_SN_SZ, parse_pdcp_sn_sz }, { CPERF_PDCP_DOMAIN, parse_pdcp_domain }, + { CPERF_PDCP_SES_HFN_EN, parse_pdcp_ses_hfn_en }, { CPERF_DOCSIS_HDR_SZ, parse_docsis_hdr_sz }, #endif { CPERF_CSV, parse_csv_friendly}, @@ -970,7 +1003,7 @@ cperf_options_parse(struct cperf_options *options, int argc, char **argv) switch (opt) { case 'h': usage(argv[0]); - rte_exit(EXIT_SUCCESS, "Displayed help\n"); + exit(EXIT_SUCCESS); break; /* long options */ case 0: @@ -1048,7 +1081,7 @@ check_cipher_buffer_length(struct cperf_options *options) return 0; } -#ifdef RTE_LIBRTE_SECURITY +#ifdef RTE_LIB_SECURITY static int check_docsis_buffer_length(struct cperf_options *options) { @@ -1202,7 +1235,7 @@ cperf_options_check(struct cperf_options *options) return -EINVAL; } -#ifdef RTE_LIBRTE_SECURITY +#ifdef RTE_LIB_SECURITY if (options->op_type == CPERF_DOCSIS) { if (check_docsis_buffer_length(options) < 0) return -EINVAL; @@ -1295,7 +1328,7 @@ cperf_options_dump(struct cperf_options *opts) printf("#\n"); } -#ifdef RTE_LIBRTE_SECURITY +#ifdef RTE_LIB_SECURITY if (opts->op_type == CPERF_DOCSIS) { printf("# docsis header size: %u\n", opts->docsis_hdr_sz); printf("#\n");