>-----Original Message----- >From: De Lara Guarch, Pablo >Sent: Monday, January 9, 2017 3:51 PM >To: Mrozowicz, SlawomirX <slawomirx.mrozow...@intel.com>; >dev@dpdk.org >Cc: Mrozowicz, SlawomirX <slawomirx.mrozow...@intel.com>; Doherty, >Declan <declan.dohe...@intel.com>; Azarewicz, PiotrX T ><piotrx.t.azarew...@intel.com>; Kerlin, Marcin <marcin.ker...@intel.com>; >Kobylinski, MichalX <michalx.kobylin...@intel.com> >Subject: RE: [dpdk-dev] [PATCH v2 3/3] app/crypto-perf: introduce new >performance test application > > > >> -----Original Message----- >> From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Slawomir >> Mrozowicz >> Sent: Thursday, January 05, 2017 4:50 PM >> To: dev@dpdk.org >> Cc: Mrozowicz, SlawomirX; Doherty, Declan; Azarewicz, PiotrX T; >> Kerlin, Marcin; Kobylinski, MichalX >> Subject: [dpdk-dev] [PATCH v2 3/3] app/crypto-perf: introduce new >> performance test application >> >> This patchset introduce new application which allows measuring >> performance parameters of PMDs available in crypto tree. The goal of >> this application is to replace existing performance tests in app/test. >> Parameters available are: throughput (--ptest throughput) and latency >> (--ptest latency). User can use multiply cores to run tests on but >> only one type of crypto PMD can be measured during single application >> execution. Cipher parameters, type of device, type of operation and >> chain mode have to be specified in the command line as application >> parameters. These parameters are checked using device capabilities >> structure. >> Couple of new library functions in librte_cryptodev are introduced for >> application use. >> To build the application a CONFIG_RTE_APP_CRYPTO_PERF flag has to be >> set (it is set by default). >> Example of usage: -c 0xc0 --vdev crypto_aesni_mb_pmd -w 0000:00:00.0 >> -- --ptest throughput --devtype crypto_aesni_mb --optype >> cipher-then-auth --cipher-algo aes-cbc --cipher-op encrypt >> --cipher-key-sz 16 --auth-algo sha1-hmac --auth-op generate >> --auth-key-sz 64 --auth-digest-sz 12 --total-ops 10000000 --burst-sz >> 32 --buffer-sz 64 >> >> Signed-off-by: Declan Doherty <declan.dohe...@intel.com> >> Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozow...@intel.com> >> Signed-off-by: Piotr Azarewicz <piotrx.t.azarew...@intel.com> >> Signed-off-by: Marcin Kerlin <marcinx.ker...@intel.com> >> Signed-off-by: Michal Kobylinski <michalx.kobylin...@intel.com> >> --- >> MAINTAINERS | 4 + >> app/Makefile | 1 + >> app/crypto-perf/Makefile | 51 ++ >> app/crypto-perf/cperf.h | 58 ++ >> app/crypto-perf/cperf_ops.c | 474 +++++++++++++++ >> app/crypto-perf/cperf_ops.h | 66 +++ >> app/crypto-perf/cperf_options.h | 104 ++++ >> app/crypto-perf/cperf_options_parsing.c | 875 >> ++++++++++++++++++++++++++++ >> app/crypto-perf/cperf_test_latency.c | 685 >> ++++++++++++++++++++++ >> app/crypto-perf/cperf_test_latency.h | 57 ++ >> app/crypto-perf/cperf_test_throughput.c | 651 >> +++++++++++++++++++++ >> app/crypto-perf/cperf_test_throughput.h | 58 ++ >> app/crypto-perf/cperf_test_vector_parsing.c | 500 ++++++++++++++++ >> app/crypto-perf/cperf_test_vector_parsing.h | 73 +++ >> app/crypto-perf/cperf_test_vectors.c | 476 +++++++++++++++ >> app/crypto-perf/cperf_test_vectors.h | 98 ++++ >> app/crypto-perf/cperf_verify_parser.c | 314 ++++++++++ >> app/crypto-perf/data/aes_cbc_128_sha.data | 503 ++++++++++++++++ >> app/crypto-perf/data/aes_cbc_192_sha.data | 504 ++++++++++++++++ >> app/crypto-perf/data/aes_cbc_256_sha.data | 504 ++++++++++++++++ >> app/crypto-perf/main.c | 411 +++++++++++++ >> config/common_base | 6 + >> doc/guides/rel_notes/release_17_02.rst | 5 + >> doc/guides/tools/cryptoperf.rst | 397 +++++++++++++ >> doc/guides/tools/index.rst | 1 + >> 25 files changed, 6876 insertions(+) > >... > >> diff --git a/app/crypto-perf/cperf_options_parsing.c b/app/crypto- >> perf/cperf_options_parsing.c > >... > >> +int >> +cperf_options_check(struct cperf_options *options) { >> + if (options->segments_nb > options->buffer_sz) { >> + RTE_LOG(ERR, USER1, >> + "Segments number greater than buffer >> size.\n"); >> + return -EINVAL; >> + } > >... > >> + } else if (options->op_type == CPERF_AEAD) { >> + if (!(options->cipher_op == >> RTE_CRYPTO_CIPHER_OP_ENCRYPT && >> + options->auth_op == >> + RTE_CRYPTO_AUTH_OP_GENERATE) || > >This logic is incorrect. This OR should be an AND.
[Sławomir] Sure. You are right. I am changing it. > >> + !(options->cipher_op == >> + RTE_CRYPTO_CIPHER_OP_DECRYPT && >> + options->auth_op == >> + RTE_CRYPTO_AUTH_OP_VERIFY)) { >> + RTE_LOG(ERR, USER1, "Use together options: >> encrypt and" >> + " generate or decrypt and verify.\n"); >> + return -EINVAL; >> + } >> + } >> + >> + return 0; >> +} >