[2/8] app/test-crypto-perf: support SDAP for PDCP operations
Checks
Commit Message
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>
---
app/test-crypto-perf/cperf_ops.c | 1 +
app/test-crypto-perf/cperf_options.h | 2 ++
app/test-crypto-perf/cperf_options_parsing.c | 12 ++++++++++++
3 files changed, 15 insertions(+)
Comments
> 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>
> ---
> app/test-crypto-perf/cperf_ops.c | 1 +
> app/test-crypto-perf/cperf_options.h | 2 ++
> app/test-crypto-perf/cperf_options_parsing.c | 12 ++++++++++++
> 3 files changed, 15 insertions(+)
Missing documentation update for the new option added.
>
> diff --git a/app/test-crypto-perf/cperf_ops.c b/app/test-crypto-perf/cperf_ops.c
> index 8baee12e45..67a7a0ac4f 100644
> --- a/app/test-crypto-perf/cperf_ops.c
> +++ b/app/test-crypto-perf/cperf_ops.c
> @@ -860,6 +860,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 031b238b20..fffa6a2162 100644
> --- a/app/test-crypto-perf/cperf_options.h
> +++ b/app/test-crypto-perf/cperf_options.h
> @@ -13,6 +13,7 @@
>
> #define CPERF_PTEST_TYPE ("ptest")
> #define CPERF_SILENT ("silent")
> +#define CPERF_ENABLE_SDAP ("enable-sdap")
>
> #define CPERF_POOL_SIZE ("pool-sz")
> #define CPERF_TOTAL_OPS ("total-ops")
> @@ -128,6 +129,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 59a9dc596a..48cd1b5ba2 100644
> --- a/app/test-crypto-perf/cperf_options_parsing.c
> +++ b/app/test-crypto-perf/cperf_options_parsing.c
> @@ -61,6 +61,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 <control/user>\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",
> @@ -535,6 +536,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)
> {
> @@ -865,6 +875,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},
> @@ -978,6 +989,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 },
Follow similar formatting as other options.
> { CPERF_DOCSIS_HDR_SZ, parse_docsis_hdr_sz },
> #endif
> { CPERF_CSV, parse_csv_friendly},
> --
> 2.25.1
@@ -860,6 +860,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
@@ -13,6 +13,7 @@
#define CPERF_PTEST_TYPE ("ptest")
#define CPERF_SILENT ("silent")
+#define CPERF_ENABLE_SDAP ("enable-sdap")
#define CPERF_POOL_SIZE ("pool-sz")
#define CPERF_TOTAL_OPS ("total-ops")
@@ -128,6 +129,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
@@ -61,6 +61,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 <control/user>\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",
@@ -535,6 +536,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)
{
@@ -865,6 +875,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},
@@ -978,6 +989,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},