New upstream version 18.02
[deb_dpdk.git] / app / test-crypto-perf / cperf_options.h
index b928c58..54a3ad5 100644 (file)
@@ -3,6 +3,7 @@
 #define _CPERF_OPTIONS_
 
 #include <rte_crypto.h>
+#include <rte_cryptodev.h>
 
 #define CPERF_PTEST_TYPE       ("ptest")
 #define CPERF_SILENT           ("silent")
@@ -11,7 +12,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")
+
 #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
 };
 
 
@@ -58,8 +73,11 @@ struct cperf_options {
 
        uint32_t pool_sz;
        uint32_t total_ops;
-       uint32_t segments_nb;
+       uint32_t segment_sz;
        uint32_t test_buffer_size;
+       uint32_t *imix_buffer_sizes;
+       uint32_t nb_descriptors;
+       uint16_t nb_qps;
 
        uint32_t sessionless:1;
        uint32_t out_of_place:1;
@@ -76,10 +94,18 @@ 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;
 
-       char device_type[RTE_CRYPTODEV_NAME_LEN];
+       char device_type[RTE_CRYPTODEV_NAME_MAX_LEN];
        enum cperf_op_type op_type;
 
        char *test_file;
@@ -97,6 +123,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