test mbuf attach
[dpdk.git] / app / test-crypto-perf / cperf_options.h
index 24699ed..256fabb 100644 (file)
@@ -1,8 +1,15 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2018 Intel Corporation
+ */
 
 #ifndef _CPERF_OPTIONS_
 #define _CPERF_OPTIONS_
 
 #include <rte_crypto.h>
+#include <rte_cryptodev.h>
+#ifdef RTE_LIBRTE_SECURITY
+#include <rte_security.h>
+#endif
 
 #define CPERF_PTEST_TYPE       ("ptest")
 #define CPERF_SILENT           ("silent")
@@ -11,7 +18,9 @@
 #define CPERF_TOTAL_OPS                ("total-ops")
 #define CPERF_BURST_SIZE       ("burst-sz")
 #define CPERF_BUFFER_SIZE      ("buffer-sz")
-#define CPERF_SEGMENTS_NB      ("segments-nb")
+#define CPERF_SEGMENT_SIZE     ("segment-sz")
+#define CPERF_DESC_NB          ("desc-nb")
+#define CPERF_IMIX             ("imix")
 
 #define CPERF_DEVTYPE          ("devtype")
 #define CPERF_OPTYPE           ("optype")
 #define CPERF_AUTH_ALGO                ("auth-algo")
 #define CPERF_AUTH_OP          ("auth-op")
 #define CPERF_AUTH_KEY_SZ      ("auth-key-sz")
-#define CPERF_AUTH_DIGEST_SZ   ("auth-digest-sz")
-#define CPERF_AUTH_AAD_SZ      ("auth-aad-sz")
+#define CPERF_AUTH_IV_SZ       ("auth-iv-sz")
+
+#define CPERF_AEAD_ALGO                ("aead-algo")
+#define CPERF_AEAD_OP          ("aead-op")
+#define CPERF_AEAD_KEY_SZ      ("aead-key-sz")
+#define CPERF_AEAD_IV_SZ       ("aead-iv-sz")
+#define CPERF_AEAD_AAD_SZ      ("aead-aad-sz")
+
+#define CPERF_DIGEST_SZ                ("digest-sz")
+
+#ifdef RTE_LIBRTE_SECURITY
+#define CPERF_PDCP_SN_SZ       ("pdcp-sn-sz")
+#define CPERF_PDCP_DOMAIN      ("pdcp-domain")
+#define CPERF_PDCP_SES_HFN_EN  ("pdcp-ses-hfn-en")
+#define PDCP_DEFAULT_HFN       0x1
+#define CPERF_DOCSIS_HDR_SZ    ("docsis-hdr-sz")
+#endif
+
 #define CPERF_CSV              ("csv-friendly")
 
+/* benchmark-specific options */
+#define CPERF_PMDCC_DELAY_MS   ("pmd-cyclecount-delay-ms")
+
 #define MAX_LIST 32
 
 enum cperf_perf_test_type {
        CPERF_TEST_TYPE_THROUGHPUT,
        CPERF_TEST_TYPE_LATENCY,
-       CPERF_TEST_TYPE_VERIFY
+       CPERF_TEST_TYPE_VERIFY,
+       CPERF_TEST_TYPE_PMDCC
 };
 
 
@@ -48,7 +77,9 @@ enum cperf_op_type {
        CPERF_AUTH_ONLY,
        CPERF_CIPHER_THEN_AUTH,
        CPERF_AUTH_THEN_CIPHER,
-       CPERF_AEAD
+       CPERF_AEAD,
+       CPERF_PDCP,
+       CPERF_DOCSIS
 };
 
 extern const char *cperf_op_type_strs[];
@@ -58,20 +89,19 @@ struct cperf_options {
 
        uint32_t pool_sz;
        uint32_t total_ops;
+       uint32_t headroom_sz;
+       uint32_t tailroom_sz;
+       uint32_t segment_sz;
        uint32_t test_buffer_size;
-       uint32_t segments_nb;
-
-       char device_type[RTE_CRYPTODEV_NAME_LEN];
-       enum cperf_op_type op_type;
+       uint32_t *imix_buffer_sizes;
+       uint32_t nb_descriptors;
+       uint16_t nb_qps;
 
        uint32_t sessionless:1;
        uint32_t out_of_place:1;
        uint32_t silent:1;
        uint32_t csv:1;
 
-       char *test_file;
-       char *test_name;
-
        enum rte_crypto_cipher_algorithm cipher_algo;
        enum rte_crypto_cipher_operation cipher_op;
 
@@ -82,8 +112,28 @@ struct cperf_options {
        enum rte_crypto_auth_operation auth_op;
 
        uint16_t auth_key_sz;
-       uint16_t auth_digest_sz;
-       uint16_t auth_aad_sz;
+       uint16_t auth_iv_sz;
+
+       enum rte_crypto_aead_algorithm aead_algo;
+       enum rte_crypto_aead_operation aead_op;
+
+       uint16_t aead_key_sz;
+       uint16_t aead_iv_sz;
+       uint16_t aead_aad_sz;
+
+       uint16_t digest_sz;
+
+#ifdef RTE_LIBRTE_SECURITY
+       uint16_t pdcp_sn_sz;
+       uint16_t pdcp_ses_hfn_en;
+       enum rte_security_pdcp_domain pdcp_domain;
+       uint16_t docsis_hdr_sz;
+#endif
+       char device_type[RTE_CRYPTODEV_NAME_MAX_LEN];
+       enum cperf_op_type op_type;
+
+       char *test_file;
+       char *test_name;
 
        uint32_t buffer_size_list[MAX_LIST];
        uint8_t buffer_size_count;
@@ -97,6 +147,10 @@ struct cperf_options {
        uint32_t min_burst_size;
        uint32_t inc_burst_size;
 
+       /* pmd-cyclecount specific options */
+       uint32_t pmdcc_delay;
+       uint32_t imix_distribution_list[MAX_LIST];
+       uint8_t imix_distribution_count;
 };
 
 void