test/crypto-perf: support SDAP for PDCP operations

Add a command line option "--enable-sdap" to enable
Service Data Adaptation Protocol.

example command:
./dpdk-test-crypto-perf -c 0xc  --log-level=8 --
--devtype crypto_dpaa2_sec --optype pdcp --cipher-algo aes-ctr
--cipher-op encrypt --auth-algo zuc-eia3 --auth-op generate
--auth-key-sz 16 --ptest throughput --total-ops 100000 --burst-sz 64
--buffer-sz 64,390,1512  --pool-sz 4096 --silent --pdcp-sn-sz 12
--pdcp-domain control --enable-sdap

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
This commit is contained in:
Gagandeep Singh 2022-06-06 09:30:58 +05:30 committed by Akhil Goyal
parent abcee06c02
commit 23a95dfe96
4 changed files with 20 additions and 0 deletions

View File

@ -865,6 +865,7 @@ cperf_create_session(struct rte_mempool *sess_mp,
.hfn = options->pdcp_ses_hfn_en ? .hfn = options->pdcp_ses_hfn_en ?
PDCP_DEFAULT_HFN : 0, PDCP_DEFAULT_HFN : 0,
.hfn_threshold = 0x70C0A, .hfn_threshold = 0x70C0A,
.sdap_enabled = options->pdcp_sdap,
.hfn_ovrd = !(options->pdcp_ses_hfn_en), .hfn_ovrd = !(options->pdcp_ses_hfn_en),
} }, } },
.crypto_xform = &cipher_xform .crypto_xform = &cipher_xform

View File

@ -14,6 +14,7 @@
#define CPERF_PTEST_TYPE ("ptest") #define CPERF_PTEST_TYPE ("ptest")
#define CPERF_MODEX_LEN ("modex-len") #define CPERF_MODEX_LEN ("modex-len")
#define CPERF_SILENT ("silent") #define CPERF_SILENT ("silent")
#define CPERF_ENABLE_SDAP ("enable-sdap")
#define CPERF_POOL_SIZE ("pool-sz") #define CPERF_POOL_SIZE ("pool-sz")
#define CPERF_TOTAL_OPS ("total-ops") #define CPERF_TOTAL_OPS ("total-ops")
@ -129,6 +130,7 @@ struct cperf_options {
#ifdef RTE_LIB_SECURITY #ifdef RTE_LIB_SECURITY
uint16_t pdcp_sn_sz; uint16_t pdcp_sn_sz;
uint16_t pdcp_ses_hfn_en; uint16_t pdcp_ses_hfn_en;
uint16_t pdcp_sdap;
enum rte_security_pdcp_domain pdcp_domain; enum rte_security_pdcp_domain pdcp_domain;
uint16_t docsis_hdr_sz; uint16_t docsis_hdr_sz;
#endif #endif

View File

@ -64,6 +64,7 @@ usage(char *progname)
" --pdcp-sn-sz N: set PDCP SN size N <5/7/12/15/18>\n" " --pdcp-sn-sz N: set PDCP SN size N <5/7/12/15/18>\n"
" --pdcp-domain DOMAIN: set PDCP domain <control/user>\n" " --pdcp-domain DOMAIN: set PDCP domain <control/user>\n"
" --pdcp-ses-hfn-en: enable session based fixed HFN\n" " --pdcp-ses-hfn-en: enable session based fixed HFN\n"
" --enable-sdap: enable sdap\n"
" --docsis-hdr-sz: set DOCSIS header size\n" " --docsis-hdr-sz: set DOCSIS header size\n"
#endif #endif
" -h: prints this help\n", " -h: prints this help\n",
@ -548,6 +549,15 @@ parse_silent(struct cperf_options *opts,
return 0; return 0;
} }
static int
parse_enable_sdap(struct cperf_options *opts,
const char *arg __rte_unused)
{
opts->pdcp_sdap = 1;
return 0;
}
static int static int
parse_cipher_algo(struct cperf_options *opts, const char *arg) 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_SN_SZ, required_argument, 0, 0 },
{ CPERF_PDCP_DOMAIN, required_argument, 0, 0 }, { CPERF_PDCP_DOMAIN, required_argument, 0, 0 },
{ CPERF_PDCP_SES_HFN_EN, no_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 }, { CPERF_DOCSIS_HDR_SZ, required_argument, 0, 0 },
#endif #endif
{ CPERF_CSV, no_argument, 0, 0}, { CPERF_CSV, no_argument, 0, 0},
@ -951,6 +962,7 @@ cperf_options_default(struct cperf_options *opts)
opts->pdcp_sn_sz = 12; opts->pdcp_sn_sz = 12;
opts->pdcp_domain = RTE_SECURITY_PDCP_MODE_CONTROL; opts->pdcp_domain = RTE_SECURITY_PDCP_MODE_CONTROL;
opts->pdcp_ses_hfn_en = 0; opts->pdcp_ses_hfn_en = 0;
opts->pdcp_sdap = 0;
opts->docsis_hdr_sz = 17; opts->docsis_hdr_sz = 17;
#endif #endif
opts->modex_data = (struct cperf_modex_test_data *)&modex_perf_data[0]; 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_SN_SZ, parse_pdcp_sn_sz },
{ CPERF_PDCP_DOMAIN, parse_pdcp_domain }, { CPERF_PDCP_DOMAIN, parse_pdcp_domain },
{ CPERF_PDCP_SES_HFN_EN, parse_pdcp_ses_hfn_en }, { CPERF_PDCP_SES_HFN_EN, parse_pdcp_ses_hfn_en },
{ CPERF_ENABLE_SDAP, parse_enable_sdap },
{ CPERF_DOCSIS_HDR_SZ, parse_docsis_hdr_sz }, { CPERF_DOCSIS_HDR_SZ, parse_docsis_hdr_sz },
#endif #endif
{ CPERF_CSV, parse_csv_friendly}, { CPERF_CSV, parse_csv_friendly},

View File

@ -332,6 +332,10 @@ The following are the application command-line options:
Enable fixed session based HFN instead of per packet HFN. Enable fixed session based HFN instead of per packet HFN.
* ``--enable-sdap``
Enable Service Data Adaptation Protocol.
* ``--modex-len <n>`` * ``--modex-len <n>``
Set modex length for asymmetric crypto perf test. Set modex length for asymmetric crypto perf test.