X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fguides%2Ftools%2Fcryptoperf.rst;h=7e1267708843e70f36ce700b138c985bd8d207fe;hb=c7aa67f5a9e4a59a816a6506aa87cfb133981315;hp=6832312d6af5d7b615d41cb88c9be6f6a50e57ba;hpb=c6baca7adc94a204e4587761b3891916a4882fed;p=dpdk.git diff --git a/doc/guides/tools/cryptoperf.rst b/doc/guides/tools/cryptoperf.rst index 6832312d6a..7e12677088 100644 --- a/doc/guides/tools/cryptoperf.rst +++ b/doc/guides/tools/cryptoperf.rst @@ -41,6 +41,22 @@ chain mode have to be specified in the command line as application parameters. These parameters are checked using device capabilities structure. +Limitations +----------- +On hardware devices the cycle-count doesn't always represent the actual offload +cost. The cycle-count only represents the offload cost when the hardware +accelerator is not fully loaded, when loaded the cpu cycles freed up by the +offload are still consumed by the test tool and included in the cycle-count. +These cycles are consumed by retries and inefficient API calls enqueuing and +dequeuing smaller bursts than specified by the cmdline parameter. This results +in a larger cycle-count measurement and should not be interpreted as an offload +cost measurement. Using "pmd-cyclecount" mode will give a better idea of +actual costs of hardware acceleration. + +On hardware devices the throughput measurement is not necessarily the maximum +possible for the device, e.g. it may be necessary to use multiple cores to keep +the hardware accelerator fully loaded and so measure maximum throughput. + Compiling the Application ------------------------- @@ -94,9 +110,10 @@ The following are the EAL command-line options that can be used in conjunction with the ``dpdk-test-crypto-perf`` applcation. See the DPDK Getting Started Guides for more information on these options. -* ``-c `` +* ``-c `` or ``-l `` - Set the hexadecimal bitmask of the cores to run on. + Set the hexadecimal bitmask of the cores to run on. The corelist is a + list cores to use. * ``-w `` @@ -117,6 +134,8 @@ The following are the appication command-line options: throughput latency + verify + pmd-cyclecount * ``--silent`` @@ -134,13 +153,30 @@ The following are the appication command-line options: Set the number of packets per burst. + This can be set as: + * Single value (i.e. ``--burst-sz 16``) + * Range of values, using the following structure ``min:inc:max``, + where ``min`` is minimum size, ``inc`` is the increment size and ``max`` + is the maximum size (i.e. ``--burst-sz 16:2:32``) + * List of values, up to 32 values, separated in commas (i.e. ``--burst-sz 16,24,32``) + * ``--buffer-sz `` Set the size of single packet (plaintext or ciphertext in it). -* ``--segments-nb `` + This can be set as: + * Single value (i.e. ``--buffer-sz 16``) + * Range of values, using the following structure ``min:inc:max``, + where ``min`` is minimum size, ``inc`` is the increment size and ``max`` + is the maximum size (i.e. ``--buffer-sz 16:2:32``) + * List of values, up to 32 values, separated in commas (i.e. ``--buffer-sz 32,64,128``) + + +* ``--segment-sz `` - Set the number of segments per packet. + Set the size of the segment to use, for Scatter Gather List testing. + By default, it is set to the size of the maximum buffer size, including the digest size, + so a single segment is created. * ``--devtype `` @@ -154,6 +190,11 @@ The following are the appication command-line options: crypto_snow3g crypto_kasumi crypto_zuc + crypto_dpaa_sec + crypto_dpaa2_sec + crypto_armv8 + crypto_scheduler + crypto_mrvl * ``--optype `` @@ -165,6 +206,8 @@ The following are the appication command-line options: auth-then-cipher aead + For GCM/CCM algorithms you should use aead flag. + * ``--sessionless`` Enable session-less crypto operations mode. @@ -173,11 +216,6 @@ The following are the appication command-line options: Enable out-of-place crypto operations mode. -* ``--verify`` - - Enable verify that all crypto operations were successful. - The verification is done after the performance test. - * ``--test-file `` Set test vector file path. See the Test Vector File chapter. @@ -194,10 +232,8 @@ The following are the appication command-line options: 3des-ecb 3des-ctr aes-cbc - aes-ccm aes-ctr aes-ecb - aes-gcm aes-f8 aes-xts arc4 @@ -228,9 +264,7 @@ The following are the appication command-line options: 3des-cbc aes-cbc-mac - aes-ccm aes-cmac - aes-gcm aes-gmac aes-xcbc-mac md5 @@ -261,13 +295,51 @@ The following are the appication command-line options: Set the size of authentication key. -* ``--auth-digest-sz `` +* ``--auth-iv-sz `` + + Set the size of auth iv. + +* ``--aead-algo `` + + Set AEAD algorithm name, where ``name`` is one + of the following:: + + aes-ccm + aes-gcm + +* ``--aead-op `` + + Set AEAD operation mode, where ``mode`` is one of + the following:: + + encrypt + decrypt + +* ``--aead-key-sz `` + + Set the size of AEAD key. - Set the size of authentication digest. +* ``--aead-iv-sz `` -* ``--auth-aad-sz `` + Set the size of AEAD iv. - Set the size of authentication aad. +* ``--aead-aad-sz `` + + Set the size of AEAD aad. + +* ``--digest-sz `` + + Set the size of digest. + +* ``--desc-nb `` + + Set number of descriptors for each crypto device. + +* ``--pmd-cyclecount-delay-ms `` + + Add a delay (in milliseconds) between enqueue and dequeue in + pmd-cyclecount benchmarking mode (useful when benchmarking + hardware acceleration). * ``--csv-friendly`` @@ -279,9 +351,9 @@ Test Vector File The test vector file is a text file contain information about test vectors. The file is made of the sections. The first section doesn't have header. It contain global information used in each test variant vectors - -typicaly information about plaintext, ciphertext, cipher key, aut key, +typically information about plaintext, ciphertext, cipher key, aut key, initial vector. All other sections begin header. -The sections contain particular information typicaly digest. +The sections contain particular information typically digest. **Format of the file:** @@ -316,9 +388,13 @@ a string of bytes in C byte array format:: Key used in auth operation. -* ``iv`` +* ``cipher_iv`` + + Cipher Initial Vector. + +* ``auth_iv`` - Initial vector. + Auth Initial Vector. * ``aad`` @@ -333,34 +409,33 @@ Examples Call application for performance throughput test of single Aesni MB PMD for cipher encryption aes-cbc and auth generation sha1-hmac, -one milion operations, burst size 32, packet size 64:: +one million operations, burst size 32, packet size 64:: - dpdk-test-crypto-perf -c 0xc0 --vdev crypto_aesni_mb_pmd -w 0000:00:00.0 -- + dpdk-test-crypto-perf -l 6-7 --vdev crypto_aesni_mb -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 + sha1-hmac --auth-op generate --auth-key-sz 64 --digest-sz 12 --total-ops 10000000 --burst-sz 32 --buffer-sz 64 Call application for performance latency test of two Aesni MB PMD executed on two cores for cipher encryption aes-cbc, ten operations in silent mode:: - dpdk-test-crypto-perf -c 0xf0 --vdev crypto_aesni_mb_pmd1 - --vdev crypto_aesni_mb_pmd2 -w 0000:00:00.0 -- --devtype crypto_aesni_mb + dpdk-test-crypto-perf -l 4-7 --vdev crypto_aesni_mb1 + --vdev crypto_aesni_mb2 -w 0000:00:00.0 -- --devtype crypto_aesni_mb --cipher-algo aes-cbc --cipher-key-sz 16 --cipher-iv-sz 16 --cipher-op encrypt --optype cipher-only --silent --ptest latency --total-ops 10 -Call application for performance latency test of single open ssl PMD +Call application for verification test of single open ssl PMD for cipher encryption aes-gcm and auth generation aes-gcm,ten operations in silent mode, test vector provide in file "test_aes_gcm.data" with packet verification:: - dpdk-test-crypto-perf -c 0xf0 --vdev crypto_openssl -w 0000:00:00.0 -- - --devtype crypto_openssl --cipher-algo aes-gcm --cipher-key-sz 16 - --cipher-iv-sz 16 --cipher-op encrypt --auth-algo aes-gcm --auth-key-sz 16 - --auth-digest-sz 16 --auth-aad-sz 16 --auth-op generate --optype aead - --silent --ptest latency --total-ops 10 - --test-file test_aes_gcm.data --verify + dpdk-test-crypto-perf -l 4-7 --vdev crypto_openssl -w 0000:00:00.0 -- + --devtype crypto_openssl --aead-algo aes-gcm --aead-key-sz 16 + --aead-iv-sz 16 --aead-op encrypt --aead-aad-sz 16 --digest-sz 16 + --optype aead --silent --ptest verify --total-ops 10 + --test-file test_aes_gcm.data Test vector file for cipher algorithm aes cbc 256 with authorization sha:: @@ -383,7 +458,7 @@ Test vector file for cipher algorithm aes cbc 256 with authorization sha:: 0xf5, 0x0c, 0xe7, 0xa2, 0xa6, 0x23, 0xd5, 0x3d, 0x95, 0xd8, 0xcd, 0x86, 0x79, 0xf5, 0x01, 0x47, 0x4f, 0xf9, 0x1d, 0x9d, 0x36, 0xf7, 0x68, 0x1a, 0x64, 0x44, 0x58, 0x5d, 0xe5, 0x81, 0x15, 0x2a, 0x41, 0xe4, 0x0e, 0xaa, 0x1f, 0x04, 0x21, 0xff, 0x2c, 0xf3, 0x73, 0x2b, 0x48, 0x1e, 0xd2, 0xf7 - iv = + cipher_iv = 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F # Section sha 1 hmac buff 32 [sha1_hmac_buff_32]