From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id C4A321B480 for ; Fri, 15 Feb 2019 07:24:34 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Feb 2019 22:24:34 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,371,1544515200"; d="scan'208";a="116402017" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga006.jf.intel.com with ESMTP; 14 Feb 2019 22:24:33 -0800 Received: from fmsmsx123.amr.corp.intel.com (10.18.125.38) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 14 Feb 2019 22:24:33 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx123.amr.corp.intel.com (10.18.125.38) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 14 Feb 2019 22:24:32 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.102]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.172]) with mapi id 14.03.0415.000; Fri, 15 Feb 2019 14:24:30 +0800 From: "Chen, Zhaoyan" To: "Zhao, XinfengX" , "dts@dpdk.org" CC: "Zhao, XinfengX" , "Chen, Zhaoyan" Thread-Topic: [dts] [PATCH V2] test_plans: add test plan for cryptodev performance test Thread-Index: AQHUufnUvHhQWutSKUyi9reu9ue086Xgej2g Date: Fri, 15 Feb 2019 06:24:29 +0000 Message-ID: <9DEEADBC57E43F4DA73B571777FECECA41C38BDC@SHSMSX104.ccr.corp.intel.com> References: <1549003742-48668-1-git-send-email-xinfengx.zhao@intel.com> In-Reply-To: <1549003742-48668-1-git-send-email-xinfengx.zhao@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dts] [PATCH V2] test_plans: add test plan for cryptodev performance test X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Feb 2019 06:24:35 -0000 Acked-by: Zhaoyan Chen Regards, Zhaoyan Chen > -----Original Message----- > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Xinfeng Zhao > Sent: Friday, February 1, 2019 2:49 PM > To: dts@dpdk.org > Cc: Zhao, XinfengX > Subject: [dts] [PATCH V2] test_plans: add test plan for cryptodev perform= ance test >=20 > add test_plans/crypto_perf_cryptodev_perf_test_plan.rst >=20 > Signed-off-by: Xinfeng Zhao > --- > .../crypto_perf_cryptodev_perf_test_plan.rst | 327 +++++++++++++++= ++++ > test_plans/crypto_perf_test_plan.rst | 363 ---------------= ------ > 2 files changed, 327 insertions(+), 363 deletions(-) > create mode 100644 test_plans/crypto_perf_cryptodev_perf_test_plan.rst > delete mode 100644 test_plans/crypto_perf_test_plan.rst >=20 > diff --git a/test_plans/crypto_perf_cryptodev_perf_test_plan.rst > b/test_plans/crypto_perf_cryptodev_perf_test_plan.rst > new file mode 100644 > index 0000000..8f4c7c9 > --- /dev/null > +++ b/test_plans/crypto_perf_cryptodev_perf_test_plan.rst > @@ -0,0 +1,327 @@ > +.. Copyright (c) <2016-2017> Intel Corporation > + All rights reserved. > + > + Redistribution and use in source and binary forms, with or without > + modification, are permitted provided that the following conditions > + are met: > + > + - Redistributions of source code must retain the above copyright > + notice, this list of conditions and the following disclaimer. > + > + - Redistributions in binary form must reproduce the above copyright > + notice, this list of conditions and the following disclaimer in > + the documentation and/or other materials provided with the > + distribution. > + > + - Neither the name of Intel Corporation nor the names of its > + contributors may be used to endorse or promote products derived > + from this software without specific prior written permission. > + > + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS > + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS > + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE > + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, > + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES > + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR > + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > CONTRACT, > + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED > + OF THE POSSIBILITY OF SUCH DAMAGE. > + > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +Cryptodev Performance Application Tests > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > + > +Description > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +This document provides the test plan for testing Cryptodev performance b= y > +crypto perf application. The crypto perf application is a DPDK app under > +DPDK app folder. > + > +Crypto perf application supports most of Cryptodev PMDs (polling mode dr= iver) > +Intel QuickAssist Technology DH895xxC/DH_C62xx hardware accelerator (QAT > PMD), > +AESNI MB PMD, AESNI GCM PMD, KASUMI PMD, SNOW3G PMD or ZUC PMD. > + > +AESNI MB PMD algorithm table > +The table below contains AESNI MB algorithms which supported in crypto p= erf. > +Part of the algorithms are not supported currently. > + > ++-----------+-------------------+---------------------------------------= ---------------------------- > --------+ > +| Algorithm | Mode | Detail = | > ++-----------+-------------------+---------------------------------------= ---------------------------- > --------+ > +| aes | cbc | Encrypt/Decrypt;Key size: 128, 192, 25= 6 bits | > ++-----------+-------------------+---------------------------------------= ---------------------------- > --------+ > +| aes | ctr | Encrypt/Decrypt;Key size: 128, 192, 25= 6 bits | > ++-----------+-------------------+---------------------------------------= ---------------------------- > --------+ > +| sha | | sha1, sha2-224, sha2-384, sha2-256, sh= a2-512 | > ++-----------+-------------------+---------------------------------------= ---------------------------- > --------+ > +| hmac | | Support md5 and sha implementations sh= a1, sha2-224, sha2- > 256, | > +| | | = | > +| | | sha2-384, sha2-512 = | > +| | | = | > +| | | Key Size versus Block size support: Ke= y Size must be <=3D block size; > | > +| | | = | > +| | | Mac Len Supported sha1 10, 12, 16, 20 = bytes; | > +| | | = | > +| | | Mac Len Supported sha2-256 16, 24, 32 = bytes; | > +| | | = | > +| | | Mac Len Supported sha2-384 24,32, 40, = 48 bytes; | > +| | | = | > +| | | Mac Len Supported sha2-512 32, 40, 48,= 56, 64 bytes; | > ++-----------+-------------------+---------------------------------------= ---------------------------- > --------+ > + > +QAT algorithm table: > +The table below contains QAT Algorithms which supported in crypto perf. > +Part of the algorithms are not supported currently. > + > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +|Algorithm| Mode | Detail = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| aes | cbc | Encrypt/Decrypt;Key size: 128, 192, 256= bits | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| aes | ctr | Encrypt/Decrypt;Key size: 128, 192, 256= bits | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| 3des | cbc | Encrypt/Decrypt;Key size: 128, 192 bits= | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| 3des | ctr | Encrypt/Decrypt;Key size: 128, 192 bits= | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| sha | | sha1, sha2-224, sha2-256, sha2-384, sha= 2-512 | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| hmac | | Support md5 and sha implementations sha= 1, sha2-224, sha2- > 256, | > +| | | = | > +| | | sha2-384, sha2-512 = | > +| | | = | > +| | | Key Size versus Block size support: Key= Size must be <=3D block size; > | > +| | | = | > +| | | Mac Len Supported sha1 10, 12, 16, 20 b= ytes; | > +| | | = | > +| | | Mac Len Supported sha2-256 16, 24, 32 b= ytes; | > +| | | = | > +| | | Mac Len Supported sha2-384 24,32, 40, 4= 8 bytes; | > +| | | = | > +| | | Mac Len Supported sha2-512 32, 40, 48, = 56, 64 bytes; | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| aes | gcm | Key Sizes:128, 192, 256 bits; = | > +| | | = | > +| | | Associated Data Length: 0 ~ 240 bytes; = | > +| | | = | > +| | | Payload Length: 0 ~ (2^32 -1) bytes; = | > +| | | = | > +| | | IV source: external; = | > +| | | = | > +| | | IV Lengths: 96 bits; = | > +| | | = | > +| | | Tag Lengths: 8, 12, 16 bytes; = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| kasumi | f8 | Encrypt/Decrypt; Key size: 128 = | > ++ +-------------------+-----------------------------------------= -------------------------------- > --+ > +| | f9 | Generate/Verify; Key size: 128 = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| snow3g | uea2 | Encrypt/Decrypt; Key size: 128 = | > ++ +-------------------+-----------------------------------------= -------------------------------- > --+ > +| | uia2 | Generate/Verify; Key size: 128 = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > + > +AESNI_GCM algorithm table > +The table below contains AESNI GCM PMD algorithms which are supported in > crypto perf > + > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +|Algorithm| Mode | Detail = | > +| | = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| aes | gcm | Encrypt/Decrypt;Key Sizes:128, 256 bits= ; | > +| | | = | > +| | | IV source: external; = | > +| | | = | > +| | | IV Lengths: 96 bits; = | > +| | | = | > +| | | Generate/Verify;Key Sizes:128,192,256 b= its; | > +| | | = | > +| | | Associated Data Length: 0 ~ 240 bytes; = | > +| | | = | > +| | | Payload Length: 0 ~ (2^32 -1) bytes; = | > +| | | = | > +| | | Tag Lengths: 8, 12, 16 bytes; = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| aes | gmac | Generate/Verify;Key Sizes:128,192,256 b= its; | > +| | | = | > +| | | Associated Data Length: 0 ~ 240 bytes; = | > +| | | = | > +| | | Payload Length: 0 ~ (2^32 -1) bytes; = | > +| | | = | > +| | | Tag Lengths: 8, 12, 16 bytes; = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > + > +OPENSSL algorithm table > +The table below contains OPENSSL algorithms which are supported in crypt= o perf. > + > ++-----------+-------------------+---------------------------------------= ---------------------------- > --------+ > +| Algorithm | Mode | Detail = | > ++-----------+-------------------+---------------------------------------= ---------------------------- > --------+ > +| aes | cbc | Encrypt/Decrypt;Key size: 128, 192, 25= 6 bits | > ++-----------+-------------------+---------------------------------------= ---------------------------- > --------+ > +| aes | ctr | Encrypt/Decrypt;Key size: 128, 192, 25= 6 bits | > ++-----------+-------------------+---------------------------------------= ---------------------------- > --------+ > +| sha | | sha1, sha2-224, sha2-384, sha2-256, sh= a2-512 | > ++-----------+-------------------+---------------------------------------= ---------------------------- > --------+ > +| hmac | | Support md5 and sha implementations sh= a1, sha2-224, sha2- > 256, | > +| | | = | > +| | | sha2-384, sha2-512 = | > +| | | = | > +| | | Key Size versus Block size support: Ke= y Size must be <=3D block size; > | > +| | | = | > +| | | Mac Len Supported sha1 10, 12, 16, 20 = bytes; | > +| | | = | > +| | | Mac Len Supported sha2-256 16, 24, 32 = bytes; | > +| | | = | > +| | | Mac Len Supported sha2-384 24,32, 40, = 48 bytes; | > +| | | = | > +| | | Mac Len Supported sha2-512 32, 40, 48,= 56, 64 bytes; | > ++-----------+-------------------+---------------------------------------= ---------------------------- > --------+ > + > +NULL algorithm table > +The table below contains NULL algorithms which are supported in crypto p= erf. > +Part of the algorithms are not supported currently. > + > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +|Algorithm| Mode | Detail = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| null | null | Encrypt/Decrypt;Key Sizes:0 bits; = | > +| | | = | > +| | | IV Lengths: 0 bits; = | > +| | | = | > +| | | Generate/Verify;Key Sizes:0 bits; = | > +| | | = | > +| | | Associated Data Length: 1 bytes; = | > +| | | = | > +| | | Payload Length: 0 bytes; = | > +| | | = | > +| | | Tag Lengths: 0 bytes; = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > + > +KASUMI algorithm table > +The table below contains KASUMI algorithms which are supported in crypto= perf. > + > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +|Algorithm| Mode | Detail = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| kasumi | f8 | Encrypt/Decrypt;Key Sizes:128 bits; = | > +| | | = | > +| | | IV source: external; = | > +| | | = | > +| | | IV Lengths: 64 bits; = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| kasumi | f9 | Generate/Verify;Key Sizes:128 bits; = | > +| | | = | > +| | | Payload Length: 64 bytes; = | > +| | | = | > +| | | Tag Lengths: 4 bytes; = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > + > +SNOW3G algorithm table > +The table below contains SNOW3G algorithms which are supported in crypto= perf. > + > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +|Algorithm| Mode | Detail = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| snow3g | uea2 | Encrypt/Decrypt;Key Sizes:128 bits; = | > +| | | = | > +| | | IV source: external; = | > +| | | = | > +| | | IV Lengths: 128 bits; = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| snow3g | uia2 | Generate/Verify;Key Sizes:128 bits; = | > +| | | = | > +| | | Payload Length: 128 bytes; = | > +| | | = | > +| | | Tag Lengths: 4 bytes; = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > + > +ZUC algorithm table > +The table below contains ZUC algorithms which are supported in crypto pe= rf. > + > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +|Algorithm| Mode | Detail = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| zuc | eea3 | Encrypt/Decrypt;Key Sizes:128 bits; = | > +| | | = | > +| | | IV source: external; = | > +| | | = | > +| | | IV Lengths: 128 bits; = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > +| zuc | eia2 | Generate/Verify;Key Sizes:128 bits; = | > +| | | = | > +| | | Payload Length: 128 bytes; = | > +| | | = | > +| | | Tag Lengths: 4 bytes; = | > ++---------+-------------------+-----------------------------------------= ---------------------------- > ------+ > + > + > +Prerequisites > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +To test Cryptodev performance, an application > +test_crypto_perf is added into DPDK. > + > +The test commands of test_crypto_perf is below:: > + > + ./build/app/test-crypto-perf/dpdk-test-crypto-perf -c COREMASK > + --vdev (AESNI_MB|QAT|AESNI_GCM|OPENSSL|SNOW3G|KASUMI|ZUC|NULL) > + -w (PCI:DEVICE:FUNCTION) > + -- --ptest (throughput|latency) > + --devtype > (crypto_aesni_mb|crypto_qat|crypto_aes_gcm|crypto_openssl|crypto_snow3g|c= rypt > o_kasumi|crypto_zuc|crypto_null) > + --optype (aead|cipher-only|auth-only|cipher-then-auth|auth-then-ciph= er) > + --cipher-algo (ALGO) > + --cipher-op (encrypt|decrypt) > + --cipher-key-sz (key_size) > + --cipher-iv-sz (iv_size) > + --auth-algo (ALGO) > + --auth-op (generate|verify) > + --auth-key-sz (key_size) > + --auth-aad-sz (aad_size) > + --auth-digest-sz (digest_size) > + --total-ops (ops_number) > + --burst-sz (burst_size) > + --buffer-sz (buffer_size) > + > + > +Test case: Cryptodev performance test > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +common:: > + > + --vdev (AESNI_MB|QAT|AESNI_GCM|OPENSSL|SNOW3G|KASUMI|ZUC|NULL) this > value can be set as : crypto_aesni_mb_pmd, crypto_aes_gcm_pmd, > crypto_openssl_pmd, crypto_snow3g_pmd, crypto_kasumi_pmd, crypto_zuc_pmd = or > crypto_null_pmd . if pmd is QAT this parameter should not be set > + > + -w (PCI:DEVICE:FUNCTION) this value is the port whitelist or QAT dev= ice > whitelist . if vdev is set and devtype is not crypto_qat , the QAT devic= e whitelist is > not needed , but you also can set it on the cmd line. > + > + --optype (aead|cipher-only|auth-only|cipher-then-auth|auth-then-ciph= er): if > cipher-algo is aes-gcm or gmac this value must be set to aead . otherwise= it will be > set to others. please notice , null algorithm only support cipher-only te= st. > + > +other parameters please reference above table's parameter . > + > +QAT PMD Command line Eg:: > + > + ./build/app/test-crypto-perf/dpdk-test-crypto-perf --socket-mem 2048= ,0 -w > 0000:1a:01.0 -l 9,10 -n 6 -- --buffer-sz 64,128,256,512,1024,2048 --opty= pe cipher- > then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtyp= e > crypto_qat --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops= 30000000 - > -silent --digest-sz 20 --auth-algo sha1-hmac --cipher-algo aes-cbc --cip= her-op > encrypt > + > +AESNI_MB PMD Command line Eg:: > + > + ./build/app/test-crypto-perf/dpdk-test-crypto-perf --socket-mem 2048= ,0 --vdev > crypto_aesni_mb_pmd_1 -l 9,10 -n 6 -- --buffer-sz 64,128,256,512,1024,20= 48 -- > optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-= sz 16 -- > devtype crypto_aesni_mb --cipher-iv-sz 16 --auth-op generate --burst-sz 3= 2 --total- > ops 10000000 --silent --digest-sz 12 --auth-algo sha1-hmac --cipher-algo= aes-cbc -- > cipher-op encrypt > + > +AESNI_GCM PMD Command line Eg:: > + > + ./build/app/test-crypto-perf/dpdk-test-crypto-perf --socket-mem 2048= ,0 --vdev > crypto_aesni_gcm_pmd_1 -l 9,10 -n 6 -- --aead-key-sz 16 --buffer-sz > 64,128,256,512,1024,2048 --optype aead --ptest throughput --aead-aad-sz 1= 6 -- > devtype crypto_aesni_gcm --aead-op encrypt --burst-sz 32 --total-ops 1000= 0000 -- > silent --digest-sz 16 --aead-algo aes-gcm --aead-iv-sz 12 > + > +KASUMI PMD Command line Eg:: > + > + ./build/app/test-crypto-perf/dpdk-test-crypto-perf --socket-mem 2048= ,0 --vdev > crypto_kasumi_1 -l 9,10 -n 6 -- --buffer-sz 64,128,256,512,1024,2048 --o= ptype > cipher-then-auth --ptest throughput --auth-key-sz 16 --cipher-key-sz 16 -= -devtype > crypto_kasumi --cipher-iv-sz 8 --auth-op generate --burst-sz 32 --total-o= ps 100000 - > -silent --digest-sz 4 --auth-algo kasumi-f9 --cipher-algo kasumi-f8 --ci= pher-op > encrypt > + > +SNOW3G PMD Command line Eg:: > + > + ./build/app/test-crypto-perf/dpdk-test-crypto-perf --socket-mem 2048= ,0 --vdev > crypto_snow3g_1 -l 9,10 -n 6 -- --buffer-sz 64,128,256,512,1024,2048 --o= ptype > cipher-then-auth --ptest throughput --auth-key-sz 16 --cipher-key-sz 16 -= -devtype > crypto_snow3g --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-= ops > 100000 --silent --digest-sz 4 --auth-algo snow3g-uia2 --cipher-algo snow= 3g-uea2 -- > cipher-op encrypt --auth-iv-sz 16 > + > +ZUC PMD Command line Eg:: > + > + ./build/app/test-crypto-perf/dpdk-test-crypto-perf --socket-mem 2048= ,0 --vdev > crypto_zuc_1 -l 9,10 -n 6 -- --buffer-sz 64,128,256,512,1024,2048 --opty= pe cipher- > then-auth --ptest throughput --auth-key-sz 16 --cipher-key-sz 16 --devtyp= e > crypto_zuc --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops= 100000 -- > silent --digest-sz 4 --auth-algo zuc-eia3 --cipher-algo zuc-eea3 --ciphe= r-op encrypt -- > auth-iv-sz 16 > \ No newline at end of file > diff --git a/test_plans/crypto_perf_test_plan.rst > b/test_plans/crypto_perf_test_plan.rst > deleted file mode 100644 > index e187ed7..0000000 > --- a/test_plans/crypto_perf_test_plan.rst > +++ /dev/null > @@ -1,363 +0,0 @@ > -.. Copyright (c) <2016-2017> Intel Corporation > - All rights reserved. > - > - Redistribution and use in source and binary forms, with or without > - modification, are permitted provided that the following conditions > - are met: > - > - - Redistributions of source code must retain the above copyright > - notice, this list of conditions and the following disclaimer. > - > - - Redistributions in binary form must reproduce the above copyright > - notice, this list of conditions and the following disclaimer in > - the documentation and/or other materials provided with the > - distribution. > - > - - Neither the name of Intel Corporation nor the names of its > - contributors may be used to endorse or promote products derived > - from this software without specific prior written permission. > - > - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS > - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS > - FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE > - COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, > - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES > - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR > - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > CONTRACT, > - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED > - OF THE POSSIBILITY OF SUCH DAMAGE. > - > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > -Cryptodev Performance Application Tests > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > - > - > -Description > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > - > -This document provides the test plan for testing Cryptodev performance b= y > -crypto perf application. The crypto perf application is a DPDK app under > -DPDK app folder. > - > -Crypto perf application supports most of Cryptodev PMDs (polling mode dr= iver) > -Intel QuickAssist Technology DH895xxC/DH_C62xx hardware > -accelerator (QAT PMD), AESNI MB PMD, AESNI GCM PMD, NULL PMD, KASUMI PMD= , > -SNOW3G PMD,ZUC PMD or OPENSSL library PMD. > - > -AESNI MB PMD algorithm table > -The table below contains AESNI MB algorithms which supported in crypto p= erf. > -Part of the algorithms are not supported currently. > - > -+-----------+-------------------+---------------------------------------= ----------------------------- > -------+ > -| Algorithm | Mode | Detail = | > -+-----------+-------------------+---------------------------------------= ----------------------------- > -------+ > -| aes | cbc | Encrypt/Decrypt;Key size: 128, 192, 25= 6 bits | > -+-----------+-------------------+---------------------------------------= ----------------------------- > -------+ > -| aes | ctr | Encrypt/Decrypt;Key size: 128, 192, 25= 6 bits | > -+-----------+-------------------+---------------------------------------= ----------------------------- > -------+ > -| md | | md5 = | > -+-----------+-------------------+---------------------------------------= ----------------------------- > -------+ > -| sha | | sha1, sha2-224, sha2-384, sha2-256, sh= a2-512 | > -+-----------+-------------------+---------------------------------------= ----------------------------- > -------+ > -| hmac | | Support md5 and sha implementations sh= a1, sha2-224, sha2- > 256, | > -| | | = | > -| | | sha2-384, sha2-512 = | > -| | | = | > -| | | Key Size versus Block size support: Ke= y Size must be <=3D block size; > | > -| | | = | > -| | | Mac Len Supported sha1 10, 12, 16, 20 = bytes; | > -| | | = | > -| | | Mac Len Supported sha2-256 16, 24, 32 = bytes; | > -| | | = | > -| | | Mac Len Supported sha2-384 24,32, 40, = 48 bytes; | > -| | | = | > -| | | Mac Len Supported sha2-512 32, 40, 48,= 56, 64 bytes; | > -+-----------+-------------------+---------------------------------------= ----------------------------- > -------+ > - > -QAT algorithm table: > -The table below contains QAT Algorithms which supported in crypto perf. > -Part of the algorithms are not supported currently. > - > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -|Algorithm| Mode | Detail = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| aes | cbc | Encrypt/Decrypt;Key size: 128, 192, 256= bits | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| aes | ctr | Encrypt/Decrypt;Key size: 128, 192, 256= bits | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| 3des | cbc | Encrypt/Decrypt;Key size: 128, 192 bits= | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| 3des | ctr | Encrypt/Decrypt;Key size: 128, 192 bits= | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| md | | md5 = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| sha | | sha1, sha2-224, sha2-256, sha2-384, sha= 2-512 | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| hmac | | Support md5 and sha implementations sha= 1, sha2-224, sha2- > 256, | > -| | | = | > -| | | sha2-384, sha2-512 = | > -| | | = | > -| | | Key Size versus Block size support: Key= Size must be <=3D block size; > | > -| | | = | > -| | | Mac Len Supported sha1 10, 12, 16, 20 b= ytes; | > -| | | = | > -| | | Mac Len Supported sha2-256 16, 24, 32 b= ytes; | > -| | | = | > -| | | Mac Len Supported sha2-384 24,32, 40, 4= 8 bytes; | > -| | | = | > -| | | Mac Len Supported sha2-512 32, 40, 48, = 56, 64 bytes; | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| aes | gcm | Key Sizes:128, 192, 256 bits; = | > -| | | = | > -| | | Associated Data Length: 0 ~ 240 bytes; = | > -| | | = | > -| | | Payload Length: 0 ~ (2^32 -1) bytes; = | > -| | | = | > -| | | IV source: external; = | > -| | | = | > -| | | IV Lengths: 96 bits; = | > -| | | = | > -| | | Tag Lengths: 8, 12, 16 bytes; = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| kasumi | f8 | Encrypt/Decrypt; Key size: 128 = | > -+ +-------------------+-----------------------------------------= -------------------------------- > --+ > -| | f9 | Generate/Verify; Key size: 128 = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| snow3g | uea2 | Encrypt/Decrypt; Key size: 128 = | > -+ +-------------------+-----------------------------------------= -------------------------------- > --+ > -| | uia2 | Generate/Verify; Key size: 128 = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > - > -AESNI_GCM algorithm table > -The table below contains AESNI GCM PMD algorithms which are supported > -in crypto perf > - > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -|Algorithm| Mode | Detail = | > -| | = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| aes | gcm | Encrypt/Decrypt;Key Sizes:128, 256 bits= ; | > -| | | = | > -| | | IV source: external; = | > -| | | = | > -| | | IV Lengths: 96 bits; = | > -| | | = | > -| | | Generate/Verify;Key Sizes:128,192,256 b= its; | > -| | | = | > -| | | Associated Data Length: 0 ~ 240 bytes; = | > -| | | = | > -| | | Payload Length: 0 ~ (2^32 -1) bytes; = | > -| | | = | > -| | | Tag Lengths: 8, 12, 16 bytes; = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| aes | gmac | Generate/Verify;Key Sizes:128,192,256 b= its; | > -| | | = | > -| | | Associated Data Length: 0 ~ 240 bytes; = | > -| | | = | > -| | | Payload Length: 0 ~ (2^32 -1) bytes; = | > -| | | = | > -| | | Tag Lengths: 8, 12, 16 bytes; = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > - > -NULL algorithm table > -The table below contains NULL algorithms which are supported in crypto p= erf. > -Part of the algorithms are not supported currently. > - > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -|Algorithm| Mode | Detail = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| null | null | Encrypt/Decrypt;Key Sizes:0 bits; = | > -| | | = | > -| | | IV Lengths: 0 bits; = | > -| | | = | > -| | | Generate/Verify;Key Sizes:0 bits; = | > -| | | = | > -| | | Associated Data Length: 1 bytes; = | > -| | | = | > -| | | Payload Length: 0 bytes; = | > -| | | = | > -| | | Tag Lengths: 0 bytes; = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > - > -KASUMI algorithm table > -The table below contains KASUMI algorithms which are supported in crypto= perf. > - > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -|Algorithm| Mode | Detail = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| kasumi | f8 | Encrypt/Decrypt;Key Sizes:128 bits; = | > -| | | = | > -| | | IV source: external; = | > -| | | = | > -| | | IV Lengths: 64 bits; = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| kasumi | f9 | Generate/Verify;Key Sizes:128 bits; = | > -| | | = | > -| | | Payload Length: 64 bytes; = | > -| | | = | > -| | | Tag Lengths: 4 bytes; = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > - > -SNOW3G algorithm table > -The table below contains SNOW3G algorithms which are supported in crypto= perf. > - > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -|Algorithm| Mode | Detail = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| snow3g | uea2 | Encrypt/Decrypt;Key Sizes:128 bits; = | > -| | | = | > -| | | IV source: external; = | > -| | | = | > -| | | IV Lengths: 128 bits; = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| snow3g | uia2 | Generate/Verify;Key Sizes:128 bits; = | > -| | | = | > -| | | Payload Length: 128 bytes; = | > -| | | = | > -| | | Tag Lengths: 4 bytes; = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > - > -ZUC algorithm table > -The table below contains ZUC algorithms which are supported in crypto pe= rf. > - > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -|Algorithm| Mode | Detail = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| zuc | eea3 | Encrypt/Decrypt;Key Sizes:128 bits; = | > -| | | = | > -| | | IV source: external; = | > -| | | = | > -| | | IV Lengths: 128 bits; = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| zuc | eia2 | Generate/Verify;Key Sizes:128 bits; = | > -| | | = | > -| | | Payload Length: 128 bytes; = | > -| | | = | > -| | | Tag Lengths: 4 bytes; = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > - > -OPENSSL algorithm table: > -The table below contains OPENSSL algorithms which are supported in crypt= o perf. > - > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -|Algorithm| Mode | Detail = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| aes | cbc | Encrypt/Decrypt;Key size: 128, 192, 256= bits | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| aes | ctr | Encrypt/Decrypt;Key size: 128, 192, 256= bits | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| 3des | cbc | Encrypt/Decrypt;Key size: 128, 192 bits= | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| 3des | ctr | Encrypt/Decrypt;Key size: 128, 192 bits= | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| md | | md5 = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| sha | | sha1, sha2-224, sha2-256, sha2-384, sha= 2-512 | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| hmac | | Support md5 and sha implementations sha= 1, sha2-224, sha2- > 256, | > -| | | = | > -| | | sha2-384, sha2-512 = | > -| | | = | > -| | | Key Size versus Block size support: Key= Size must be <=3D block size; > | > -| | | = | > -| | | Mac Len Supported sha1 10, 12, 16, 20 b= ytes; | > -| | | = | > -| | | Mac Len Supported sha2-256 16, 24, 32 b= ytes; | > -| | | = | > -| | | Mac Len Supported sha2-384 24,32, 40, 4= 8 bytes; | > -| | | = | > -| | | Mac Len Supported sha2-512 32, 40, 48, = 56, 64 bytes; | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| aes | gcm | Encrypt/Decrypt;Key Sizes:128 bits; = | > -| | | = | > -| | | IV source: external; = | > -| | | = | > -| | | IV Lengths: 96 bits; = | > -| | | = | > -| | | Associated Data Length: 0 ~ 240 bytes; = | > -| | | = | > -| | | Generate/Verify; 128, 192,256 bytes; = | > -| | | = | > -| | | Payload Length: 64,128 bytes; = | > -| | | = | > -| | | Tag Lengths: 16 bytes; = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > -| aes | gmac | Generate/Verify;Key Sizes:128,192,256 b= its; | > -| | | = | > -| | | Associated Data Length: 0 ~ 240 bytes; = | > -| | | = | > -| | | Payload Length: 8 ~ (2^32 -4) bytes; = | > -| | | = | > -| | | Tag Lengths:16 bytes; = | > -+---------+-------------------+-----------------------------------------= ----------------------------- > -----+ > - > - > -Prerequisites > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > - > -To test Cryptodev performance, an application > -test_crypto_perf is added into DPDK. > - > -The test commands of test_crypto_perf is below:: > - > - ./build/app/dpdk-test-crypto-perf -c COREMASK --vdev > (AESNI_MB|QAT|AESNI_GCM|OPENSSL|SNOW3G|KASUMI|ZUC|NULL) -w > (PCI:DEVICE:FUNCTION) -w (PCI:DEVICE:FUNCTION) -- --ptest (throughput|lat= ency) > --devtype > (crypto_aesni_mb|crypto_qat|crypto_aes_gcm|crypto_openssl|crypto_snow3g|c= rypt > o_kasumi|crypto_zuc|crypto_null) --optype (aead|cipher-only|auth-only|cip= her- > then-auth|auth-then-cipher) --cipher-algo (ALGO) --cipher-op (encrypt|de= crypt) -- > cipher-key-sz (key_size) --cipher-iv-sz (iv_size) --auth-algo (ALGO) --au= th-op > (generate|verify) --auth-key-sz (key_size) --auth-aad-sz (aad_size) --aut= h-digest-sz > (digest_size) --total-ops (ops_number) --burst-sz (burst_size) --buffer-s= z (buffer_size) > - > - > - > -Test case: Cryptodev performance test > -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > - > -:: > - > - +----------+ +----------+ > - | | | | > - | | --------------> | | > - | Tester | | DUT | > - | | | | > - | | <-------------> | | > - +----------+ +----------+ > - > -common:: > - > - --vdev (AESNI_MB|QAT|AESNI_GCM|OPENSSL|SNOW3G|KASUMI|ZUC|NULL) this > value can be set as : crypto_aesni_mb_pmd, crypto_aes_gcm_pmd, > crypto_openssl_pmd, crypto_snow3g_pmd, crypto_kasumi_pmd, crypto_zuc_pmd = or > crypto_null_pmd . if pmd is QAT this parameter should not be set > - > - -w (PCI:DEVICE:FUNCTION) this value is the port whitelist or QAT dev= ice > whitelist . if vdev is set and devtype is not crypto_qat , the QAT devic= e whitelist is > not needed , but you also can set it on the cmd line . > - > - --optype (aead|cipher-only|auth-only|cipher-then-auth|auth-then-ciph= er): if > cipher-algo is aes-gcm or gmac this value must be set to aead . otherwise= it will be > set to others. please notice , null algorithm only support cipher-only te= st. > - > -other parameters please reference above table's parameter . > - > -QAT PMD Command line Eg:: > - > - ./build/app/dpdk-test-crypto-perf -c 0xf -w 0000:01:00.0 -w 0000:03= :3d.0 -- -- > ptest throughput --devtype crypto_qat --optype cipher-then-auth --cipher= -algo aes- > cbc --cipher-op encrypt --cipher-key-sz 16 --cipher-iv-sz 16 --auth-algo = sha1-hmac -- > auth-op generate --auth-key-sz 64 --auth-aad-sz 0 --auth-digest-sz 20 --t= otal-ops > 10000000 --burst-sz 32 --buffer-sz 1024 > - > -AESNI_MB PMD Command line Eg:: > - > - ./build/app/dpdk-test-crypto-perf -c 0xf --vdev crypto_aesni_mb_pmd = -w > 0000:01:00.0 -w 0000:03:3d.0 -- --ptest throughput --devtype crypto_aesni= _mb -- > optype cipher-then-auth --cipher-algo aes-cbc --cipher-op encrypt --ciph= er-key-sz > 16 --cipher-iv-sz 16 --auth-algo sha1-hmac --auth-op generate --auth-key-= sz 64 -- > auth-aad-sz 0 --auth-digest-sz 20 --total-ops 10000000 --burst-sz 32 --bu= ffer-sz > 1024 > - > -AESNI_GCM PMD Command line Eg:: > - > - ./build/app/dpdk-test-crypto-perf -c 0xf --vdev crypto_aesni_gcm_pmd= -w > 0000:01:00.0 -w 0000:03:3d.0 -- --ptest throughput --devtype crypto_aesni= _gcm -- > optype aead --cipher-algo aes-gcm --cipher-op encrypt --cipher-key-sz 16= --cipher- > iv-sz 12 --auth-algo aes-gcm --auth-op generate --auth-key-sz 16 --auth-a= ad-sz 4 -- > auth-digest-sz 12 --total-ops 10000000 --burst-sz 32 --buffer-sz 1024 > - > -OPENSSL PMD Command line Eg:: > - > - ./build/app/dpdk-test-crypto-perf -c 0xf --vdev crypto_openssl_pmd = -w > 0000:01:00.0 -w 0000:03:3d.0 -- --ptest throughput --devtype crypto_opens= sl -- > optype cipher-then-auth --cipher-algo aes-cbc --cipher-op encrypt --ciph= er-key-sz > 16 --cipher-iv-sz 16 --auth-algo sha1-hmac --auth-op generate --auth-key-= sz 64 -- > auth-aad-sz 0 --auth-digest-sz 20 --total-ops 10000000 --burst-sz 32 --bu= ffer-sz 64 > - > -NULL PMD Command line Eg:: > - > - ./build/app/dpdk-test-crypto-perf -c 0xf --vdev crypto_null_pmd -w > 0000:01:00.0 -w 0000:03:3d.0 -- --ptest throughput --devtype crypto_null = --optype > cipher-only --cipher-algo null --cipher-op encrypt --cipher-key-sz 0 --c= ipher-iv-sz 0 > --total-ops 10000000 --burst-sz 32 --buffer-sz 1024 > - > -KASUMI PMD Command line Eg:: > - > - ./build/app/dpdk-test-crypto-perf -c 0xf --vdev crypto_kasumi_pmd -= w > 0000:01:00.0 -w 0000:03:3d.0 -- --ptest throughput --devtype crypto_kasum= i -- > optype cipher-then-auth --cipher-algo kasumi-f8 --cipher-op encrypt --ci= pher-key- > sz 16 --cipher-iv-sz 8 --auth-algo kasumi-f9 --auth-op generate --auth-ke= y-sz 16 -- > auth-aad-sz 8 --auth-digest-sz 4 --total-ops 10000000 --burst-sz 32 --buf= fer-sz 1024 > - > -SNOW3G PMD Command line Eg:: > - > - ./build/app/dpdk-test-crypto-perf -c 0xf --vdev crypto_snow3g_pmd -= w > 0000:01:00.0 -w 0000:03:3d.0 -- --ptest throughput --devtype crypto_snow3= g -- > optype cipher-then-auth --cipher-algo snow3g-uea2 --cipher-op encrypt --= cipher- > key-sz 16 --cipher-iv-sz 16 --auth-algo snow3g-uia2 --auth-op generate --= auth-key- > sz 16 --auth-aad-sz 16 --auth-digest-sz 4 --total-ops 10000000 --burst-sz= 32 -- > buffer-sz 1024 > - > -ZUC PMD Command line Eg:: > - > - ./build/app/dpdk-test-crypto-perf -c 0xf --vdev crypto_zuc_pmd -w > 0000:01:00.0 -w 0000:03:3d.0 -- --ptest throughput --devtype crypto_zuc_m= b -- > optype cipher-then-auth --cipher-algo zuc-eea3 --cipher-op encrypt --cip= her-key-sz > 16 --cipher-iv-sz 16 --auth-algo zuc-eia3 --auth-op generate --auth-key-= sz 16 --auth- > aad-sz 16 --auth-digest-sz 4 --total-ops 10000000 --burst-sz 32 --buffer-= sz 1024 > -- > 2.7.4