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.si...@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 ++++++++++++
 doc/guides/tools/cryptoperf.rst              |  4 ++++
 4 files changed, 19 insertions(+)

diff --git a/app/test-crypto-perf/cperf_ops.c b/app/test-crypto-perf/cperf_ops.c
index cbefce8d6c..4295656a0b 100644
--- a/app/test-crypto-perf/cperf_ops.c
+++ b/app/test-crypto-perf/cperf_ops.c
@@ -861,6 +861,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 09c98121c8..28680347f1 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 <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",
@@ -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},
@@ -994,6 +1005,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 <n>``
 
         Set modex length for asymmetric crypto perf test.
-- 
2.25.1

Reply via email to