diff --git a/app/test-crypto-perf/cperf_ops.c b/app/test-crypto-perf/cperf_ops.c index 93d2744c68..0417af2d5e 100644 --- a/app/test-crypto-perf/cperf_ops.c +++ b/app/test-crypto-perf/cperf_ops.c @@ -865,6 +865,7 @@ cperf_create_session(struct rte_mempool *sess_mp, .hfn = options->pdcp_ses_hfn_en ? PDCP_DEFAULT_HFN : 0, .hfn_threshold = 0x70C0A, + .sdap_enabled = options->pdcp_sdap, .hfn_ovrd = !(options->pdcp_ses_hfn_en), } }, .crypto_xform = &cipher_xform diff --git a/app/test-crypto-perf/cperf_options.h b/app/test-crypto-perf/cperf_options.h index 09caefde22..613d6d31e2 100644 --- a/app/test-crypto-perf/cperf_options.h +++ b/app/test-crypto-perf/cperf_options.h @@ -14,6 +14,7 @@ #define CPERF_PTEST_TYPE ("ptest") #define CPERF_MODEX_LEN ("modex-len") #define CPERF_SILENT ("silent") +#define CPERF_ENABLE_SDAP ("enable-sdap") #define CPERF_POOL_SIZE ("pool-sz") #define CPERF_TOTAL_OPS ("total-ops") @@ -129,6 +130,7 @@ struct cperf_options { #ifdef RTE_LIB_SECURITY uint16_t pdcp_sn_sz; uint16_t pdcp_ses_hfn_en; + uint16_t pdcp_sdap; enum rte_security_pdcp_domain pdcp_domain; uint16_t docsis_hdr_sz; #endif diff --git a/app/test-crypto-perf/cperf_options_parsing.c b/app/test-crypto-perf/cperf_options_parsing.c index 566255bf2d..10793ec82f 100644 --- a/app/test-crypto-perf/cperf_options_parsing.c +++ b/app/test-crypto-perf/cperf_options_parsing.c @@ -64,6 +64,7 @@ usage(char *progname) " --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" + " --enable-sdap: enable sdap\n" " --docsis-hdr-sz: set DOCSIS header size\n" #endif " -h: prints this help\n", @@ -548,6 +549,15 @@ parse_silent(struct cperf_options *opts, return 0; } +static int +parse_enable_sdap(struct cperf_options *opts, + const char *arg __rte_unused) +{ + opts->pdcp_sdap = 1; + + return 0; +} + static int parse_cipher_algo(struct cperf_options *opts, const char *arg) { @@ -879,6 +889,7 @@ static struct option lgopts[] = { { 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_ENABLE_SDAP, no_argument, 0, 0 }, { CPERF_DOCSIS_HDR_SZ, required_argument, 0, 0 }, #endif { CPERF_CSV, no_argument, 0, 0}, @@ -951,6 +962,7 @@ cperf_options_default(struct cperf_options *opts) opts->pdcp_sn_sz = 12; opts->pdcp_domain = RTE_SECURITY_PDCP_MODE_CONTROL; opts->pdcp_ses_hfn_en = 0; + opts->pdcp_sdap = 0; opts->docsis_hdr_sz = 17; #endif opts->modex_data = (struct cperf_modex_test_data *)&modex_perf_data[0]; @@ -994,6 +1006,7 @@ cperf_opts_parse_long(int opt_idx, struct cperf_options *opts) { 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_ENABLE_SDAP, parse_enable_sdap }, { CPERF_DOCSIS_HDR_SZ, parse_docsis_hdr_sz }, #endif { CPERF_CSV, parse_csv_friendly}, diff --git a/doc/guides/tools/cryptoperf.rst b/doc/guides/tools/cryptoperf.rst index cf3b147213..c77e253417 100644 --- a/doc/guides/tools/cryptoperf.rst +++ b/doc/guides/tools/cryptoperf.rst @@ -332,6 +332,10 @@ The following are the application command-line options: Enable fixed session based HFN instead of per packet HFN. +* ``--enable-sdap`` + + Enable Service Data Adaptation Protocol. + * ``--modex-len `` Set modex length for asymmetric crypto perf test.